#1100102 please package new upstream version 3.9.0

#1100102#5
Date:
2025-03-11 12:15:52 UTC
From:
To:
hi!

with trixie approaching fast, it would be nice to get a somewhat current
version of ifupdown2 in Debian. having a git repo on salsa would also be
appreciated in case you want to collaborate!

thanks,
Fabian

#1100102#10
Date:
2025-03-27 13:14:37 UTC
From:
To:
Hi Julien,

would it be okay for you if I imported the current version in the
archive to salsa (in a namespace of your choice?) and prepare an upload
with the update to 3.9.0 (and maybe do a bit of housekeeping)? If so,
would you like to review it before I go ahead?

I'm a DD so I can take care of uploading and any follow-up work needed.

Fabian

#1100102#15
Date:
2025-07-31 20:40:13 UTC
From:
To:
On 27/03/25 02:14 PM, Fabian Grünbichler wrote:

Hi,

I think this would be a good fit for the Package Salvaging process.

https://www.debian.org/doc/manuals/developers-reference/pkgs.en.html#package-salvaging

Bernhard

#1100102#20
Date:
2025-08-01 07:57:07 UTC
From:
To:
I am not sure that is necessary (yet) - I mainly did not follow-up on
this because of the incoming freeze.

@Julien my offer above still stands, if you want me to co-maintain or
takeover maintainership on the Debian side just say so :)

Fabian

#1100102#25
Date:
2025-10-08 13:11:55 UTC
From:
To:
* Fabian Grünbichler [Fri Aug 01, 2025 at 09:57:07AM +0200]:

Friendly ping, given that I just had a Debian/trixie system where I
wanted to replace ifupdown with ifupdown2 (in preparation for
deploying Proxmox VE), but it even complained about:

| Unpacking ifupdown2 (3.0.0-1.3) ...
| Setting up ifupdown2 (3.0.0-1.3) ...
| Installing new version of config file /etc/default/networking ...
| find: ‘/var/lib/dhcp/’: No such file or directory
| /usr/share/ifupdown2/addons/bridge.py:3641: SyntaxWarning: invalid escape sequence '\s'
|   for protocol in re.split(',|\s*', user_config_l2protocol_tunnel):
| /usr/share/ifupdown2/ifupdown/ifupdownmain.py:1569: SyntaxWarning: invalid escape sequence '\d'
|   vlan_match = re.match("^([\d]+)-([\d]+)", ifacename)
| /usr/share/ifupdown2/ifupdown/utils.py:233: SyntaxWarning: invalid escape sequence '\w'
|   range_match = re.match("^([\w]+)\[([\d]+)-([\d]+)\]([\.\w]+)", name)
| /usr/share/ifupdown2/ifupdown/utils.py:243: SyntaxWarning: invalid escape sequence '\w'
|   range_match = re.match("^([\w\.]+)\[([\d]+)-([\d]+)\]", name)
| /usr/share/ifupdown2/lib/iproute2.py:65: SyntaxWarning: invalid escape sequence '\s'
|   VXLAN_PEER_REGEX_PATTERN = re.compile("\s+dst\s+(\d+.\d+.\d+.\d+)\s+")

And the resulting system didn't manage to come up with networking.

regards
-mika-

#1100102#30
Date:
2025-10-09 10:01:49 UTC
From:
To:
these are https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1085641

