From d602da4ae9e804fabe093fcd5c91ba785fd1677b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Fri, 18 Dec 2020 05:24:28 +0100 Subject: [PATCH 1/2] network: fix waiting for VM network uplink The network-uplink-wait.sh script may be called before xen-netfront module is even loaded (by udev). In that case, `get_qubes_managed_iface` will fail to get the interface name and the wait will be skipped. Fix this by loading xen-netfront module explicitly (do not try to synchronize with udev, which is tricky not knowing the device name). --- init/functions | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/init/functions b/init/functions index ba05485..e0161b4 100644 --- a/init/functions +++ b/init/functions @@ -138,6 +138,12 @@ get_qubes_managed_iface() { local mac local qubes_iface mac="$(qubesdb-read /qubes-mac 2> /dev/null)" + if [ -z "$mac" ]; then + # no qubes-managed network interface + return + fi + # Load the module explicitly here, to avoid waiting for udev doing that + [ -e /sys/module/xen_netfront ] || modprobe xen-netfront || : qubes_iface="$(get_iface_from_mac "$mac")" if [ "x$qubes_iface" != "x" ]; then echo "$qubes_iface" From ce9f6b2fa7e6f3feeae12e7f6db025975f6aec58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Fri, 18 Dec 2020 13:04:46 +0100 Subject: [PATCH 2/2] Increase upgrades-status-notify verbosity Print errors on stderr. yum_output variable isn't used anywhere, so not capturing stderr wont be a problem either. --- package-managers/upgrades-installed-check | 2 +- package-managers/upgrades-status-notify | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-managers/upgrades-installed-check b/package-managers/upgrades-installed-check index eec7299..d69b227 100755 --- a/package-managers/upgrades-installed-check +++ b/package-managers/upgrades-installed-check @@ -15,7 +15,7 @@ if [ -e /etc/system-release ]; then yum=yum fi # shellcheck disable=SC2034 - yum_output="$($yum -yq check-update 2>&1)" + yum_output="$($yum -yq check-update)" exit_code="$?" [ "$exit_code" -eq 100 ] && echo "false" && exit 0 [ "$exit_code" -eq 0 ] && echo "true" diff --git a/package-managers/upgrades-status-notify b/package-managers/upgrades-status-notify index fd265ad..b6c862e 100755 --- a/package-managers/upgrades-status-notify +++ b/package-managers/upgrades-status-notify @@ -2,7 +2,7 @@ set -e -upgrades_installed="$(/usr/lib/qubes/upgrades-installed-check 2>&1)" +upgrades_installed="$(/usr/lib/qubes/upgrades-installed-check)" if [ "$upgrades_installed" = "true" ]; then /usr/lib/qubes/qrexec-client-vm dom0 qubes.NotifyUpdates /bin/sh -c 'echo 0'