Forums

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • FAQ
  • Login
  • Register
  • Board index Assistance Portage & Programming
  • Search

unable to unmask package use flag

Problems with emerge or ebuilds? Have a basic programming question about C, PHP, Perl, BASH or something else?
Post Reply
Advanced search
11 posts • Page 1 of 1
Author
Message
patd44
n00b
n00b
Posts: 7
Joined: Sun Jul 29, 2012 9:16 am

unable to unmask package use flag

  • Quote

Post by patd44 » Mon Mar 08, 2021 12:00 am

Hi there

Im getting the following masked package unable to be unmasked.

my ruby target is 2.7 because of GitLab, but I have an app that does not yet have have Ruby27 support so Im going though the needed dependencies and unmasking ruby26. I don't want to unmask ruby26 system wide for one app. Also the idea is to set the explicit exceptions to the base I've set.

things have been going well until this one package, no matter what I do in /etc/portage/profile/package.use.mask it won't mask the ruby27 flag I've set in make.conf, no wildcards seem to work

ideas?

Code: Select all

emerge: there are no ebuilds to satisfy "dev-ruby/public_suffix:3[ruby_targets_ruby27(-)]".
(dependency required by "dev-ruby/addressable-2.7.0::gentoo[ruby_targets_ruby27,-test]" [ebuild])
(dependency required by "dev-ruby/css_parser-1.7.1::gentoo[ruby_targets_ruby26]" [ebuild])
(dependency required by "dev-ruby/roadie-4.0.0::gentoo[ruby_targets_ruby26]" [ebuild])
(dependency required by "dev-ruby/roadie-rails-2.1.1::gentoo[ruby_targets_ruby26]" [ebuild])

localhost ~ # cat /etc/portage/profile/package.use.mask 
#redmine package mask requirements
dev-ruby/ruby-openid -ruby_targets_ruby27
dev-ruby/rack -ruby_targets_ruby27
dev-ruby/htmlentities -ruby_targets_ruby27
=dev-ruby/crass-1.0* -ruby_targets_ruby27
>=dev-ruby/rack-test-0.6.3:* -ruby_targets_ruby27
>=dev-ruby/rexical-1.0.7 -ruby_targets_ruby27
>=dev-ruby/mini_mime-0.1.1 -ruby_targets_ruby27
*dev-ruby/public_suffix* -ruby_targets_ruby27
Code tags added by NeddySeagoon
MCSE - Minesweeper Consultant and Solitaire Expert
Top
Mistwolf
Apprentice
Apprentice
Posts: 189
Joined: Wed Mar 07, 2007 2:06 am
Location: Edmonton, AB

  • Quote

Post by Mistwolf » Mon Mar 08, 2021 1:09 am

as per the 3.1.1 ebuild:

Code: Select all

USE_RUBY="ruby24 ruby25 ruby26"
it does not support ruby27

https://gitweb.gentoo.org/repo/gentoo.g ... 1.1.ebuild
Top
fedeliallalinea
Administrator
Administrator
User avatar
Posts: 31985
Joined: Sat Mar 08, 2003 11:15 pm
Location: here
Contact:
Contact fedeliallalinea
Website

  • Quote

Post by fedeliallalinea » Mon Mar 08, 2021 6:19 am

Code: Select all

emerge: there are no ebuilds to satisfy "dev-ruby/public_suffix:3[ruby_targets_ruby27(-)]".
(dependency required by "dev-ruby/addressable-2.7.0::gentoo[ruby_targets_ruby27,-test]" [ebuild]) 
If you look in addressable ebuild you see

Code: Select all

ruby_add_rdepend "|| ( dev-ruby/public_suffix:4 dev-ruby/public_suffix:3 
So you should install dev-ruby/public_suffix:4 with ruby27 target and emerge resolve problem
Questions are guaranteed in life; Answers aren't.

"Those who would give up essential liberty to purchase a little temporary safety,
deserve neither liberty nor safety."
- Ben Franklin
https://www.news.admin.ch/it/nsb?id=103968
Top
patd44
n00b
n00b
Posts: 7
Joined: Sun Jul 29, 2012 9:16 am

  • Quote

Post by patd44 » Mon Mar 08, 2021 9:35 am

Hi there

im a bit disappointed that no one read my package.use.mask supplied in my post, per the docs, to unmask a parent mask.

Im not trying to use Ruby27 im tying MASK ruby27. to use ruby26 for my application. I KNOW ruby27 is not supported. I'm forcing ruby27 system wide and then removing the mask on a per-application basis by explicitly setting the flags on the required packages.

make.conf: RUBY_TARGETS="ruby27" <- this remains. exceptions made in package.use.mask and package.use I am keeping one version of ruby on my system as the general version.

as my post indicated but no one noticed:

