Summary: | emerge -G ignores local package.mask | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Martin Donnelly <martin.donnelly> |
Component: | [OLD] Core system | Assignee: | Portage team <dev-portage> |
Status: | RESOLVED INVALID | ||
Severity: | normal | ||
Priority: | High | ||
Version: | unspecified | ||
Hardware: | x86 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Martin Donnelly
2005-04-06 05:43:05 UTC
It also appears tht using -G causes some parts of the profile to be ignored. This system is using 2005.0/2.4 profile. # emerge -pu gentoo-sources These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild U ] sys-devel/gnuconfig-20050223 [20040214] [ebuild UD] sys-devel/binutils-2.15.92.0.2-r7 [2.15.92.0.2-r8] [ebuild NS ] sys-kernel/gentoo-sources-2.4.28-r8 # emerge -puG gentoo-sources These are the packages that I would merge, in order: Fetching binary packages info... Calculating dependencies ...done! [binary NS ] sys-kernel/gentoo-sources-2.6.11-r4 using 'g' is not consistent either: # emerge -pug gentoo-sources These are the packages that I would merge, in order: Fetching binary packages info... Calculating dependencies ...done! [binary UD] sys-devel/binutils-2.15.92.0.2-r7 [2.15.92.0.2-r8] [binary NS ] sys-kernel/gentoo-sources-2.4.28-r8 According to the manpage: --getbinpkgonly (-G) This option is identical to -g, as above, except it will not use ANY information from the local machine. All binaries will be downloaded from the remote server without consulting packages existing in the local packages directory. from /usr/lib/portage/bin/emerge: if ("--getbinpkgonly" in myopts) and not ("--usepkgonly" in myopts): myopts.append("--usepkgonly") if ("--getbinpkgonly" in myopts) and not ("--getbinpkg" in myopts): myopts.append("--getbinpkg") # Also allow -K to apply --usepkg/-k if ("--usepkgonly" in myopts) and not ("--usepkg" in myopts): myopts.append("--usepkg") So --getbinpkgonly (-G) implies --usepkg ( use binaries ) and --usepkgonly ( Only use Binaries (-K) <snip...> #from Depgraph's select_dep() if ("--usepkgonly" not in myopts): # Remove any binary package entries that are masked in the portage tree (#55871) for idx in range(len(myeb_pkg_matches)-1,-1,-1): if myeb_pkg_matches[idx] not in myeb_matches: del myeb_pkg_matches[idx] Here we see the emerge code only doing masks if --usepkgonly is not set. Thus -G is ( at least code-wise and man-page-wise ) supposed to ignore local masking, which it does. That leaves -g, which doesn't seem to be pulling either a binary or an ebuild for GNUCONFIG. Probably an "emerge -dupg gentoo-sources" can shed some light on that issue. Could you provide that? Never noticed that behaviour in the man page before :-[ It does make managing
machines in a large network much more time consuming if there is no easy way to
control the installed versions via a package.mask. Are there any plans to
include this functionality?
# emerge -dupg gentoo-sources
<snip>
Calculating dependencies
Parent: None
Depstring: sys-kernel/gentoo-sources
Candidates: ['sys-kernel/gentoo-sources']
ebuild: sys-kernel/gentoo-sources-2.4.28-r8
binpkg: sys-kernel/gentoo-sources-2.4.28-r8
-
Parent: binary / sys-kernel/gentoo-sources-2.4.28-r8 merge
Depstring: !build? ( sys-apps/sed >=sys-devel/binutils-2.11.90.0.31 ) doc? (
app-text/docbook-sgml-utils ) !build? ( >=sys-libs/ncurses-5.2 sys-devel/make )
!build? ( sys-apps/sed >=sys-devel/binutils-2.11.90.0.31 ) doc? (
app-text/docbook-sgml-utils ) !build? ( >=sys-libs/ncurses-5.2 sys-devel/make )
!build? ( sys-apps/sed >=sys-devel/binutils-2.11.90.0.31 ) doc? (
app-text/docbook-sgml-utils ) !build? ( >=sys-libs/ncurses-5.2 sys-devel/make )
Candidates: ['sys-apps/sed', '>=sys-libs/ncurses-5.2', 'sys-devel/make',
'>=sys-devel/binutils-2.11.90.0.31']
ebuild: sys-apps/sed-4.1.4
binpkg: sys-apps/sed-4.1.4
\ebuild: sys-libs/ncurses-5.4.20050319
binpkg: sys-libs/ncurses-5.4.20050319
|
Parent: binary / sys-libs/ncurses-5.4.20050319 merge
Depstring: gpm? ( sys-libs/gpm )
Candidates: ['sys-libs/gpm']
ebuild: sys-libs/gpm-1.20.1-r4
binpkg: sys-libs/gpm-1.20.1-r4
/Exiting... binary / sys-libs/ncurses-5.4.20050319 merge
ebuild: sys-devel/make-3.80-r2
binpkg: sys-devel/make-3.80-r2
-
Parent: binary / sys-devel/make-3.80-r2 merge
Depstring:
ebuild: sys-devel/binutils-2.15.92.0.2-r9
binpkg: sys-devel/binutils-2.15.92.0.2-r9
\
Parent: binary / sys-devel/binutils-2.15.92.0.2-r9 merge
Depstring: >=sys-devel/binutils-config-1.8 >=sys-devel/binutils-config-1.8
>=sys-devel/binutils-config-1.8
Candidates: ['>=sys-devel/binutils-config-1.8']
ebuild: sys-devel/binutils-config-1.8-r2
binpkg: sys-devel/binutils-config-1.8-r2
|
Parent: binary / sys-devel/binutils-config-1.8-r2 merge
Depstring: app-shells/bash
Candidates: ['app-shells/bash']
ebuild: app-shells/bash-3.0-r11
binpkg: app-shells/bash-3.0-r11
/
Parent: binary / app-shells/bash-3.0-r11 merge
Depstring:
Exiting... binary / sys-devel/binutils-config-1.8-r2 merge
Exiting... binary / sys-devel/binutils-2.15.92.0.2-r9 merge
Exiting... binary / sys-kernel/gentoo-sources-2.4.28-r8 merge
Exiting... None
...done!
[binary U ] sys-libs/ncurses-5.4.20050319 [5.4-r6]
[binary U ] sys-devel/make-3.80-r2 [3.80-r1]
[binary U ] app-shells/bash-3.0-r11 [3.0-r9]
[binary U ] sys-devel/binutils-config-1.8-r2 [1.8-r1]
[binary U ] sys-devel/binutils-2.15.92.0.2-r9 [2.15.92.0.2-r7]
[binary N ] sys-kernel/gentoo-sources-2.4.28-r8
Personally, I'm for this change in behaviour. The only issue is that packages that are unmasked in PORTDIR, have a binary built for them and then remasked will not be downgraded when using --usepkg. At least, special handling will be needed to get this behaviour. Not a bug. |