ports/116830: "portsclean -L" threatens to delete base gcc-libs
clemens fischer
ino-news at spotteswoode.dnsalias.org
Tue Oct 2 15:10:12 UTC 2007
>Number: 116830
>Category: ports
>Synopsis: "portsclean -L" threatens to delete base gcc-libs
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Tue Oct 02 15:10:11 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator: clemens fischer
>Release: FreeBSD 7.0-CURRENT amd64
>Organization:
>Environment:
System: FreeBSD spotteswoode.dnsalias.org 7.0-CURRENT
FreeBSD 7.0-CURRENT #3: Thu Sep 27 18:43:56 CEST 2007
root at spotteswoode.dnsalias.org:/usr/obj/usr/src/sys/spott amd64
>Description:
i had read about an incident where someone had used portsclean(1) and
lost the base systems gcc-libs, so i used "portsclean -Li" to clean out
old libs after an upgrade. the output was:
# portsclean -Li
** /usr/local/lib/gcc-4.2.2/libgcc_s.so.1 is shadowed by /lib/libgcc_s.so.1
/lib/libgcc_s.so.1 <- ?
/usr/local/lib/gcc-4.2.2/libgcc_s.so.1 <- gcc-4.2.2_20070927
--> This may be an undesirable situation
Delete /lib/libgcc_s.so.1
OK? [no]
** /usr/local/lib/gcc-4.2.2/libstdc++.so.6 is shadowed by /usr/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6 <- ?
/usr/local/lib/gcc-4.2.2/libstdc++.so.6 <- gcc-4.2.2_20070927
--> This may be an undesirable situation
Delete /usr/lib/libstdc++.so.6
OK? [no]
** /usr/local/lib/gcc-4.2.2/libssp.so.0 is shadowed by /lib/libssp.so.0
/lib/libssp.so.0 <- ?
/usr/local/lib/gcc-4.2.2/libssp.so.0 <- gcc-4.2.2_20070927
--> This may be an undesirable situation
Delete /lib/libssp.so.0
OK? [no]
** /usr/local/lib/gcc-4.2.2/libobjc.so.2 is shadowed by /usr/lib/libobjc.so.2
/usr/lib/libobjc.so.2 <- ?
/usr/local/lib/gcc-4.2.2/libobjc.so.2 <- gcc-4.2.2_20070927
--> This may be an undesirable situation
Delete /usr/lib/libobjc.so.2
OK? [no]
** /usr/local/lib/gcc-4.2.2/libgomp.so.1 is shadowed by /usr/lib/libgomp.so.1
/usr/lib/libgomp.so.1 <- ?
/usr/local/lib/gcc-4.2.2/libgomp.so.1 <- gcc-4.2.2_20070927
--> This may be an undesirable situation
Delete /usr/lib/libgomp.so.1
OK? [no]
using the default left my system intact:
# ll /lib/libgcc_s.so.1 /usr/lib/libstdc++.so.6 /lib/libssp.so.0 /usr/lib/libobjc.so.2 /usr/lib/libgomp.so.1
53 -r--r--r-- 1 root wheel - 56K Sep 24 18:21 /lib/libgcc_s.so.1
55 -r--r--r-- 1 root wheel - 9.5K Sep 24 18:21 /lib/libssp.so.0
1719349 -r--r--r-- 1 root wheel - 29K Sep 24 18:21 /usr/lib/libgomp.so.1
1719378 -r--r--r-- 1 root wheel - 101K Sep 24 18:21 /usr/lib/libobjc.so.2
1719371 -r--r--r-- 1 root wheel - 941K Sep 24 18:21 /usr/lib/libstdc++.so.6
i'm not sure what happens when _not_ using the `-i' switch. the code
seems to indicate that nothing gets deleted by default. touching
anything in base should be a non-issue IMO, other than adding or
changing symlinks for compatibility like perl-ports do.
i imaging two solutions: changing portsclean(1) to never touch files in
base or change the various gcc-ports to rename their libs in order to
rule out these name collisions. the shadowing of vital libs mentioned
in portscleans output is indeed undesirable, unless the port compilers
hard-code library paths.
so my request is to implement either solution, taking care of the
shadowing issue as well.
>How-To-Repeat:
install ports/lang/gcc42 and watch "portsclean -Li".
>Fix:
i'd advise to always use "portsclean -Li" to let it query interactively
in case libraries with identical names exist in both ports and base.
regards, clemens
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list