emerge: there are no ebuilds to satisfy "dev-ruby/public_suffix:3[ruby_targets_ruby27(-)]". (the ability to mask Ruby27 for ruby26 is masked by my make.conf - the minus in brackes (-) ) I cannot, no matter what I put in package.use.mask, unmask ruby26 for this package.

Im tying to REMOVE the forced ruby27 flag I have set in make.conf because the APP, as others have pointed out, does not support ruby26, and if you looked at my package.use.mask, you see im NEGATING the ruby_targets_ruby27 flag, to then, in package.use enable ruby26

localhost ~ # cat /etc/portage/profile/package.use.mask
dev-ruby/ruby-openid -ruby_targets_ruby27
dev-ruby/rack -ruby_targets_ruby27
dev-ruby/htmlentities -ruby_targets_ruby27
=dev-ruby/crass-1.0* -ruby_targets_ruby27
>=dev-ruby/rack-test-0.6.3:* -ruby_targets_ruby27
>=dev-ruby/rexical-1.0.7 -ruby_targets_ruby27
>=dev-ruby/mini_mime-0.1.1 -ruby_targets_ruby27
*dev-ruby/public_suffix* -ruby_targets_ruby27 <----- disable ruby27, to allow ruby26 flag.

/etc/portage/package.use/ruby
>=dev-ruby/fcgi-0.9.2.1-r1 ruby_targets_ruby26 <--- force ruby26 (random example, there are close to 40 lines in this file all enabling ruby26)
>=dev-ruby/mini_magick-4.11.0 ruby_targets_ruby26
>=dev-ruby/ruby-net-ldap-0.17.0 ruby_targets_ruby26
>=dev-ruby/redcarpet-3.5.1 ruby_targets_ruby26
>=dev-ruby/mysql2-0.5.3-r1 ruby_targets_ruby26
>=www-apache/passenger-6.0.6 ruby_targets_ruby26

so why is this in package.use.mask not working: *dev-ruby/public_suffix* -ruby_targets_ruby27 DESPITE the examples in the SAME file working.
emerge: there are no ebuilds to satisfy "dev-ruby/public_suffix:3[ruby_targets_ruby27(-)]"

RUBY_TARGETS="ruby26 ruby27" in make.conf is not an option I will consider. package.use.mask and package.use to unmask ruby26 is the only accepted solution.
Last edited by patd44 on Mon Mar 08, 2021 9:48 am, edited 2 times in total.
MCSE - Minesweeper Consultant and Solitaire Expert
Top
fedeliallalinea
Administrator
Administrator
User avatar
Posts: 31985
Joined: Sat Mar 08, 2003 11:15 pm
Location: here
Contact:
Contact fedeliallalinea
Website

  • Quote

Post by fedeliallalinea » Mon Mar 08, 2021 9:45 am

The /etc/portage/profile/package.use.mask and /etc/portage/profile/use.mask works differently that /etc/portage/package.use, if you want unmask use minus prefix on use flag otherwise without
https://wiki.gentoo.org/wiki//etc/portage/profile/package.use.mask wrote:

Code: Select all

# Mask docs for GTK 2.x
=x11-libs/gtk+-2* doc
# Unmask mysql support for QT
x11-libs/qt -mysql
Questions are guaranteed in life; Answers aren't.

"Those who would give up essential liberty to purchase a little temporary safety,
deserve neither liberty nor safety."
- Ben Franklin
https://www.news.admin.ch/it/nsb?id=103968
Top
patd44
n00b
n00b
Posts: 7
Joined: Sun Jul 29, 2012 9:16 am

  • Quote

Post by patd44 » Mon Mar 08, 2021 10:05 am

Hi there
if you want unmask use minus prefix on use flag otherwise without
you've repeated what I understand already why is my line not being respected?

why is this not working when I have it set in my package.use.mask, the minus prefix is ALREADY there, i've attempted to wildcard the package name to match, but It will not negate my ruby27 flag, what is wrong with this line? there are other examples in the same file that work just fiine, just not this one package.
*dev-ruby/public_suffix* -ruby_targets_ruby27
this is my package.use.mask as is, look at the last line, you clearly see i've already masked ruby27 for other packages and those are fine. I have been able to enable ruby26

localhost ~ # cat /etc/portage/profile/package.use.mask
dev-ruby/ruby-openid -ruby_targets_ruby27
dev-ruby/rack -ruby_targets_ruby27
dev-ruby/htmlentities -ruby_targets_ruby27
=dev-ruby/crass-1.0* -ruby_targets_ruby27
>=dev-ruby/rack-test-0.6.3:* -ruby_targets_ruby27
>=dev-ruby/rexical-1.0.7 -ruby_targets_ruby27
>=dev-ruby/mini_mime-0.1.1 -ruby_targets_ruby27
*dev-ruby/public_suffix* -ruby_targets_ruby27 <----- disable ruby27, to allow ruby26 flag. why is this not working?
MCSE - Minesweeper Consultant and Solitaire Expert
Top
fedeliallalinea
Administrator
Administrator
User avatar
Posts: 31985
Joined: Sat Mar 08, 2003 11:15 pm
Location: here
Contact:
Contact fedeliallalinea
Website

  • Quote

