Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 109739 - getbinpkg fails on gtk+
Summary: getbinpkg fails on gtk+
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Binary packages support (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords: InVCS
Depends on:
Blocks: 115839
  Show dependency tree
 
Reported: 2005-10-18 14:21 UTC by Spider (RETIRED)
Modified: 2006-06-01 04:16 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Fixes getbinpkg.py to work with quoted filenames (unquote.patch,570 bytes, patch)
2006-04-11 04:56 UTC, Marko Durkovic
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Spider (RETIRED) gentoo-dev 2005-10-18 14:21:31 UTC
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.
Comment 1 Petteri Räty (RETIRED) gentoo-dev 2005-12-14 12:11:30 UTC
Please provide emerge info when posting bugs. For example the portage version
would be nice.
Comment 2 Eduardo Tongson 2006-03-31 13:56:17 UTC
This fails with any package with '+' in it.
escaping it ie. gtk\+ or "libstdc++" also fails.
Comment 3 Eduardo Tongson 2006-03-31 14:01:08 UTC
Ok found a workaround you need to use '
for example
# emerge -gK 'gtk+'

voila merged
Comment 4 Marko Durkovic 2006-04-11 04:56:19 UTC
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
Comment 5 Alec Warner (RETIRED) archtester gentoo-dev Security 2006-05-31 18:40:45 UTC
in r3443
Comment 6 Zac Medico gentoo-dev 2006-06-01 04:16:31 UTC
This has been released in 2.1_pre3-r4.