svn commit: r367816 - in head: sbin/nvmecontrol usr.sbin/mailwrapper usr.sbin/pkg

Stefan Eßer se at FreeBSD.org
Wed Nov 18 20:00:57 UTC 2020


Author: se
Date: Wed Nov 18 20:00:55 2020
New Revision: 367816
URL: https://svnweb.freebsd.org/changeset/base/367816

Log:
  Make use of the getlocalbase() function for run-time adjustment of the
  local software base directory, as committed in SVN rev. 367813.
  
  The pkg and mailwrapper programs used the LOCALBASE environment variable
  for this purpose and this functionality is preserved by getlocalbase().
  
  After this change, the value of the user.localbase sysctl variable is used
  if present (and not overridden in the environment).
  
  The nvmecontrol program gains support of a dynamic path to its plugin
  directory with this update.
  
  Differential Revision:	https://reviews.freebsd.org/D27237

Modified:
  head/sbin/nvmecontrol/comnd.c
  head/sbin/nvmecontrol/nvmecontrol.c
  head/usr.sbin/mailwrapper/mailwrapper.c
  head/usr.sbin/pkg/Makefile
  head/usr.sbin/pkg/config.c
  head/usr.sbin/pkg/pkg.c

Modified: head/sbin/nvmecontrol/comnd.c
==============================================================================
--- head/sbin/nvmecontrol/comnd.c	Wed Nov 18 19:55:24 2020	(r367815)
+++ head/sbin/nvmecontrol/comnd.c	Wed Nov 18 20:00:55 2020	(r367816)
@@ -287,7 +287,7 @@ bad_arg:
  * Loads all the .so's from the specified directory.
  */
 void
-cmd_load_dir(const char *dir __unused, cmd_load_cb_t cb __unused, void *argp __unused)
+cmd_load_dir(const char *dir, cmd_load_cb_t cb, void *argp)
 {
 	DIR *d;
 	struct dirent *dent;

Modified: head/sbin/nvmecontrol/nvmecontrol.c
==============================================================================
--- head/sbin/nvmecontrol/nvmecontrol.c	Wed Nov 18 19:55:24 2020	(r367815)
+++ head/sbin/nvmecontrol/nvmecontrol.c	Wed Nov 18 20:00:55 2020	(r367816)
@@ -38,6 +38,7 @@ __FBSDID("$FreeBSD$");
 #include <err.h>
 #include <errno.h>
 #include <fcntl.h>
+#include <libutil.h>
 #include <paths.h>
 #include <stdbool.h>
 #include <stddef.h>
@@ -178,11 +179,13 @@ get_nsid(int fd, char **ctrlr_str, uint32_t *nsid)
 int
 main(int argc, char *argv[])
 {
+	static char dir[MAXPATHLEN];
 
 	cmd_init();
 
 	cmd_load_dir("/lib/nvmecontrol", NULL, NULL);
-	cmd_load_dir(_PATH_LOCALBASE "/lib/nvmecontrol", NULL, NULL);
+	snprintf(dir, MAXPATHLEN, "%s/lib/nvmecontrol", getlocalbase());
+	cmd_load_dir(dir, NULL, NULL);
 
 	cmd_dispatch(argc, argv, NULL);
 

Modified: head/usr.sbin/mailwrapper/mailwrapper.c
==============================================================================
--- head/usr.sbin/mailwrapper/mailwrapper.c	Wed Nov 18 19:55:24 2020	(r367815)
+++ head/usr.sbin/mailwrapper/mailwrapper.c	Wed Nov 18 20:00:55 2020	(r367816)
@@ -106,7 +106,7 @@ main(int argc, char *argv[], char *envp[])
 	addarg(&al, argv[0]);
 
 	snprintf(localmailerconf, MAXPATHLEN, "%s/etc/mail/mailer.conf",
-	    getenv("LOCALBASE") ? getenv("LOCALBASE") : _PATH_LOCALBASE);
+	    getlocalbase());
 
 	mailerconf = localmailerconf;
 	if ((config = fopen(localmailerconf, "r")) == NULL)

Modified: head/usr.sbin/pkg/Makefile
==============================================================================
--- head/usr.sbin/pkg/Makefile	Wed Nov 18 19:55:24 2020	(r367815)
+++ head/usr.sbin/pkg/Makefile	Wed Nov 18 20:00:55 2020	(r367816)
@@ -25,6 +25,6 @@ MAN=	pkg.7
 
 CFLAGS+=-I${SRCTOP}/contrib/libucl/include
 .PATH:	${SRCTOP}/contrib/libucl/include
-LIBADD=	archive fetch ucl sbuf crypto ssl
+LIBADD=	archive fetch ucl sbuf crypto ssl util
 
 .include <bsd.prog.mk>

Modified: head/usr.sbin/pkg/config.c
==============================================================================
--- head/usr.sbin/pkg/config.c	Wed Nov 18 19:55:24 2020	(r367815)
+++ head/usr.sbin/pkg/config.c	Wed Nov 18 20:00:55 2020	(r367816)
@@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$");
 #include <ucl.h>
 #include <err.h>
 #include <errno.h>
+#include <libutil.h>
 #include <paths.h>
 #include <stdbool.h>
 #include <unistd.h>
@@ -455,9 +456,8 @@ config_init(void)
 	}
 
 	/* Read LOCALBASE/etc/pkg.conf first. */
-	localbase = getenv("LOCALBASE") ? getenv("LOCALBASE") : _PATH_LOCALBASE;
-	snprintf(confpath, sizeof(confpath), "%s/etc/pkg.conf",
-	    localbase);
+	localbase = getlocalbase();
+	snprintf(confpath, sizeof(confpath), "%s/etc/pkg.conf", localbase);
 
 	if (access(confpath, F_OK) == 0 && read_conf_file(confpath,
 	    CONFFILE_PKG))

Modified: head/usr.sbin/pkg/pkg.c
==============================================================================
--- head/usr.sbin/pkg/pkg.c	Wed Nov 18 19:55:24 2020	(r367815)
+++ head/usr.sbin/pkg/pkg.c	Wed Nov 18 20:00:55 2020	(r367816)
@@ -43,12 +43,12 @@ __FBSDID("$FreeBSD$");
 #include <errno.h>
 #include <fcntl.h>
 #include <fetch.h>
+#include <libutil.h>
 #include <paths.h>
 #include <stdbool.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
-#include <unistd.h>
 #include <ucl.h>
 
 #include <openssl/err.h>
@@ -1045,8 +1045,7 @@ main(int argc, char *argv[])
 	pkgarg = NULL;
 	yes = false;
 
-	snprintf(pkgpath, MAXPATHLEN, "%s/sbin/pkg",
-	    getenv("LOCALBASE") ? getenv("LOCALBASE") : _PATH_LOCALBASE);
+	snprintf(pkgpath, MAXPATHLEN, "%s/sbin/pkg", getlocalbase());
 
 	if (argc > 1 && strcmp(argv[1], "bootstrap") == 0) {
 		bootstrap_only = true;


More information about the svn-src-all mailing list