Post by fedeliallalinea » Mon Mar 08, 2021 10:14 am

Sorry I don't understand. You say
this is my package.use.mask as is, look at the last line, you clearly see i've already masked ruby27 for other packages and those are fine. I have been able to enable ruby26
No with minus you unmask the use flag.
Questions are guaranteed in life; Answers aren't.

"Those who would give up essential liberty to purchase a little temporary safety,
deserve neither liberty nor safety."
- Ben Franklin
https://www.news.admin.ch/it/nsb?id=103968
Top
patd44
n00b
n00b
Posts: 7
Joined: Sun Jul 29, 2012 9:16 am

  • Quote

Post by patd44 » Mon Mar 08, 2021 10:23 am

look at my file.. I've already negated my ruby27 flag.....the negation exists.

localhost ~ # cat /etc/portage/profile/package.use.mask
dev-ruby/ruby-openid -ruby_targets_ruby27
dev-ruby/rack -ruby_targets_ruby27
dev-ruby/htmlentities -ruby_targets_ruby27
=dev-ruby/crass-1.0* -ruby_targets_ruby27 <- ruby27 masked allowing ruby26 -- look at package.use below showing flagging ruby26

>=dev-ruby/rack-test-0.6.3:* -ruby_targets_ruby27 <- ruby27 masked allowing ruby26
>=dev-ruby/rexical-1.0.7 -ruby_targets_ruby27 <- ruby27 masked allowing ruby26
>=dev-ruby/mini_mime-0.1.1 -ruby_targets_ruby27 <- ruby27 masked allowing ruby26
*dev-ruby/public_suffix* -ruby_targets_ruby27 <--- disable ruby27, to allow ruby26 flag. why is this not working?
then I flag the package for ruby26....

cat /etc/portage/package.use/ruby
....
>=dev-ruby/crass-1.0.6 ruby_targets_ruby26
....
MCSE - Minesweeper Consultant and Solitaire Expert
Top
patd44
n00b
n00b
Posts: 7
Joined: Sun Jul 29, 2012 9:16 am

  • Quote

Post by patd44 » Mon Mar 08, 2021 2:35 pm

Hi there

so this was not only needing to disable ruby27 but enable ruby26 as it was explictly masked by the ebuild

Code: Select all

(dev-ruby/addressable-2.7.0:0/0::gentoo, ebuild scheduled for merge) USE="-doc -test" RUBY_TARGETS="-ruby25 (-ruby26) ruby27" pulled in by
fixed by the following, there was also a conflict with dev-ruby/addressable-2.6.0 as 2.7.0 had a ruby27 flag and 2.6.0 did not, so I masked 2.7.0 and explictly enabled ruby26 to be sure. Public suffix needed ~amd64 keyword to get its correct version with the correct flag enabled.

Code: Select all

<dev-ruby/addressable-2.7.0 -ruby_targets_ruby27 ruby_targets_ruby26
=dev-ruby/public_suffix-4.0.5 -ruby_targets_ruby27 ruby_targets_ruby26
MCSE - Minesweeper Consultant and Solitaire Expert
Top
Hu
Administrator
Administrator
Posts: 24398
Joined: Tue Mar 06, 2007 5:38 am

  • Quote

Post by Hu » Mon Mar 08, 2021 5:06 pm

If I understand your posts correctly, then your understanding is backward. In package.use.mask:
  • category/package flag: force category/package to MASK OUT flag, thereby preventing it from being enabled, regardless of the user's USE / RUBY_TARGETS values.
  • category/package -flag: force category/package to UNMASK flag, thereby allowing, but not requiring the user to enable the flag.
Your shown file allows, but does not require, you to enable ruby27 on the listed packages. It has no effect on other flags, such as ruby26. It has no effect on packages that would already not USE=ruby_targets_ruby27.
Top
patd44
n00b
n00b
Posts: 7
Joined: Sun Jul 29, 2012 9:16 am

  • Quote

Post by patd44 » Mon Mar 08, 2021 6:13 pm

Hu wrote:If I understand your posts correctly, then your understanding is backward. In package.use.mask:
  • category/package flag: force category/package to MASK OUT flag, thereby preventing it from being enabled, regardless of the user's USE / RUBY_TARGETS values.
  • category/package -flag: force category/package to UNMASK flag, thereby allowing, but not requiring the user to enable the flag.
