New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #13789 (closed defect: fixed)

Opened 6 years ago

Last modified 5 years ago

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

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


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 \
$ 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

comment:1 Changed 6 years ago by afb@…

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

comment:2 Changed 6 years 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.

comment:3 Changed 6 years 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/bc/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)

comment:4 Changed 6 years 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).

comment:5 Changed 5 years ago by toby@…

  • Milestone changed from MacPorts base bugs to MacPorts Future

Milestone MacPorts base bugs deleted

comment:6 Changed 5 years ago by blb@…

Can you still reproduce this? configure should be stripping extra slashes these days, according to the documentation. My test failed to reproduce this.

comment:7 Changed 5 years ago by ryandesign@…

  • Status changed from new to closed
  • Resolution set to fixed
  • Milestone changed from MacPorts Future to MacPorts 1.8.0

1.7.0 still has the problem but it appears to be fixed in trunk (perhaps by r42842 where we upgrade from autoconf 2.61 to 2.63). Thanks for checking on this!

comment:8 Changed 5 years ago by jmr@…

  • Milestone changed from MacPorts 1.8.0 to MacPorts 1.7.1

1.7.1 actually shipped with an autoconf 2.63 generated configure.

Note: See TracTickets for help on using tickets.