paranoid umask breaks the installed symlinks
|Reported by:||akimd (Akim Demaille)||Owned by:||macports-tickets@…|
|Keywords:||umask||Cc:||jochen@…, jmroot (Joshua Root)|
It is the second time (second machine) that my texlive_base installation fails: I can't run pdflatex, but I can run pdflatex --version!!!
Since it was the second time, I decided to track down the issue.
It turns out that when launched to actually compile something, pdftex runs readlink(2), probably to decide what its behavior should be depending on its name. This is most probably *after* options such as --version are processed.
Here, our sysadm has installed paranoid rights: our umask is 066, and as a result the symbolic links created are not readable. This is not nice as it results in ls -l /opt/local/bin complaining that it can read the links. But it is not a real problem usually.
Here, since pdflatex (a symlink to pdftex) wants to readlink, it fails.
It is easy to reproduce harmlessly:
cd /tmp sudo su umask 066 ln -s /opt/local/bin/pdftex pdflatex exit ls -l pdflatex ./pdflatex --version ./pdflatex
It turns out that I found no way to chmod the symlink itself, so I had to recreate them all. Using zsh that's easy:
sudo su umask 022 cd /opt/local/bin for i in *(@) do ln -sf $(readlink $i) $i done
I suggest that texlive_base make sure the umask is correct.
As a matter of fact, I think port(1) should do it, instead of pushing this down to all the ports.
Change History (5)
comment:1 Changed 8 years ago by blb@…
- Component changed from ports to base
- Keywords umask added
- Milestone changed from Port Bugs to MacPorts Future