From nobody Sun Feb 8 01:34:19 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1566388246; cv=none; d=zoho.com; s=zohoarc; b=LiKz8Flmrnm7cGN/T3RFb1jpISPFSVgdW6Fyaj9DsGrW0CGNxP8wNq6dztcKK+lCui4Khzgt9MWgtPsjbISYgFQbQ96FgBC+YTrAAyphj3My9OdUf0qyNmU6B8cwHow7lwrjSWQxoy5SjfACcRHNi+NtMuvcJ66wW2lV0LVDw0M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1566388246; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=SjekXaX809sRJ2dDIA99KgiQyt/SyYd5fJN5O3UMEpg=; b=fzLrImAFDaFo27hx4pOTMZuwnzKW/GGtz7YNRrQQ8gkm9Jt8Jti/wA7JccM8dbjba92W92JSETZXQu3v2oXvj67L2U59mENBrn0vT8IpX69YXHwu11yrKLHPmmIdHI6EHrou9pFAl/nh+TGigtpyGNoNxwQpWE/X4zYWJAVdv2U= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1566388246075520.3258845304764; Wed, 21 Aug 2019 04:50:46 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8F46B10F09; Wed, 21 Aug 2019 11:50:44 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 69F8660F8C; Wed, 21 Aug 2019 11:50:44 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 2D708E202; Wed, 21 Aug 2019 11:50:44 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x7LBoMSm003480 for ; Wed, 21 Aug 2019 07:50:22 -0400 Received: by smtp.corp.redhat.com (Postfix) id 8D6D85C686; Wed, 21 Aug 2019 11:50:22 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-112-61.ams2.redhat.com [10.36.112.61]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9F1CD5C290; Wed, 21 Aug 2019 11:50:21 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Wed, 21 Aug 2019 12:50:09 +0100 Message-Id: <20190821115011.11240-5-berrange@redhat.com> In-Reply-To: <20190821115011.11240-1-berrange@redhat.com> References: <20190821115011.11240-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 4/6] src: honour the RUNSTATEDIR variable in all code X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Wed, 21 Aug 2019 11:50:45 +0000 (UTC) All code using LOCALSTATEDIR "/run" is updated to use RUNSTATEDIR instead. The exception is the remote driver client which still uses LOCALSTATEDIR "/run". The client needs to connect to remote machines which may not be using /run, so /var/run is more portable due to the /var/run -> /run symlink. Some duplicate paths in the apparmor code are also purged. There's no functional change by default yet since both expressions expand to the same value. Signed-off-by: Daniel P. Berrang=C3=A9 --- src/bhyve/bhyve_utils.h | 2 +- src/interface/interface_backend_netcf.c | 2 +- src/interface/interface_backend_udev.c | 2 +- src/libvirt-admin.c | 2 +- src/libxl/libxl_conf.h | 2 +- src/locking/lock_daemon.c | 18 +++++++------- src/locking/lock_driver_lockd.c | 2 +- src/locking/virtlockd.pod | 8 +++--- src/logging/log_daemon.c | 18 +++++++------- src/logging/log_manager.c | 2 +- src/logging/virtlogd.pod | 8 +++--- src/lxc/lxc_conf.h | 2 +- src/lxc/lxc_process.c | 2 +- src/network/bridge_driver.c | 4 +-- src/network/leaseshelper.c | 2 +- src/node_device/node_device_hal.c | 2 +- src/node_device/node_device_udev.c | 2 +- src/nwfilter/nwfilter_dhcpsnoop.c | 4 +-- src/nwfilter/nwfilter_driver.c | 4 +-- src/qemu/qemu_conf.c | 4 +-- src/remote/libvirtd.pod | 10 ++++---- src/remote/remote_daemon.c | 24 +++++++++--------- src/remote/remote_daemon_dispatch.c | 4 +-- src/remote/remote_driver.c | 6 +++++ src/secret/secret_driver.c | 2 +- src/security/virt-aa-helper.c | 20 ++++++--------- src/storage/storage_driver.c | 2 +- src/util/virhostdev.c | 2 +- src/util/virpidfile.c | 8 +++--- src/util/virsystemd.c | 33 ++++++++++++++++--------- src/vz/vz_driver.c | 2 +- 31 files changed, 109 insertions(+), 96 deletions(-) diff --git a/src/bhyve/bhyve_utils.h b/src/bhyve/bhyve_utils.h index 3d212e3ccf..8dda6062b5 100644 --- a/src/bhyve/bhyve_utils.h +++ b/src/bhyve/bhyve_utils.h @@ -31,7 +31,7 @@ =20 #define BHYVE_AUTOSTART_DIR SYSCONFDIR "/libvirt/bhyve/autostart" #define BHYVE_CONFIG_DIR SYSCONFDIR "/libvirt/bhyve" -#define BHYVE_STATE_DIR LOCALSTATEDIR "/run/libvirt/bhyve" +#define BHYVE_STATE_DIR RUNSTATEDIR "/libvirt/bhyve" #define BHYVE_LOG_DIR LOCALSTATEDIR "/log/libvirt/bhyve" =20 typedef struct _virBhyveDriverConfig virBhyveDriverConfig; diff --git a/src/interface/interface_backend_netcf.c b/src/interface/interf= ace_backend_netcf.c index eb509ccc13..9659e9fcf1 100644 --- a/src/interface/interface_backend_netcf.c +++ b/src/interface/interface_backend_netcf.c @@ -102,7 +102,7 @@ netcfStateInitialize(bool privileged, =20 if (privileged) { if (virAsprintf(&driver->stateDir, - "%s/run/libvirt/interface", LOCALSTATEDIR) < 0) + "%s/libvirt/interface", RUNSTATEDIR) < 0) goto error; } else { VIR_AUTOFREE(char *) rundir =3D NULL; diff --git a/src/interface/interface_backend_udev.c b/src/interface/interfa= ce_backend_udev.c index ef748540d1..ddc3de5347 100644 --- a/src/interface/interface_backend_udev.c +++ b/src/interface/interface_backend_udev.c @@ -1181,7 +1181,7 @@ udevStateInitialize(bool privileged, =20 if (privileged) { if (virAsprintf(&driver->stateDir, - "%s/run/libvirt/interface", LOCALSTATEDIR) < 0) + "%s/libvirt/interface", RUNSTATEDIR) < 0) goto cleanup; } else { VIR_AUTOFREE(char *) rundir =3D NULL; diff --git a/src/libvirt-admin.c b/src/libvirt-admin.c index 6ad4436bff..ba88f09824 100644 --- a/src/libvirt-admin.c +++ b/src/libvirt-admin.c @@ -149,7 +149,7 @@ getSocketPath(virURIPtr uri) } =20 if (STREQ_NULLABLE(uri->path, "/system")) { - if (virAsprintf(&sock_path, LOCALSTATEDIR "/run/libvirt/%s", + if (virAsprintf(&sock_path, RUNSTATEDIR "/libvirt/%s", sockbase) < 0) goto error; } else if (STREQ_NULLABLE(uri->path, "/session")) { diff --git a/src/libxl/libxl_conf.h b/src/libxl/libxl_conf.h index 552f039d2a..27badfb292 100644 --- a/src/libxl/libxl_conf.h +++ b/src/libxl/libxl_conf.h @@ -48,7 +48,7 @@ #define LIBXL_CONFIG_BASE_DIR SYSCONFDIR "/libvirt" #define LIBXL_CONFIG_DIR SYSCONFDIR "/libvirt/libxl" #define LIBXL_AUTOSTART_DIR LIBXL_CONFIG_DIR "/autostart" -#define LIBXL_STATE_DIR LOCALSTATEDIR "/run/libvirt/libxl" +#define LIBXL_STATE_DIR RUNSTATEDIR "/libvirt/libxl" #define LIBXL_LOG_DIR LOCALSTATEDIR "/log/libvirt/libxl" #define LIBXL_LIB_DIR LOCALSTATEDIR "/lib/libvirt/libxl" #define LIBXL_SAVE_DIR LIBXL_LIB_DIR "/save" diff --git a/src/locking/lock_daemon.c b/src/locking/lock_daemon.c index 104483267f..ac242bf65c 100644 --- a/src/locking/lock_daemon.c +++ b/src/locking/lock_daemon.c @@ -447,8 +447,8 @@ virLockDaemonUnixSocketPaths(bool privileged, char **adminSockfile) { if (privileged) { - if (VIR_STRDUP(*sockfile, LOCALSTATEDIR "/run/libvirt/virtlockd-so= ck") < 0 || - VIR_STRDUP(*adminSockfile, LOCALSTATEDIR "/run/libvirt/virtloc= kd-admin-sock") < 0) + if (VIR_STRDUP(*sockfile, RUNSTATEDIR "/libvirt/virtlockd-sock") <= 0 || + VIR_STRDUP(*adminSockfile, RUNSTATEDIR "/libvirt/virtlockd-adm= in-sock") < 0) goto error; } else { char *rundir =3D NULL; @@ -831,7 +831,7 @@ virLockDaemonExecRestartStatePath(bool privileged, char **state_file) { if (privileged) { - if (VIR_STRDUP(*state_file, LOCALSTATEDIR "/run/virtlockd-restart-= exec.json") < 0) + if (VIR_STRDUP(*state_file, RUNSTATEDIR "/virtlockd-restart-exec.j= son") < 0) goto error; } else { char *rundir =3D NULL; @@ -1062,14 +1062,14 @@ virLockDaemonUsage(const char *argv0, bool privileg= ed) " %s/libvirt/virtlockd.conf\n" "\n" " Sockets:\n" - " %s/run/libvirt/virtlockd-sock\n" + " %s/libvirt/virtlockd-sock\n" "\n" " PID file (unless overridden by -p):\n" - " %s/run/virtlockd.pid\n" + " %s/virtlockd.pid\n" "\n"), SYSCONFDIR, - LOCALSTATEDIR, - LOCALSTATEDIR); + RUNSTATEDIR, + RUNSTATEDIR); } else { fprintf(stderr, "%s", _("\n" @@ -1221,7 +1221,7 @@ int main(int argc, char **argv) { =20 if (!pid_file && virPidFileConstructPath(privileged, - LOCALSTATEDIR, + RUNSTATEDIR, "virtlockd", &pid_file) < 0) { VIR_ERROR(_("Can't determine pid file path.")); @@ -1248,7 +1248,7 @@ int main(int argc, char **argv) { =20 /* Ensure the rundir exists (on tmpfs on some systems) */ if (privileged) { - if (VIR_STRDUP_QUIET(run_dir, LOCALSTATEDIR "/run/libvirt") < 0) + if (VIR_STRDUP_QUIET(run_dir, RUNSTATEDIR "/libvirt") < 0) goto no_memory; } else { if (!(run_dir =3D virGetUserRuntimeDirectory())) { diff --git a/src/locking/lock_driver_lockd.c b/src/locking/lock_driver_lock= d.c index f6371f3050..164f83eb4b 100644 --- a/src/locking/lock_driver_lockd.c +++ b/src/locking/lock_driver_lockd.c @@ -124,7 +124,7 @@ static char *virLockManagerLockDaemonPath(bool privileg= ed) { char *path; if (privileged) { - if (VIR_STRDUP(path, LOCALSTATEDIR "/run/libvirt/virtlockd-sock") = < 0) + if (VIR_STRDUP(path, RUNSTATEDIR "/libvirt/virtlockd-sock") < 0) return NULL; } else { char *rundir =3D NULL; diff --git a/src/locking/virtlockd.pod b/src/locking/virtlockd.pod index de0eb8ac18..0b9f758e29 100644 --- a/src/locking/virtlockd.pod +++ b/src/locking/virtlockd.pod @@ -72,11 +72,11 @@ upgrades of the virtlockd service. The default configuration file used by virtlockd, unless overridden on the command line using the B<-f>|B<--config> option. =20 -=3Ditem F +=3Ditem F =20 The sockets libvirtd will use. =20 -=3Ditem F +=3Ditem F =20 The PID file to use, unless overridden by the B<-p>|B<--pid-file> option. =20 @@ -116,8 +116,8 @@ To retrieve the version of virtlockd: To start virtlockd, instructing it to daemonize and create a PID file: =20 # virtlockd -d - # ls -la LOCALSTATEDIR/run/virtlockd.pid - -rw-r--r-- 1 root root 6 Jul 9 02:40 LOCALSTATEDIR/run/virtlockd.pid + # ls -la RUNSTATEDIR/virtlockd.pid + -rw-r--r-- 1 root root 6 Jul 9 02:40 RUNSTATEDIR/virtlockd.pid # =20 =3Dhead1 BUGS diff --git a/src/logging/log_daemon.c b/src/logging/log_daemon.c index 4103f2cefe..f74e900aea 100644 --- a/src/logging/log_daemon.c +++ b/src/logging/log_daemon.c @@ -388,8 +388,8 @@ virLogDaemonUnixSocketPaths(bool privileged, char **adminSockfile) { if (privileged) { - if (VIR_STRDUP(*sockfile, LOCALSTATEDIR "/run/libvirt/virtlogd-soc= k") < 0 || - VIR_STRDUP(*adminSockfile, LOCALSTATEDIR "/run/libvirt/virtlog= d-admin-sock") < 0) + if (VIR_STRDUP(*sockfile, RUNSTATEDIR "/libvirt/virtlogd-sock") < = 0 || + VIR_STRDUP(*adminSockfile, RUNSTATEDIR "/libvirt/virtlogd-admi= n-sock") < 0) goto error; } else { char *rundir =3D NULL; @@ -623,7 +623,7 @@ virLogDaemonExecRestartStatePath(bool privileged, char **state_file) { if (privileged) { - if (VIR_STRDUP(*state_file, LOCALSTATEDIR "/run/virtlogd-restart-e= xec.json") < 0) + if (VIR_STRDUP(*state_file, RUNSTATEDIR "/virtlogd-restart-exec.js= on") < 0) goto error; } else { char *rundir =3D NULL; @@ -834,14 +834,14 @@ virLogDaemonUsage(const char *argv0, bool privileged) " %s/libvirt/virtlogd.conf\n" "\n" " Sockets:\n" - " %s/run/libvirt/virtlogd-sock\n" + " %s/libvirt/virtlogd-sock\n" "\n" " PID file (unless overridden by -p):\n" - " %s/run/virtlogd.pid\n" + " %s/virtlogd.pid\n" "\n"), SYSCONFDIR, - LOCALSTATEDIR, - LOCALSTATEDIR); + RUNSTATEDIR, + RUNSTATEDIR); } else { fprintf(stderr, "%s", _("\n" @@ -992,7 +992,7 @@ int main(int argc, char **argv) { =20 if (!pid_file && virPidFileConstructPath(privileged, - LOCALSTATEDIR, + RUNSTATEDIR, "virtlogd", &pid_file) < 0) { VIR_ERROR(_("Can't determine pid file path.")); @@ -1019,7 +1019,7 @@ int main(int argc, char **argv) { =20 /* Ensure the rundir exists (on tmpfs on some systems) */ if (privileged) { - if (VIR_STRDUP_QUIET(run_dir, LOCALSTATEDIR "/run/libvirt") < 0) + if (VIR_STRDUP_QUIET(run_dir, RUNSTATEDIR "/libvirt") < 0) goto no_memory; } else { if (!(run_dir =3D virGetUserRuntimeDirectory())) { diff --git a/src/logging/log_manager.c b/src/logging/log_manager.c index eb0a32b4b6..1613d1f8a8 100644 --- a/src/logging/log_manager.c +++ b/src/logging/log_manager.c @@ -45,7 +45,7 @@ virLogManagerDaemonPath(bool privileged) { char *path; if (privileged) { - if (VIR_STRDUP(path, LOCALSTATEDIR "/run/libvirt/virtlogd-sock") <= 0) + if (VIR_STRDUP(path, RUNSTATEDIR "/libvirt/virtlogd-sock") < 0) return NULL; } else { char *rundir =3D NULL; diff --git a/src/logging/virtlogd.pod b/src/logging/virtlogd.pod index 5e44f84a85..01dde99296 100644 --- a/src/logging/virtlogd.pod +++ b/src/logging/virtlogd.pod @@ -72,11 +72,11 @@ upgrades of the virtlogd service. The default configuration file used by virtlogd, unless overridden on the command line using the B<-f>|B<--config> option. =20 -=3Ditem F +=3Ditem F =20 The sockets libvirtd will use. =20 -=3Ditem F +=3Ditem F =20 The PID file to use, unless overridden by the B<-p>|B<--pid-file> option. =20 @@ -116,8 +116,8 @@ To retrieve the version of virtlogd: To start virtlogd, instructing it to daemonize and create a PID file: =20 # virtlogd -d - # ls -la LOCALSTATEDIR/run/virtlogd.pid - -rw-r--r-- 1 root root 6 Jul 9 02:40 LOCALSTATEDIR/run/virtlogd.pid + # ls -la RUNSTATEDIR/virtlogd.pid + -rw-r--r-- 1 root root 6 Jul 9 02:40 RUNSTATEDIR/virtlogd.pid # =20 =3Dhead1 BUGS diff --git a/src/lxc/lxc_conf.h b/src/lxc/lxc_conf.h index e26ca22d3c..12a201db38 100644 --- a/src/lxc/lxc_conf.h +++ b/src/lxc/lxc_conf.h @@ -38,7 +38,7 @@ #define LXC_DRIVER_NAME "LXC" =20 #define LXC_CONFIG_DIR SYSCONFDIR "/libvirt/lxc" -#define LXC_STATE_DIR LOCALSTATEDIR "/run/libvirt/lxc" +#define LXC_STATE_DIR RUNSTATEDIR "/libvirt/lxc" #define LXC_LOG_DIR LOCALSTATEDIR "/log/libvirt/lxc" #define LXC_AUTOSTART_DIR LXC_CONFIG_DIR "/autostart" =20 diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c index 3d03086ea7..cd65e7a0c0 100644 --- a/src/lxc/lxc_process.c +++ b/src/lxc/lxc_process.c @@ -470,7 +470,7 @@ static int virLXCProcessSetupNamespaceNet(int ns_type, = const char *name) return -1; } =20 - if (virAsprintf(&path, "/var/run/netns/%s", name) < 0) + if (virAsprintf(&path, "%s/netns/%s", RUNSTATEDIR, name) < 0) return -1; fd =3D open(path, O_RDONLY); VIR_FREE(path); diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index 86e2035b85..7b44184616 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -726,9 +726,9 @@ networkStateInitialize(bool privileged, VIR_STRDUP(network_driver->networkAutostartDir, SYSCONFDIR "/libvirt/qemu/networks/autostart") < 0 = || VIR_STRDUP(network_driver->stateDir, - LOCALSTATEDIR "/run/libvirt/network") < 0 || + RUNSTATEDIR "/libvirt/network") < 0 || VIR_STRDUP(network_driver->pidDir, - LOCALSTATEDIR "/run/libvirt/network") < 0 || + RUNSTATEDIR "/libvirt/network") < 0 || VIR_STRDUP(network_driver->dnsmasqStateDir, LOCALSTATEDIR "/lib/libvirt/dnsmasq") < 0 || VIR_STRDUP(network_driver->radvdStateDir, diff --git a/src/network/leaseshelper.c b/src/network/leaseshelper.c index 481f29aa59..5e04e16171 100644 --- a/src/network/leaseshelper.c +++ b/src/network/leaseshelper.c @@ -160,7 +160,7 @@ main(int argc, char **argv) interface) < 0) goto cleanup; =20 - if (VIR_STRDUP(pid_file, LOCALSTATEDIR "/run/leaseshelper.pid") < 0) + if (VIR_STRDUP(pid_file, RUNSTATEDIR "/leaseshelper.pid") < 0) goto cleanup; =20 /* Try to claim the pidfile, exiting if we can't */ diff --git a/src/node_device/node_device_hal.c b/src/node_device/node_devic= e_hal.c index d46e4e98f3..c613ca5808 100644 --- a/src/node_device/node_device_hal.c +++ b/src/node_device/node_device_hal.c @@ -619,7 +619,7 @@ nodeStateInitialize(bool privileged ATTRIBUTE_UNUSED, =20 if (privileged) { if (virAsprintf(&driver->stateDir, - "%s/run/libvirt/nodedev", LOCALSTATEDIR) < 0) + "%s/libvirt/nodedev", RUNSTATEDIR) < 0) goto failure; } else { VIR_AUTOFREE(char *) rundir =3D NULL; diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_devi= ce_udev.c index adf60e4537..5550ee3a54 100644 --- a/src/node_device/node_device_udev.c +++ b/src/node_device/node_device_udev.c @@ -1830,7 +1830,7 @@ nodeStateInitialize(bool privileged, =20 if (privileged) { if (virAsprintf(&driver->stateDir, - "%s/run/libvirt/nodedev", LOCALSTATEDIR) < 0) + "%s/libvirt/nodedev", RUNSTATEDIR) < 0) goto cleanup; } else { VIR_AUTOFREE(char *) rundir =3D NULL; diff --git a/src/nwfilter/nwfilter_dhcpsnoop.c b/src/nwfilter/nwfilter_dhcp= snoop.c index d8a1e7f8a8..2af8cfdd32 100644 --- a/src/nwfilter/nwfilter_dhcpsnoop.c +++ b/src/nwfilter/nwfilter_dhcpsnoop.c @@ -29,7 +29,7 @@ * while :; do kill -SIGTERM `pidof dhclient`; dhclient eth0; ifconfi= g eth0; done * * On the host check the lease file and that it's periodically shortened: - * cat /var/run/libvirt/network/nwfilter.leases; date +%s + * cat $runstatedir/libvirt/network/nwfilter.leases; date +%s * * On the host also check that the ebtables rules 'look' ok: * ebtables -t nat -L @@ -71,7 +71,7 @@ VIR_LOG_INIT("nwfilter.nwfilter_dhcpsnoop"); =20 #ifdef HAVE_LIBPCAP =20 -# define LEASEFILE_DIR LOCALSTATEDIR "/run/libvirt/network/" +# define LEASEFILE_DIR RUNSTATEDIR "/libvirt/network/" # define LEASEFILE LEASEFILE_DIR "nwfilter.leases" # define TMPLEASEFILE LEASEFILE_DIR "nwfilter.ltmp" =20 diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c index 6073143437..aef5bd4c7f 100644 --- a/src/nwfilter/nwfilter_driver.c +++ b/src/nwfilter/nwfilter_driver.c @@ -205,7 +205,7 @@ nwfilterStateInitialize(bool privileged, =20 nwfilterDriverLock(); =20 - if (VIR_STRDUP(driver->stateDir, LOCALSTATEDIR "/run/libvirt/nwfilter"= ) < 0) + if (VIR_STRDUP(driver->stateDir, RUNSTATEDIR "/libvirt/nwfilter") < 0) goto error; =20 if (virFileMakePathWithMode(driver->stateDir, S_IRWXU) < 0) { @@ -261,7 +261,7 @@ nwfilterStateInitialize(bool privileged, goto error; } =20 - if (VIR_STRDUP(driver->bindingDir, LOCALSTATEDIR "/run/libvirt/nwfilte= r-binding") < 0) + if (VIR_STRDUP(driver->bindingDir, RUNSTATEDIR "/libvirt/nwfilter-bind= ing") < 0) goto error; =20 if (virFileMakePathWithMode(driver->bindingDir, S_IRWXU) < 0) { diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index 2953893337..89c183e46a 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -142,11 +142,11 @@ virQEMUDriverConfigPtr virQEMUDriverConfigNew(bool pr= ivileged) goto error; =20 if (virAsprintf(&cfg->stateDir, - "%s/run/libvirt/qemu", LOCALSTATEDIR) < 0) + "%s/libvirt/qemu", RUNSTATEDIR) < 0) goto error; =20 if (virAsprintf(&cfg->swtpmStateDir, - "%s/run/libvirt/qemu/swtpm", LOCALSTATEDIR) < 0) + "%s/libvirt/qemu/swtpm", RUNSTATEDIR) < 0) goto error; =20 if (virAsprintf(&cfg->cacheDir, diff --git a/src/remote/libvirtd.pod b/src/remote/libvirtd.pod index 4721e0f4ec..4988f0f7fa 100644 --- a/src/remote/libvirtd.pod +++ b/src/remote/libvirtd.pod @@ -84,9 +84,9 @@ On receipt of B libvirtd will reload its configur= ation. The default configuration file used by libvirtd, unless overridden on the command line using the B<-f>|B<--config> option. =20 -=3Ditem F +=3Ditem F =20 -=3Ditem F +=3Ditem F =20 The sockets libvirtd will use. =20 @@ -102,7 +102,7 @@ The TLS B certificate libvirtd will use. =20 The TLS B private key libvirtd will use. =20 -=3Ditem F +=3Ditem F =20 The PID file to use, unless overridden by the B<-p>|B<--pid-file> option. =20 @@ -154,8 +154,8 @@ To retrieve the version of libvirtd: To start libvirtd, instructing it to daemonize and create a PID file: =20 # libvirtd -d - # ls -la LOCALSTATEDIR/run/libvirtd.pid - -rw-r--r-- 1 root root 6 Jul 9 02:40 LOCALSTATEDIR/run/libvirtd.pid + # ls -la RUNSTATEDIR/libvirtd.pid + -rw-r--r-- 1 root root 6 Jul 9 02:40 RUNSTATEDIR/libvirtd.pid # =20 =3Dhead1 BUGS diff --git a/src/remote/remote_daemon.c b/src/remote/remote_daemon.c index 1138485870..3edc357fea 100644 --- a/src/remote/remote_daemon.c +++ b/src/remote/remote_daemon.c @@ -238,12 +238,12 @@ daemonUnixSocketPaths(struct daemonConfig *config, } } else { if (privileged) { - if (virAsprintf(sockfile, "%s/run/libvirt/%s-sock", - LOCALSTATEDIR, SOCK_PREFIX) < 0 || - virAsprintf(rosockfile, "%s/run/libvirt/%s-sock-ro", - LOCALSTATEDIR, SOCK_PREFIX) < 0 || - virAsprintf(admsockfile, "%s/run/libvirt/%s-admin-sock", - LOCALSTATEDIR, SOCK_PREFIX) < 0) + if (virAsprintf(sockfile, "%s/libvirt/%s-sock", + RUNSTATEDIR, SOCK_PREFIX) < 0 || + virAsprintf(rosockfile, "%s/libvirt/%s-sock-ro", + RUNSTATEDIR, SOCK_PREFIX) < 0 || + virAsprintf(admsockfile, "%s/libvirt/%s-admin-sock", + RUNSTATEDIR, SOCK_PREFIX) < 0) goto cleanup; } else { mode_t old_umask; @@ -945,11 +945,11 @@ daemonUsage(const char *argv0, bool privileged) =20 fprintf(stderr, " %s\n", _("Sockets:")); fprintf(stderr, " %s/libvirt/%s-sock\n", - privileged ? LOCALSTATEDIR "/run" : "$XDG_RUNTIME_DIR", + privileged ? RUNSTATEDIR : "$XDG_RUNTIME_DIR", SOCK_PREFIX); if (privileged) - fprintf(stderr, " %s/run/libvirt/%s-sock-ro\n", - LOCALSTATEDIR, SOCK_PREFIX); + fprintf(stderr, " %s/libvirt/%s-sock-ro\n", + RUNSTATEDIR, SOCK_PREFIX); fprintf(stderr, "\n"); =20 #ifdef WITH_IP @@ -969,7 +969,7 @@ daemonUsage(const char *argv0, bool privileged) fprintf(stderr, " %s\n", _("PID file (unless overridden by -p):")); fprintf(stderr, " %s/%s.pid\n", - privileged ? LOCALSTATEDIR "/run" : "$XDG_RUNTIME_DIR/libvirt", + privileged ? RUNSTATEDIR : "$XDG_RUNTIME_DIR/libvirt", DAEMON_NAME); fprintf(stderr, "\n"); } @@ -1149,7 +1149,7 @@ int main(int argc, char **argv) { =20 if (!pid_file && virPidFileConstructPath(privileged, - LOCALSTATEDIR, + RUNSTATEDIR, DAEMON_NAME, &pid_file) < 0) { VIR_ERROR(_("Can't determine pid file path.")); @@ -1194,7 +1194,7 @@ int main(int argc, char **argv) { =20 /* Ensure the rundir exists (on tmpfs on some systems) */ if (privileged) { - if (VIR_STRDUP_QUIET(run_dir, LOCALSTATEDIR "/run/libvirt") < 0) { + if (VIR_STRDUP_QUIET(run_dir, RUNSTATEDIR "/libvirt") < 0) { VIR_ERROR(_("Can't allocate memory")); goto cleanup; } diff --git a/src/remote/remote_daemon_dispatch.c b/src/remote/remote_daemon= _dispatch.c index 1bd281dd6d..ffff90e848 100644 --- a/src/remote/remote_daemon_dispatch.c +++ b/src/remote/remote_daemon_dispatch.c @@ -2192,8 +2192,8 @@ remoteDispatchProbeURI(bool readonly, for (i =3D 0; i < (ssize_t) ARRAY_CARDINALITY(drivers) && !*probed= uri; i++) { VIR_AUTOFREE(char *) sockname =3D NULL; =20 - if (virAsprintf(&sockname, "%s/run/libvirt/virt%sd-%s", - LOCALSTATEDIR, drivers[i], + if (virAsprintf(&sockname, "%s/libvirt/virt%sd-%s", + RUNSTATEDIR, drivers[i], readonly ? "sock-ro" : "sock") < 0) return -1; =20 diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index daac506672..ae72fd58fd 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -789,6 +789,12 @@ remoteGetUNIXSocketHelper(remoteDriverTransport transp= ort, userdir, sock_prefix) < 0) return NULL; } else { + /* Intentionally do *NOT* use RUNSTATEDIR here. We might + * be connecting to a remote machine, and cannot assume + * the remote host has /run. The converse is ok though, + * any machine with /run will have a /var/run symlink. + * The portable option is to thus use $LOCALSTATEDIR/run + */ if (virAsprintf(&sockname, "%s/run/libvirt/%s-%s", LOCALSTATEDIR, sock_prefix, flags & VIR_DRV_OPEN_REMOTE_RO ? diff --git a/src/secret/secret_driver.c b/src/secret/secret_driver.c index 0d5ea05f56..7512a51c74 100644 --- a/src/secret/secret_driver.c +++ b/src/secret/secret_driver.c @@ -474,7 +474,7 @@ secretStateInitialize(bool privileged, "%s/libvirt/secrets", SYSCONFDIR) < 0) goto error; if (virAsprintf(&driver->stateDir, - "%s/run/libvirt/secrets", LOCALSTATEDIR) < 0) + "%s/libvirt/secrets", RUNSTATEDIR) < 0) goto error; } else { VIR_AUTOFREE(char *) rundir =3D NULL; diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c index 60c9b75980..deadfb7da0 100644 --- a/src/security/virt-aa-helper.c +++ b/src/security/virt-aa-helper.c @@ -1232,8 +1232,8 @@ get_files(vahControl * ctl) =20 /* Unix socket for QEMU and swtpm to use */ virBufferAsprintf(&buf, - " \"/run/libvirt/qemu/swtpm/%s-swtpm.sock\" rw,\n", - shortName); + " \"%/libvirt/qemu/swtpm/%s-swtpm.sock\" rw,\n", + RUNSTATEDIR, shortName); /* Paths for swtpm to use: give it access to its state * directory, log, and PID files. */ @@ -1244,8 +1244,8 @@ get_files(vahControl * ctl) " \"%s/log/swtpm/libvirt/qemu/%s-swtpm.log\" a,\n", LOCALSTATEDIR, ctl->def->name); virBufferAsprintf(&buf, - " \"/run/libvirt/qemu/swtpm/%s-swtpm.pid\" rw,\n", - shortName); + " \"%s/libvirt/qemu/swtpm/%s-swtpm.pid\" rw,\n", + RUNSTATEDIR, shortName); =20 VIR_FREE(shortName); break; @@ -1486,14 +1486,10 @@ main(int argc, char **argv) LOCALSTATEDIR, ctl->def->name); virBufferAsprintf(&buf, " \"%s/lib/libvirt/qemu/domain-%d= -%.*s/*\" rw,\n", LOCALSTATEDIR, ctl->def->id, 20, ctl->de= f->name); - virBufferAsprintf(&buf, " \"%s/run/libvirt/**/%s.pid\" rw= k,\n", - LOCALSTATEDIR, ctl->def->name); - virBufferAsprintf(&buf, " \"/run/libvirt/**/%s.pid\" rwk,= \n", - ctl->def->name); - virBufferAsprintf(&buf, " \"%s/run/libvirt/**/*.tunnelmig= rate.dest.%s\" rw,\n", - LOCALSTATEDIR, ctl->def->name); - virBufferAsprintf(&buf, " \"/run/libvirt/**/*.tunnelmigra= te.dest.%s\" rw,\n", - ctl->def->name); + virBufferAsprintf(&buf, " \"%s/libvirt/**/%s.pid\" rwk,\n= ", + RUNSTATEDIR, ctl->def->name); + virBufferAsprintf(&buf, " \"%s/libvirt/**/*.tunnelmigrate= .dest.%s\" rw,\n", + RUNSTATEDIR, ctl->def->name); } if (ctl->files) virBufferAdd(&buf, ctl->files, -1); diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c index dfa654178b..78f1aa9aa2 100644 --- a/src/storage/storage_driver.c +++ b/src/storage/storage_driver.c @@ -273,7 +273,7 @@ storageStateInitialize(bool privileged, VIR_STRDUP(driver->autostartDir, SYSCONFDIR "/libvirt/storage/autostart") < 0 || VIR_STRDUP(driver->stateDir, - LOCALSTATEDIR "/run/libvirt/storage") < 0) + RUNSTATEDIR "/libvirt/storage") < 0) goto error; } else { configdir =3D virGetUserConfigDirectory(); diff --git a/src/util/virhostdev.c b/src/util/virhostdev.c index 6861b8a84e..a93c3f809f 100644 --- a/src/util/virhostdev.c +++ b/src/util/virhostdev.c @@ -41,7 +41,7 @@ =20 VIR_LOG_INIT("util.hostdev"); =20 -#define HOSTDEV_STATE_DIR LOCALSTATEDIR "/run/libvirt/hostdevmgr" +#define HOSTDEV_STATE_DIR RUNSTATEDIR "/libvirt/hostdevmgr" =20 static virHostdevManagerPtr manager; /* global hostdev manager, never free= d */ =20 diff --git a/src/util/virpidfile.c b/src/util/virpidfile.c index 999bccbee4..a600cfc662 100644 --- a/src/util/virpidfile.c +++ b/src/util/virpidfile.c @@ -479,7 +479,7 @@ int virPidFileRelease(const char *dir, =20 int virPidFileConstructPath(bool privileged, - const char *statedir, + const char *runstatedir, const char *progname, char **pidfile) { @@ -490,12 +490,12 @@ virPidFileConstructPath(bool privileged, * This is here just to allow calling this function with * statedir =3D=3D NULL; of course only when !privileged. */ - if (!statedir) { + if (!runstatedir) { virReportError(VIR_ERR_INTERNAL_ERROR, - "%s", _("No statedir specified")); + "%s", _("No runstatedir specified")); return -1; } - if (virAsprintf(pidfile, "%s/run/%s.pid", statedir, progname) < 0) + if (virAsprintf(pidfile, "%s/%s.pid", runstatedir, progname) < 0) return -1; } else { if (!(rundir =3D virGetUserRuntimeDirectory())) diff --git a/src/util/virsystemd.c b/src/util/virsystemd.c index e75c5b835a..2efc0dd72c 100644 --- a/src/util/virsystemd.c +++ b/src/util/virsystemd.c @@ -749,29 +749,40 @@ virSystemdActivationInitFromMap(virSystemdActivationP= tr act, goto error; } =20 + VIR_DEBUG("Got socket family %d for FD %d", + addr.data.sa.sa_family, nextfd); + for (i =3D 0; i < nmap && !name; i++) { if (map[i].name =3D=3D NULL) continue; =20 if (addr.data.sa.sa_family =3D=3D AF_INET) { - if (map[i].family =3D=3D AF_INET && - addr.data.inet4.sin_port =3D=3D htons(map[i].port)) - name =3D map[i].name; + if (map[i].family =3D=3D AF_INET) { + VIR_DEBUG("Expect %d got %d", + map[i].port, ntohs(addr.data.inet4.sin_port)= ); + if (addr.data.inet4.sin_port =3D=3D htons(map[i].port)) + name =3D map[i].name; + } } else if (addr.data.sa.sa_family =3D=3D AF_INET6) { /* NB use of AF_INET here is correct. The "map" struct * only refers to AF_INET. The socket may be AF_INET * or AF_INET6 */ - if (map[i].family =3D=3D AF_INET && - addr.data.inet6.sin6_port =3D=3D htons(map[i].port)) - name =3D map[i].name; + if (map[i].family =3D=3D AF_INET) { + VIR_DEBUG("Expect %d got %d", + map[i].port, ntohs(addr.data.inet6.sin6_port= )); + if (addr.data.inet6.sin6_port =3D=3D htons(map[i].port= )) + name =3D map[i].name; + } #ifndef WIN32 } else if (addr.data.sa.sa_family =3D=3D AF_UNIX) { - if (map[i].family =3D=3D AF_UNIX && - STREQLEN(map[i].path, - addr.data.un.sun_path, - sizeof(addr.data.un.sun_path))) - name =3D map[i].name; + if (map[i].family =3D=3D AF_UNIX) { + VIR_DEBUG("Expect %s got %s", map[i].path, addr.data.u= n.sun_path); + if (STREQLEN(map[i].path, + addr.data.un.sun_path, + sizeof(addr.data.un.sun_path))) + name =3D map[i].name; + } #endif } else { virReportError(VIR_ERR_INTERNAL_ERROR, diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c index da72b209d1..a4f6c39cb7 100644 --- a/src/vz/vz_driver.c +++ b/src/vz/vz_driver.c @@ -60,7 +60,7 @@ VIR_LOG_INIT("parallels.parallels_driver"); =20 #define PRLCTL "prlctl" =20 -#define VZ_STATEDIR LOCALSTATEDIR "/run/libvirt/vz" +#define VZ_STATEDIR RUNSTATEDIR "/libvirt/vz" =20 static virClassPtr vzDriverClass; =20 --=20 2.21.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list