Bug 72745 - gcc-config shouldn't create wrappers in src_install; this can fail with collision-protect
Bug#: 72745 Product:  Gentoo Linux Version: unspecified Platform: All
OS/Version: Linux Status: RESOLVED Severity: normal Priority: P2
Resolution: DUPLICATE Assigned To: toolchain@gentoo.org Reported By: truedfx@gentoo.org
Component: Core system
URL: 
Summary: gcc-config shouldn't create wrappers in src_install; this can fail with collision-protect
Keywords:  
Status Whiteboard: 
Opened: 2004-11-28 10:26 0000
Description:   Opened: 2004-11-28 10:26 0000
Hi, I'm trying to upgrade gcc-config and I get this error.

* checking 12 files for package collisions
existing file /usr/bin/g77 is not owned by this package

I installed the current version of gcc-config when I had gcc without fortran in my USE flags. I changed that, and rerunning gcc-config created /usr/bin/g77, but portage doesn't know about it.

Since the gcc-config ebuild recreates the files in /usr/bin anyway in pkg_postinst (by running gcc-config), I think src_install should only install the wrapper in /usr/lib/gcc-config/wrapper, and not copy it to /usr/bin.

Reproducible: Always
Steps to Reproduce:
1. USE=-fortran emerge gcc
2. emerge gcc-config
3. USE=fortran emerge gcc
4. FEATURES=collision-protect emerge gcc-config
Actual Results:  
See above

Expected Results:  
Install :)

------- Comment #1 From Bernd Waibel 2004-11-29 01:19:40 0000 -------
Hello, I have similar problems with gcc-config, but with C/C++ compiler issues,
instead of fortran.
Those files collide with my configuration:

>>> extracting gcc-config-1.3.6-r4
* checking 11 files for package collisions
existing file /usr/bin/g++ is not owned by this package
existing file /usr/bin/i686-pc-linux-gnu-c++ is not owned by this package
existing file /usr/bin/i686-pc-linux-gnu-g++ is not owned by this package
existing file /usr/bin/i686-pc-linux-gnu-gcc is not owned by this package
* spend 0.101144075394 seconds checking for file collisions

Of interest may also be the following error, that I receive when trying a
'equery belongs /usr/bin/g++' (or any other of the colliding files):

 # equery belongs /usr/bin/g++                   
Searching for file '/usr/bin/g++' in *...
Traceback (most recent call last):
  File "/usr/bin/equery", line 947, in ?
    cmd.perform(local_opts)
  File "/usr/bin/equery", line 202, in perform
    rx = re.compile(query)
  File "/usr/lib/python2.3/sre.py", line 179, in compile
    return _compile(pattern, flags)
  File "/usr/lib/python2.3/sre.py", line 230, in _compile
    raise error, v # invalid expression
sre_constants.error: multiple repeat

When using qpkg instead of equery, I receive no answer and qpkg returns
an exit code of 0. This means to me, that those files do not belong to
any installed package and therefore may be created by gcc-config as this
was stated by the initial report.

Another problem with this update is that gcc-config-1.3.6-r3.ebuild file
is missing in /usr/portage/sys-devel/gcc-config. Maybe this was deleted
with the last sync. But this is the currently installed stable version.
When I now try equery files gcc-config it says, there are no files installed:

 # equery files gcc-config
Searching for packages matching 'gcc-config'...

When using equery list gcc-config instead I get an error and portage stops
with an internal error:

 # equery list gcc-config
Searching for package 'gcc-config' in all categories among:
 * installed packages
!!! aux_get(): ebuild path for 'sys-devel/gcc-config-1.3.6-r3' not specified:
!!!            None
!!! Internal portage error, terminating
!!! "'sys-devel/gcc-config-1.3.6-r3' at None"

I then copied a version of gcc-config-1.3.6-r3.ebuild from a LAN server which 
hasn't synced yet and get the following output of equery files:

 # equery files gcc-config
Searching for packages matching 'gcc-config'...
Contents of sys-devel/gcc-config-1.3.6-r3:
/usr/bin/cc
/usr/bin/c++
/lib/cpp
/usr
/usr/bin
/usr/bin/gcc
/usr/lib
/usr/bin/cpp
/lib
/usr/lib/gcc-config
/usr/lib/gcc-config/wrapper
/usr/bin/gcc-config

I am using 2004.3 profile on x86, portage 2.0.51-r3, gcc-3.3.4-r1 (gcc-3.4.3 
installed too for mono, but using 3.3)


------- Comment #2 From Harald van Dijk 2004-11-29 02:56:54 0000 -------
The two problems you encountered with equery are separate from this bug. The
crash on equery list has been fixed already for ~arch (bug #41093); the new
versions just haven't been marked stable yet. The crash on equery belongs is
because it takes a regex, so the correct command would be equery belongs
'/usr/bin/g\+\+'. And yeah, the main problem I think is the same problem I
encountered, I think.

------- Comment #3 From Bernd Waibel 2004-12-02 00:36:46 0000 -------
This problem now crashes portage. After the last sync today I get this error when calling emerge -upvD system:

Calculating system dependencies                                           69   
!!! All ebuilds that could satisfy "sys-devel/gcc-config" have been masked.
!!! One of the following masked packages is required to complete your request:
- sys-devel/gcc-config-1.3.7-r2 (masked by: ~x86 keyword)
- sys-devel/gcc-config-1.3.6-r4 (masked by: package.mask)

For more information, see MASKED PACKAGES section in the emerge man page or 
section 2.2 "Software Availability" in the Gentoo Handbook.
!!!    (dependency required by "sys-libs/cracklib-2.7-r10" [ebuild])


!!! Problem with ebuild app-arch/bzip2-1.0.2-r3
!!! Possibly a DEPEND/*DEPEND problem.

!!! Depgraph creation failed.

This is due to the fact, that I added =sys-devel/gcc-config-1.3.6-r4 to file
/etc/portage/package.mask. But if I would not do this, portage stops during the
intsallation of gcc-config. Rel. 1.3.6.-r4 is the only stable release currently 
in portage and this rel. fails :|

Please could at least be the gcc-config-1.3.6-r3.ebuild file be brought back into portage until this problem is solved? It is very annoying to get an backup of this ebuild every day to ensure I can emerge anything.


------- Comment #4 From SpanKY 2004-12-02 18:31:57 0000 -------

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

------- Comment #5 From SpanKY 2004-12-04 09:11:06 0000 -------
*** Bug 73331 has been marked as a duplicate of this bug. ***