Skip site navigation (1)Skip section navigation (2)
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>