diff options
author | Jessica Clarke <jrtc27@FreeBSD.org> | 2023-07-11 20:49:22 +0000 |
---|---|---|
committer | Jessica Clarke <jrtc27@FreeBSD.org> | 2023-07-11 20:49:22 +0000 |
commit | 3a46fe226193dde1270ebb08d2066a77ae12d7e9 (patch) | |
tree | f4c4b5c9113f4c024628ac4852a6236e23263898 | |
parent | d1e44bc94494448de196948d698b637b6e1df4bf (diff) | |
download | src-3a46fe226193dde1270ebb08d2066a77ae12d7e9.tar.gz src-3a46fe226193dde1270ebb08d2066a77ae12d7e9.zip |
getlocalbase: Make default path actually configurable
We include paths.h in getlocalbase.c, which defines _PATH_LOCALBASE.
This will override a definition on the command line, meaning it is
impossible to override like how the manpage says you can, and it means
the code to provide a fallback default is dead as the macro is always
defined.
Instead, introduce a new LOCALBASE_PATH macro like LOCALBASE_CTL_LEN
that can be set on the command line and will default to the system's
existing _PATH_LOCALBASE to avoid duplicating the default here.
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D40975
-rw-r--r-- | lib/libutil/getlocalbase.3 | 8 | ||||
-rw-r--r-- | lib/libutil/getlocalbase.c | 10 |
2 files changed, 9 insertions, 9 deletions
diff --git a/lib/libutil/getlocalbase.3 b/lib/libutil/getlocalbase.3 index e7be3f1809ef..06216b8b48a2 100644 --- a/lib/libutil/getlocalbase.3 +++ b/lib/libutil/getlocalbase.3 @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 25, 2020 +.Dd July 11, 2023 .Dt GETLOCALBASE 3 .Os .Sh NAME @@ -53,10 +53,10 @@ If that does not exist then the .Va user.localbase sysctl is checked. If that also does not exist then the value of the -.Dv _PATH_LOCALBASE +.Dv LOCALBASE_PATH compile-time variable is used. -If that is undefined then the default of -.Pa /usr/local +If that is undefined then the system default, +.Pa _PATH_LOCALBASE is used. .Pp The contents of the string returned by the diff --git a/lib/libutil/getlocalbase.c b/lib/libutil/getlocalbase.c index a737d8c5c253..c19cb95212dd 100644 --- a/lib/libutil/getlocalbase.c +++ b/lib/libutil/getlocalbase.c @@ -37,8 +37,8 @@ __FBSDID("$FreeBSD$"); #include <libutil.h> #include <unistd.h> -#ifndef _PATH_LOCALBASE -#define _PATH_LOCALBASE "/usr/local" +#ifndef LOCALBASE_PATH +#define LOCALBASE_PATH _PATH_LOCALBASE #endif #ifndef LOCALBASE_CTL_LEN @@ -73,17 +73,17 @@ getlocalbase(void) #if LOCALBASE_CTL_LEN > 0 if (sysctl(localbase_oid, 2, localpath, &localpathlen, NULL, 0) != 0) { if (errno != ENOMEM) - localbase = _PATH_LOCALBASE; + localbase = LOCALBASE_PATH; else localbase = ILLEGAL_PREFIX; } else { if (localpath[0] != '\0') localbase = localpath; else - localbase = _PATH_LOCALBASE; + localbase = LOCALBASE_PATH; } #else - localbase = _PATH_LOCALBASE; + localbase = LOCALBASE_PATH; #endif return (localbase); |