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

