Opened 16 years ago

Closed 15 years ago

Last modified 15 years ago

#13789 closed defect (fixed)

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

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: macports-tickets@…
Priority: Normal Milestone: MacPorts 1.7.1
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 (8)

comment:1 Changed 16 years ago by afb@…

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

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

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 16 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 16 years ago by raimue (Rainer Müller)

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 15 years ago by tobypeterson

Milestone: MacPorts base bugsMacPorts Future

Milestone MacPorts base bugs deleted

comment:6 Changed 15 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 15 years ago by ryandesign (Ryan Carsten Schmidt)

Milestone: MacPorts FutureMacPorts 1.8.0
Resolution: fixed
Status: newclosed

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 15 years ago by jmroot (Joshua Root)

Milestone: MacPorts 1.8.0MacPorts 1.7.1

1.7.1 actually shipped with an autoconf 2.63 generated configure.

Note: See TracTickets for help on using tickets.