After reading GLEP 23[1], it reads as if ACCEPT_LICENSE should stack. I agree. The user should only need to specify additional licenses, or negations of the default set. # emerge -vp bash These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] app-shells/bash-3.2_p39 USE="nls -afs -bashlogger -examples -plugins -vanilla" 0 kB Total: 1 package (1 reinstall), Size of downloads: 0 kB cgianelloni ~ # ACCEPT_LICENSE="Q3AEULA" emerge -vp bash These are the packages that would be merged, in order: Calculating dependencies... done! !!! All ebuilds that could satisfy "app-shells/bash" have been masked. !!! One of the following masked packages is required to complete your request: - app-shells/bash-3.2_p39 (masked by: GPL-2 license(s)) A copy of the 'GPL-2' license is located at '/usr/portage/licenses/GPL-2'. - app-shells/bash-3.2_p33 (masked by: GPL-2 license(s)) - app-shells/bash-3.2_p17-r1 (masked by: GPL-2 license(s)) - app-shells/bash-3.1_p17 (masked by: GPL-2 license(s)) - app-shells/bash-3.0-r14 (masked by: GPL-2 license(s)) - app-shells/bash-3.0-r13 (masked by: GPL-2 license(s)) - app-shells/bash-3.0-r12 (masked by: GPL-2 license(s)) - app-shells/bash-2.05b-r11 (masked by: GPL-2 license(s)) For more information, see the MASKED PACKAGES section in the emerge man page or refer to the Gentoo Handbook. I would expect this to allow the default set, and *add* Q3AEULA to the accepted license list. Am I misinterpreting the GLEP? [1] http://www.gentoo.org/proj/en/glep/glep-0023.html
The stacking appears to work correctly in my limited testing. I think what you are observing is that the @GPL-COMPATIBLE licence group hasn't been added to make.defaults in the base profile. To verify my results, you can temporarily set ACCEPT_LICENSE="@GPL-COMPATIBLE" in /etc/portage/profile/make.defaults ant then it should behave as you expect. You can also use `portageq envvar ACCEPT_LICENSE` to verify the stacking. The ACCEPT_LICENSE value reported by portageq should contain all of the stacked licences after any groups have been expanded.
OK. I'm guessing that portage does no filtering when ACCEPT_LICENSE is not set, then?
OK. I spoke with Zac and portage doesn't do any license filtering, by default. This was done so that the license_groups file can be populated and a default ACCEPT_LICENSE can be set in the profiles. cgianelloni ~ # portageq envvar ACCEPT_LICENSE Apache-2.0 Artistic Artistic-2 BSD BSD-2 Boost-1.0 DOOM3 GPL-2 GPL-3 Intel LGPL-2.1 LGPL-3 LOKI-EULA PYTHON Q3AEULA QUAKE4 RTCW RTCW-ETEULA Ruby W3C W3C-document X11 ZLIB ZPL public-domain ut2003 cgianelloni ~ # grep ACCEPT_LICENSE /etc/make.conf ACCEPT_LICENSE="@GPL-COMPATIBLE LOKI-EULA ut2003 RTCW RTCW-ETEULA DOOM3 QUAKE4 Q3AEULA" cgianelloni ~ # ACCEPT_LICENSE="Q2EULA" portageq envvar ACCEPT_LICENSE Apache-2.0 Artistic Artistic-2 BSD BSD-2 Boost-1.0 DOOM3 GPL-2 GPL-3 Intel LGPL-2.1 LGPL-3 LOKI-EULA PYTHON Q2EULA Q3AEULA QUAKE4 RTCW RTCW-ETEULA Ruby W3C W3C-document X11 ZLIB ZPL public-domain ut2003 So... it does stack. Thanks, Zac!