[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1105152: marked as done (unblock: dhcpcd/1:10.1.0-11)



Your message dated Tue, 13 May 2025 15:32:43 +0000
with message-id <E1uErcZ-001Xm4-2D@respighi.debian.org>
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 owner@bugs.debian.org
immediately.)


-- 
1105152: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1105152
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
X-Debbugs-Cc: dhcpcd@packages.debian.org, martin-eric.racine@iki.fi
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 <martin-eric.racine@iki.fi>  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 <roy@marples.name>
+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 <roy@marples.name>
+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 ---

Reply to: