correct location for third party /var files

Thomas-Martin Seck tmseck-lists at netcologne.de
Sun Mar 21 14:37:03 UTC 2010


* Doug Barton (dougb at FreeBSD.org):

> On Wed, 17 Mar 2010, Thomas-Martin Seck wrote:
> >When I started maintaining ports in 2004, the (or at least my) goal was
> >to avoid absolute paths in pkg-plist like the plague, that is why I do
> >not bother to use something /var/cache/squid or /var/log/squid instead
> >of PREFIX/squid/{logs,cache}. There is IMHO nothing wrong with storing
> >variable data in $PREFIX/portname/ as long as this is sensibly done.
> >$PREFIX/portname/var or $PREFIX/var/portname on the other hand is
> >usually just a sign of sloppy porting and should be fixed.
> >
> >Trying to separate static and variable data and scattering said data
> >across filesystems just for the sake of it or for arcane aesthetic
> >reasons is - IMO - not really helpful for the user.
> 
> I disagree strongly. hier(7) exists for a reason. I have always set up 
> systems to make a clear distinction between partitions that will be more 
> or less "static" and those that will be actively written to. This saves a 
> lot of time NOT having to rebuild a system after a crash because the 
> essential elements are still healthy.
> 
> Your personal feelings about it don't really enter in. If you don't 
> understand or don't agree with a policy feel free to discuss it. Choosing 
> to ignore it because you don't like it isn't really an option.

Oh dear, what did I do.  (Why did people not report this five years
ago?)

Anyway, I just tried to move cache/log/pidfile to /var and found that
this seems a bit tricky if not impossible when you generate your
packagelist dynamically with PLIST_DIRS/PLIST_FILES. It looks like you
need to wrap your absolute paths (or rather the @dirrm(try) calls in the
plist) between "@cwd /" and "@cwd %%PREFIX%%".  Does anyone know how to
achieve this without resorting to a static pkg-plist?  (I'd rather not
introduce a static pkg-plist file with tons of substitutions for squid-2
and squid-3.0 because of the configurable list of installed error
directories but for 3.1 and up this could be doable if there is no other
solution.  The plan would be to have the cache in /var/squid/cache, logs
in /var/log/squid and the pidfile in /var/squid/; this is so that the
squid master process does not need root privileges just to be able to
write to /var/run.)

What I would like to see is a consensus how to handle these kind of
issues, especially about what should not be put under $PREFIX and a
how-to-do-it in the Porter's Handbook and a mechanism in bsd.port.mk that
helps one to achieve this if there isn't one already.


More information about the freebsd-ports mailing list