New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #25255 (closed defect: fixed)

Opened 3 years ago

Last modified 3 years ago

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

Reported by: ryandesign@… 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

comment:1 Changed 3 years ago by jmr@…

  • Status changed from new to closed
  • Component changed from ports to base
  • Milestone set to MacPorts 1.9.1
  • Resolution set to fixed
  • Summary changed from MacPorts deleted /etc when I installed cdrtools in two MacPorts prefixes to conflicts with files not provided by a port not detected in advance
Note: See TracTickets for help on using tickets.