When portage is using FEATURES="unmerge-backup" (and I would assume, but haven't tested "downgrade-backup") binary packages are built, even if the user specifies "--buildpkg-exclude" Example: >FEATURES="unmerge-backup" emerge -1 virtual/man --buildpkg-exclude "virtual/man" From the emerge manpage: > --buildpkg-exclude ATOMS > A space separated list of package atoms for which no binary > packages should be built. This option overrides all possible > ways to enable building of binary packages. So this may, in fact, be desired behavior, but the man page states that it overrides "all possible ways," and this is clearly a method of enabling building binary packages. If I have time later, I'll see if I can test a couple of other versions of portage to see if they exhibit the same behavior.
Tested with 2.2.8, 2.2.15, and 9999
The --buildpkg-exclude option was added before unmerge-backup and downgrade-backup existed: https://github.com/gentoo/portage/commit/2d78dcda11d753a54f821c7fb482b4bb3b511d0b When I implemented unmerge-backup and downgrade-backup, making them interact with --buildpkg-exclude never crossed my mind because I never use --buildpkg-exclude myself: https://github.com/gentoo/portage/commit/f807bb54317db5f8073f8904897cf4b9d87bf2cd (In reply to NP-Hardass from comment #0) > So this may, in fact, be desired behavior, but the man page states that it > overrides "all possible ways," and this is clearly a method of enabling > building binary packages. I'm not so sure that making --buildpkg-exclude change the behavior of *-backup features is a good idea, because it could result in people losing the protection that the *-backup features are intended to provide. So, maybe we should simply update the documentation.
(In reply to Zac Medico from comment #2) > I'm not so sure that making --buildpkg-exclude change the behavior of > *-backup features is a good idea, because it could result in people losing > the protection that the *-backup features are intended to provide. So, maybe > we should simply update the documentation. I think it makes sense that the *-backup features would be beyond the scope of --buildpkg-exclude. I would agree that the updating the documentation seems reasonable as a solution. I discovered this because I wanted virtual packages, kernel sources, and binary packages to be excluded having binpkgs built, since for these packages, binpkgs aren't generally useful. Ultimately, if you keep the current behavior, I would request that you consider a method of excluding packages from the *-backup features akin to --buildpkg-exclude.
(In reply to NP-Hardass from comment #3) > Ultimately, if you keep the current behavior, I would request that you > consider a method of excluding packages from the *-backup features akin to > --buildpkg-exclude. You can already do it by using /etc/portage/package.env to reference an env file that sets FEATURES="-unmerge-backup -downgrade-backup". However, there's currently no way to do it via the command line.
(In reply to Zac Medico from comment #4) > You can already do it by using /etc/portage/package.env to reference an env > file that sets FEATURES="-unmerge-backup -downgrade-backup". However, > there's currently no way to do it via the command line. I didn't even think of that. :P Command line isn't necessary. Thanks.
I have a patch for the emerge man page in the following branch: https://github.com/zmedico/portage/tree/bug_533036 I've posted it for review here: http://thread.gmane.org/gmane.linux.gentoo.portage.devel/5044
This is in the master branch now: https://github.com/gentoo/portage/commit/f2d25e174634151732b86e72befd3a90f048aeb8
Released in portage-2.2.16