Projects
New Ticket     Wiki     Browse Source     Timeline     Roadmap     Bug Reports     Search

Ticket #13789 (new defect)

Opened 11 months ago

Last modified 9 months ago

port says everything violates the mtree if ${prefix} ends with a slash

Reported by: ryandesign@… Owned by: macports-tickets@…
Priority: Normal Milestone: MacPorts base bugs
Component: base Version: 1.6.0
Keywords: Cc:
Port:

Description

If your ${prefix} ends with a slash, then port complains about virtually everything being an mtree violation during installation. For example:

$ PATH=/usr/bin:/usr/sbin:/bin:/sbin \
./configure \
--prefix=/tmp/macports2/ \
--with-tclpackage=/tmp/macports2/share/macports/Tcl \
--with-install-user=rschmidt \
--with-install-group=rschmidt
$ make
$ make install
$ /tmp/macports2/bin/port install expat
--->  Fetching expat
--->  Verifying checksum(s) for expat
--->  Extracting expat
--->  Configuring expat
--->  Building expat with target all
--->  Staging expat into destroot
Warning: violation by /tmp/macports2/bin
Warning: violation by /tmp/macports2/include
Warning: violation by /tmp/macports2/lib
Warning: violation by /tmp/macports2/share
Warning: expat 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 expat 2.0.1_0
--->  Activating expat 2.0.1_0
--->  Cleaning expat
$

Change History

Changed 10 months ago by afb@…

"Doctor, it hurts when I end my prefix with a slash"

Changed 10 months ago by ryandesign@…

Yes, sure, and I've already recommended that the user who originally reported the problem to me (in private email) should reinstall with a prefix that does not end with a slash. However, MacPorts installed correctly and everything other than the mtree violation checks seems to work. Therefore, I say the mtree violation checks should work too. Either that, or the MacPorts ./configure script should issue a fatal error if the prefix ends with a slash, if it's really something the patient should stop doing.

Changed 10 months ago by afb@…

It's like with the spaces in prefix path, it's probably possible to make the mtree check work, but there could be other problems hidden with allowing paths like a/b//c/d so it's not recommended...

That being said, I tried just hacking out the expanded_prefix in the autoconf tcl but that didn't work so the only way to make it happen is rewriting the mtree check or changing user's prefix in the configure file (i.e. they specify one thing, and it uses another prefix - without the slash)

Changed 9 months ago by raimue@…

There is [file normalize $path] in Tcl, which generates a 'normal' path. Could be helpful for solving this issue. For example, [file normalize "/opt/local/"] gives "/opt/local" (without trailing slash).

Note: See TracTickets for help on using tickets.