Date: Tue, 2 Oct 2007 16:39:36 +0200 (CEST) From: clemens fischer <ino-news@spotteswoode.dnsalias.org> To: FreeBSD-gnats-submit@FreeBSD.org Cc: clemens fischer <ino-news@spotteswoode.dnsalias.org> Subject: ports/116830: "portsclean -L" threatens to delete base gcc-libs Message-ID: <20071002143936.9598B19C8A@spotteswoode.dnsalias.org> Resent-Message-ID: <200710021510.l92FABgK067647@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>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@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:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20071002143936.9598B19C8A>