Your message dated Fri, 21 Nov 2025 18:56:22 +0000
with message-id <[email protected]>
and subject line Bug#1121101: fixed in network-manager 1.54.2-2
has caused the Debian Bug report #1121101,
regarding debian/rules unsuccessfully attempts to disable support for using 
dhcpcd
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.)


-- 
1121101: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1121101
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Source: network-manager
Version: 1.52.1-1
Severity: normal
Tags: upstream

This issue is a cascade of a couple mistakes. For context, I'm planning on 
tinkering with my home network and advanced IPv6 features. In anticipation that 
Network Manager's in-house DHCP client wouldn't be up to the task, and instead 
preferring that DHCP functions be handed off to a dedicated helper, I took a 
look at NetworkManager.conf(5). There one finds
dhcp
        This key sets up what DHCP client NetworkManager will use. Allowed 
values depend on build configuration; this version of NetworkManager was built 
with support for the following clients: internal, dhcpcd.

As recent discussion on debian-devel hints, ISC's dhclient is on its way out 
(disabled in Debian at 
https://salsa.debian.org/utopia-team/network-manager/-/commit/bbd537d4ffdb795581fdd9efeb4fbec4bb420cc3
 last year) and dhcpcd is a sort of successor in this function. Setting 
'dns=dhcpcd' in NetworkManager.conf has sometimes been hit-or-miss for me, and 
now I know why. The Debian package does indeed have support for dhcpcd enabled 
(despite trying to disable it in debian/rules, more on that in a moment). 
However, there is no Depends/Recommends/Suggests relationship to keep the 
dhcpcd-base package installed.
Note the split between the dhcpcd binary package, which comes with its own 
startup scripts, and dhcpcd-base, which is designed to be run on-the-fly by a 
helper like Network Manager. Thus as a user, marking the dhcpcd-base package as 
manually installed really is the wrong thing to do as it's not intended to have 
any function unless a higher-level tool like Network Manager invokes it. If I 
were to cease using Network Manager, the package would stick around despite not 
being intended to be useful on its own. Thus it's more like a library, and the 
network-manager binary package should at least have a Suggests: relationship on 
dhcpcd in this case.

While researching why there is no package relationship, I discovered that 
dhcpcd support is technically supposed to be getting disabled at build time 
anyway, so it's by a series of coincidences that it's getting built in anyway. 
In all uploads since the switch to Meson one finds the following in 
debian/rules:
override_dh_auto_configure:
        dh_auto_configure -- \
                … \
                -Ddhcpcd=false

