#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 17 years ago by afb@…
comment:2 Changed 17 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 17 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 17 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 16 years ago by tobypeterson
Milestone: | MacPorts base bugs → MacPorts Future |
---|
Milestone MacPorts base bugs deleted
comment:6 Changed 16 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 16 years ago by ryandesign (Ryan Carsten Schmidt)
Milestone: | MacPorts Future → MacPorts 1.8.0 |
---|---|
Resolution: | → fixed |
Status: | new → closed |
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.0 → MacPorts 1.7.1 |
---|
1.7.1 actually shipped with an autoconf 2.63 generated configure.
"Doctor, it hurts when I end my prefix with a slash"