Portfile magic / xinstall usage / defect?
Frank Stock
fstock at bytelightning.com
Sat Dec 9 03:27:54 UTC 2023
I don’t ask lightly, as I’ve spent hours reading code and searching for answers.
The brotli Portfile: https://github.com/macports/macports-ports/blob/master/archivers/brotli/Portfile
Contains:
post-destroot {
xinstall -m 640 {*}[glob ${worksrcpath}/docs/*.1] ${destroot}${prefix}/share/man/man1/
…
}
However, after port installation, I look in the work directory and see:
ls -la destroot/opt/local/share/man/man1
-r--r--r-- root admin … brotli.1.gz
Also, /opt/local/share/man/man1/brotli.1.gz contains the same perms and .ext (as the above work/destroot).
* How is the permissions mode 444, instead of 640 (as designated in the post-destroot block)?
* And how did it get the .gz extension?
This is the source-dir on GitHub:
https://github.com/google/brotli/tree/master/docs
You can see the file is just “brotli.1” (no .gz ext).
brotli is built with cmake, and I did see cmake “install” commands that seem to align with post-destroot.
https://github.com/google/brotli/blob/master/CMakeLists.txt
* But even at that, CMakeLists.txt doesn’t mention anything about .gz extension, and besides, shouldn’t MacPorts post-destroot be the last word anyway?
TIA,
-Frank
P.S.
This isn’t really a question about brotli.
The question comes about in the context of a larger effort to understand mpkg, and the [pre/post]destroot actions and implications of many different ports.
More information about the macports-users
mailing list