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