Ticket #13789 (closed defect: fixed)
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: | ||
| 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
comment:2 Changed 5 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 5 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 5 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 4 years ago by toby@…
- Milestone changed from MacPorts base bugs to MacPorts Future
Milestone MacPorts base bugs deleted
comment:6 Changed 4 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 4 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!


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