[PATCH v2 2/2] vm/app/systemd-sysupdate: retry a few times

Alyssa Ross
2025-12-08T21:05:10Z

It takes time for the network to come up, so it's likely that the
download will fail immediately after the VM boots.

Signed-off-by: Alyssa Ross <hi@alyssa.is>
---
v2: unchanged
v1: https://spectrum-os.org/lists/archives/spectrum-devel/20251208162526.319756-2-hi@alyssa.is/

vm/app/systemd-sysupdate/download-update | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/vm/app/systemd-sysupdate/download-update b/vm/app/systemd-sysupdate/download-update
index f8f5aed..32a078f 100755
--- a/vm/app/systemd-sysupdate/download-update
+++ b/vm/app/systemd-sysupdate/download-update
@@ -1,5 +1,6 @@
#!/usr/bin/env -S execlineb -WS0
# SPDX-License-Identifier: EUPL-1.2+
+# SPDX-FileCopyrightText: 2025 Alyssa Ross <hi@alyssa.is>
# SPDX-FileCopyrightText: 2025 Demi Marie Obenour <demiobenour@gmail.com>
export LC_ALL C
export LANGUAGE C
@@ -59,7 +60,12 @@ multisubstitute {
importas -iuS SYSTEMD_SYSUPDATE_PATH
importas -iuS tmpdir
}
-if { $SYSTEMD_SYSUPDATE_PATH --definitions=${tmpdir} update }
+if {
+ forx -x 0 _ { 1 2 3 4 5 }
+ if -nt { $SYSTEMD_SYSUPDATE_PATH --definitions=${tmpdir} update }
+ foreground { sleep 1 }
+ exit 1
+}
# [ and ] are allowed in update URLs so that IPv6 addresses work, but
# they cause globbing in the curl command-line tool by default. Use --globoff
# to disable this feature.
--
2.51.0