Opened 10 years ago

Closed 10 years ago

#25255 closed defect (fixed)

conflicts with files not provided by a port not detected in advance

Reported by: ryandesign (Ryan Schmidt) Owned by: macports-tickets@…
Priority: High Milestone: MacPorts 1.9.1
Component: base Version: 1.9.0
Keywords: Cc:
Port:

Description

I have more than one MacPorts prefix. I had cdrtools installed in one of them. cdrtools has an mtree violation where it installs things in /etc, as already reported in #23035. Having forgotten this, I installed cdrtools in another MacPorts prefix on the same machine. The result was:

--->  Fetching cdrtools
--->  Verifying checksum(s) for cdrtools
--->  Extracting cdrtools
--->  Configuring cdrtools
--->  Building cdrtools
--->  Staging cdrtools into destroot
Warning: violation by /etc
Warning: cdrtools violates the layout of the ports-filesystems!
Warning: Please fix or indicate this misbehavior (if it is intended), it will be an error in future releases!
--->  Installing cdrtools @3.00_0
--->  Activating cdrtools @3.00_0
Error: Target org.macports.activate returned: could not create new link "/etc/default/cdrecord": that path already exists
Log for cdrtools is at: /opt/local/var/macports/logs/_Users_rschmidt_macports_dports_sysutils_cdrtools/main.log
Error: Status 1 encountered during processing.
To report a bug, see <http://guide.macports.org/#project.tickets>

Following this, /etc had been deleted. The log contains:

:msg:activate --->  Activating cdrtools @3.00_0
:debug:activate activating directory: /
:debug:activate activating directory: /etc
:debug:activate activating directory: /etc/default
:debug:activate activating file: /etc/default/cdrecord
:debug:activate hardlinking /opt/local/var/macports/software/cdrtools/3.00_0/etc/default/cdrecord to /etc/default/cdrecord failed, symlinking instead
:debug:activate Activation failed, rolling back.
:debug:activate /private/etc/default is not empty
:debug:activate /private/etc is not empty
:debug:activate /private is not empty
:debug:activate deactivating link: /etc
:debug:activate / is not empty
:error:activate Target org.macports.activate returned: could not create new link "/etc/default/cdrecord": that path already exists

Fortunately /etc on Mac OS X is just a symlink and could be recreated with

$ sudo ln -s private/etc /etc
sudo: can't stat /etc/sudoers: No such file or directory
Segmentation fault
$ su
# ln -s private/etc /etc
# exit
$

but MacPorts should not be deleting /etc...

This was using the 1.9 branch @68818

Change History (1)

comment:1 Changed 10 years ago by jmroot (Joshua Root)

Component: portsbase
Milestone: MacPorts 1.9.1
Resolution: fixed
Status: newclosed
Summary: MacPorts deleted /etc when I installed cdrtools in two MacPorts prefixesconflicts with files not provided by a port not detected in advance
Note: See TracTickets for help on using tickets.