This prompted me to ask "Is this really necessary? Why would we in Debian want 
to disable dhcpcd support at build time and make it completely impossible for a 
user to switch on at runtime? Can't we just stick with upstream's defaults?" It 
is a fortunate feature for me personally that this is getting left on anyway, 
and I'll describe how. Normally Meson has a notion of options and features that 
allows them to take on default values: thus you should only have to include 
parameters in debian/rules that are about tailoring the software to Debian's 
aims, and can stick to an upstream project's judgment about what features to 
enable if that is wanted. It is unfortunate that this capability isn't being 
used. If one looks at upstream's meson_options.txt one finds:
# dhcp clients
option('dhclient', type: 'string', value: 'no', description: 'Enable dhclient 
support (deprecated)')
option('dhcpcd', type: 'string', value: '', description: 'Enable dhcpcd 
support')

This makes no sense: these are clearly intended to be boolean options, but 
instead of using Meson's boolean option type here it wants a string answer. For 
boolean options Meson expects 'true' or 'false'. (Note that Meson has its very 
own option type for features at 
https://mesonbuild.com/Build-options.html#features which can take 'enabled', 
'disabled', or 'auto', and as explained there this has special benefits for 
packagers. Use of that should be preferred.) This string-handling code expects 
answers of 'yes' or 'no', as 'no' is set for dhclient. For dhcpcd it's simply 
an empty string, and it's not obvious what the intention is supposed to be. In 
debian/rules we override this with 'false'. Due to the use of incorrect type 
this intention doesn't get picked up on, as meson.build has:
foreach client : [ 'dhcpcd', 'dhclient' ]
        client_path = get_option(client)
        client_enable = (client_path != 'no')
        if client_enable
                …

As a string comparison, 'false' compares not equal to the word 'no', and so it 
gets interpreted as a 'yes'! And then the value of the client_path variable, 
which is intended (here) to be an actual filesystem path to the binary and not 
a boolean, is the word 'false'. And that's why in the build log after the Meson 
run you get this very silly message:
DHCP clients (default internal):
        dhcpcd: true false
        dhclient: false (deprecated)

In my view a plan for handling this issue is as follows:
 • Network Manager upstream should fix errors in their Meson port by using 
correct types and taking advantage of the facilities it provides.
 • Network Manager should expose build-time features using Meson's standard 
facilities and set reasonable defaults that ought to be adequate for any 
general-purpose distribution.
 • debian/rules can then remove redundant parameters and evaluate what should 
be built or not.

In the absence of a reason not to, I expect upstream will consider build-time 
support for dhcpcd to be a reasonable default. (In particular Network Manager's 
internal client can still be used as the runtime default.) At that point, the 
network-manager binary package should add an explicit Suggests: on dhcpcd and 
explicitly enable it as a backend in debian/rules, for the sake of interface 
stability for users.
If, for whatever reason, it is intentional that the dhcpcd backend be disabled 
at build-time in the Debian package, then the minority of users who've been 
using it should get a warning. This can be done in a Debconf-ish preinst script 
or the like that does e.g. '/usr/sbin/NetworkManager --print-config | grep -F 
dhcpcd' and defers a package upgrade.

There does not appear to be any upstream issue or work about the Meson problems 
or discussion about what reasonable defaults are, and I'd appreciate if someone 
with better perspective on Network Manager maintenance can take care of that.

Thanks

-- System Information:
Debian Release: 13.2
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 6.12.57+deb13-amd64 (SMP w/2 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages network-manager is related to:
pn  isc-dhcp-client  <none>

Attachment: signature.asc
Description: This is a digitally signed message part

Attachment: smime.p7s
Description: S/MIME cryptographic signature


--- End Message ---
--- Begin Message ---
Source: network-manager
Source-Version: 1.54.2-2
Done: Michael Biebl <[email protected]>

We believe that the bug you reported is fixed in the latest version of
network-manager, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Michael Biebl <[email protected]> (supplier of updated network-manager package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Fri, 21 Nov 2025 18:31:01 +0100
Source: network-manager
Architecture: source
Version: 1.54.2-2
Distribution: unstable
Urgency: medium
Maintainer: Utopia Maintenance Team 
<[email protected]>
Changed-By: Michael Biebl <[email protected]>
Closes: 1121101
Changes:
 network-manager (1.54.2-2) unstable; urgency=medium
 .
   * Fix dhcpcd build option.
     The intended build option "false" did not actually disable it as
     expected, so use "no" instead.
     Thanks to John Scott (Closes: #1121101)
Checksums-Sha1:
 a5d558197cd29e90daaa54b68c262fde84e7727d 3275 network-manager_1.54.2-2.dsc
 1ad8b068bc863288a6b8c23b9841d55f27d90d5b 58612 
network-manager_1.54.2-2.debian.tar.xz
 90d3d931a5d4ffe35760450c1a699a1e2709dec9 11671 
network-manager_1.54.2-2_source.buildinfo
Checksums-Sha256:
 aeabbb41dd01881e7b241af62b1a4bc3fcc01c98db23ff51aa8ebd2f5a6b956e 3275 
network-manager_1.54.2-2.dsc
 3e2d4355203dcea85906348a3b03d79c9225865bdafc6f85edc317edb9a4d3e7 58612 
network-manager_1.54.2-2.debian.tar.xz
 0bc69deb796d3fc59d20fd21e22207ef1679d660f9aeb3d7a2105b72c3b16add 11671 
network-manager_1.54.2-2_source.buildinfo
Files:
 4e7beae470407985fb5945b5e9d9080e 3275 net optional network-manager_1.54.2-2.dsc
 164952df7c40517af6c893e300c24f52 58612 net optional 
network-manager_1.54.2-2.debian.tar.xz
 31503a6b78e7e247552b204f87cfa63e 11671 net optional 
network-manager_1.54.2-2_source.buildinfo

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEECbOsLssWnJBDRcxUauHfDWCPItwFAmkgog0ACgkQauHfDWCP
ItwAPw//Seke+EVFBmWqfbvO5jb+i6Nu8iGVxQEmM7Rql4AaqOcsQn837DhjzJyG
chVD8mHix7hAooSzZylSkePIuhkc0x+7BGpXO89rzqviN+Pm6TClWYCaMIsX7vwc
lZz0KNLWIPbl2AU5/hV2UwswsvfENpWCVUSWqwHkD4FaAVPc/F4kd7nqhVRhdIj/
8pcruPQXJ3ub6qoTfxOYU72UVBtV/y04WjVufPsr6Ejqr6cTtqf6SpunV+5h5ME5
IdaUI3C2BOgl1leWF0aRNvbYbo34YPly186RO9WpXIl+1BB+0Hq5YkrNxVsW+VbG
BT8FTw3BOL7saDFGB60u77ufeL5dTz6vXmNHr2HIE1ER8OCG0sheUY+c0uWT2iAZ
0XxVPT4Ijyvj/utp1mIRp4/NEUVJnoYIlKFQfVjrQYIlQh77ILzxs+1BflzEAMBq
N6tzPYZ6kq7e6xKIi+0sZO6tbblwzqJEZBS5LPUailOAO5EHel1GfcYk+QZyx8re
PkNj1KgZl3N3yGGZ8LpsXa+gbPeZKT2sufpY03+YQGRkMxOYrSs2FUe5zVioJr8w
dw5TUSQ5AGsKNiCN0H26OayrR7x8TrgJgIsZiv/3fIX3UKb1hfnmBesWx/75ybDM
z0qvRZmIDppq51PK1r54MYiwNi3HNDQr+2kPRwoqmyaP79pfnks=
=6Ac/
-----END PGP SIGNATURE-----

Attachment: pgpuqCypBRLMB.pgp
Description: PGP signature


--- End Message ---

Reply via email to