[MacPorts] #21082: MacPorts 1.8.0 deletes ${prefix} if it is a symlink

MacPorts noreply at macports.org
Fri Sep 4 05:10:15 PDT 2009


#21082: MacPorts 1.8.0 deletes ${prefix} if it is a symlink
-------------------------------------+--------------------------------------
 Reporter:  ryandesign@…             |       Owner:  macports-tickets@…                   
     Type:  defect                   |      Status:  new                                  
 Priority:  Normal                   |   Milestone:  MacPorts 1.8.1                       
Component:  base                     |     Version:  1.8.0                                
 Keywords:                           |        Port:                                       
-------------------------------------+--------------------------------------
 If you install MacPorts 1.8.0 in a certain prefix, say /a, and then move
 it some place else, say /b, and make a symlink at /a pointing to /b, then
 "port install" works ok, but "port deactivate" and "port uninstall" will
 both remove the symlink at /a, thus breaking the installation. This did
 not happen with 1.7.1. This bug was [http://lists.macosforge.org/pipermail
 /macports-users/2009-August/016329.html reported on the mailing] list by
 Randal L. Schwartz.

 [attachment:symlinkbug.sh Attached] is a script I wrote to test for the
 problem. It will download MacPorts base trunk to /tmp/mpbase, download the
 portindex and zlib portfile to /tmp/mpdports, and compile MacPorts and
 install it in the prefix /tmp/mpone. It will move /tmp/mpone to /tmp/mptwo
 and create a symlink at /tmp/mpone pointing to /tmp/mptwo. It will install
 zlib, downloading the zlib distfile in /tmp/mpdistfiles, and then
 deactivate zlib. It will state whether /tmp/mpone still exists, and then
 delete /tmp/mpone and /tmp/mptwo.

 As an argument to the script, you can specify the revision of trunk you
 want to test. Testing on Leopard I get:

 {{{
 $ sudo ./symlinkbug.sh 55000
 [snip]
 Bug present in base rev 55000: /tmp/mpone is gone
 $ sudo ./symlinkbug.sh 50000
 [snip]
 Bug absent in base rev 50000: /tmp/mpone exists
 $
 }}}

 Now we just need to do some bisecting and figure out which revision
 between 50000 and 55000 caused the problem. I suggest first looking at the
 revision that merged in the GSoC '08 privileges code, and the revisions
 that changed from calling system executables to calling Tcl functions.

-- 
Ticket URL: <http://trac.macports.org/ticket/21082>
MacPorts <http://www.macports.org/>
Ports system for Mac OS


More information about the macports-tickets mailing list