Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 461948

Summary: allow extended '::overlay' syntax in <overlay>/profile/package.mask
Product: Portage Development Reporter: Dyweni <j6yNRdsH5Fc3>
Component: Enhancement/Feature RequestsAssignee: Portage team <dev-portage>
Status: RESOLVED FIXED    
Severity: normal Keywords: InVCS
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 462382    

Description Dyweni 2013-03-16 19:50:27 UTC
File '/etc/portage/package.mask' allows me to enter 'category/package::repo' to mask all ebuilds of 'category/package' in 'repo'.

File '<overlay>/profile/package.mask' throws the '--- Invalid atom in (file)' when I use the same syntax to mask all ebuilds of 'category/package' in 'repo'.

I would like file '<overlay>/profile/package.mask' to support the 'category/package::repo' extended atom syntax.



Here is an example use case:

1. <overlay> contains a modified version of 'category/package'.
2. Not wanting the installed package to be accidentally upgraded to a non-modified version, I wanted to mask that package from the main 'gentoo' repo.
3. Secondly, I want this mask introduced by the overlay, so that all machines that add this overlay automatically get the mask and the admin doesn't have to manually add the mask to the file '/etc/portage/package.mask'.


Example:

1. <overlay> contains a modified version of net-misc/xscreensaver that allows locking with root password when root is logged in.
2. <overlay>/profiles/package.mask contains the line 'net-misc/xscreensaver::gentoo' to mask the non-modified ebuilds in net-misc/screensaver in the gentoo tree.


Reproducible: Always

Steps to Reproduce:
1. Add 'category/package::repo' to '<overlay>/profile/package.mask'.
2. Run emerge

Actual Results:  
Output contains error:

--- Invalid atom in <overlay>/profiles/package.mask: category/package::repo

All ebuilds for category/package::repo are not masked.


Expected Results:  
No error message in output.
All ebuilds for category/package::repo are masked.


This is related to bug # 436330.
Comment 1 Dyweni 2013-03-16 19:55:30 UTC
Minor example clarification:
  'net-misc/xscreensaver' is a typo.  It should have been 'x11-misc/xscreensaver'.
Comment 2 Zac Medico gentoo-dev 2013-03-17 07:21:23 UTC
Since EAPIs 4-python and 5-progress support ::repo atoms, we could allow these atoms in profiles/package.mask if you have one of these EAPIs in profiles/eapi, like the progress overlay:

https://code.google.com/p/gentoo-progress/source/browse/overlays/progress/profiles/eapi

Currently, it doesn't work, because package.mask atoms automatically inherit their ::repo part from the containing overlay.
Comment 3 Zac Medico gentoo-dev 2013-03-19 06:39:34 UTC
(In reply to comment #2)
> Currently, it doesn't work, because package.mask atoms automatically inherit
> their ::repo part from the containing overlay.

This is fixed in git:

http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=05eac1c00d668fd8f36e8dabc656eaa3cdeabdcf
Comment 4 Dyweni 2013-03-19 13:50:54 UTC
I confirm that the patch referenced in GIT is working for me.

I tested it like this:
1. Created '<overlay>/profiles/eapi' file with '5-progress' as its contents.
2. Added the patch referenced in GIT to the 2.1.11.52 ebuild.

When do you expect this to hit the public tree?

Thanks.
Comment 5 Zac Medico gentoo-dev 2013-03-19 16:20:44 UTC
Thanks for testing. I hope to do a release today or tomorrow.
Comment 6 Zac Medico gentoo-dev 2013-03-19 22:42:41 UTC
This is fixed in 2.1.11.56 and 2.2.0_alpha167.