On Apr 9, 2022, at 14:33, Werner LEMBERG wrote: >>> ``` >>> ccache /opt/local/bin/clang-mp-13 ... conftest.c >&5 >>> ccache: error: Failed to create temporary file for >>> /run/user/507/ccache-tmp/tmp.cpp_stdout.RTVNqj: Operation not permitted >>> ``` >>> >>> What's the reason that `port` tries to use >>> `/run/user/507/ccache-tmp/` (uid 507 = macports) instead of the >>> default ccache dir? >> >> I've never heard of that happening before. macOS has never had a >> /run directory. > > Well, I'm not a MacOS user – except doing regular updates for MacPorts > (and checking/adjusting the LilyPond port if necessary), this computer > isn't used for anything else. > >> Is a path beginning with /run/user familiar to you? > > No. > >> Do you have something special set on your system that uses such >> paths? > > No idea. As mentioned in my previous e-mail, I haven't changed > anything in the configuration. > >> Does this happen with any other ports or just lilypond-devel? Maybe >> lilypond-devel's build system is doing something weird. > > It seems to be a problem with the 'ccache' package/port on MacOS > 10.7.5. After updating to current git (and running `port sync`), > `port upgrade outdated` just tried to compile emacs 28.1, and exactly > the same problem happened. > > How can I test most easily whether my assumption is correct? What is > the recommended way to install an older version of 'ccache'?
It looks like /run/user/<UID>/ccache-tmp is indeed a path hardcoded into the ccache program. The documentation says: https://ccache.dev/manual/4.6.html#config_temporary_dir "The default is /run/user/<UID>/ccache-tmp if /run/user/<UID> exists, otherwise <cache_dir>/tmp." If you are certain that /run/user/<UID> does not exist, then perhaps the detection of its existence is faulty on Mac OS X 10.7.5. The changelog for 4.6 says: https://ccache.dev/releasenotes.html#_bug_fixes "Ccache now verifies that /run/user/<UID>/ccache-tmp is writable before using it for temporary files." Perhaps that detection is faulty on Mac OS X 10.7.5 or something else was inadvertently changed/broken during the implementation of this fix. To install an older version of a port, see https://trac.macports.org/wiki/howto/InstallingOlderPort