When doing a binary --update --pretend anything depending on gtk+ fails to find the depencency. Even if it is provided. ripples chinstrap # PORTAGE_BINHOST="http://localhost/grp-i686-2005.0/chinstrap/All/" emerge -vGgep --debug gtk+ These are the packages that I would merge, in order: Fetching binary packages info... cache miss: 'x' --- cache hit: 'o' xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -- DONE! Calculating dependencies Parent: None Depstring: x11-libs/gtk+ Candidates: ['x11-libs/gtk+'] !!! There are no packages available to satisfy: "gtk+" !!! Either add a suitable binary package or compile from an ebuild. Where for example, glib succeeds : ripples chinstrap # PORTAGE_BINHOST="http://localhost/grp-i686-2005.0/chinstrap/All/" emerge -vGgep --debu g glib These are the packages that I would merge, in order: Fetching binary packages info... Loaded metadata pickle. cache miss: 'x' --- cache hit: 'o' oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo -- DONE! Calculating dependencies Parent: None Depstring: dev-libs/glib Candidates: ['dev-libs/glib'] ebuild: None binpkg: dev-libs/glib-2.6.5 - Parent: binary / dev-libs/glib-2.6.5 merge Depstring: virtual/libc Candidates: ['sys-libs/glibc'] ebuild: None binpkg: sys-libs/glibc-2.3.5-r2 \ Parent: binary / sys-libs/glibc-2.3.5-r2 merge Depstring: virtual/os-headers nls? ( sys-devel/gettext ) selinux? ( !build? ( sys-libs/libselinux ) ) Candidates: ['sys-kernel/linux-headers', 'sys-devel/gettext'] ebuild: None binpkg: sys-kernel/linux-headers-2.6.11-r2 | Parent: binary / sys-kernel/linux-headers-2.6.11-r2 merge Depstring: ppc? ( gcc64? ( sys-devel/gcc-powerpc64 ) ) sparc? ( gcc64? ( sys-devel/gcc-sparc64 ) ) ebuild: None binpkg: sys-devel/gettext-0.14.4 / Parent: binary / sys-devel/gettext-0.14.4 merge Depstring: || ( sys-libs/glibc dev-libs/libiconv ) Exiting... binary / sys-libs/glibc-2.3.5-r2 merge Exiting... binary / dev-libs/glib-2.6.5 merge Exiting... None ...done! [binary N ] sys-kernel/linux-headers-2.6.11-r2 [binary N ] sys-devel/gettext-0.14.4 -doc -emacs +nls [binary N ] sys-libs/glibc-2.3.5-r2 -build -erandom -glibc-compat20 -glibc-omitfp -hardened -linuxthr eads-tls (-multilib) +nls -nptl -nptlonly -pic -profile (-selinux) -userlocales [binary N ] dev-libs/glib-2.6.5 -doc -hardened -static Total size of downloads: 0 kB Yes, the gtk+-2.6.8.tbz2 package exists in the directory and appears to be completely correct. Reproducible: Always Steps to Reproduce: 1. Build a binary package set that contains gtk+ 2. try (pretend) to use it with anything depending on gtk+ the set is a cleanly created one that includes all of Gnome + KDE and other things, gtk+ is the first one that fails for me, and breaks the test-install scripts.
Please provide emerge info when posting bugs. For example the portage version would be nice.
This fails with any package with '+' in it. escaping it ie. gtk\+ or "libstdc++" also fails.
Ok found a workaround you need to use ' for example # emerge -gK 'gtk+' voila merged
Created attachment 84437 [details, diff] Fixes getbinpkg.py to work with quoted filenames I recently ran into this problem, too. Enclosing the package name in '' did not work for me, so I did some additional research: 1. ftp DOES work PORTAGE_BINHOST="ftp://localhost/i686" emerge -Gp "gtk+" works correctly. 2. http (with mini_httpd) does not work with "+" sign. PORTAGE_BINHOST="http://localhost/i686" emerge -Gp "gtk+" gives: !!! There are no packages available to satisfy: "gtk+" !!! Either add a suitable binary package or compile from an ebuild. 3. I loaded the metadata.idx.most_recent pickle with python, and searched for the "gtk+" key and found only a entry named "gtk%2b-2.8.13.tbz2". 4. It seems that mini_httpd is escaping the "+" sign in the filenames with a "%2b" when generating the directory listings. I assume its urlencoding all filenames, and "+" seems to be the only character that is affected on my binhost. 5. Apache does not urlencode the filenames, so I emerging gtk+ works just fine with it. 6. I don't know if mini_httpd's behaviour is allowed in the HTTP RFCs. If urlencoding for filenames is standard conform, it would maybe be appropriate to incorporate support for it into portage. 7. I applied a patch to my getbinpkg.py to work around the problem. It simply "unquotes" the filename before adding it to the cached database. The patch introduces an additional dependency on the urllib2 python module (which should be okay, I think). I don't know what would happen with hypothetical packages with a "%2b" in its filename and apache as httpd server when unquoting is applied. Hope this helps
in r3443
This has been released in 2.1_pre3-r4.