Opened 11 years ago

Closed 11 years ago

#21066 closed defect (fixed)

xcb overwrites entire /etc dir

Reported by: bakvis_68@… Owned by: qbarnes@…
Priority: High Milestone:
Component: ports Version: 1.8.0
Keywords: Cc: nerdling (Jeremy Lavergne)
Port: xcb

Description (last modified by ryandesign (Ryan Schmidt))

I just upgraded port startup-notification to version 0.10, which pulls in port xcb (new dependency). After building there was a warning message indicating that xcb is installing something outside /opt/local:

...
--->  Compressing man pages for xcb
man1/xcb.1:	 60.0% -- replaced with man1/xcb.1.gz
Warning: violation by /etc
Warning: xcb 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 xcb @2.4_1
--->  Activating xcb @2.4_1
--->  Cleaning xcb
--->  Removing build directory for xcb

After uninstalling xcb I noticed that the entire /etc dir was gone! On Mac OS X, /etc is a symlink to /private/etc, so it was easily repaired by

sudo ln -s /private/etc /etc

However, this is potentially very dangerous! I don't know what would have happened if I had logged out?

The offending line in the Makefile (produced after configure phase) is at line 379:

ETCX11DIR = /etc/X11

This should be replaced by ${prefix}/etc/X11.

Change History (7)

comment:1 Changed 11 years ago by mf2k (Frank Schima)

Owner: changed from macports-tickets@… to qbarnes@…

comment:2 Changed 11 years ago by ryandesign (Ryan Schmidt)

Description: modified (diff)

comment:3 Changed 11 years ago by nerdling (Jeremy Lavergne)

Added a reinplace in r57007.

comment:4 Changed 11 years ago by nerdling (Jeremy Lavergne)

Cc: snc@… added
Resolution: fixed
Status: newclosed

I made that change since it's marked as high priority and is fairly critical to the system's wellbeing.

That appears to be the only etc reference. Bumping revision and closing.

comment:5 Changed 11 years ago by mf2k (Frank Schima)

Resolution: fixed
Status: closedreopened

I cannot activate xcb now.

--->  Activating xcb @2.4_2
DEBUG: activating directory: /
DEBUG: activating directory: /opt
DEBUG: activating directory: /opt/local
DEBUG: activating directory: /opt/local/bin
DEBUG: activating file: /opt/local/bin/xcb
DEBUG: activating directory: /opt/local/etc
DEBUG: activating directory: /opt/local/etc/X11
DEBUG: activating directory: /opt/local/etc/X11/app-defaults
DEBUG: activating file: /opt/local/etc/X11/app-defaults/Xcb
DEBUG: activating directory: /opt/local/lib
DEBUG: activating directory: /opt/local/lib/X11
DEBUG: activating link: /opt/local/lib/X11/app-defaults
DEBUG: activating directory: /opt/local/share
DEBUG: activating directory: /opt/local/share/man
DEBUG: activating directory: /opt/local/share/man/man1
DEBUG: activating file: /opt/local/share/man/man1/xcb.1.gz
DEBUG: Adding file to file_map: /opt/local/bin/xcb for: xcb
DEBUG: Adding file to file_map: /opt/local/etc/X11/app-defaults/Xcb for: xcb
DEBUG: Adding link to file_map: /opt/local/lib/X11/app-defaults for: xcb
Error: Target org.macports.activate returned: Is a directory
DEBUG: Backtrace: Is a directory
    while executing
"filemap set file_map $file $port"
    (procedure "receipt_flat::register_file" line 11)
    invoked from within
"${macports::registry.format}::register_file $file $port"
    (procedure "registry::register_file" line 3)
    invoked from within
"registry::register_file $file $name"
    (procedure "portimage::activate" line 63)
    invoked from within
"registry_activate $name ${version}_${revision}${portvariants} [array get user_options]"
    (procedure "portactivate::activate_main" line 3)
    invoked from within
"$procedure $targetname"
Warning: the following items did not execute (for xcb): org.macports.activate
Error: Status 1 encountered during processing.

comment:6 Changed 11 years ago by mf2k (Frank Schima)

It does not work for me on 10.5.8. But I just tried on Snow Leopard at home and it works.

comment:7 Changed 11 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Resolution: fixed
Status: reopenedclosed

I submitted the correct fix in r57050

Note: See TracTickets for help on using tickets.