Bug#1124753: trixie-pu: package ifupdown/0.8.44+deb13u1

2026-01-08 Thread Daniel Gröber
Hi,

Please find the debdiff attached.

On Tue, Jan 06, 2026 at 12:48:03PM +0100, Daniel Gröber wrote:
> Package: release.debian.org
> Severity: normal
> Tags: trixie
> X-Debbugs-Cc: [email protected], [email protected], Mark 
> Kamichoff 
> Control: affects -1 + src:ifupdown
> User: [email protected]
> Usertags: pu
> 
> [ Reason ]
> ifupdown in stable introduced a regression causing none of the important
> internal scripts getting executed.
> 
> [ Impact ]
> Boot failures, service failures, IPv6 network unreachability.
> 
> Problems I've found so far: Not waiting for IPv6 DAD to complete can cause
> persistent downstream service failures (#1122511) and not waiting for IPv6
> link-locals causes DHCP configuration to fail (#1088852).
> 
> [ Tests ]
> I'm asking an affected user to confirm #1122511 is fixed before uploading
> to unstable since I don't have time to do a deep dive to confirm it
> manually myself right now.
> 
> Since the underlying breakage is the same for these bugs that should give
> us sufficient test coverage for both bugs.

I've manually validated the fix in unstable (0.8.45) in a debvm using
strace and ifup -v inspection (can see settle-dad.sh for `inet6 static` and
wait-for-ll6.sh for `inet6 dhcp` when isc-dhcp-client is installed).

Internal scripts where execable() previously returned false are now
executed properly and system binaries (tested with `inet dhcp` and
isc-dhcp-client) are still executed as expected - meaning execable() is
still returning true for them as well.

> [ Risks ]
> The actual bug is trivial once you see it.
> 
> Worst case if I fuxed up the fix doesn't fix it, but since execable() is
> already as broken as it can be it wont break any further ;-).
> 

[ Checklist (Updated) ]
  [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 (old)stable
  [x] the issue is verified as fixed in unstable

> [ Changes ]
> 
>  - Fix execable() returning false for scripts in lib(exec)
> 
>Commit 1eee7a30 ("Use relative names when executing programs") released
>in 0.8.42 failed to take into account that PATH is only set locally when
>executing commands, not globally and so getenv("PATH") returns the
>system default nor our extended PATH.
> 
> [ Other info ]
> I'll send the final debdiff as soon as I get confirmation for the fix in
> experimental.

--Daniel
diff -Nru ifupdown-0.8.44/archcommon.c ifupdown-0.8.44+deb13u1/archcommon.c
--- ifupdown-0.8.44/archcommon.c2024-08-20 04:02:23.0 +0200
+++ ifupdown-0.8.44+deb13u1/archcommon.c2026-01-08 14:16:10.0 
+0100
@@ -35,17 +35,13 @@
 
 bool execable(const char *program) {
char *filename = NULL;
-   const char *path_list;
+   const char *path_list = EXECUTE_LOCAL_PATHLIST;
const char *path, *path_end;
size_t path_len;
 
if (program[0] == '/')
return file_is_exec(program);
 
-   path_list = getenv("PATH");
-   if (!path_list)
-   return false;
-
/*
 * We allocate based on the length of PATH and the program name we
 * are looking for (plus one byte for the terminating NUL, and a
diff -Nru ifupdown-0.8.44/debian/changelog 
ifupdown-0.8.44+deb13u1/debian/changelog
--- ifupdown-0.8.44/debian/changelog2024-09-17 14:08:12.0 +0200
+++ ifupdown-0.8.44+deb13u1/debian/changelog2026-01-08 14:17:04.0 
+0100
@@ -1,3 +1,18 @@
+ifupdown (0.8.44+deb13u1) trixie; urgency=medium
+
+  * Fix ifup regression where it would return before IPv6 DAD had
+completed allowing boot to proceed and causing subsequent service
+start failures with "Cannot assign requested" or "Address not available".
+(Closes: #1122511)
+  * Fix ifup regression calling dhclient before IPv6 link-locals are
+available on interface.
+(Closes: #1088852)
+  * Fix execable() returning false for scripts in lib(exec) causing the
+above regressions. This underlying bug was introduced in 0.8.42.
+  * Add myself to Uploaders.
+
+ -- Daniel Gröber   Thu, 08 Jan 2026 14:17:04 +0100
+
 ifupdown (0.8.44) unstable; urgency=low
 
   [ Debian Janitor ]
diff -Nru ifupdown-0.8.44/debian/control ifupdown-0.8.44+deb13u1/debian/control
--- ifupdown-0.8.44/debian/control  2024-09-17 14:07:12.0 +0200
+++ ifupdown-0.8.44+deb13u1/debian/control  2026-01-08 14:16:10.0 
+0100
@@ -2,7 +2,10 @@
 Section: admin
 Priority: important
 Maintainer: Debian Networking Team 
-Uploaders: Josué Ortega , Santiago Ruano Rincón 

+Uploaders:
+ Daniel Gröber ,
+ Josué Ortega ,
+ Santiago Ruano Rincón ,
 Standards-Version: 4.6.1
 Build-Depends: debhelper-compat (= 13)
 Vcs-Git: https://salsa.debian.org/debian/ifupdown.git
diff -Nru ifupdown-0.8.44/execute.c ifupdown-0.8.44+deb13u1/execute.c
--- ifupdown-0.8.44/execute.c   2024-08-20 04:02:23.0 +0200
+++ ifupdown-0.8.44+deb13u1/execute.c   

Bug#1124753: trixie-pu: package ifupdown/0.8.44+deb13u1

2026-01-06 Thread Daniel Gröber
Package: release.debian.org
Severity: normal
Tags: trixie
X-Debbugs-Cc: [email protected], [email protected], Mark Kamichoff 

Control: affects -1 + src:ifupdown
User: [email protected]
Usertags: pu

[ Reason ]
ifupdown in stable introduced a regression causing none of the important
internal scripts getting executed.

[ Impact ]
Boot failures, service failures, IPv6 network unreachability.

Problems I've found so far: Not waiting for IPv6 DAD to complete can cause
persistent downstream service failures (#1122511) and not waiting for IPv6
link-locals causes DHCP configuration to fail (#1088852).

[ Tests ]
I'm asking an affected user to confirm #1122511 is fixed before uploading
to unstable since I don't have time to do a deep dive to confirm it
manually myself right now.

Since the underlying breakage is the same for these bugs that should give
us sufficient test coverage for both bugs.

[ Risks ]
The actual bug is trivial once you see it.

Worst case if I fuxed up the fix doesn't fix it, but since execable() is
already as broken as it can be it wont break any further ;-).

[ Checklist ]
  [x] *all* changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [ ] attach debdiff against the package in (old)stable
  [ ] the issue is verified as fixed in unstable

[ Changes ]

 - Fix execable() returning false for scripts in lib(exec)

   Commit 1eee7a30 ("Use relative names when executing programs") released
   in 0.8.42 failed to take into account that PATH is only set locally when
   executing commands, not globally and so getenv("PATH") returns the
   system default nor our extended PATH.

[ Other info ]
I'll send the final debdiff as soon as I get confirmation for the fix in
experimental.

Thanks,
--Daniel


signature.asc
Description: PGP signature