|
| From: | Alejandro Colomar |
| Subject: | Re: [BUG] inconsistency in $localstatedir and $runstatedir |
| Date: | Mon, 18 Jul 2022 10:33:48 +0200 |
| User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 |
Hi Alfred, On 7/17/22 16:18, Alfred M. Szmidt wrote:
How can $localstatedir be $prefix/var and at the same time $runstatedir
be /var/run (notice no prefix) if it is defined as $localstatedir/run.
Because prefix is normally /usr, and it was/is common to use /usr/var
for exactly that purpose. Where as runstatedir was in /var/run and
not /usr.
Since the FHS doesn't define /usr/local/var, and my Debian system lacks
it, and I don't think people are going to start symlinking
/usr/local/var to /var, I guess the coding standard really intended to
define $localstatedir as /var.
Yes, and no. On GNU/Linux, it was meant to be /usr/var (prefix =
"/usr"), on GNU systems it was meant to be /var (prefix = "")
If you want to do this on other systems, the best way is to setup a
config.site file where you specify the locations explisltly.
The bug is also present in the GNU Make documentation, which seems to be
just a copy of the GNU coding standards.
This isn't a bug, it works as intended.
Oh, there _is_ a bug. Compare what the documentation says, with a bit of variable expansion that I did to show the bug (between parentheses):
Documentation says:
$prefix
Should normally be */usr/local*
$localstatedir
Should normally be */usr/local/var*
But write it as *$prefix/var* (= /usr/local/var; OK)
$runstatedir
Should normally be */var/run*
But write it as *$localstatedir/run* (= $prefix/var/run)
(= /usr/local/var/run)
(!= /var/run; NOK)
Do you realize the bug now?
Cheers,
Alex
--
Alejandro Colomar
<http://www.alejandro-colomar.es/>
OpenPGP_signature
Description: OpenPGP digital signature
| [Prev in Thread] | Current Thread | [Next in Thread] |