On Saturday February 28 2026 10:54:53 Marek Greško wrote:

>Do you have any clue where should be the script run from to be started soon 
>enough I do not have the $HOME/.cache/mesa_shader_cache created?

Could you do a "bind mount" of ${CACHEDIR}/.cache onto ${HOME}/.cache ?

I have a comparable set-up where home dirs are on a "safe" ZFS dataset 
(copies=2 or a pool with mirrored vdevs) but I don't want the costly safety for 
cache directories. Rather than giving each user a dedicated dataset for that, I 
have a single one with a directory structure that gives each user a .cache 
directory. The bind mounts are defined in /etc/fstab, and triggered via 
/etc/rc.local once I'm certain all datasets have been mounted.

You could probably also just make each ${HOME}/.cache a symlink to your local 
target location. I've done that for a long time, and the only advantage of bind 
mounts is that normalised (aka canonical) paths (as obtained e.g. via 
`realpath`) will still be of the form ${HOME}/.cache . The advantage of 
symlinks is that you only set them up once without having to modify system 
scripts/tables on each machine where the users might log in. You'd be relying 
on users not replacing the symlink ... but if they do it's mostly their 
problem, no? ;)

In either case, you may run into problems with applications that e.g. download 
something to the cache area, and then "move" it into place with system calls 
like rename(2) that don't do cross-mount operations. I've seen both Chromium 
and Firefox fail to install/update extensions because of this kind of situation 
they hadn't foreseen (though it was probably not related to the cache area).

Reply via email to