Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 105308

Summary: portage does not check package names for duplicates when building binary packages
Product: Portage Development Reporter: simishag <simishag>
Component: UnclassifiedAssignee: Portage team <dev-portage>
Status: RESOLVED DUPLICATE    
Severity: normal CC: blubb
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
URL: http://svn.gnqs.org/projects/gentoo-php-overlay/ticket/43
Whiteboard:
Package list:
Runtime testing required: ---

Description simishag 2005-09-08 15:02:49 UTC
I discovered this while attempting to build some PHP binary packages using the
PHP overlay project.  I reported this there, but the devs said it's a Portage
issue so I'm reporting it here.

When FEATURES="buildpkg" is set, binary packages are built in
/usr/portage/packages/All/pkg-ver.tbz2.  A symlink is then created in
packages/category/pkg-ver.tbz2.  However, Portage does not check to see if the
package name is already in use by another package with the same name in a
different category, so a completely different package can be built with the same
name, overwriting the original package.

This causes problems when attempting to build binary packages and distribute
them on multiple servers.  "emerge -k" will rebuild one of the identically named
packages every time.  "emerge -K" will fail since it will only find one binary
package.  This occurred with some php packages, but it could occur with any
"ambiguously named" package that requires category qualification.

The versions would have to match as well for the name to be the same (unlikely
perhaps but it can happen).  My test case is to use "app-admin/sudo" and
"app-vim/sudo", which works but only because the version numbers are different.
 The case that failed was "dev-php4/pecl-zip" and "dev-php5/pecl-zip", both of
which create a package called "pecl-zip-1.0.tbz2"

Reproducible: Always
Steps to Reproduce:
1. Set FEATURES="buildpkg" in make.conf
2. emerge app-admin/sudo
3. emerge app-vim/sudo

There are now 2 packages with the name "sudo".

4. emerge dev-php4/pecl-zip
5. emerge dev-php5/pecl-zip
6. emerge -K dev-php4/pecl-zip

Step 6 will fail.
Comment 1 Zac Medico gentoo-dev 2006-07-25 23:18:13 UTC

*** This bug has been marked as a duplicate of 133908 ***