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
|
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 :)
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)
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.
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.
*** This bug has been marked as a duplicate of 72866 ***
*** Bug 73331 has been marked as a duplicate of this bug. ***