[pve-devel] [PATCH qemu 1/2] vm-network-scripts: move scripts to /usr/libexec
Maximiliano Sandoval
m.sandoval at proxmox.com
Mon Nov 18 14:15:40 CET 2024
Fiona Ebner <f.ebner at proxmox.com> writes:
> It's the "qemu-server" repository, not "qemu".
>
> Am 09.10.24 um 14:55 schrieb Maximiliano Sandoval:
>> Moves the network scripts from /var/lib/qemu-server into
>> /usr/libexec/qemu-server.
>>
>> /usr/libexec is described as binaries run by programs which are not
>> intended to be directly executed by the user on [FHS 4.7]. On the other
>> hand /var/lib corresponds to variable state information, which does not
>> fit the use case here, see [FHS 5.8].
>>
>> [FHS 4.7]: https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s07.html
>> [FHS 5.8]: https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch05s08.html
>>
>
> Can this cause issues for a brief time during upgrade/unpacking, i.e.
>
> A) if the old QemuServer.pm is still loaded while the scripts get
> removed from its old location (or to be more precise, a QEMU process
> with the old parameter is started at that time)
I tested this at the time and it was not an issue.
> B) if the new QemuServer.pm gets loaded before the scripts are extracted
> to their new location (or to be more precise, a QEMU process with the
> new parameter is started at that time)
This might be an issue, but no idea how to test this, it sounds
extremely racy. It might make more sense to hold this for pve 9?
>
> ?
>
> Is there something preventing those from happening? Otherwise, we might
> need to ship the scripts to both locations until the next major release
> and drop them from the old location only then.
>
>> Signed-off-by: Maximiliano Sandoval <m.sandoval at proxmox.com>
>> ---
>> PVE/QemuServer.pm | 4 ++--
>> vm-network-scripts/Makefile | 10 +++++-----
>> vm-network-scripts/pve-bridge-hotplug | 2 +-
>> 3 files changed, 8 insertions(+), 8 deletions(-)
>>
>> diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
>> index b26da505..88100638 100644
>> --- a/PVE/QemuServer.pm
>> +++ b/PVE/QemuServer.pm
>> @@ -1759,8 +1759,8 @@ sub print_netdev_full {
>> my $script = $hotplug ? "pve-bridge-hotplug" : "pve-bridge";
>>
>> if ($net->{bridge}) {
>> - $netdev = "type=tap,id=$netid,ifname=${ifname},script=/var/lib/qemu-server/$script"
>> - .",downscript=/var/lib/qemu-server/pve-bridgedown$vhostparam";
>> + $netdev = "type=tap,id=$netid,ifname=${ifname},script=/usr/libexec/qemu-server/$script"
>> + .",downscript=/usr/libexec/qemu-server/pve-bridgedown$vhostparam";
>> } else {
>> $netdev = "type=user,id=$netid,hostname=$vmname";
>> }
>> diff --git a/vm-network-scripts/Makefile b/vm-network-scripts/Makefile
>> index 5ba537d0..dc2c85ff 100644
>> --- a/vm-network-scripts/Makefile
>> +++ b/vm-network-scripts/Makefile
>> @@ -1,12 +1,12 @@
>> DESTDIR=
>> -VARLIBDIR=$(DESTDIR)/var/lib/qemu-server
>> +LIBEXECDIR=$(DESTDIR)/usr/libexec/qemu-server
>>
>> .PHONY: install
>> install: pve-bridge pve-bridge-hotplug pve-bridgedown
>> - install -d ${VARLIBDIR}
>> - install -m 0755 pve-bridge ${VARLIBDIR}/pve-bridge
>> - install -m 0755 pve-bridge-hotplug ${VARLIBDIR}/pve-bridge-hotplug
>> - install -m 0755 pve-bridgedown ${VARLIBDIR}/pve-bridgedown
>> + install -d ${LIBEXECDIR}
>> + install -m 0755 pve-bridge ${LIBEXECDIR}/pve-bridge
>> + install -m 0755 pve-bridge-hotplug ${LIBEXECDIR}/pve-bridge-hotplug
>> + install -m 0755 pve-bridgedown ${LIBEXECDIR}/pve-bridgedown
>>
>> .PHONY: clean
>> clean:
>> diff --git a/vm-network-scripts/pve-bridge-hotplug b/vm-network-scripts/pve-bridge-hotplug
>> index f36ed408..3ae01ea5 100755
>> --- a/vm-network-scripts/pve-bridge-hotplug
>> +++ b/vm-network-scripts/pve-bridge-hotplug
>> @@ -1,3 +1,3 @@
>> #!/bin/sh
>>
>> -exec /var/lib/qemu-server/pve-bridge --hotplug "$@"
>> +exec /usr/libexec/qemu-server/pve-bridge --hotplug "$@"
More information about the pve-devel
mailing list