could you share your /etc/network/interfaces[.d/*] contents? feel free
to anonymize/censor (if you do it consistently ;)).

note that if you are using DHCP, you need to install the (deprecated)
isc-dhcp-client if using ifupdown2, since that is the only client
implementation currently supported by it. it's currently only Suggested
by ifupdown2, so this is easily missed and "stock" trixie doesn't come
with it pre-installed (anymore).

I will see about preparing an NMU or starting ITS for updating and
fixing related packaging issues, and then see what we can do to improve
the dhcp client situation upstream as well.

#1100102#35
Date:
2025-10-09 15:08:57 UTC
From:
To:
Hi,

Sure, you can go ahead and prepare/handle the upload, i'd appreciate that! I don't have much time at the moment for upstream unfortunately.
I plan to upstream more code to our github repo soon-ish. But we could make a new upload whenever that happens.

Let me know what you need from me.

Julien


these are https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.debian.org%2Fcgi-bin%2Fbugreport.cgi%3Fbug%3D1085641&data=05%7C02%7Cjfortin%40nvidia.com%7C4fbbf09c69d24e9bea1808de071ae0ac%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638956009192108224%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=qOFueSWKLUv2RFk4bFODBXD%2FSxssnIdU5ID1C5bLqR0%3D&reserved=0<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1085641>

could you share your /etc/network/interfaces[.d/*] contents? feel free
to anonymize/censor (if you do it consistently ;)).

note that if you are using DHCP, you need to install the (deprecated)
isc-dhcp-client if using ifupdown2, since that is the only client
implementation currently supported by it. it's currently only Suggested
by ifupdown2, so this is easily missed and "stock" trixie doesn't come
with it pre-installed (anymore).

I will see about preparing an NMU or starting ITS for updating and
fixing related packaging issues, and then see what we can do to improve
the dhcp client situation upstream as well.

#1100102#40
Date:
2025-10-09 18:20:31 UTC
From:
To:
Hi!

* Fabian Grünbichler [Thu Oct 09, 2025 at 12:01:49PM +0200]:

Right, thanks for the pointer. :)

It was generated by Hetzner's installimage and looked like this
(using RFC5737- + RFC3849-style IPs instead of the actual IPs, no
files inside /etc/network/interfaces.d/):

| ### Hetzner Online GmbH installimage
|
| source /etc/network/interfaces.d/*
|
| auto lo
| iface lo inet loopback
| iface lo inet6 loopback
|
| auto enp6s0
| iface enp6s0 inet static
|   address 203.0.113.145
|   netmask 255.255.255.192
|   gateway 203.0.113.129
|   # route 203.0.113.128/26 via 203.0.113.129
|   up route add -net 203.0.113.128 netmask 255.255.255.192 gw 203.0.113.129 dev enp6s0
|
| iface enp6s0 inet6 static
|   address 2001:db8:123:3e3::2
|   netmask 64
|   gateway fe80::1

So no DHCP usage in this situation.

ACK

The system went into production usage already, but now when thinking
about what happened and looking at my docs, I recalled that when one
switches from ifupdown to ifupdown2 and then purges the ifupdown
package, the networking.service goes missing.

Demonstration in a trixie podman container:

| root@9df2c9729f5f:/# apt install systemd
| [...]
|
| root@9df2c9729f5f:/# apt install ifupdown
| Installing:
|   ifupdown
|
| Installing dependencies:
|   adduser  dhcpcd-base  iproute2  krb5-locales  libbpf1  libcap2-bin  libcom-err2  libelf1t64  libgssapi-krb5-2  libk5crypto3  libkeyutils1  libkrb5-3  libkrb5support0  libmnl0  libpam-cap  libtirpc-common  libtirpc3t64  libxtables12
|
| Suggested packages:
|   liblocale-gettext-perl  perl  cron  quota  openresolv  | resolvconf  | systemd-resolved  ppp  rdnssd  python3:any  krb5-doc  krb5-user
|
| Summary:
|   Upgrading: 0, Installing: 19, Removing: 0, Not Upgrading: 2
|   Download size: 2807 kB
|   Space needed: 10.0 MB / 27.2 GB available
|
| Continue? [Y/n]
| Get:1 http://deb.debian.org/debian trixie/main amd64 adduser all 3.152 [191 kB]
| Get:2 http://deb.debian.org/debian trixie/main amd64 dhcpcd-base amd64 1:10.1.0-11 [201 kB]
| Get:3 http://deb.debian.org/debian trixie/main amd64 libelf1t64 amd64 0.192-4 [189 kB]
| [...]
|
| root@9df2c9729f5f:/# apt install ifupdown2
| The following package was automatically installed and is no longer required:
|   dhcpcd-base
| Use 'apt autoremove' to remove it.
|
| Upgrading:
|   libssl3t64  openssl-provider-legacy
|
| Installing:
|   ifupdown2
|
| Installing dependencies:
|   ca-certificates  libffi8  libgpm2  libncursesw6  libpython3-stdlib  libpython3.13-minimal  libpython3.13-stdlib  libreadline8t64  media-types  netbase  openssl  python3  python3-minimal  python3.13  python3.13-minimal  readline-common
|
| Suggested packages:
|   isc-dhcp-client  bridge-utils  ethtool  python3-gvgen  python3-mako  gpm  python3-doc  python3-tk  python3-venv  python3.13-venv  python3.13-doc  binutils  binfmt-support  readline-doc
|
| REMOVING:
|   ifupdown
|
| Summary:
|   Upgrading: 2, Installing: 17, Removing: 1, Not Upgrading: 0
|   Download size: 10.9 MB
|   Space needed: 28.3 MB / 27.2 GB available
|
| Continue? [Y/n]
| Get:1 http://deb.debian.org/debian-security trixie-security/main amd64 openssl-provider-legacy amd64 3.5.1-1+deb13u1 [307 kB]
| Get:2 http://deb.debian.org/debian-security trixie-security/main amd64 libssl3t64 amd64 3.5.1-1+deb13u1 [2437 kB]
| [...]
|
| root@9df2c9729f5f:/# ls -la /etc/systemd/system/network-online.target.wants/networking.service /etc/systemd/system/multi-user.target.wants/networking.service
| lrwxrwxrwx 1 root root 42 Oct  9 17:24 /etc/systemd/system/multi-user.target.wants/networking.service -> /usr/lib/systemd/system/networking.service
| lrwxrwxrwx 1 root root 42 Oct  9 17:24 /etc/systemd/system/network-online.target.wants/networking.service -> /usr/lib/systemd/system/networking.service
|
| root@9df2c9729f5f:/# apt purge ifupdown
| The following package was automatically installed and is no longer required:
|   dhcpcd-base
| Use 'apt autoremove' to remove it.
|
| REMOVING:
|   ifupdown*
|
| Summary:
|   Upgrading: 0, Installing: 0, Removing: 1, Not Upgrading: 0
|   Space needed: 0 B / 27.1 GB available
|
| Continue? [Y/n]
| (Reading database ... 8063 files and directories currently installed.)
| Purging configuration files for ifupdown (0.8.44) ...
|
| root@9df2c9729f5f:/# ls -la /etc/systemd/system/network-online.target.wants/networking.service /etc/systemd/system/multi-user.target.wants/networking.service
| ls: cannot access '/etc/systemd/system/network-online.target.wants/networking.service': No such file or directory
| ls: cannot access '/etc/systemd/system/multi-user.target.wants/networking.service': No such file or directory
| root@9df2c9729f5f:/#

And looking at my own customer documentation, I also found the
reference for this problem in the Proxmox BTS:
https://bugzilla.proxmox.com/show_bug.cgi?id=2950 :)

Great, thanks. :)

regards
-mika-

#1100102#45
Date:
2025-10-13 09:00:52 UTC
From:
To:
ha :)

so yeah, I think this would require coordination between

- ifupdown
- ifupdown2
- ifupdown-ng (which doesn't currently manage networking.service, so is
  only affected when being switched to, but doesn't cause the problem
  itself);

in order to avoid the disable call to systemctl in case of purge, if
another implementation providing networking.service is still around..

AFAICT, this would require quite ugly handling (effectively overriding
the systemd dh call, copying the maintainer script code it would have
generated, but adding another guard for networking.service being
around?).

in any case, switching to ifupdown2 can only be fixed in ifupdown (and
vice-versa).

#1100102#50
Date:
2025-10-14 06:23:41 UTC
From:
To:
Hi,

* Fabian Grünbichler [Mon Oct 13, 2025 at 11:00:52AM +0200]:

:)

ACK. FTR, I also verified it on the production system, with
ifupdown2 being present (v3.3.0-1+pmx10) and ifupdown removed, but
not yet purged. The workaround was:

  sudo dpkg --purge ifupdown
  sudo systemctl enable networking

Then it continues to work as expected.

ACK. What *might* help as a workaround could be a check within
ifupdown2's maintainer scripts for a *removed* but not yet *purged*
ifupdown package. Then it could provide a warning and instructions
how to fix this. This might help users who are not aware of this
issue, at least until it's properly handled between
ifupdown/ifupdown2 without requiring manual intervention?

regards
-mika-

#1100102#55
Date:
2025-10-14 07:29:33 UTC
From:
To:
https://salsa.debian.org/debian/ifupdown-ng/-/commit/fad9af1f6ec26f592ac056d5497f269c7f6d28bc

is what Daniel (the ifupdown-ng maintainer) came up with yesterday after
a short chat.

it's a bit of a hack, and relies on the fact that the Debian systemctl
wrappers don't actually call `systemctl disable foo` (which would again
disable the real service as well, and not just networking.service), but
clean up the links manually without accounting for aliasing, but it
seems to work as a stop-gap measure.

it also of course still leaves `networking.service` (now an alias)
disabled, which might mean breaking custom integration relying on that
name being used, so it's only a partial solution in any case.

we'd either need to adapt the integration/wrappers to handle multiple
owners of a unit name correctly, or override them to get a complete
fix...

#1100102#60
Date:
2025-10-23 08:17:34 UTC
From:
To:
Hi!

I've prepared a "modern style" git-buildpackage based repository on
salsa:

https://salsa.debian.org/fg/ifupdown2

I tried to pick improvements from upstream's packaging, and sync my
changes back where I think they make sense for upstream as well.

If this looks okay to you, I'd create the "real" repository under the
debian/ namespace on salsa, push there and upload the package.

If you want things done differently, please tell - I am of course open
for suggestions ;)

Fabian

#1100102#65
Date:
2026-03-29 17:16:45 UTC
From:
To:
Hi !

Is there any update regarding the new ifupdown2 upstream packaging?

I’m using version 3.3.0-1+pmx12 from the Proxmox 9 repository with
complex network setup (vrf, vrrp integration with frr , xfrm interfaces
) , and it works perfectly.

Thank you.Best regards,
csszep

#1100102#70
Date:
2026-06-09 07:02:34 UTC
From:
To:
Hi,

I've found

https://salsa.debian.org/fg/ifupdown2

with recent commits.  While I understand Julian's mail in this bug
report[1] as "please go ahead".  I consider it a very good point in time
for the Forky release cycle to upload now and leave enough time for
testing before the Freeze.

Kind regards
    Andreas.


[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1100102#35

#1100102#75
Date:
2026-06-09 12:08:53 UTC
From:
To:
Hi!

I do not think there is any need to involve the "Salvaging Team" here,
since I already offered helping with or taking over maintenance.

While Julien gave his OK to updating to 3.9.0, he did not reply to my
last offer of modernizing and moving the packaging (which is currently
in the upstream GH repository) to salsa. Out of courtesy, I wanted to
wait for an ack for this rather big step as well (though I do have to
admit - I dropped the ball on following up after there was no reaction -
time does fly sometimes after all ;)).

@Julien - does the above sound okay? then I will do another pass of
updating that repository, push it to a non-personal part of salsa and do
the upload.

Fabian

#1100102#80
Date:
2026-06-09 12:20:37 UTC
From:
To:
Hi,

I am still maintaining ifupdown2. I plan to release a new version on github by August 15th, then I will do the necessary to get it uploaded to Forky.

Julien


Hi!

I do not think there is any need to involve the "Salvaging Team" here,
since I already offered helping with or taking over maintenance.

While Julien gave his OK to updating to 3.9.0, he did not reply to my
last offer of modernizing and moving the packaging (which is currently
in the upstream GH repository) to salsa. Out of courtesy, I wanted to
wait for an ack for this rather big step as well (though I do have to
admit - I dropped the ball on following up after there was no reaction -
time does fly sometimes after all ;)).

@Julien - does the above sound okay? then I will do another pass of
updating that repository, push it to a non-personal part of salsa and do
the upload.

Fabian

#1100102#85
Date:
2026-06-09 12:37:07 UTC
From:
To:
Hi Julien,

Am Tue, Jun 09, 2026 at 12:20:37PM +0000 schrieb Julien Fortin:

Thank you for your work on ifupdown2.  I would consider it a good idea
if the Debian maintenance would be done in Git on Salsa.  Currently we
have

https://salsa.debian.org/fg/ifupdown2

It might make sense to move this repository to the Debian team for
easier collaboration.  In any case it helps to declare Vcs fields
to the packaging repository to enable contributions via MRs.

Thanks a lot for considering
    Andreas.

#1100102#90
Date:
2026-06-09 12:58:13 UTC
From:
To:
Hi,

Looks like the Salsa repo is ahead of what we have on github.
I will double check what the differences are closer to Aug 15th.

I tried creating an account on Salsa but it needs to be approved by an admin.

Julien


Thank you for your work on ifupdown2.  I would consider it a good idea
if the Debian maintenance would be done in Git on Salsa.  Currently we
have

https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fsalsa.debian.org%2Ffg%2Fifupdown2&data=05%7C02%7Cjfortin%40nvidia.com%7C357c54e3eb784ccf840008dec623d28b%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C639166054345728680%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=hF1XzISKKtLnOcMUgCaoVrNY1cAxBl3i872GmfjgnHQ%3D&reserved=0<https://salsa.debian.org/fg/ifupdown2>

It might make sense to move this repository to the Debian team for
easier collaboration.  In any case it helps to declare Vcs fields
to the packaging repository to enable contributions via MRs.

Thanks a lot for considering
    Andreas.

#1100102#95
Date:
2026-06-09 14:09:48 UTC
From:
To:
Hi,

Am Tue, Jun 09, 2026 at 12:58:13PM +0000 schrieb Julien Fortin:

Well, the problem is that the upstream code should not be merged with
the Debian packaging[1].  This is why packaging on Salsa should be
prefered.

As long as you simply work on the ifupdown2 upstream code there should
be no conflict at all.

Cool.  I guess Fabian will grant you push permissions to cooperate
on the packaging.

Kind regards
    Andreas.

[1] https://wiki.debian.org/UpstreamGuide#Do_not_include_a_.2Fdebian_directory