Your message dated Tue, 13 May 2025 15:32:43 +0000
with message-id <[email protected]>
and subject line unblock dhcpcd
has caused the Debian Bug report #1105152,
regarding unblock: dhcpcd/1:10.1.0-11
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
1105152: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1105152
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: [email protected]
Usertags: unblock
X-Debbugs-Cc: [email protected], [email protected]
Control: affects -1 + src:dhcpcd
Please unblock package dhcpcd:
I'm filing this ahead of the 2025-05-15 hard freeze, since this upload's 10-day
transition would go past that date.
Martin-Éric
[ Reason ]
dhcpcd has long had the problem that, if it fails to obtain an IP via DHCP
before timeout _and_ IPv4LL is disabled in /etc/dhcpcd.conf, it would flat out
exit, leaving the host unreachable without manually logging in to restart
ifupdown.
This was resolved in dhcpcd 1:10.1.0-11 by merging an upstream Git cherry-pick
that makes dhcpcd fork to the background at timeout, instead of exit.
[ Impact ]
None foreseen. The change merely applies the same logic (background on timeout)
that was already used in manager mode to the interface-specific mode.
[ Tests ]
Verified to improve the outcome of a timeout: fork to background and retry DHCP
request at intervals, instead of coldly exiting.
[ Risks ]
Low. Two small upstream patches.
[ Checklist ]
[x] all changes are documented in the d/changelog
[x] I reviewed all changes and I approve them
[x] attach debdiff against the package in testing
unblock dhcpcd/1:10.1.0-11
diff -Nru dhcpcd-10.1.0/debian/changelog dhcpcd-10.1.0/debian/changelog
--- dhcpcd-10.1.0/debian/changelog 2025-04-20 12:05:44.000000000 +0300
+++ dhcpcd-10.1.0/debian/changelog 2025-05-08 21:47:28.000000000 +0300
@@ -1,3 +1,11 @@
+dhcpcd (1:10.1.0-11) unstable; urgency=medium
+
+ * [patches]
+ + Upstream Git cherry-picks: prevent exit on timeout. We keep on trying to
+ acquire an IP no matter what, switching to IPv4LL and back as needed.
+
+ -- Martin-Éric Racine <[email protected]> Thu, 08 May 2025 21:47:28
+0300
+
dhcpcd (1:10.1.0-10) unstable; urgency=medium
* [patches]
diff -Nru
dhcpcd-10.1.0/debian/patches/5db90127b1c3128480a52559a9cdbd4949a0fed4.patch
dhcpcd-10.1.0/debian/patches/5db90127b1c3128480a52559a9cdbd4949a0fed4.patch
--- dhcpcd-10.1.0/debian/patches/5db90127b1c3128480a52559a9cdbd4949a0fed4.patch
1970-01-01 02:00:00.000000000 +0200
+++ dhcpcd-10.1.0/debian/patches/5db90127b1c3128480a52559a9cdbd4949a0fed4.patch
2025-05-08 21:47:28.000000000 +0300
@@ -0,0 +1,58 @@
+From 5db90127b1c3128480a52559a9cdbd4949a0fed4 Mon Sep 17 00:00:00 2001
+From: Roy Marples <[email protected]>
+Date: Thu, 8 May 2025 17:26:52 +0100
+Subject: [PATCH] dhcpcd: fork to background on initial timeout
+Forwarded: not-needed
+
+Unless the -1, --oneshot option is given.
+dhcpcd should keep on trying to configure the interface.
+Fixes #423
+---
+ src/dhcpcd.8.in | 15 ++++++++-------
+ src/dhcpcd.c | 2 +-
+ 2 files changed, 9 insertions(+), 8 deletions(-)
+
+Index: dhcpcd/src/dhcpcd.8.in
+===================================================================
+--- dhcpcd.orig/src/dhcpcd.8.in 2025-05-08 20:07:34.775256276 +0300
++++ dhcpcd/src/dhcpcd.8.in 2025-05-08 20:07:34.771256235 +0300
+@@ -523,18 +523,19 @@
+ Timeout after
+ .Ar seconds ,
+ instead of the default 30.
++On timeout,
++.Nm
++will exit if the
++.Fl 1 ,
++.Fl Fl oneshot
++option has been given,
++otherwise it will fork into the background and keep on
++trying.
+ A setting of 0
+ .Ar seconds
+ causes
+ .Nm
+ to wait forever to get a lease.
+-If
+-.Nm
+-is working on a single interface then
+-.Nm
+-will exit when a timeout occurs, otherwise
+-.Nm
+-will fork into the background.
+ .It Fl u , Fl Fl userclass Ar class
+ Tags the DHCPv4 message with the userclass
+ .Ar class .
+Index: dhcpcd/src/dhcpcd.c
+===================================================================
+--- dhcpcd.orig/src/dhcpcd.c 2025-05-08 20:07:34.775256276 +0300
++++ dhcpcd/src/dhcpcd.c 2025-05-08 20:07:34.771256235 +0300
+@@ -198,7 +198,7 @@
+
+ ctx = arg;
+ logerrx("timed out");
+- if (!(ctx->options & DHCPCD_MANAGER)) {
++ if (ctx->options & DHCPCD_ONESHOT) {
+ struct interface *ifp;
+
+ TAILQ_FOREACH(ifp, ctx->ifaces, next) {
diff -Nru
dhcpcd-10.1.0/debian/patches/6acf895a66b143c42308777e085c1511cdebe5e0.patch
dhcpcd-10.1.0/debian/patches/6acf895a66b143c42308777e085c1511cdebe5e0.patch
--- dhcpcd-10.1.0/debian/patches/6acf895a66b143c42308777e085c1511cdebe5e0.patch
1970-01-01 02:00:00.000000000 +0200
+++ dhcpcd-10.1.0/debian/patches/6acf895a66b143c42308777e085c1511cdebe5e0.patch
2025-05-08 21:47:28.000000000 +0300
@@ -0,0 +1,49 @@
+From 6acf895a66b143c42308777e085c1511cdebe5e0 Mon Sep 17 00:00:00 2001
+From: Roy Marples <[email protected]>
+Date: Thu, 8 May 2025 16:49:44 +0100
+Subject: [PATCH] dhcpcd: Fix -b --background
+Forwarded: not-needed
+
+It's been broken for a while... just the 11 years ago in 1d5d236
+Initial fix for #423
+---
+ src/dhcpcd.c | 5 +++--
+ src/if-options.h | 4 ++--
+ 2 files changed, 5 insertions(+), 4 deletions(-)
+
+Index: dhcpcd/src/dhcpcd.c
+===================================================================
+--- dhcpcd.orig/src/dhcpcd.c 2025-05-08 20:07:34.895257487 +0300
++++ dhcpcd/src/dhcpcd.c 2025-05-08 20:07:34.891257446 +0300
+@@ -208,7 +208,8 @@
+ eloop_exit(ctx->eloop, EXIT_FAILURE);
+ return;
+ }
+- ctx->options |= DHCPCD_NOWAITIP;
++
++ ctx->options |= DHCPCD_BACKGROUND;
+ dhcpcd_daemonise(ctx);
+ }
+
+@@ -366,7 +367,7 @@
+ int exit_code;
+
+ if (ctx->options & DHCPCD_DAEMONISE &&
+- !(ctx->options & (DHCPCD_DAEMONISED | DHCPCD_NOWAITIP)))
++ !(ctx->options & (DHCPCD_DAEMONISED | DHCPCD_BACKGROUND)))
+ {
+ if (!dhcpcd_ipwaited(ctx))
+ return;
+Index: dhcpcd/src/if-options.h
+===================================================================
+--- dhcpcd.orig/src/if-options.h 2025-05-08 20:07:34.895257487 +0300
++++ dhcpcd/src/if-options.h 2025-05-08 20:07:34.891257446 +0300
+@@ -85,7 +85,7 @@
+ #define DHCPCD_ANONYMOUS (1ULL << 21)
+ #define DHCPCD_BACKGROUND (1ULL << 22)
+ #define DHCPCD_VENDORRAW (1ULL << 23)
+-#define DHCPCD_NOWAITIP (1ULL << 24) /* To force
daemonise */
++// unused (1ULL << 24)
+ #define DHCPCD_WAITIP (1ULL << 25)
+ #define DHCPCD_SLAACPRIVATE (1ULL << 26)
+ #define DHCPCD_CSR_WARNED (1ULL << 27)
diff -Nru dhcpcd-10.1.0/debian/patches/series
dhcpcd-10.1.0/debian/patches/series
--- dhcpcd-10.1.0/debian/patches/series 2025-04-20 12:05:44.000000000 +0300
+++ dhcpcd-10.1.0/debian/patches/series 2025-05-08 21:47:28.000000000 +0300
@@ -4,3 +4,5 @@
fdeb8c7945211d424c3a30912004eeb56e009865.patch
e9e40400003db2e4f12dba85acabbaf2212a520f.patch
79c195b92f892c6f22fa07332c10fd9c2a8b679a.patch
+6acf895a66b143c42308777e085c1511cdebe5e0.patch
+5db90127b1c3128480a52559a9cdbd4949a0fed4.patch
--- End Message ---
--- Begin Message ---
Unblocked.
--- End Message ---