Your shown file allows, but does not require, you to enable ruby27 on the listed packages. It has no effect on other flags, such as ruby26. It has no effect on packages that would already not USE=ruby_targets_ruby27.
pakage.use.mask is a positive effecting mask on the build process, so yes you want to MASK *something* then you are correct in your understanding. Also respecting the inheritance of profile -> make.conf -> package.* -> ebuild

my end goal is negating a flag already negated, (-ruby_targets_ruby26), the default of the system: make.conf - RUBY_TARGETS="ruby27" : ruby27 flag is enabled, note the missing ruby26 target. Explicitly compiling against ruby27 only.

my goal, to SELECTIVELY enable RUBY_TARGETS="ruby26" on a PER PACKAGE BASIS - not globally in make.conf... so far still positive effect on the use flag ruby_targets_ruby26

since the majority of the packages I was emerging were MASKED because of make.conf NOT adding RUBY_TARGETS="ruby26", thus NOT enabled - negated by make.conf.

so now since my RUBY_TARGETS="ruby27" (root) - make.conf (negated ruby26)
I need to ENABLE RUBY_TARGETS="ruby26" (child) - package.use.mask

so...how does one negate a negative....in math, one does this (negative * negative) = positive (-2*-2) == 4. negating the negative. As I clearly stated in the beginning, so since my flag because make.conf = RUBY_TARGETS="ruby27" (-ruby_targets_ruby26). I need to negate that.

So, the end result was TWO positives, both ruby27 (system set in make.conf) and ruby26 (for my application in package.use.mask) being enabled, where, because of make.conf, it was NOTenabled.

make.conf effect:

Code: Select all

[ebuild  N    ~] dev-ruby/addressable-2.7.0  USE="-doc -test" RUBY_TARGETS="-ruby25 -ruby26 ruby27" 
then lets look at the package, it has an explicit mask of ruby26 in the ebuild, the root cause of this thread, also explaining why I needed to explictly enable ruby26 (ruby_targets_ruby26) on the package as well as negating ruby27 (-ruby_targets_ruby27)

Code: Select all

(dev-ruby/addressable-2.7.0:0/0::gentoo, ebuild scheduled for merge) USE="-doc -test" RUBY_TARGETS="-ruby25 (-ruby26) ruby27" pulled in by
so my understanding of having to mask a negative was correct, as the math proves. This started out as a negative, see, ruby26 was masked because of make.conf, and explicitly by the ebuild itself, then unmasked, (positive effect of negative masking) in package.use.mask, respecting config inheritance.

Code: Select all

[ebuild  N    ~] dev-ruby/addressable-2.7.0  USE="-doc -test" RUBY_TARGETS="-ruby25 ruby26 ruby27" 
MCSE - Minesweeper Consultant and Solitaire Expert
Top
Post Reply

11 posts • Page 1 of 1

Return to “Portage & Programming”

Jump to
  • Assistance
  • ↳   News & Announcements
  • ↳   Frequently Asked Questions
  • ↳   Installing Gentoo
  • ↳   Multimedia
  • ↳   Desktop Environments
  • ↳   Networking & Security
  • ↳   Kernel & Hardware
  • ↳   Portage & Programming
  • ↳   Gamers & Players
  • ↳   Other Things Gentoo
  • ↳   Unsupported Software
  • Discussion & Documentation
  • ↳   Documentation, Tips & Tricks
  • ↳   Gentoo Chat
  • ↳   Gentoo Forums Feedback
  • ↳   Duplicate Threads
  • International Gentoo Users
  • ↳   中文 (Chinese)
  • ↳   Dutch
  • ↳   Finnish
  • ↳   French
  • ↳   Deutsches Forum (German)
  • ↳   Diskussionsforum
  • ↳   Deutsche Dokumentation
  • ↳   Greek
  • ↳   Forum italiano (Italian)
  • ↳   Forum di discussione italiano
  • ↳   Risorse italiane (documentazione e tools)
  • ↳   Polskie forum (Polish)
  • ↳   Instalacja i sprzęt
  • ↳   Polish OTW
  • ↳   Portuguese
  • ↳   Documentação, Ferramentas e Dicas
  • ↳   Russian
  • ↳   Scandinavian
  • ↳   Spanish
  • ↳   Other Languages
  • Architectures & Platforms
  • ↳   Gentoo on ARM
  • ↳   Gentoo on PPC
  • ↳   Gentoo on Sparc
  • ↳   Gentoo on Alternative Architectures
  • ↳   Gentoo on AMD64
  • ↳   Gentoo for Mac OS X (Portage for Mac OS X)
  • Board index
  • All times are UTC
  • Delete cookies

© 2001–2026 Gentoo Foundation, Inc.

Powered by phpBB® Forum Software © phpBB Limited

Privacy Policy

 

 

magic