• Re: ifupdown maintenance

    From Daniel =?utf-8?Q?Gr=C3=B6ber?=@21:1/5 to All on Sun Jul 7 16:20:01 2024
    Hi Martin & all,

    On Sun, Jul 07, 2024 at 12:38:34PM +0300, Martin-Éric Racine wrote:
    While discussing pending issues with Santiago (ifupdown's de-facto maintainer), we came to the conclusion that team maintenance of just
    one ifupdown implementation would be a better way to go than having 3 different implementations of the same.

    Is that discussion public? What's the reasoning of that conclusion?

    Frankly I don't think we should be having this/these discussions in
    private. So I'm CC'ing d-devel for lack of a better suited ML.

    This e-mail is meant to launch discussion over which of the 3
    implementations would be the best candidate for this.

    Santiago, how do you feel about ifupdown's future maintainability and
    feature development? I honestly never looked into why people started
    writing ifupdown replacements. I had my own gripes with it so I never questioned it but I'm happy to hear why we should all rally around it.

    For me the reason to work on ifupdown-ng is that it has a better core
    design, clean&modern code, an active upstream community, a ***test suite***
    and the potential to fully replace ifupdown without breaking anyone's
    system doing it. Full compatibility is not there yet. I'm working on it,
    see [1] but I'm optimistic so far.

    [1]: https://github.com/ifupdown-ng/ifupdown-ng/issues/247

    From where I'm sitting ifupdown2 is completely out of the question as *the* Debian ifupdown since it doesn't even support *basic* IPv6 use-cases like DHCPv6. Upstream community seems nonexistant since this is software by a
    corp for a corp where community building was probably never the
    goal. Admittedly I didn't look very hard, this is just my impression
    currently.

    I'm sure it has it's niche thought and that brings my back to my initial concern: why exactly does it make sense to converge on a single
    implementation at this point? Cause I don't see it.

    DHCP on the other hand affects us all. I'd be very much on board with
    pooling resources around that.

    --Daniel

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

    iQIzBAABCAAdFiEEV6G/FbT2+ZuJ7bKf05SBrh55rPcFAmaKnpUACgkQ05SBrh55 rPe+yw//dG6+iTB/Y58PTvp+4SdGfd7UrWQzKdH66iLZhuN0OOmKkdkKWzzbl3Hy 4UYSVJxJbKhkhSuCeFXUfkygfJLjflEs2tABQeMATABz/nBCxNAcDRF2Nx0AfSi/ xBQSluRRbjzsPcuDue1XZTjrQRDoo9F28CN+fP422H6z9b7iSsyWo8uTooBlHK8I LJg9h4reT35DBA318O50MLnndQZJd+30yMz8erOXBIUZysgVzn2R7koO+3wqEY9h EPlNOf4oaO5sjnkjsdp41Au/S7XHKsq8J9IyhwQZXTyvgNC4FnP3huodqoP0PsF/ Z6WmyX1dPPlcuykxNHfNhd3+JirokTgOI/iRfnArQR1/vaUqXwuGptLOMU5yFjSM SLLbkT6ig9HvOHV6ZFzlR3yznxCQVmZC4TmroqUrqT/3rYoR+qH9KW6QlpJd4brR nydy6aBhjOBnYGKWHBzXVAncZuRDdCsQLhBrRSzCyUDXvAoFgc0LQJiNJg+7vFTG mOhr5TmlkTkuKP81jx3VbnSaFYQlOYEmGeZ5JeZis4Ssm/ph/2oSWNjNhwt7UuZe CKO4OfHrNk+WiO/EzhRPSK2J5zuwpcCFDuHIGblqjXol6c0txLXuOkwqm3pcZVN2 weSFbK+g0fmwb+Q2/QVbyk3NgKbrvw1VZdSSXYjzPB4hfFNxRRw=
    =fSXA
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Martin=2D=C3=89ric_Racine@21:1/5 to All on Sun Jul 7 17:30:01 2024
    su 7. heinäk. 2024 klo 16.56 Daniel Gröber (dxld@darkboxed.org) kirjoitti:
    On Sun, Jul 07, 2024 at 12:38:34PM +0300, Martin-Éric Racine wrote:
    While discussing pending issues with Santiago (ifupdown's de-facto maintainer), we came to the conclusion that team maintenance of just
    one ifupdown implementation would be a better way to go than having 3 different implementations of the same.

    Is that discussion public? What's the reasoning of that conclusion?

    Not until now.

    Basically, there's pending issues involving ifupdown and DHCP clients
    that I've randomly discussed with Santiago.

    One of these is to swap the default DHCP client (isc-dhcp-client
    i.e.dhclient to dhcpcd-base).

    Another is the plethora of unresolved issues with ifupdown and
    Santiago's limited time to devote to its maintenance. He initially
    asked if I'd be interested in maintaining it, then pondered whether
    having 3 implementations even makes sense to begin with. I suggested
    contacting the maintainers of all 3 implementation to discuss this.

    Frankly I don't think we should be having this/these discussions in
    private. So I'm CC'ing d-devel for lack of a better suited ML.

    Indeed.

    This e-mail is meant to launch discussion over which of the 3 implementations would be the best candidate for this.

    Santiago, how do you feel about ifupdown's future maintainability and
    feature development? I honestly never looked into why people started
    writing ifupdown replacements. I had my own gripes with it so I never questioned it but I'm happy to hear why we should all rally around it.

    I've long wondered how we ended up with so many implementations. Team maintenance of just one implementation would make more sense.

    For me the reason to work on ifupdown-ng is that it has a better core
    design, clean&modern code, an active upstream community, a ***test suite*** and the potential to fully replace ifupdown without breaking anyone's
    system doing it. Full compatibility is not there yet. I'm working on it,
    see [1] but I'm optimistic so far.

    [1]: https://github.com/ifupdown-ng/ifupdown-ng/issues/247

    Noted.

    From where I'm sitting ifupdown2 is completely out of the question as *the* Debian ifupdown since it doesn't even support *basic* IPv6 use-cases like DHCPv6. Upstream community seems nonexistant since this is software by a
    corp for a corp where community building was probably never the
    goal. Admittedly I didn't look very hard, this is just my impression currently.

    That's also my impression.

    DHCP on the other hand affects us all. I'd be very much on board with
    pooling resources around that.

    dhcpcd covers both v4 and v6 transparently and also provides IPv6-PD.
    The current plan is to swap ifupdown's default to prefer it to
    dhclient and to swap Priority between dhclient and dhcpcd-base.

    Martin-Éric

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Santiago Ruano =?iso-8859-1?Q?Rinc=@21:1/5 to All on Mon Jul 8 17:30:01 2024
    El 07/07/24 a las 18:02, Martin-ric Racine escribi:
    su 7. heink. 2024 klo 16.56 Daniel Grber (dxld@darkboxed.org) kirjoitti:
    On Sun, Jul 07, 2024 at 12:38:34PM +0300, Martin-ric Racine wrote:
    While discussing pending issues with Santiago (ifupdown's de-facto maintainer), we came to the conclusion that team maintenance of just
    one ifupdown implementation would be a better way to go than having 3 different implementations of the same.

    Is that discussion public? What's the reasoning of that conclusion?

    Not until now.

    Thanks Martin-ric for initiating the discussion, and Daniel for making
    it public. The topic should have had to be discussed openly at some
    point.

    Basically, there's pending issues involving ifupdown and DHCP clients
    that I've randomly discussed with Santiago.

    One of these is to swap the default DHCP client (isc-dhcp-client
    i.e.dhclient to dhcpcd-base).

    Another is the plethora of unresolved issues with ifupdown and
    Santiago's limited time to devote to its maintenance. He initially
    asked if I'd be interested in maintaining it, then pondered whether
    having 3 implementations even makes sense to begin with. I suggested contacting the maintainers of all 3 implementation to discuss this.

    [...]

    This e-mail is meant to launch discussion over which of the 3 implementations would be the best candidate for this.

    Santiago, how do you feel about ifupdown's future maintainability and feature development? I honestly never looked into why people started writing ifupdown replacements. I had my own gripes with it so I never questioned it but I'm happy to hear why we should all rally around it.

    I've long wondered how we ended up with so many implementations. Team maintenance of just one implementation would make more sense.

    For me the reason to work on ifupdown-ng is that it has a better core design, clean&modern code, an active upstream community, a ***test suite***

    I fully acknowledge this. After trying to fix some of the ifupdown bugs
    but hitting some design issues, I think it makes more sense to focus all
    the efforts in just one of the implementations, and since ifupdown-ng
    has all the above mentioned advantages, I'd would be in favor of
    replacing ifupdown by ifupdown-ng...

    and the potential to fully replace ifupdown without breaking anyone's system doing it. Full compatibility is not there yet. I'm working on it, see [1] but I'm optimistic so far.

    [1]: https://github.com/ifupdown-ng/ifupdown-ng/issues/247

    Noted.

    ... but it would be *great* to make ifupdown-ng a drop-in replacement
    first.

    From where I'm sitting ifupdown2 is completely out of the question as *the* Debian ifupdown since it doesn't even support *basic* IPv6 use-cases like DHCPv6. Upstream community seems nonexistant since this is software by a corp for a corp where community building was probably never the
    goal. Admittedly I didn't look very hard, this is just my impression currently.

    That's also my impression.

    and the python dependency makes me consider ifupdown2 as not an option.

    DHCP on the other hand affects us all. I'd be very much on board with pooling resources around that.

    dhcpcd covers both v4 and v6 transparently and also provides IPv6-PD.
    The current plan is to swap ifupdown's default to prefer it to
    dhclient and to swap Priority between dhclient and dhcpcd-base.

    And we would need to the change in the override first, isn't it? https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1038882

    Cheers,

    -- Santiago

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

    iHUEABYIAB0WIQR+lHTq7mkJOyB6t2Un3j1FEEiG7wUCZowEYQAKCRAn3j1FEEiG 70jqAQD1VUd047ka8VvQuyb48OBbVzj28QG1616zcsRX+3yzpwD/eWtMHxp7Lf5G ue3mucH93QIzLIZJwDYdLZ1GH73/5g0=
    =g2HM
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Martin=2D=C3=89ric_Racine@21:1/5 to All on Mon Jul 8 20:20:01 2024
    ma 8. heinäk. 2024 klo 18.23 Santiago Ruano Rincón
    (santiagorr@riseup.net) kirjoitti:

    dhcpcd covers both v4 and v6 transparently and also provides IPv6-PD.
    The current plan is to swap ifupdown's default to prefer it to
    dhclient and to swap Priority between dhclient and dhcpcd-base.

    And we would need to the change in the override first, isn't it? https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1038882

    No, ifupdown can already change its search path to put dhcpcd first
    and its Recommends from dhclient to dhcpcd-base. Changing priority and
    the override to match merely is needed to migrate what
    debian-installer will pull.

    Martin-Éric

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Martin=2D=C3=89ric_Racine@21:1/5 to All on Tue Jul 9 08:50:01 2024
    su 7. heinäk. 2024 klo 16.56 Daniel Gröber (dxld@darkboxed.org) kirjoitti:
    For me the reason to work on ifupdown-ng is that it has a better core
    design, clean&modern code, an active upstream community, a ***test suite*** and the potential to fully replace ifupdown without breaking anyone's
    system doing it. Full compatibility is not there yet. I'm working on it,
    see [1] but I'm optimistic so far.

    [1]: https://github.com/ifupdown-ng/ifupdown-ng/issues/247

    I just had a look at ifupdown-ng. The /etc/network/interface syntax
    is not a drop-in replacement for ifupdown. That's a big no-no. Those
    "use dhcp" have to go.

    Martin-Éric

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Marco d'Itri@21:1/5 to martin-eric.racine@iki.fi on Tue Jul 9 10:10:01 2024
    On Jul 09, Martin-Éric Racine <martin-eric.racine@iki.fi> wrote:

    I just had a look at ifupdown-ng. The /etc/network/interface syntax
    is not a drop-in replacement for ifupdown. That's a big no-no. Those
    "use dhcp" have to go.
    Agreed: either it's drop-in compatible or we may as well switch the
    default to NM and/or systemd-networkd.

    --
    ciao,
    Marco

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

    iHUEABYIAB0WIQQnKUXNg20437dCfobLPsM64d7XgQUCZozvowAKCRDLPsM64d7X gcNhAQCyxQirVQFjaA8aq4o78nJqUcY36ab7WhtL41hudameOgD/WzWnODLn+QNO 9pHHFs4MlG/20V0W906kNHONlW0wbQ4=
    =LQwi
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Daniel =?utf-8?Q?Gr=C3=B6ber?=@21:1/5 to All on Tue Jul 9 11:00:02 2024
    Hi Martin,

    On Tue, Jul 09, 2024 at 09:26:50AM +0300, Martin-Éric Racine wrote:
    su 7. heinäk. 2024 klo 16.56 Daniel Gröber (dxld@darkboxed.org) kirjoitti:
    For me the reason to work on ifupdown-ng is that it has a better core design, clean&modern code, an active upstream community, a ***test suite*** and the potential to fully replace ifupdown without breaking anyone's system doing it. Full compatibility is not there yet. I'm working on it, see [1] but I'm optimistic so far.

    [1]: https://github.com/ifupdown-ng/ifupdown-ng/issues/247

    I just had a look at ifupdown-ng. The /etc/network/interface syntax
    is not a drop-in replacement for ifupdown. That's a big no-no. Those
    "use dhcp" have to go.

    Not reading the documentation carefully is a bigger no-no :)

    For legacy configurations statements "use" is optional:

    If the auto_executor_selection ifupdown-ng.conf option is enabled, use
    statements will automatically be added for executors when their config‐
    uration statements are present in the interfaces file.

    The idea being that your config should declare the "executor" scripts it
    needs, a good thing IMO.

    That being said I'm sure there are a couple of dark corners where
    ifupdown-ng is not yet compatible that I haven't noticed yet, but this
    isn't one of them.

    Please note that the examples in the manpages are in what upstream
    considers the "proper new way" of doing things, they don't show the legacy
    way (also a good thing), you may have to read the code to get the full
    picture. Do let me know if any legacy-format behavioural reference-documentation is missing though.

    Since I only just realised people may now actually want to try out
    ifupdown-ng: You can co-install it with traditional ifupdown with --no-install-recommends, the ifupdown-ng-compat package is the one that conflicts: ifupdown. ifupdown-ng itself doesn't.

    Use ifup-ng/ifdown-ng, check dpkg -L for manpages some are named *-ng some aren't. Executors have their own interfaces-* manpage eg. interfaces-bridge(5).

    --Daniel

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

    iQIzBAABCAAdFiEEV6G/FbT2+ZuJ7bKf05SBrh55rPcFAmaM+5UACgkQ05SBrh55 rPfEdA//VocgiLOJiFvlC17yry5K0az7q5z+9E1leYX4RZJT2N3GE3CvXUb52N4e nDgKB24Vcaqb3e7PNp6iK4cG4jnLUBirTADga4aV3Q7PIYAEb56HlRHJA7xaEInl PXfcThaENaRKjKRSz6wfmjRArMdiso8WLbS1HmJf8PbdeOivvWHp1QREutk7WkFL zU+4/8sKDxcOuT+9mVWR5IX1H0czabcbqqxWOC6dbtxjaR2X6rX09Z4+jT1H4RLE Dig6T/wt0MkeUKOVAUEscLT/em0K/PACJozKO/kSs2yl8erq4p6B5GOW24dkaiNr rzy+2nqjg2UaMwt8h/ySoHnxvG7byK8jOCg5Rm76YnWn4OE8X3uovKoftrGOpZtV z/2YR+Ei0+zVjD8s16OsR8MxMn0MK7hnRhd1IqQkjqGoU7Mj4gaJ6ej+L5qOUuh4 DfUxzhp5jiqqc4SEAHTloWJCPo/K+9GoM1dqlvWGE5WgIY8M6U29Rr89J9CUNU5Y 2IZ9gva5C218PeHbGFJVv82LoP8td99cpfB/kFraQPHmUBpznl5JDVbdS1AnxqWa rQVjvmyEi2ZM78Poi4lM0Nh2G4N624eTYZH1EJJ1csVX4IaJO/d9ucuLN6HKwTlF JAtas/DVQuUstZakPN/V8k46No9Jxv8zMwHg2aa02ekO5P2mALI=
    =nIp7
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Matthias Urlichs@21:1/5 to All on Tue Jul 9 12:00:01 2024
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------q4OGYkr0XDde5TFZL8p6ntd9
    Content-Type: multipart/alternative;
    boundary="------------q0Nr6HDGAHAj3eJ0AIyr8EVQ"

    --------------q0Nr6HDGAHAj3eJ0AIyr8EVQ
    Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64

    SGVsbG8sDQo+IEFncmVlZDogZWl0aGVyIGl0J3MgZHJvcC1pbiBjb21wYXRpYmxlIG9yIHdl IG1heSBhcyB3ZWxsIHN3aXRjaCB0aGUNCj4gZGVmYXVsdCB0byBOTSBhbmQvb3Igc3lzdGVt ZC1uZXR3b3JrZC4NCg0KV2VsbCwgaGVyZSdzIGEgaGVyZXRpY2FsIHRob3VnaHQ6IHdoeSBk b24ndCB3ZSBkbyB0aGF0IGFueXdheSwgYXQgbGVhc3QgDQpmb3IgbmV3IGluc3RhbGxhdGlv bnM/DQoNClNvbWVib2R5IGNvdWxkIGV2ZW4gd3JpdGUgYSBjb252ZXJ0ZXIuIFNob3VsZG4n dCBiZSB0aGF0IGRpZmZpY3VsdCwgDQpBRkFJSyB0aGVyZSdzIG5vdGhpbmcgaWZ1cGRvd24g Y2FuIGRvIHRoYXQgc3lzdGVtZFstbmV0d29ya2RdIGNhbid0Lg0KDQotLSANCi0tIHJlZ2Fy ZHMNCi0tIA0KLS0gTWF0dGhpYXMgVXJsaWNocw0KDQo= --------------q0Nr6HDGAHAj3eJ0AIyr8EVQ
    Content-Type: text/html; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
    <div class="moz-cite-prefix">Hello,<br>
    </div>
    <blockquote type="cite" cite="mid:Zozvo1m-FQiOIX9B@bongo.bofh.it">
    <pre>Agreed: either it's drop-in compatible or we may as well switch the default to NM and/or systemd-networkd.</pre>
    </blockquote>
    <p>Well, here's a heretical thought: why don't we do that anyway, at
    least for new installations?<br>
    </p>
    <p>Somebody could even write a converter. Shouldn't be that
    difficult, AFAIK there's nothing ifupdown can do that
    systemd[-networkd] can't.<br>
    </p>
    <pre class="moz-signature" cols="72">--
    -- regards
    --
    -- Matthias Urlichs</pre>
    </body>
    </html>

    --------------q0Nr6HDGAHAj3eJ0AIyr8EVQ--

    --------------q4OGYkr0XDde5TFZL8p6ntd9--

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

    wsF5BAABCAAjFiEEr9eXgvO67AILKKGfcs+OXiW0wpMFAmaM+4MFAwAAAAAACgkQcs+OXiW0wpMa xw/+K/HpprzSpD4ZzT/7tpGXha5drTmAdeT9YFp9HTFVZDuZ86DWvwNhTbonD4TrHIP7526v/JzL AU+s8gdY78Gbfg7ASwaKdU/XQ8xClQXLbaaVaN6aMW33ckHXr8y3XB2VS5xwpsMnQpzQ4jW5Sibd PPfnGthQO+aUNyFnBkz0gtaDVRLuf4PEC2+PTH13R4PRSKnnSB+ErAUrxo5ui1pbK9uC09GOvJ+l oOnUYQ90XD37BDzvsE+X0JHFCOzWvJEw41kBJmGzD1W9wXhw57esmNad6gOYiIP6WHPj8iRO5QXi rOb/07EeBneWSbkMXj9rA68k+c5wpKxibJTsuoWeuNvF6Cy4FD3usXNCzyj7cM8wHUGyOc0tKdQT qTz/sFtxCk7xeVVBiYBzWB/b8Tq+vIT8qZkB2vmSvJE44JgoudqgYjrFsMyOQibLBqJSsHUSd9IL guTRYg21kGMilZNgh0HUKfR6s02oYeg8yNMKXOTP0bRS9CTGHEpvncHnYyfui0KWf7v433lqhKyt MqIyH5qRwXv0BKu0NQy9i2XEMgtBtHEbrc5pUsH76dn8iaLNLsin0VFntO20MdtnqIW/QrxrZ63g 2fuPmZ+fwKEHquJXHRsvjzLvhcV2Xv5eniVglLkckdUeYbk3DrmMUYH97VG56lpj2ZQo+/XGsFFj jGc=
    =NT83
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
  • From Daniel =?utf-8?Q?Gr=C3=B6ber?=@21:1/5 to All on Tue Jul 9 11:30:01 2024
    Hi Santiago,

    On Mon, Jul 08, 2024 at 12:23:16PM -0300, Santiago Ruano Rincón wrote:
    Santiago, how do you feel about ifupdown's future maintainability and feature development? I honestly never looked into why people started writing ifupdown replacements. I had my own gripes with it so I never questioned it but I'm happy to hear why we should all rally around it.

    I've long wondered how we ended up with so many implementations. Team maintenance of just one implementation would make more sense.

    For me the reason to work on ifupdown-ng is that it has a better core design, clean&modern code, an active upstream community, a ***test suite***

    I fully acknowledge this. After trying to fix some of the ifupdown bugs
    but hitting some design issues,

    Can you elaborate on that point? What are the sort of issues you run into
    with the traditional ifupdown design and/or it's maintenance.

    I think it makes more sense to focus all
    the efforts in just one of the implementations, and since ifupdown-ng
    has all the above mentioned advantages, I'd would be in favor of
    replacing ifupdown by ifupdown-ng...

    Good to hear.

    From the looks of the BTS page I feel like part of the burdon of
    maintaining ifupdown is that people just default to reporting any
    networking issues there, is that something you see a lot?

    Perhaps we should have a debian-networking mailing list as Maintainer to be able to load-share the user-support better?

    and the potential to fully replace ifupdown without breaking anyone's system doing it. Full compatibility is not there yet. I'm working on it, see [1] but I'm optimistic so far.

    [1]: https://github.com/ifupdown-ng/ifupdown-ng/issues/247

    Noted.

    ... but it would be *great* to make ifupdown-ng a drop-in replacement
    first.

    Naturally.

    It is pretty close though. The remaining issues I know about are documented
    in the GH issue: the locking protocol is sligtly suboptimal (and more importantly for interop: different), ifstate file is separate and interface renaming ("rename" statanza) isn't supported. I didn't even know that last
    one existed, does anyone use those?

    If you're on-board with transitioning to -ng that should make the ifstate compat pretty easy since we can freeze the old format and behaviour.

    I haven't thrown -ng at a large legacy setup in anger yet (since I don't
    have any), but for regular desktop usage with some mildly custom stuff in /etc/network/interfaces I hardly notice which ifupdown* I have installed.

    Note: For testing you have to keep in mind to (tranditional) ifdown the
    ifaces you want to test first since the ifstate is still disjoint
    currently.

    From where I'm sitting ifupdown2 is completely out of the question as *the* Debian ifupdown since it doesn't even support *basic* IPv6 use-cases like DHCPv6. Upstream community seems nonexistant since
    this is software by a corp for a corp where community building was probably never the goal. Admittedly I didn't look very hard, this is
    just my impression currently.

    That's also my impression.

    and the python dependency makes me consider ifupdown2 as not an option.

    Right, glad we're on the same page here.

    --Daniel

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

    iQIzBAABCAAdFiEEV6G/FbT2+ZuJ7bKf05SBrh55rPcFAmaNAhgACgkQ05SBrh55 rPf91A//e7CZB6ghkTVLSO7PrirViMQjeRQVQUtJovLyx3E7LEA7aLm2gfpOgXH5 Hb4rtJomcFknYG8LBBW9An/JviVD/3i5euF0WdyB5XAsAMmlI0cgtop+uIy3vj0B l4BIUYDHgGp0eraSwwJj2xtag2C57JK5p4Tz0EaCLpXkkvkYMUM9YR1NcYk5OEp3 ARPkHgCK4PbyUU+h00F0UGOYRHAyP94wC2DkMP5dpftSqgfKDuMWe33nRvEfmF4t RnYdjypGYj8SGMPZKBwBeBHlg4flO4BmjnzWpiM29SRt16MQgxai9bCyUxDs4bmS NgAMkpLPnaNIlrFmP5iDv42yt/W9P9ogcplOFnv+AiZ0gYsRiPQfMJeGuSVjeF63 igMS9UZKQbqS7mfUlJM6za3MurQ5xoGg1KtTS0hQJ56skETgIXsyuA2e8UghBt6K luuCWwcUsmBIiD+b9Vs5C7KA7A9ms3E6sAmXXn9oJIMcsgJqBK6tHI1ND6a8NStg 3BgcEezPqD6j5cvmDbtdpBpJ2ez2UchZUZPSL9JwT1ouv5zOtlyW6+d+TaIrsTp5 pGJB5coW3OvKGUGtgiunqLrrobxA3euzTyEvLzzgZGKmgU50ctdqz3ArT4xS4JQO gy7V2oDyRxqOTFHSZIyvPotMwVPqx2LXZkyhzue2BjQn5Ft4MAI=
    =4GDA
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?utf-8?Q?Bj=C3=B8rn_Mork?=@21:1/5 to Matthias Urlichs on Tue Jul 9 13:00:01 2024
    Matthias Urlichs <matthias@urlichs.de> writes:

    Agreed: either it's drop-in compatible or we may as well switch the
    default to NM and/or systemd-networkd.

    Well, here's a heretical thought: why don't we do that anyway, at
    least for new installations?

    Somebody could even write a converter. Shouldn't be that difficult,
    AFAIK there's nothing ifupdown can do that systemd[-networkd] can't.

    Run user scripts on up/down events. That's a huge blank spot in systemd-networkd. And by design, so it's really not fixable.

    Sure, we do have networkd-dispatcher but it's not quite the same. And "Somebody" would have to do a really huge job to create a complete
    automatic converter. I don't think that's worth the effort. But it's
    of course up to "Somebody" to decide how they want to spend their
    resources.


    Bjørn

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Martin=2D=C3=89ric_Racine@21:1/5 to All on Tue Jul 9 13:50:01 2024
    ti 9. heinäk. 2024 klo 11.58 Daniel Gröber (dxld@darkboxed.org) kirjoitti:
    On Tue, Jul 09, 2024 at 09:26:50AM +0300, Martin-Éric Racine wrote:
    su 7. heinäk. 2024 klo 16.56 Daniel Gröber (dxld@darkboxed.org) kirjoitti:
    For me the reason to work on ifupdown-ng is that it has a better core design, clean&modern code, an active upstream community, a ***test suite***
    and the potential to fully replace ifupdown without breaking anyone's system doing it. Full compatibility is not there yet. I'm working on it, see [1] but I'm optimistic so far.

    [1]: https://github.com/ifupdown-ng/ifupdown-ng/issues/247

    I just had a look at ifupdown-ng. The /etc/network/interface syntax
    is not a drop-in replacement for ifupdown. That's a big no-no. Those
    "use dhcp" have to go.

    Not reading the documentation carefully is a bigger no-no :)

    For legacy configurations statements "use" is optional:

    If the auto_executor_selection ifupdown-ng.conf option is enabled, use
    statements will automatically be added for executors when their config‐
    uration statements are present in the interfaces file.

    Which is not a drop-in substitute. It depends upon a configuratiomn option.

    The idea being that your config should declare the "executor" scripts it needs, a good thing IMO.

    No.

    That being said I'm sure there are a couple of dark corners where
    ifupdown-ng is not yet compatible that I haven't noticed yet, but this
    isn't one of them.

    Please note that the examples in the manpages are in what upstream
    considers the "proper new way" of doing things, they don't show the legacy way (also a good thing), you may have to read the code to get the full picture. Do let me know if any legacy-format behavioural reference-documentation is missing though.

    Claiming to offer a drop-in substitute all while nudging people
    towards a new paradigm is not welcome.

    Since I only just realised people may now actually want to try out ifupdown-ng: You can co-install it with traditional ifupdown with --no-install-recommends, the ifupdown-ng-compat package is the one that conflicts: ifupdown. ifupdown-ng itself doesn't.

    Use ifup-ng/ifdown-ng, check dpkg -L for manpages some are named *-ng some aren't. Executors have their own interfaces-* manpage eg. interfaces-bridge(5).

    Which again shows that this is not a drop-in substitute.

    Martin-Éric

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon McVittie@21:1/5 to All on Tue Jul 9 13:40:01 2024
    On Tue, 09 Jul 2024 at 12:27:58 +0200, Bjrn Mork wrote:
    Matthias Urlichs <matthias@urlichs.de> writes:
    Somebody could even write a converter. Shouldn't be that difficult,
    AFAIK there's nothing ifupdown can do that systemd[-networkd] can't.

    Run user scripts on up/down events. That's a huge blank spot in systemd-networkd. And by design, so it's really not fixable.

    If we were considering a migration from ifupdown to sd-networkd on
    existing installations, then that would indeed be a reason not to do it (without someone writing suitable mitigations, for example having the
    converter pull in networkd-dispatcher if that's necessary and sufficient
    in most cases).

    I don't think this is a reason to avoid changing the default for new installations, though. The purpose of a default is to have something that
    does the right thing, reliably, for users who do not have specialized requirements and do not necessarily know the necessary information to
    make decisions like "which network management framework do I want?" yet.

    I would tend to count "execute arbitrary user-supplied code on
    networking changes" as a specialized requirement - by definition,
    for this to happen, someone (the sysadmin) needs to have written and
    installed the user-supplied hook script. If the sysadmin has made the
    decision to do that, then they can equally well make the decision to
    install networkd-dispatcher, or ifupdown{,-ng,2} or any other networking management framework of their choice that supports the feature they need.

    (Because non-trivial networking is dynamic and can be shared between
    multiple components, and in practice this has been the case for years,
    I would personally say that if you want arbitrary actions to happen
    as a side-effect of networking state changes, a better way to achieve
    that is for long-running processes to monitor the network interfaces
    via e.g. netlink, and trigger those arbitrary actions whenever there is
    a state change, regardless of whether the state change was initiated
    by the ifupdown family, NM, networkd, Docker, libvirtd, VPN services, or something else. But I realise opinions might vary.)

    smcv

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Daniel =?utf-8?Q?Gr=C3=B6ber?=@21:1/5 to All on Tue Jul 9 14:20:01 2024
    Hi Martin,

    On Tue, Jul 09, 2024 at 02:25:02PM +0300, Martin-Éric Racine wrote:
    I just had a look at ifupdown-ng. The /etc/network/interface syntax
    is not a drop-in replacement for ifupdown. That's a big no-no. Those
    "use dhcp" have to go.

    Not reading the documentation carefully is a bigger no-no :)

    For legacy configurations statements "use" is optional:

    If the auto_executor_selection ifupdown-ng.conf option is
    enabled, use statements will automatically be added for
    executors when their config‐ uration statements are present in
    the interfaces file.

    Which is not a drop-in substitute. It depends upon a configuratiomn option.

    Which of course defaults to enabled in order to be compatible.

    Users may choose to opt-in to the more declarative "use" stanzas if they
    wish and I'd expect any new upstream executors like vrf will need them
    (haven't tried) but not traditional stanzas or if-*.d based extensions.

    I wish ifupdown-ng upstream hadn't chosen to introduce an additional set of global config options in /etc/network/ifupdown-ng.conf and I am still
    mulling getting rid of that somehow but so far I don't see a real problem there.

    Please note that the examples in the manpages are in what upstream considers the "proper new way" of doing things, they don't show the legacy way (also a good thing), you may have to read the code to get the full picture. Do let me know if any legacy-format behavioural reference-documentation is missing though.

    Claiming to offer a drop-in substitute all while nudging people
    towards a new paradigm is not welcome.

    If ifupdown's paradigm were working for people we wouldn't be having this conversation.

    I'm honestly not sure what the problem is? IMO ifupdown has a good basic approach but some of the details of it's design are ... questionable by
    todays standards.

    How else would you move /etc/network/interfaces forward without breaking anything?

    Since I only just realised people may now actually want to try out ifupdown-ng: You can co-install it with traditional ifupdown with --no-install-recommends, the ifupdown-ng-compat package is the one that conflicts: ifupdown. ifupdown-ng itself doesn't.

    Use ifup-ng/ifdown-ng, check dpkg -L for manpages some are named *-ng some aren't. Executors have their own interfaces-* manpage eg. interfaces-bridge(5).

    Which again shows that this is not a drop-in substitute.

    Have you actually looked at the packaging? There are symlinks in the ifupdown-ng-compat package to put things in the right places, but in order
    to test that the two implementations actually behave the same it is
    exceedingly convinient to have them co-installable.

    We can all have bad days, so don't take this as an attack on your
    character, but if this discussion is representative of the level of care
    you put into your Debian work I'm not sure we're a good fit for
    co-maintance, however I invite you to prove me wrong.

    --Daniel

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

    iQIzBAABCAAdFiEEV6G/FbT2+ZuJ7bKf05SBrh55rPcFAmaNKWMACgkQ05SBrh55 rPekRRAAgkUAHElWF2wDikt/OZvEq+jesLTtnt2M/wOQEFpkZ+vXv7TpG4ELvKPF mFgddSDluSWTVVjUjO+o31vYmkBkNibICqJ9ZVMkuO+pr7IkmjAMOIVVL+DziMBm veiRcV3V19Eew6qGfsbN8CWz8Shu2bpwS9FKLy63C9l+3u4bP5Mg7Syl3lg9dj7E 0sWGEr5f7LZ8bWJ3OMJKi+/XTGL5CZKRYHRfDDRynCSr6rRab5HiOT+QUFLUMrVW HgUgjaPfAVYRQNES1JnWq1aW3zAF9pxTcP3jv9FYNrCFK6h1HAvrvoCtDcXN6g18 pB+5LcZVTBRKfndxt/L9gE8xawSbeb5jUbhzKy2bewI5qYjzFuSbslwH1zc1G4eT z55pMKKsXwcxUfkGaSlb5qEHlHbhk0/MWVAQ8/ZaPteuHX5XrpbRf8tzs3eGSdgt E/r0d5B9RRyFYFJKpV42Mm6Y1t2eFg9EBrse5WE99pHMCygmtG/lqH94EEQiu9Gh y+LT/6ERTmhfJaK6pcDqjcu79MfcMqM9J6rdljxsjK1wYUZ9qM6jylqzUairV4kg Cn8D78vkPU1Cj/eWwBLydQanfbsOmI4PWQ7euzClKVRCICMNF4nazaatMAY3wPNa hvDjhi85v+/NytUK6dXjj/Hn+LQNwQQtJHeXXb++DR9W2kzafjw=
    =6QZ0
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Luca Boccassi@21:1/5 to Simon Richter on Tue Jul 9 16:10:01 2024
    On Tue, 9 Jul 2024 at 14:44, Simon Richter <sjr@debian.org> wrote:

    Hi,

    On 7/9/24 17:57, Matthias Urlichs wrote:

    Agreed: either it's drop-in compatible or we may as well switch the
    default to NM and/or systemd-networkd.

    Well, here's a heretical thought: why don't we do that anyway, at least
    for new installations?

    Both are overly complex for a static-IP-only server installation, where
    there is no requirement for an unprivileged user to modify the network configuration, or any background process at all, really. At least in
    expert mode I would expect a way to generate a static,
    unmanaged-by-anything configuration.

    As per smcv's point, if you need to manually write a static
    configuration then you can also install your favourite tool to use it.
    This is not the default case - the default case is "I have ethernet
    and/or wifi and I want DHCP v4+v6 on anything that can talk to a
    router kkthxbye"

    What would be needed for new installations is d-i support, mainly, and
    the difficulty there is saving the configuration.

    I believe NM does not have a fixed configuration format, but only a dbus
    API. Our best bet there would be a firstboot unit, but I have no idea
    whether accessing NM from a unit attached to firstboot is safe or leads
    to a dependency loop[1].

    I'm not sure if systemd-networkd is much happier long-term if we write
    its configuration from a shell script, we'd need to get some commitment
    from upstream that this is an interface, not an implementation detail,
    at least.

    I'm not sure what this means, you can write networkd configuration
    files from wherever you like, the tool doesn't care, it wouldn't even
    be able to tell the difference anyway, just drop them in the
    appropriate location in /etc/ and off you go.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Richter@21:1/5 to Matthias Urlichs on Tue Jul 9 15:50:01 2024
    Hi,

    On 7/9/24 17:57, Matthias Urlichs wrote:

    Agreed: either it's drop-in compatible or we may as well switch the
    default to NM and/or systemd-networkd.

    Well, here's a heretical thought: why don't we do that anyway, at least
    for new installations?

    Both are overly complex for a static-IP-only server installation, where
    there is no requirement for an unprivileged user to modify the network configuration, or any background process at all, really. At least in
    expert mode I would expect a way to generate a static,
    unmanaged-by-anything configuration.

    What would be needed for new installations is d-i support, mainly, and
    the difficulty there is saving the configuration.

    I believe NM does not have a fixed configuration format, but only a dbus
    API. Our best bet there would be a firstboot unit, but I have no idea
    whether accessing NM from a unit attached to firstboot is safe or leads
    to a dependency loop[1].

    I'm not sure if systemd-networkd is much happier long-term if we write
    its configuration from a shell script, we'd need to get some commitment
    from upstream that this is an interface, not an implementation detail,
    at least.

    Or we accept the UX regression of having to configure the network again
    on the first graphical login, when per-user credential stores are
    available through the appropriate services.

    Simon

    [1] there should really be documentation in Policy what dependencies are allowed.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Ansgar =?UTF-8?Q?=F0=9F=99=80?=@21:1/5 to Simon Richter on Tue Jul 9 16:30:01 2024
    Hi Simon,

    On Tue, 2024-07-09 at 22:44 +0900, Simon Richter wrote:
    I believe NM does not have a fixed configuration format, but only a dbus API.

    It's perfectly fine to edit configuration files for NM manually, see man:nm-settings-keyfile(5).

    Our best bet there would be a firstboot unit, but I have no idea
    whether accessing NM from a unit attached to firstboot is safe or leads
    to a dependency loop[1].

    So this is not required and seems overly complicated.

    I'm not sure if systemd-networkd is much happier long-term if we write
    its configuration from a shell script, we'd need to get some commitment
    from upstream that this is an interface, not an implementation detail,
    at least.

    This seems similar to writing .service units via a shell script (or
    manually) which doesn't seem to be a problem.

    Or similar to writing /etc/network/interfaces: are we really sure this
    is safe long-term? We probably should not bet on that!

    Ansgar

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon McVittie@21:1/5 to All on Tue Jul 9 19:10:01 2024
    On Tue, 09 Jul 2024 at 16:21:16 +0200, Ansgar 🙀 wrote:
    On Tue, 2024-07-09 at 22:44 +0900, Simon Richter wrote:
    I believe NM does not have a fixed configuration format, but only a dbus API.

    It's perfectly fine to edit configuration files for NM manually, see man:nm-settings-keyfile(5).

    ... and debian-installer already knows how to write out these files,
    and has done so for more than a decade if I'm reading correctly. This is
    not a recent innovation, and anyone who has installed our default desktop environment in the last few years - especially if they used wifi during installation - has been relying on this code path.

    <https://salsa.debian.org/installer-team/netcfg/> is responsible
    for converting the network configuration that was used temporarily in
    the d-i environment into a NM configuration file if NM is installed,
    or an ifupdown configuration otherwise. Writing the equivalents into /etc/systemd/network for systemd-networkd would presumably not be rocket science, it's a simple .ini-like syntax similar to the one NM uses.

    smcv

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Matthias Urlichs@21:1/5 to All on Tue Jul 9 20:30:02 2024
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------zdl7lJmhfJs0N8n40jUfkiLi
    Content-Type: multipart/alternative;
    boundary="------------hglGnqjbltfTun8JGEgbuE7z"

    --------------hglGnqjbltfTun8JGEgbuE7z
    Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64

    T24gMDkuMDcuMjQgMTI6MjcsIEJqw7hybiBNb3JrIHdyb3RlOg0KPiBSdW4gdXNlciBzY3Jp cHRzIG9uIHVwL2Rvd24gZXZlbnRzLiAgVGhhdCdzIGEgaHVnZSBibGFuayBzcG90IGluDQo+ IHN5c3RlbWQtbmV0d29ya2QuICBBbmQgYnkgZGVzaWduLCBzbyBpdCdzIHJlYWxseSBub3Qg Zml4YWJsZS4NCg0KV2VsbCwgSSd2ZSBiZWVuIGFwdC1wdXJnaW5nIGlmdXBkb3duIGZvciBh bG1vc3QgYSBkZWNhZGUgYnkgbm93IGFuZCANCmRpZG4ndCB5ZXQgbWlzcyBhbnkgb2YgaXQu DQoNCg0KWW91IGNhbiB0aGluayB3aGV0aGVyIHRoYXQgc2NyaXB0IGlzIHN0aWxsIHJlcXVp cmVkOyBtYXliZSANCnN5c3RlbWQtbmV0d29ya2QgLyAtcmVzb2x2ZWQgY2FuIGRvIGl0IGZv ciB5b3UuDQoNCk9yIHlvdSBjYW4gbW9uaXRvciBzeXN0ZW1kJ3MgYW5kIHN5c3RlbWQtbmV0 d29ya2QncyBkYnVzIGZvciBuZXR3b3JrIA0KZGV2aWNlcyBhcHBlYXJpbmcgKG9yIHZhbmlz aGluZykgYW5kIHJ1biB0aGUgcmVxdWlzaXRlIHNjcmlwdC4NCg0KT3IgeW91IGNhbiB1c2Ug dWRldiBydWxlcy4NCg0KT3IgeW91IGNhbiB0ZWxsIGEgdW5pdCB0byBydW4gb25seSB3aGVu IGEgc3BlY2lmaWMgbmV0d29yayBpbnRlcmZhY2UgaXMgDQpwcmVzZW50Lg0KDQpPciB5b3Ug Y2FuIHVzZSBOTSBhbmQgaXRzIHNjcmlwdCBkaXNwYXRjaGVyIGluc3RlYWQuDQoNCk9yLCB3 ZWxsLCB5b3UgY2FuIG9mIGNvdXJzZSBjb250aW51ZSB0byB1c2UgaWZ1cGRvd24gaWYgbm9u ZSBvZiB0aGUgDQphYm92ZSB3b3JrIGZvciB5b3UuIEJ1dCB0aGF0IGRvZXNuJ3QgbWVhbiBp ZnVwZG93biBzaG91bGQgYmUgdGhlIGRlZmF1bHQgDQpJTUhPLg0KDQotLSANCi0tIHJlZ2Fy ZHMNCi0tIA0KLS0gTWF0dGhpYXMgVXJsaWNocw0KDQo= --------------hglGnqjbltfTun8JGEgbuE7z
    Content-Type: text/html; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
    <div class="moz-cite-prefix">On 09.07.24 12:27, Bjørn Mork wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:87msmquafl.fsf@miraculix.mork.no">
    <pre>Run user scripts on up/down events. That's a huge blank spot in systemd-networkd. And by design, so it's really not fixable.</pre>
    </blockquote>
    <p>Well, I've been apt-purging ifupdown for almost a decade by now
    and didn't yet miss any of it.</p>
    <p><br>
    </p>
    <p>You can think whether that script is still required; maybe
    systemd-networkd / -resolved can do it for you.<br>
    </p>
    <p>Or you can monitor systemd's and systemd-networkd's dbus for
    network devices appearing (or vanishing) and run the requisite
    script.</p>
    <p>Or you can use udev rules.</p>
    <p>Or you can tell a unit to run only when a specific network
    interface is present.</p>
    <p>Or you can use NM and its script dispatcher instead.</p>
    <p>Or, well, you can of course continue to use ifupdown if none of
    the above work for you. But that doesn't mean ifupdown should be
    the default IMHO.<br>
    </p>
    <pre class="moz-signature" cols="72">--
    -- regards
    --
    -- Matthias Urlichs</pre>
    </body>
    </html>

    --------------hglGnqjbltfTun8JGEgbuE7z--

    --------------zdl7lJmhfJs0N8n40jUfkiLi--

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

    wsF5BAABCAAjFiEEr9eXgvO67AILKKGfcs+OXiW0wpMFAmaNe4kFAwAAAAAACgkQcs+OXiW0wpPF sxAA1RHkwCikMtRqZAUPLIYtAS/yzHOylXgmQeT6o2+KhB1kTfL8DFkRlHJVWg6cE8wx1auyp/GA CbinkVIgm0zFwQuHf9aLFWd8lzRluzCEboqECmTX7xjD8Op1ifRuTbWedCfiNOLJylOg4F4vBcau Tn9653CqHquQFPDXGakeDWck446uLELsWtXv3EcwTmetYrhX9d1g82CPiimcF7fVfWNJkC+qe1rd Wbtnnvq0/9J7a7F1JqsFU9x0ZWdaevuL0E5WLx16GbBLDLngf4SN8TYONz2QJaRua3kNDbUhQSxw pGIiPA3iA6TbvJsOh/RUKo5RaQxStk2d1LONKTgLinoEyF8NgC+xPmHbGpmKzyshlWD6WlaKOKu9 9YvHnWIo1ZoFUj1Tp3XAcHYqhcsyvPYc+5e4aYRb/LVpcNH55Ab1a/4EQZSo/kpNMvf1YVnsTty4 N9KFGjGVhm6SPQdshtzh2bbxiKTHXJTC1aJ+04Ng/BzRAJNzAQ/IkV27VYyGAfUq5smjkPRcz+Zt Lpt7pmJEc9+3brNcoV4bI8q0R6I0ApZGVZ79wtddXZ92E8ejDNJumibwC//FfC8z14SWCVUMhPZ7 yquY4UVtX5DJLLsZOLHI4Hid3JlY7ihouNMMz40bSUvWmZC2uY5m7EmShjBNvL33i/gn3Mi/pLVQ GwI=
    =ZDqA
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
  • From Simon Richter@21:1/5 to Luca Boccassi on Tue Jul 9 22:00:01 2024
    Hi,

    On 7/9/24 23:01, Luca Boccassi wrote:

    As per smcv's point, if you need to manually write a static
    configuration then you can also install your favourite tool to use it.
    This is not the default case - the default case is "I have ethernet
    and/or wifi and I want DHCP v4+v6 on anything that can talk to a
    router kkthxbye"

    For a server installation, I absolutely need the option to configure a
    static IP from d-i text mode interface or a preseed file, and this configuration to be taken over into the installed system.

    The last three machines I've installed I've used the IPMI console to set
    up the IP address, then used the "continue installation via ssh"
    function to do the main installation.

    On one of these networks was a rogue DHCP server. :P

    I'm not sure if systemd-networkd is much happier long-term if we write
    its configuration from a shell script, we'd need to get some commitment
    from upstream that this is an interface, not an implementation detail,
    at least.

    I'm not sure what this means, you can write networkd configuration
    files from wherever you like, the tool doesn't care, it wouldn't even
    be able to tell the difference anyway, just drop them in the
    appropriate location in /etc/ and off you go.

    That's my question, essentially: is this an interface with full support
    from upstream, or something that may change in an incompatible way later
    that will require us to deploy additional infrastructure to support?

    The key feature of both sysvinit and ifupdown, from Debian's
    perspective, has always been control: with sysvinit, there were no
    "upstream" definitions, it was all defined by us as part of Debian
    Policy, and if we needed to change anything, we could do that without introducing an incompatibility; with ifupdown, we are also upstream, and therefore upstream is aware that if they want to change the
    configuration file format, they have to talk to all the other
    stakeholders inside the project and coordinate that change.

    With systemd, we no longer have that level of control and large parts of
    Policy are now defined externally, and on an external schedule that does
    not match our release schedule. That is not necessarily a bad thing, but
    it is a huge deviation from our slow but reliable processes of the past
    where we could delay a change until it was ready for release.

    So we need to weigh all the benefits of switching to systemd-networkd
    against the drawback that we are again tying part of our system to an externally defined release schedule, so we will need to nominate someone
    who will be responsible for integrating any changes that will be
    required as a result of upstream changes in a timely manner, and in a
    way that does not introduce any more technical debt.

    The issue is not whether we can hack together a perl script *now*, but
    how big of a commitment that change can potentially be. If we can get a guarantee that any changes to that interface will be communicated two
    years in advance, that calculation is entirely different than when it
    can change with any upstream release and we need to provide an upgrade
    path with the next backport package or risk breaking "stable" systems
    that for some reason have backports of core system packages installed.

    I fully expect some breaking changes, as we are storing the WiFi
    credentials into a configuration file, when they should be stored in
    some secrets manager -- so this is already "legacy", and I'm not sure if
    it is a "legacy interface" or a "legacy implementation detail."

    Simon

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?utf-8?Q?Bj=C3=B8rn_Mork?=@21:1/5 to Matthias Urlichs on Tue Jul 9 22:20:01 2024
    Matthias Urlichs <matthias@urlichs.de> writes:
    On 09.07.24 12:27, Bjørn Mork wrote:
    Run user scripts on up/down events. That's a huge blank spot in
    systemd-networkd. And by design, so it's really not fixable.

    Well, I've been apt-purging ifupdown for almost a decade by now and
    didn't yet miss any of it.


    You can think whether that script is still required; maybe
    systemd-networkd / -resolved can do it for you.

    Or you can monitor systemd's and systemd-networkd's dbus for network
    devices appearing (or vanishing) and run the requisite script.

    Or you can use udev rules.

    Or you can tell a unit to run only when a specific network interface
    is present.

    Or you can use NM and its script dispatcher instead.

    Or, well, you can of course continue to use ifupdown if none of the
    above work for you. But that doesn't mean ifupdown should be the
    default IMHO.

    FWIW, I agree with all that.

    Just tried to point out that automatic conversion will be hard. And
    probably not very useful. Many of the old ifupdown configs should be
    redone and re-thought rather than reimplemented. There are most likely
    better ways to do much of it, using the new possibilities you get with
    NM and systemd-networkd.



    Bjørn

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Marco d'Itri@21:1/5 to bjorn@mork.no on Tue Jul 9 22:40:01 2024
    On Jul 09, Bjørn Mork <bjorn@mork.no> wrote:

    Just tried to point out that automatic conversion will be hard. And
    And I believe that nobody argued to do that.

    --
    ciao,
    Marco

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

    iHUEABYIAB0WIQQnKUXNg20437dCfobLPsM64d7XgQUCZo2dHAAKCRDLPsM64d7X gVq9AQCtATAVhorSddQLi8OOQ5aBu7sts5zFJrLMIQi+qf7ZngEAhydo8dYvHTL5 w8IiEO38XLK4WUvfbuaUwPY7R0zWigg=
    =BhST
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Marco d'Itri@21:1/5 to Simon Richter on Tue Jul 9 22:40:01 2024
    On Jul 09, Simon Richter <sjr@debian.org> wrote:

    For a server installation, I absolutely need the option to configure a
    static IP from d-i text mode interface or a preseed file, and this configuration to be taken over into the installed system.
    I do not understand why you are explaining this as if it were some
    unusual requirement: it is quite common and indeed you can easily do it
    with both NM and systemd-networkd.

    That's my question, essentially: is this an interface with full support from upstream, or something that may change in an incompatible way later that
    will require us to deploy additional infrastructure to support?
    Multiple people, one of the systemd upstream maintainers among them,
    already told you that creating configuration files is a normal and fully supported interface.

    The key feature of both sysvinit and ifupdown, from Debian's perspective,
    has always been control: with sysvinit, there were no "upstream"
    definitions, it was all defined by us as part of Debian Policy, and if we
    What you mean is that it has always been that they were basically
    abandoned upstream so there were no new features were coming that way
    and we had to implement in Debian everything that we needed.

    So we need to weigh all the benefits of switching to systemd-networkd
    against the drawback that we are again tying part of our system to an externally defined release schedule, so we will need to nominate someone who
    But we switched to NM for Wi-Fi enabled systems and the sky has not
    fallen yet.

    --
    ciao,
    Marco

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

    iHUEABYIAB0WIQQnKUXNg20437dCfobLPsM64d7XgQUCZo2fWAAKCRDLPsM64d7X gfxsAQDsC0HRpp1hoWtHv9j2iE9+SUdbTqGZTQN0sngOk2/0iwD8CCki6qgsSJLW WoRowt8K3gU1P6YOPK/FYSWMpYOq8wA=
    =kqbO
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Ansgar =?UTF-8?Q?=F0=9F=99=80?=@21:1/5 to Simon Richter on Wed Jul 10 23:20:01 2024
    Hi Simon,

    On Thu, 2024-07-11 at 05:14 +0900, Simon Richter wrote:
    It is supported *now*, but the roadmap is unclear -- that support could
    be discontinued at any moment, and it would not be the first time a
    feature Debian relied on was removed.

    I understand your fears about the uncertainty of future developments.
    After all ifupdown is without doubt in a bit problematic state due to isc-dhcp-client no longer being supported, a feature Debian relied on,
    and as far as we know the support for alternatives like dhcpcd-base
    could end at any time as well.

    Debian already relies on a fairly large set of base software like gcc,
    linux, glibc, systemd, ... So it seems reasonable to try to not grow
    that list much further to address your concerns.

    So we probably should look at systemd-networkd more seriously. Thank
    you for providing further arguments for doing so.

    Ansgar

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Marc Haber@21:1/5 to ansgar@43-1.org on Thu Jul 11 08:20:01 2024
    On Wed, 10 Jul 2024 23:15:24 +0200, Ansgar ? <ansgar@43-1.org> wrote:
    On Thu, 2024-07-11 at 05:14 +0900, Simon Richter wrote:
    It is supported *now*, but the roadmap is unclear -- that support could
    be discontinued at any moment, and it would not be the first time a
    feature Debian relied on was removed.

    I understand your fears about the uncertainty of future developments.
    After all ifupdown is without doubt in a bit problematic state due to >isc-dhcp-client no longer being supported, a feature Debian relied on,
    and as far as we know the support for alternatives like dhcpcd-base
    could end at any time as well.

    Pulling the plug on isc-dhcp-client was not a nice move of ISC in the
    first place. I can understand why isc-dhcp-server was replaced by kea,
    but deprecating the client was, well, an unfriendly act.

    While there are numerous alternative implementations of DHCP client,
    the Linux world seems to be without a working DHCP relay
    implementation in those days. That's REALLY bad for an installation
    with Linux routers.

    Greetings
    Marc
    --
    ---------------------------------------------------------------------------- Marc Haber | " Questions are the | Mailadresse im Header Rhein-Neckar, DE | Beginning of Wisdom " |
    Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 6224 1600402

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Richter@21:1/5 to All on Thu Jul 11 08:50:01 2024
    Hi Ansgar,

    On 7/11/24 06:15, Ansgar 🙀 wrote:

    It is supported *now*, but the roadmap is unclear -- that support could
    be discontinued at any moment, and it would not be the first time a
    feature Debian relied on was removed.

    I understand your fears about the uncertainty of future developments.

    No, you don't.

    What I'm concerned about is not packages as a whole being discontinued.
    This is highly unlikely for systemd, and for simpler packages, it is not
    a problem as long as we are able to react to security issues.

    My concern is *interfaces* and *features* being discontinued in new
    versions, requiring adaptation on our end before we can update a package
    that we want to upgrade. Specifically I'm looking at the interface for
    passing in system-wide network configuration, because that interface
    will likely stand in the way of future systemd-networkd development:

    1. Plain text files with passwords in them are "unix-like", and systemd
    has a builtin credential store mechanism, systemd-creds. I expect that
    there will be a bit of push to move things like passwords into the
    credential store (which is unavailable from the d-i environment).

    2. So far, systemd-networkd does not support run-time configuration from unprivileged accounts (so on laptops it makes sense to keep using N-M).
    I am not convinced that there are no plans to add that feature though,
    and at that point, the configuration and credential storage will need to
    be reworked.

    This is why I think that this interface will be considered a liability
    down the line by upstream developers. It's what I would do in their place.

    After all ifupdown is without doubt in a bit problematic state due to isc-dhcp-client no longer being supported, a feature Debian relied on,
    and as far as we know the support for alternatives like dhcpcd-base
    could end at any time as well.

    That is not a feature, but a package. Unless we actively remove it, it
    stays. The thing that is special about systemd is that they actively
    remove things that are in the way of future progress, such as support
    for unmerged /usr, and we need to deal with that whenever it happens.

    That is not a fault either: it costs resources to keep legacy interfaces working, and with the ambitious feature set they have, those are better
    spent elsewhere, but whenever we rely on a legacy interface, we need to
    be prepared to have it pulled out at some point, like the unit generator
    for init scripts.

    Debian already relies on a fairly large set of base software like gcc,
    linux, glibc, systemd, ... So it seems reasonable to try to not grow
    that list much further to address your concerns.

    Linux and glibc are going to great lengths to never break compatibility
    during an upgrade, these are full of compatibility code. GCC we use an
    older version that we do not upgrade during a release, and we get full
    support from upstream for that. The experience of reporting a bug
    against gcc 12 is vastly different from reporting a bug against systemd 252.

    Again, that is not a fault, but a difference in project management --
    but one that we need to account for when we are doing our own planning.

    The more policy work we outsource to external projects that work at a
    faster pace than we do, the more resources we need to keep on hand to
    catch up. This is not a technical problem, but a project management one.
    The technical aspects of this are the easy part, although it is also
    possible to bungle them if they are left to overconfident people.

    Simon

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Martin=2D=C3=89ric_Racine@21:1/5 to All on Thu Jul 11 10:40:01 2024
    ti 9. heinäk. 2024 klo 15.13 Daniel Gröber (dxld@darkboxed.org) kirjoitti:
    Users may choose to opt-in to the more declarative "use" stanzas if they
    wish and I'd expect any new upstream executors like vrf will need them (haven't tried) but not traditional stanzas or if-*.d based extensions.

    I wish ifupdown-ng upstream hadn't chosen to introduce an additional set of global config options in /etc/network/ifupdown-ng.conf and I am still
    mulling getting rid of that somehow but so far I don't see a real problem there.

    That sort of needless additions precisely is what makes me doubt
    whether ifupdown-ng is the way to go.

    Please note that the examples in the manpages are in what upstream considers the "proper new way" of doing things, they don't show the legacy
    way (also a good thing), you may have to read the code to get the full picture. Do let me know if any legacy-format behavioural reference-documentation is missing though.

    Claiming to offer a drop-in substitute all while nudging people
    towards a new paradigm is not welcome.

    If ifupdown's paradigm were working for people we wouldn't be having this conversation.

    The paradigm is working. What doesn't work is how a package with such
    a high priority has repeatedly fallen into neglect. If people file bug
    reports or request enhancements, but nothing happens, a fork is
    unavoidable. In fairness, a few people have randomly stepped in, but
    clearly don't have enough time to maintain it.

    How else would you move /etc/network/interfaces forward without breaking anything?

    I would really like to hear what is wrong with the current format.

    For my perspective, the main issues with ifupdown are:

    1) ifupdown doesn't handle bridges and vlans without external
    packages, yet it already depends upon iproute2, which provides 'ip'
    i.e. a command that can handle these quite nicely.

    2) ifupdown doesn't include a way to handle DHCPv6-PD for all
    supported DHCP clients.

    3) Since the introduction of systemd units, one can no longer rely on interfaces being brought up sequentially following the order in which
    they appear in /etc/network/interfaces.

    4) That systemd unit generation blissfully ignores anything else that
    physical interfaces in /etc/network/interfaces which introduces yet
    more reproducibility problems.

    Martin-Éric

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Marco d'Itri@21:1/5 to Vincent Bernat on Thu Jul 11 11:20:01 2024
    On Jul 11, Vincent Bernat <bernat@debian.org> wrote:

    This is quite unfair. Cumulus tried very hard to make ifupdown2 a community projects, with notably a presentation at Debconf 14 and Debconf 16. One of its killer feature is the ability to go from the running state to the target state with one command (ifreload). It never took as we prefer old broken software over something not 100% compatible and also because it is written
    in Python and we didn't want Python in the base installation.
    I agree, but I think that the dependency on Python has legitimately been
    a deal breaker.

    Since Cumulus has been bought by Nvidia, things have changed and development of ifupdown2 is now done behind closed doors. See https://github.com/CumulusNetworks/ifupdown2/pull/271#issuecomment-1706260260
    And this pretty much closes the question.
    (And makes me even more annoyed for having bought switches from Nvidia.)

    --
    ciao,
    Marco

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

    iHUEABYIAB0WIQQnKUXNg20437dCfobLPsM64d7XgQUCZo+f2AAKCRDLPsM64d7X gSzUAQDvZux+UBfQYxA7/PJz+w1jGFbida7BjQnd4wwJ739MdAD9EWxbgEQUbQcA FR/eMvBT2Lf2B7630J8JCS6GiiuGzgw=
    =/qxO
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Marco d'Itri@21:1/5 to Simon Richter on Thu Jul 11 11:30:01 2024
    On Jul 10, Simon Richter <sjr@debian.org> wrote:

    It is supported *now*, but the roadmap is unclear -- that support could be discontinued at any moment, and it would not be the first time a feature Debian relied on was removed.
    You have manufactured a non-existing issue and then decided to get
    anxious about it. I do not believe that I can help you further.

    --
    ciao,
    Marco

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

    iHUEABYIAB0WIQQnKUXNg20437dCfobLPsM64d7XgQUCZo+kAgAKCRDLPsM64d7X gYnJAQC4elAvlXiFw7GBpdvme7H09p7yA9sXOPeyGCFZOa2hjQD+Kp1arYdMkUnJ HtK2jIuLGAdCa9I4CJRzG7J/Dy8+TQM=
    =O+lI
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Stephan Seitz@21:1/5 to All on Thu Jul 11 11:40:02 2024
    Am Di, Jul 09, 2024 at 20:03:52 +0200 schrieb Matthias Urlichs:
    Well, I've been apt-purging ifupdown for almost a decade by now and
    didn't yet miss any of it.

    I would never purge ifupdown. I like the nice configuration in one file
    that you can find no matter if it is an old or new Debian installation.

    We had to migrate a lot of VMs from one infrastructure to another. VMs
    with the good old eth0/1/2 interfaces were the easiest. No changes here.

    The „new” ensXYZ interfaces (what a bullshit) had to be changed. Debian systems with /etc/network/interfaces were simple. One file for all
    changes.

    Centos has its files in /etc/sysconfig/network-scripts. Okay, was alright
    as well.

    And then was the Ubuntu bullshit with NM. Where are the configuration
    files now? And Ubuntu 24 migrated everything to Netplan. Where is the
    stupid configuration now?

    So, no, never. Ifupdown is the correct way for a Debian installation.

    Stephan

    --
    | If your life was a horse, you'd have to shoot it. |

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Daniel =?utf-8?Q?Gr=C3=B6ber?=@21:1/5 to Vincent Bernat on Thu Jul 11 11:40:02 2024
    Hi Vincent, Martin,

    On Thu, Jul 11, 2024 at 07:54:50AM +0200, Vincent Bernat wrote:
    From where I'm sitting ifupdown2 is completely out of the question as *the*
    Debian ifupdown since it doesn't even support *basic* IPv6 use-cases like DHCPv6. Upstream community seems nonexistant since this is software by a corp for a corp where community building was probably never the
    goal. Admittedly I didn't look very hard, this is just my impression currently.

    This is quite unfair. Cumulus tried very hard to make ifupdown2 a
    community projects, with notably a presentation at Debconf 14 and Debconf
    16. [...] It never took as we prefer old broken software over something
    not 100% compatible and also because it is written in Python and we
    didn't want Python in the base installation.

    Since Cumulus has been bought by Nvidia, things have changed and development of ifupdown2 is now done behind closed doors. See https://github.com/CumulusNetworks/ifupdown2/pull/271#issuecomment-1706260260

    Right, I wasnt around for those, my impressions are based on post-nvidia ifupdown2. That being said it doesn't change it's unfortunate current
    state. I don't see any community activity on *2 whereas *-ng has a fair bit
    and an impressive array of executors already with more coming https://github.com/ifupdown-ng/ifupdown-ng/tree/main/executor-scripts/linux

    One of its killer feature is the ability to go from the running state to
    the target state with one command (ifreload).

    Yeah I agree that's useful it would be nice if it can fit into
    ifupdown-ng's design but I think upstream made a good decision in not
    imposing the additional complexity to support it on the executors from the start.

    Maybe we can still add it. Someone more interested in that feature ought to have a look *hint* *hint* :)



    On Thu, Jul 11, 2024 at 11:23:38AM +0300, Martin-Éric Racine wrote:
    Claiming to offer a drop-in substitute all while nudging people
    towards a new paradigm is not welcome.

    If ifupdown's paradigm were working for people we wouldn't be having this conversation.

    The paradigm is working.

    I mean looking at the other half of this thread, clearly the ifupdown*
    paradigm isn't working at all for some people which I think is
    unfortunate. I just want to point out that -ng comes as a library too
    (which I haven't packaged separately yet) so integrating with /etc/network/interfaces and even the interface state should very much be possible for any other network managment tool that would want to.

    I still think you're making too much of this `use` feature. I had a conversation with upstream about it and took another look at the code and
    it's basically just an optimization to *only* run the delcared executors as opposed to all of them (in case any of their config stanzas are used).

    I think it may let you sidestep issues with if*.d stanza namespacing issues too, but that's about it. If you don't like it don't use it. I certainly
    have not had a need for it so far.

    How else would you move /etc/network/interfaces forward without breaking anything?

    I would really like to hear what is wrong with the current format.

    I'd like to hear what is wrong with making the current format more
    extensible with full legacy compatibility?

    The format is fine, but ofc. ifupdown-ng is going to extend it where it
    makes sense.

    For my perspective, the main issues with ifupdown are:

    1) ifupdown doesn't handle bridges and vlans without external
    packages, yet it already depends upon iproute2, which provides 'ip'
    i.e. a command that can handle these quite nicely.

    Not quite true, vlan support is now internal AFAIK, or at least I haven't installed `vlan` in ages and things seem to work :)

    The ifupdown-ng executors for vlan/ bridge support are here if you want to
    have a look: https://github.com/ifupdown-ng/ifupdown-ng/blob/main/executor-scripts/linux/link
    https://github.com/ifupdown-ng/ifupdown-ng/blob/main/executor-scripts/linux/bridge

    2) ifupdown doesn't include a way to handle DHCPv6-PD for all
    supported DHCP clients.

    3) Since the introduction of systemd units, one can no longer rely on interfaces being brought up sequentially following the order in which
    they appear in /etc/network/interfaces.

    ifupdown-ng's dependency resolution based "paradigm shift ;)" should make
    that unecessary, but perhaps that calls for another ifupdown-ng.conf
    option? Not sure. Why is the order important outside of the obvious master device dependencies?

    4) That systemd unit generation blissfully ignores anything else that physical interfaces in /etc/network/interfaces which introduces yet
    more reproducibility problems.

    Not sure what you're talking about here?

    --Daniel

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

    iQIzBAABCAAdFiEEV6G/FbT2+ZuJ7bKf05SBrh55rPcFAmaPpvoACgkQ05SBrh55 rPccdRAAv/JDYyRo2l0glH+D8pz8EOSL/PWfycghoW0Fe3ZNeEZvCuHKuOfOMhtA CwOw9TMRRMpjsuJUHqdHIGt2TBoYccHG8faRrJzJhJ6bLQ7DN1F8LCoxV5+5Ydmi 6ZGTE/+UKk6ud0SCR6gNTvviSdC65Pn/417JMrj1uwbV6OlNdLZwYobZH4P4DYCY FWCr9w72laqshutkZURo8yAFPZGVX7Byj0Fvo2mrjSnrRfK+TYcVbelD1TfKIkyd KKUyt1ao0ZKl48n8iaaMCUYPbezUX4KiMpk2Z+8FCANuFFVKwcbSTAxZeFJhOXNo jGLrY2cWt0jrYriPIm13d1K3J+TmkLECIg0qt+tzwQTHOAgPUl9J5BX783n9IreM nZm7yXnNIFGn1OnPQfgd6Ou8LNW9eshPhCxZ9s/8e7PfOdItai0w0iKkY8o95IgT TC4wVAbR4KSwYxB0Oz8mEIERAqIMnItT7cKV/qVYpyWY7NaMqlOVXLk+UZiJIvGV 2OIDUP6rYS4LU3iNXnES37PDLr3hR8MmBxocddZlInx9qbEWj1lBxxrNNC71GveD TCi5f+D5iyI3h/LmScuIYG/yU/plfpRy7yRE8cDk+6wjvcjNy4Q/CjvyH1gaAP0O kaFSLG6mW5BWIjNRkj6EddDOLGLDXs/yLrJ15W+IVWsEWSrzKww=
    =Z+/B
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Martin=2D=C3=89ric_Racine@21:1/5 to All on Thu Jul 11 12:20:01 2024
    to 11. heinäk. 2024 klo 12.34 Daniel Gröber (dxld@darkboxed.org) kirjoitti:
    On Thu, Jul 11, 2024 at 11:23:38AM +0300, Martin-Éric Racine wrote:
    Claiming to offer a drop-in substitute all while nudging people
    towards a new paradigm is not welcome.

    If ifupdown's paradigm were working for people we wouldn't be having this conversation.

    The paradigm is working.

    I mean looking at the other half of this thread, clearly the ifupdown* paradigm isn't working at all for some people which I think is
    unfortunate. I just want to point out that -ng comes as a library too
    (which I haven't packaged separately yet) so integrating with /etc/network/interfaces and even the interface state should very much be possible for any other network managment tool that would want to.

    I haven't see anyone answer the question of what doesn't work with ifupdown.

    I still think you're making too much of this `use` feature. I had a conversation with upstream about it and took another look at the code and it's basically just an optimization to *only* run the delcared executors as opposed to all of them (in case any of their config stanzas are used).

    Whcih still could be accomplished using the 3rd item of the
    traditional ifdown line.

    How else would you move /etc/network/interfaces forward without breaking anything?

    I would really like to hear what is wrong with the current format.

    I'd like to hear what is wrong with making the current format more
    extensible with full legacy compatibility?

    The format is fine, but ofc. ifupdown-ng is going to extend it where it
    makes sense.

    For my perspective, the main issues with ifupdown are:

    1) ifupdown doesn't handle bridges and vlans without external
    packages, yet it already depends upon iproute2, which provides 'ip'
    i.e. a command that can handle these quite nicely.

    Not quite true, vlan support is now internal AFAIK, or at least I haven't installed `vlan` in ages and things seem to work :)

    I said ifupdown, not ifupdown-ng.

    4) That systemd unit generation blissfully ignores anything else that physical interfaces in /etc/network/interfaces which introduces yet
    more reproducibility problems.

    Not sure what you're talking about here?

    ifupdown has helpers that dynamically generate systemd service units
    upon bootup. It only generates them for en* and wl* interfaces, which
    are then started at random according to systemd preferences. Later in
    the boot process, a generic networking.service unit is run to bring up everything else found in /etc/network/interfaces e.g. vlan, bridges.

    Martin-Éric

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Santiago Ruano =?iso-8859-1?Q?Rinc=@21:1/5 to All on Thu Jul 11 14:10:02 2024
    El 09/07/24 a las 11:25, Daniel Grber escribi:
    Hi Santiago,

    On Mon, Jul 08, 2024 at 12:23:16PM -0300, Santiago Ruano Rincn wrote:
    Santiago, how do you feel about ifupdown's future maintainability and feature development? I honestly never looked into why people started writing ifupdown replacements. I had my own gripes with it so I never questioned it but I'm happy to hear why we should all rally around it.

    I've long wondered how we ended up with so many implementations. Team maintenance of just one implementation would make more sense.

    For me the reason to work on ifupdown-ng is that it has a better core design, clean&modern code, an active upstream community, a ***test suite***

    I fully acknowledge this. After trying to fix some of the ifupdown bugs
    but hitting some design issues,

    Can you elaborate on that point? What are the sort of issues you run into with the traditional ifupdown design and/or it's maintenance.

    For example: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804396.
    Fixing it is not trivial.

    I think it makes more sense to focus all
    the efforts in just one of the implementations, and since ifupdown-ng
    has all the above mentioned advantages, I'd would be in favor of
    replacing ifupdown by ifupdown-ng...

    Good to hear.

    From the looks of the BTS page I feel like part of the burdon of
    maintaining ifupdown is that people just default to reporting any
    networking issues there, is that something you see a lot?

    No, not really.

    Perhaps we should have a debian-networking mailing list as Maintainer to be able to load-share the user-support better?

    I'd happy with that!

    and the potential to fully replace ifupdown without breaking anyone's system doing it. Full compatibility is not there yet. I'm working on it,
    see [1] but I'm optimistic so far.

    [1]: https://github.com/ifupdown-ng/ifupdown-ng/issues/247

    Noted.

    ... but it would be *great* to make ifupdown-ng a drop-in replacement first.

    Naturally.

    It is pretty close though. The remaining issues I know about are documented in the GH issue: the locking protocol is sligtly suboptimal (and more importantly for interop: different), ifstate file is separate and interface renaming ("rename" statanza) isn't supported. I didn't even know that last one existed, does anyone use those?

    Yes, I am aware there are users of the rename stanza.

    If you're on-board with transitioning to -ng that should make the ifstate compat pretty easy since we can freeze the old format and behaviour.

    I haven't thrown -ng at a large legacy setup in anger yet (since I don't
    have any), but for regular desktop usage with some mildly custom stuff in /etc/network/interfaces I hardly notice which ifupdown* I have installed.

    Note: For testing you have to keep in mind to (tranditional) ifdown the ifaces you want to test first since the ifstate is still disjoint
    currently.

    ACK.

    [snip]

    Cheers,

    -- Santiago

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

    iHUEABYIAB0WIQR+lHTq7mkJOyB6t2Un3j1FEEiG7wUCZo/LNQAKCRAn3j1FEEiG 76qkAQCCEa0tvP7LnjkC5O4x5/SnaB4qU90K9vS3NIXsFZnrgAD9H7MWalmzI/Mf w5ownHjt0NqJf/i5bJMUrx6MRST+Xgk=
    =zGYx
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Matthias Urlichs@21:1/5 to All on Thu Jul 11 14:30:01 2024
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------3yhDWxnMr5fgkYT4PPU8L0ye
    Content-Type: multipart/alternative;
    boundary="------------daYiQCH6kEVSTAq70q9BYoeB"

    --------------daYiQCH6kEVSTAq70q9BYoeB
    Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64

    T24gMTAuMDcuMjQgMjI6MTQsIFNpbW9uIFJpY2h0ZXIgd3JvdGU6DQo+IEl0IGlzIHN1cHBv cnRlZCAqbm93KiwgYnV0IHRoZSByb2FkbWFwIGlzIHVuY2xlYXIgLS0gdGhhdCBzdXBwb3J0 IA0KPiBjb3VsZCBiZSBkaXNjb250aW51ZWQgYXQgYW55IG1vbWVudCwgYW5kIGl0IHdvdWxk IG5vdCBiZSB0aGUgZmlyc3QgDQo+IHRpbWUgYSBmZWF0dXJlIERlYmlhbiByZWxpZWQgb24g d2FzIHJlbW92ZWQuIA0KDQpJIGRvbid0IHRoaW5rIHRoYXQgdGhlIHN5c3RlbWQgcGVvcGxl IGhhdmUgKmFueSogaW50ZW50aW9uIHRvIA0Kc3Vic3RhbnRpYWxseSBjaGFuZ2UgdGhlaXIg Y29uZmlndXJhdGlvbiBmaWxlIHN0cnVjdHVyZSBvciB3aGF0bm90LiBJZiANCnRoZXkgZXZl ciBkbywgd2Ugc2hvdWxkIChhbmQgd2lsbCEpIHJhaXNlIG91ciBjb25jZXJucyB0aGVuLg0K DQpSaWdodCBub3cgd2UgaGF2ZSBvdGhlciBwcm9ibGVtcyB0aGF0IGFyZSB3YXkgbW9yZSBp bXBvcnRhbnQgSU1ITywgZ2l2ZW4gDQoyMTAgb3BlbiBidWdzIG9uIGlmdXBkb3duLiAoIzgx MjE5IDxtYWlsdG86ODEyMTlAYnVncy5kZWJpYW4ub3JnPiBpcyANCmZyb20gSmFudWFyeSAy MDAxLikNCg0KRGViaWFuLXNwZWNpZmljIG5vdC1xdWl0ZS1TZWNyZXQgU2F1Y2UgaXMgZmlu ZSB3aGVuIGl0IGFkZHMgdmFsdWUgDQpjb21wYXJlZCB0byBvdGhlciBkaXN0cmlidXRpb25z IChhbmQgZG9lc24ndCByZXF1aXJlIGEgZGlzcHJvcG9ydGlvbmF0ZSANCmFtb3VudCBvZiBE ZWJpYW4tc3BlY2lmaWMga25vd2xlZGdlKS4gSW4gdGhpcyBjYXNlIGhvd2V2ZXIgSSdkIGFy Z3VlIA0KdGhhdCBpbiB0aGUgdmFzdCBtYWpvcml0eSBvZiBjYXNlcywgaWZ1cGRvd24gZG9l cyBub3QgYWRkIHZhbHVlLg0KDQpOb3QgYW55IG1vcmUuIFRoZSBlY29zeXN0ZW0gaGFzIGNo YW5nZWQgc2lnbmlmaWNhbnRseSBpbiB0aGUgbGFzdCANCnF1YXJ0ZXIgY2VudHVyeS4NCg0K SW5zdGVhZCB3ZSBoYXZlIGEgbWFpbnRlbmFuY2UgYnVyZGVuIOKAlCBvbmUgd2hpY2ggaXNu J3QgZXhhY3RseSBsaWdodGVuZWQgDQpieSB0aGUgZmFjdCB0aGF0IHRoZXJlIGFyZSBmb3Vy IGltcGxlbWVudGF0aW9ucyBvZiBpZnVwZG93biB0aGF0IGRvIG1vcmUgDQpvciBsZXNzIHRo ZSBzYW1lIHRoaW5nLiAoSW4gY2FzZSB5b3UncmUgd29uZGVyaW5nOiAjNCBpcyBidXN5Ym94 LikNCg0KLS0gDQotLSByZWdhcmRzDQotLSANCi0tIE1hdHRoaWFzIFVybGljaHMNCg0K --------------daYiQCH6kEVSTAq70q9BYoeB
    Content-Type: text/html; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
    <div class="moz-cite-prefix">On 10.07.24 22:14, Simon Richter wrote:<br>
    </div>
    <blockquote type="cite"
    cite="mid:f0d12137-ae2f-4feb-82a2-9fef5a5e297d@debian.org">It is
    supported <b class="moz-txt-star"><span class="moz-txt-tag">*</span>now<span
    class="moz-txt-tag">*</span></b>, but the roadmap is unclear
    -- that support could be discontinued at any moment, and it would
    not be the first time a feature Debian relied on was removed.
    </blockquote>
    <p>I don't think that the systemd people have *any* intention to
    substantially change their configuration file structure or
    whatnot. If they ever do, we should (and will!) raise our concerns
    then.</p>
    <p>Right now we have other problems that are way more important
    IMHO, given 210 open bugs on ifupdown. (#<a
    href="mailto:81219@bugs.debian.org">81219</a> is from January
    2001.)<br>
    </p>
    <p>Debian-specific not-quite-Secret Sauce is fine when it adds value
    compared to other distributions (and doesn't require a
    disproportionate amount of Debian-specific knowledge). In this
    case however I'd argue that in the vast majority of cases,
    ifupdown does not add value.</p>
    <p>Not any more. The ecosystem has changed significantly in the last
    quarter century.<br>
    </p>
    <p>Instead we have a maintenance burden — one which isn't exactly
    lightened by the fact that there are four implementations of
    ifupdown that do more or less the same thing. (In case you're
    wondering: #4 is busybox.)<br>
    </p>
    <pre class="moz-signature" cols="72">--
    -- regards
    --
    -- Matthias Urlichs</pre>
    </body>
    </html>

    --------------daYiQCH6kEVSTAq70q9BYoeB--

    --------------3yhDWxnMr5fgkYT4PPU8L0ye--

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

    wsF5BAABCAAjFiEEr9eXgvO67AILKKGfcs+OXiW0wpMFAmaPylMFAwAAAAAACgkQcs+OXiW0wpPd 0g//W4SlbdhucgtKUCBoJXPGMocq5Bb5EwD0jfSA2Hlp3hgaZCYMVo/+3YEYTpXZmaXgxg9NrdVw VaqOCNWopidjU8r+oMPeTpv/ZS2Wf1tCYYMhPqIFg+TPIGCIZxkVM8pb2I6CEcwvhYtJVygqUuoa kdERYVoFj8msIkgRKmFtkktOgI6N3qLTGKyJYLlKH/vE7YsiZO4Ap8jsJlHq8149pdFHqmvsRYk1 dt46EKLbXgR+4Wt3mwmsc3PRHQjALcyFJzCJqy2txqbepOJEamtxMuqQ77IbtqkUmQyDp6OR2i0Q nv6WDP1Gpywk5syoYRtJ7nUMRDalyJKXnUaCViv6G/7sC85rgiqURQ0aWxBnQylAyDVpAJdSi9nb 8M1/1FZhgSZOgVUxHpo7gcUFDcLTaAMDkgwujYKQDHgNC8pN7A5rDwBl/36Jnlku5bn99frRE41i TLjz6BFm8pwjMVRaIA8CikxHWAYWoJqaHH5ezUGJNpB6H2k6o0/T31MkMbM35e7rSC6zSIL8ukp3 RRPN7TxC+VZdVDWr7RQ2JonNV8Cy3wvqty+2ooKujwa90DcF9L5swqRjcSeYFbEjbqb/bB/0IxsP 9wMD5ij3z9ILWsZkquxj9oM05HuhjZWeUH91Y30DBurjM2bBaZmnujlwqTd6MdvbgZQ/gFxZGj/X K10=
    =S/eV
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
  • From Jose Luis Tallon@21:1/5 to All on Thu Jul 11 16:40:02 2024
    Jumping in in the middle of the conversation, but couldn't resist ....

    On 11/7/24 10:23, Martin-Éric Racine wrote:
    Claiming to offer a drop-in substitute all while nudging people
    towards a new paradigm is not welcome.

    If ifupdown's paradigm were working for people we wouldn't be having this >>> conversation.
    [snip]
    For my perspective, the main issues with ifupdown are:

    1) ifupdown doesn't handle bridges and vlans without external
    packages, yet it already depends upon iproute2, which provides 'ip'
    i.e. a command that can handle these quite nicely.

    2) ifupdown doesn't include a way to handle DHCPv6-PD for all
    supported DHCP clients.

    3) Since the introduction of systemd units, one can no longer rely on interfaces being brought up sequentially following the order in which
    they appear in /etc/network/interfaces.

    4) That systemd unit generation blissfully ignores anything else that physical interfaces in /etc/network/interfaces which introduces yet
    more reproducibility problems.

    Been working on-and-off on an alternative **guaranteed drop-in**
    alternative for a while, for precisely the same reasons people are
    mentioning in this thread.

    Marco D'Itri, Marc Haber, Bernd Zeimetz, Simon Richter, Martin-Éric
    Racine, Stephan Seitz, Daniel Gröber and others provided invaluable
    feedback on this matter.


    Should I be able to release something (maybe a far-fetched proposition)
    more or less covering the need, what would be the *hard* requirements to
    have it adopted ??

    We are in the same need on my side; might as well not waste too much
    effort needlessly  :)



    Thanks,

    --
    Parkinson's Law: Work expands to fill the time alloted to it.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jose Luis Tallon@21:1/5 to Marc Haber on Thu Jul 11 16:40:01 2024
    On 11/7/24 8:16, Marc Haber wrote:
    On Wed, 10 Jul 2024 23:15:24 +0200, Ansgar ? <ansgar@43-1.org> wrote:
    While there are numerous alternative implementations of DHCP client,
    the Linux world seems to be without a working DHCP relay
    implementation in those days. That's REALLY bad for an installation
    with Linux routers.
    Are there any specific requirements --- such as "must be written in extra-portable C" --- that any alternative implementation should fulfil ?

    At $work we have a dhcp-manythings implementation (in Go) that *might*
    fill the gap. Probably easy to get publicly published+supported.

    Just asking.


    Thanks,

    --

    Parkinson's Law: Work expands to fill the time alloted to it.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Andrej Shadura@21:1/5 to Simon Richter on Fri Jul 12 13:40:02 2024
    Hi,

    On Thu, 11 Jul 2024, at 08:41, Simon Richter wrote:
    I understand your fears about the uncertainty of future developments.

    No, you don't.

    What I'm concerned about is not packages as a whole being discontinued.
    This is highly unlikely for systemd, and for simpler packages, it is not
    a problem as long as we are able to react to security issues.

    My concern is *interfaces* and *features* being discontinued in new versions, requiring adaptation on our end before we can update a package that we want to upgrade. Specifically I'm looking at the interface for passing in system-wide network configuration, because that interface
    will likely stand in the way of future systemd-networkd development:

    In all fairness, keeping in mind that I’ve maintained ifupdown for quite some time, its interface needed improvement for very very long time, and nothing we should be preserving unmodified forever. From what I’ve seen about ifupdown-ng, they really
    improved the sad state of things. I would be more than happy if ifupdown-ng replaced our old implementation. (But you are welcome to also ask Anthony what he thinks about it.)

    (My first and last message in this thread.)

    --
    Cheers,
    Andrej

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Daniel =?utf-8?Q?Gr=C3=B6ber?=@21:1/5 to Marc Haber on Sat Jul 13 01:10:02 2024
    Hi Martin, Marc, and Santiago,

    On Thu, Jul 11, 2024 at 12:57:52PM +0300, Martin-Éric Racine wrote:
    I mean looking at the other half of this thread, clearly the ifupdown* paradigm isn't working at all for some people which I think is
    unfortunate.

    I haven't see anyone answer the question of what doesn't work with ifupdown.

    Indeed. That part of the thread currently feels more like a popularity
    contest than a technical discussion. Let's try to do better.

    Actual technical arguments for a change I've seen so far:

    - ifreload functionality would improve usability. In favor of
    ifupdown2/sd-networkd and maybe NM? not sure.
    - Better maintainability and test coverage. In favor of all except
    ifupdown. AFAICT

    What I'd like to know is why is removing all traces of ifupdown* from a
    minimal Debian install important? Clearly Desktop/Cloud image maintainers
    think a different tool is more well suited for their users. That's fine.

    The question is: What problems does ifupdown* cause that make its removal
    from the base system worthwhile?

    I still think you're making too much of this `use` feature. I had a conversation with upstream about it and took another look at the code and it's basically just an optimization to *only* run the delcared executors as opposed to all of them (in case any of their config stanzas are used).

    Whcih still could be accomplished using the 3rd item of the
    traditional ifdown line.

    Well, this is what we have now. Working code is more valuable than the code
    you seem to not have written down yet. Get busy if you think you can do
    better.

    My guess is this ended up being like this for some backwards compat concern
    or other and I don't think this particular bike-shed is worth fussing over,
    but feel free to get involved upstream and/or figure out the *why* on your
    own. FYI #ifupdown-ng is on OFTC :)

    Not quite true, vlan support is now internal AFAIK, or at least I haven't installed `vlan` in ages and things seem to work :)

    I said ifupdown, not ifupdown-ng.

    I was talking about *ifupdown*. Sorry for not being clear. See `VLAN INTERFACES` interfaces.5 and/or grep for `type vlan` in
    ifudown/link.defn.

    4) That systemd unit generation blissfully ignores anything else that physical interfaces in /etc/network/interfaces which introduces yet
    more reproducibility problems.

    Not sure what you're talking about here?

    ifupdown has helpers that dynamically generate systemd service units
    upon bootup. It only generates them for en* and wl* interfaces, which
    are then started at random according to systemd preferences. Later in
    the boot process, a generic networking.service unit is run to bring up everything else found in /etc/network/interfaces e.g. vlan, bridges.

    I'm not aware of any such component. I don't see any systemd-*-generators packaged as part of ifupdown. systemd-network-generator.8, part of systemd
    mind you, doesn't look relevant.

    You aren't thinking of `hotplug` stanza integration with systemd, right?



    On Thu, Jul 11, 2024 at 08:13:38AM +0200, Marc Haber wrote:
    ¹ ifupdown-scripts-zg2 cached commands needed for the takedown of the interface when it was brought up and didnt need the interface
    configuration to take it down.

    Thanks for bringing this up Marc. I've been mulling doing something about
    this precise problem in ifupdown-ng. I didn't know we used to have a
    working implementation of this idea. I might revive it since I don't think changing the default behaviour of ifupdown* is a good idea, but suggest/recommending a package fixing it is an easy sell.

    I eventually decided to drop that easy-of-use for networkd, lowering my workload significantly.

    Since we're still lacking technical arguments for why ifupdown is
    problematic, could you elaborate on how it was causing an increase in your workload?



    On Thu, Jul 11, 2024 at 09:16:55AM -0300, Santiago Ruano Rincón wrote:
    ... See my recent mail about how we should probably not be inventing Debian-specific container frameworks that will end up with one overworked maintainer being a single point of failure for the distribution, but replace "container framework" with "network management tool" and the
    same ideas are equally valid. Like Podman in the containers space, NM
    and systemd-networkd both have the advantage of being used outside the Debian bubble, sharing the responsibility for their continued existence among *considerably* more people.

    ACK. This is a sound argument. Thanks.

    Santiago, I'd like to point out the argument doesn't apply to ifupdown-ng, which was developed for use in Alpine where they'd been using our ifupdown until they switched. So there's nothing "Debian-specific" about it. I'd
    call it a model of serendipitous cross-distributon collaboration :D



    On Thu, Jul 11, 2024 at 09:08:23AM -0300, Santiago Ruano Rincón wrote:
    Can you elaborate on that point? What are the sort of issues you run into with the traditional ifupdown design and/or it's maintenance.

    For example: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804396.
    Fixing it is not trivial.

    It's not clear to me this particular issue is worth fixing. I do tend to question whether bailing out if anything fails during ifup is a good idea
    and I don't have a complete picture of the tradeoffs involved yet.

    My preference would be to carry on upping no matter what, but record what happend during up. Certainly something to discuss in more depth.

    From the looks of the BTS page I feel like part of the burdon of maintaining ifupdown is that people just default to reporting any networking issues there, is that something you see a lot?

    No, not really.

    OK, good :)

    Perhaps we should have a debian-networking mailing list as Maintainer to be able to load-share the user-support better?

    I'd happy with that!

    I'll talk to listmaster, but I'm not sure lists.debian.org is the right
    place for this.

    It is pretty close though. The remaining issues I know about are documented in the GH issue: the locking protocol is sligtly suboptimal (and more importantly for interop: different), ifstate file is separate and interface renaming ("rename" statanza) isn't supported. I didn't even know that last one existed, does anyone use those?

    Yes, I am aware there are users of the rename stanza.

    ACK. It is on my TODO list but anyone interested is welcome to submit a
    design (issue) and code upstream.

    --Daniel



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

    iQIzBAABCAAdFiEEV6G/FbT2+ZuJ7bKf05SBrh55rPcFAmaRteEACgkQ05SBrh55 rPfFGA//bTp6iYCt3NN+HEUlX198wWmslJ2Dp+uU26lm8wYuLvFumWEIYu7Swoix kBpY8+y7bWkbIcCGH2F0vr4/dDmQwyMuRbVu3g0ExGPmuImfnsNuH5ORgOMu4/G8 yxianNwNqGo9++4Y0fcOFU5nBYCR2n7YKpusSHwCbyz/BK03wWqTmghF5hFBc+dS MPwaWF7lUoaPWTYOpv38Plty3znJve5t5KhCH23iQUQLe0M801drJPZBw5ZoTymE XMnlpmKEAuBHodB+/rH2vXc+UIKrLuPrVdd++A9ibt1j2KLImuvC63CNLzd0xdBx HvAkdUMhnV+TT1P91GGx+PzpCsPc2mbaj+wjRY1KyfsczibIs1jDa5yzcd3nAKlV Z8zY/5RSwfkRpA/XiStRVuBFGWGl7bv2mYwjQbhy0mU+05v+LiXbIojKHnlzPG82 dMoHz9jDzMkW8+1je67jmlS9o6kPyqZdF1HHt14VA/mDXfuu8GcfZmMHY/2Fko/2 NbzS9Wad1Jn5lBTgtgKcUQ4pkKt8Lvwp0CAzEifWErlrr60ACEKmL4Ym8b9X28tw Vp4UmSa8/4PkGTxwpvDDOvIT8fXhC0QAim3puHlZap62SqRb8JoGG7NZZkuLYsqU 5MSgWedIxxfNmrdGQmZnrzf9xsDrC6fg5wsIUfhGAxO+5+xse78=
    =EXJb
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Luca Boccassi@21:1/5 to Simon McVittie on Sat Jul 13 17:40:01 2024
    On Tue, 9 Jul 2024 at 18:02, Simon McVittie <smcv@debian.org> wrote:

    On Tue, 09 Jul 2024 at 16:21:16 +0200, Ansgar 🙀 wrote:
    On Tue, 2024-07-09 at 22:44 +0900, Simon Richter wrote:
    I believe NM does not have a fixed configuration format, but only a dbus API.

    It's perfectly fine to edit configuration files for NM manually, see man:nm-settings-keyfile(5).

    ... and debian-installer already knows how to write out these files,
    and has done so for more than a decade if I'm reading correctly. This is
    not a recent innovation, and anyone who has installed our default desktop environment in the last few years - especially if they used wifi during installation - has been relying on this code path.

    <https://salsa.debian.org/installer-team/netcfg/> is responsible
    for converting the network configuration that was used temporarily in
    the d-i environment into a NM configuration file if NM is installed,
    or an ifupdown configuration otherwise. Writing the equivalents into /etc/systemd/network for systemd-networkd would presumably not be rocket science, it's a simple .ini-like syntax similar to the one NM uses.

    It is indeed quite simple:

    https://salsa.debian.org/installer-team/netcfg/-/merge_requests/11

    And I think you are perfectly right: for the simple, default use case,
    we want something that is not downstream-only and dependent on a
    single overworked maintainer, and that is modern enough to know that
    Netlink exists and cannot be ignored. It's not 1998 anymore, even the
    simplest systems need to take it into account, and there are
    distro-agnostic solutions that everyone can rely on with minimal
    integration efforts.

    I think it's fine to add support for netplan, in fact it should be
    merged first in the installer and my MR builds on top of it, and there
    are many cases where it is a good idea to use it, but it should not be
    the default, for the same reason as above - only Ubuntu really uses
    it, and it does happen that Canonical's priorities shift.

    The default logic in the above MR, absent specific choices, is: if
    netplan is installed it will be used (needs to be preseeded or
    installed manually, so it works for the cloud case), if
    network-manager is installed it will be used (perfect for the
    desktop/GUI case), if the interface is wired and it's on Linux and
    systemd is init networkd will be used (perfect for minimal installations/servers), else it goes back to the current ifupdown.

    The main obvious advantage of networkd is that it is already installed
    and will always be already installed in the default case, it's just
    disabled, so the extra cost is one ini file and a couple of symlinks,
    so the footprint of the minimal working install goes down. When
    ifupdown loses prio: important then the footprint will actually
    decrease.

    Those who want complex cases can manually pick netplan. Those who want
    to relive the thrills of the late 90s can pick ifupdown and write all
    the crappy scripts they like, and spend their own time wondering why
    eth0 became eth1 or viceversa and everything stopped working. The
    default is the smallest and most sensible option. Everybody wins.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Martin=2D=C3=89ric_Racine@21:1/5 to All on Sun Jul 14 11:40:02 2024
    la 13. heinäk. 2024 klo 2.02 Daniel Gröber (dxld@darkboxed.org) kirjoitti:
    On Thu, Jul 11, 2024 at 12:57:52PM +0300, Martin-Éric Racine wrote:
    What I'd like to know is why is removing all traces of ifupdown* from a minimal Debian install important? Clearly Desktop/Cloud image maintainers think a different tool is more well suited for their users. That's fine.

    The question is: What problems does ifupdown* cause that make its removal from the base system worthwhile?

    I haven't seen any answer to this one either.

    Not quite true, vlan support is now internal AFAIK, or at least I haven't installed `vlan` in ages and things seem to work :)

    I said ifupdown, not ifupdown-ng.

    I was talking about *ifupdown*. Sorry for not being clear. See `VLAN INTERFACES` interfaces.5 and/or grep for `type vlan` in
    ifudown/link.defn.

    Interesting. Thanks for the heads up. Yet we still have this package:

    vlan - ifupdown integration for vlan configuration

    4) That systemd unit generation blissfully ignores anything else that physical interfaces in /etc/network/interfaces which introduces yet more reproducibility problems.

    Not sure what you're talking about here?

    ifupdown has helpers that dynamically generate systemd service units
    upon bootup. It only generates them for en* and wl* interfaces, which
    are then started at random according to systemd preferences. Later in
    the boot process, a generic networking.service unit is run to bring up everything else found in /etc/network/interfaces e.g. vlan, bridges.

    I'm not aware of any such component. I don't see any systemd-*-generators packaged as part of ifupdown. systemd-network-generator.8, part of systemd mind you, doesn't look relevant.

    See ifupdown-pre.service and ifup@.service shipping with ifupdown.

    On Thu, Jul 11, 2024 at 08:13:38AM +0200, Marc Haber wrote:
    I eventually decided to drop that easy-of-use for networkd, lowering my workload significantly.

    Since we're still lacking technical arguments for why ifupdown is problematic, could you elaborate on how it was causing an increase in your workload?

    I'd really like to hear this as well.

    Similarly, I have yet to hear any compelling reason for dropping all
    DHCP clients and ifupdown implementations from the default install and
    instead using networkd or for using netplan instead of ifupdown.

    Martin-Éric

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Josh Triplett@21:1/5 to All on Mon Jul 15 08:00:01 2024
    Martin-ric Racine wrote:
    la 13. heink. 2024 klo 2.02 Daniel Grber (dxld@darkboxed.org) kirjoitti:
    On Thu, Jul 11, 2024 at 12:57:52PM +0300, Martin-ric Racine wrote:
    What I'd like to know is why is removing all traces of ifupdown* from a minimal Debian install important? Clearly Desktop/Cloud image maintainers think a different tool is more well suited for their users. That's fine.

    The question is: What problems does ifupdown* cause that make its removal from the base system worthwhile?

    I haven't seen any answer to this one either.

    Leaving aside the questions of "what use cases does ifupdown not handle"
    (which it sounds like folks are generally acknowledging the existence
    of), the question of "why is it important to remove ifupdown and its configuration from the system" has a fairly simple answer: because
    different network tools trying to poke at the same network devices, *or* network tools working around each other to carefully *not* poke at the
    same network devices, causes problems and conflicts and user surprises,
    and should be treated as an unusual non-default configuration rather
    than a common one. It is possible to carefully configure a system such
    that ifupdown handles one set of interfaces while NetworkManager or systemd-networkd handles a disjoint set, but there's little to no
    benefit to doing so for most users: once you're using one of those,
    *most* users will want to let that tool handle a *complete* picture of
    the attached network devices in order to set up the configuration the
    user wants.

    NetworkManager has a dedicated plugin with a pile of logic to attempt to
    detect if an interface lives in /etc/network/interfaces and treat it as "unmanaged". In practice, however, *most* desktop users running
    NetworkManager will get a suboptimal experience if they have any
    interfaces configured in /e/n/i, compared to the experience they get if NetworkManager manages all interfaces. This is why, for instance, debian-installer already has logic to check if the user is installing a
    desktop system, and in that case, copy the network configuration over to NetworkManager if needed and remove it from /etc/network/interfaces.

    Given that, I would suggest in general that it makes sense for the
    installer to treat network management tools as mutually exclusive rather
    than keeping more than one tool installed: e.g. if installing the
    desktop task install and configure NetworkManager, else install and
    configure something else. That doesn't *stop* people from installing
    whatever they want, it just makes the common case have just one tool and
    one path for the user to deal with.

    If a user with an unusual use case wants to install more than one
    network management tool and configure them to carefully manage disjoint
    sets of interfaces, they can absolutely do that; I'm not suggesting that
    the tools should have Conflicts with each other. But if there were some
    kind of "Recommends-Conflict" for "packages that would *not* be found
    together except in unusual installations", it'd make sense for network management tools to Recommends-Conflict each other. And in the meantime,
    it makes sense for the installer to treat them as effectively mutually exclusive so that the user's installed system ends up with at most one
    of them.

    - Josh Triplett

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Martin=2D=C3=89ric_Racine@21:1/5 to All on Mon Jul 15 20:10:01 2024
    su 14. heinäk. 2024 klo 12.21 Martin-Éric Racine
    (martin-eric.racine@iki.fi) kirjoitti:
    Similarly, I have yet to hear any compelling reason for dropping all
    DHCP clients and ifupdown implementations from the default install and instead using networkd or for using netplan instead of ifupdown.

    Just to check, I went back and purged ifupdown, then enabled networkd
    on a test host. I used this simple configuration:

    *****
    [Match]
    Name=en*

    [Network]
    DHCP=yes
    IPv6PrivacyExtensions=yes
    IPv6LinkLocalAddressGenerationMode=stable-privacy
    *****

    NOTE: my sysctl.conf includes the following:

    # Generate IPv6 Stable Privacy addesses instead of EUI64 net.ipv6.conf.all.addr_gen_mode=3
    net.ipv6.conf.default.addr_gen_mode=3
    # Enable IPv6 Privacy. Prefer random over EUI64 derived. net.ipv6.conf.all.use_tempaddr=2
    net.ipv6.conf.default.use_tempaddr=2

    What networkd gives me:

    1) networkd insists on generating a second stable-privacy local-link,
    in addition to the one produced by the kernel, because the IPv6LinkLocalAddressGenerationMode key is set.
    2) Despite this, the mngtmpaddr address still uses eui64.

    I'm probably missing something that would be obvious to systemd gurus.
    What exactly?

    Martin-Éric

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Andrej Shadura@21:1/5 to All on Tue Jul 16 10:30:01 2024
    Hello,

    On Sun, 14 Jul 2024, at 11:21, Martin-Éric Racine wrote:
    Not quite true, vlan support is now internal AFAIK, or at least I haven't
    installed `vlan` in ages and things seem to work :)

    I said ifupdown, not ifupdown-ng.

    I was talking about *ifupdown*. Sorry for not being clear. See `VLAN
    INTERFACES` interfaces.5 and/or grep for `type vlan` in
    ifudown/link.defn.

    Interesting. Thanks for the heads up. Yet we still have this package:

    vlan - ifupdown integration for vlan configuration

    Perhaps the description of the package should be changed. The support for VLAN has been supported by ifupdown since 2012 (more than 12 years ago). The vlan package remained to support some edge cases and old-style vlans (vlan0001). It also ships vconfig,
    which is these days a wrapper for iproute2.

    --
    Cheers,
    Andrej

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Michael Stone@21:1/5 to All on Mon Sep 16 05:10:01 2024
    On Tue, Jul 09, 2024 at 02:13:26PM +0200, Daniel Grber wrote:
    If ifupdown's paradigm were working for people we wouldn't be having this >conversation.

    Well, the problem is that there's a selection bias in people having this conversation--the people who are using ifupdown without issues aren't looking for a conversation about getting rid of it, right?

    How else would you move /etc/network/interfaces forward without breaking >anything?

    Just don't. If someone needs to do something new that's supported by a
    new tool and not ifupdown, they should just use the new tool. Freeze
    ifupdown functionality, mark feature requests as wontfix, and update the documentation.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Michael Stone@21:1/5 to Matthias Urlichs on Mon Sep 16 05:10:01 2024
    On Tue, Jul 09, 2024 at 10:57:39AM +0200, Matthias Urlichs wrote:
    Agreed: either it's drop-in compatible or we may as well switch the
    default to NM and/or systemd-networkd.

    Well, here's a heretical thought: why don't we do that anyway, at least for new
    installations?

    Frankly the default is a completely uninteresting issue. The major
    concern IMO is that the zeal to have Yet Another New Thing doesn't break
    all of the existing systems that are running perfectly well with
    ifupdown and which clearly don't need a new thing. As long as that's the
    case, make the default whatever is easiest to support and call it a day.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Ansgar =?UTF-8?Q?=F0=9F=99=80?=@21:1/5 to Michael Stone on Mon Sep 16 10:10:01 2024
    Hi,

    On Sun, 2024-09-15 at 23:07 -0400, Michael Stone wrote:
    On Tue, Jul 09, 2024 at 02:13:26PM +0200, Daniel Gröber wrote:
    If ifupdown's paradigm were working for people we wouldn't be having this conversation.
    How else would you move /etc/network/interfaces forward without breaking anything?

    Just don't. If someone needs to do something new that's supported by a
    new tool and not ifupdown, they should just use the new tool.

    Hmm, ifupdown has problems assigning addresses for the internet
    protocol to interfaces. Is that something "new"? :)

    (And AFAIR that includes assigning static addresses to a static
    interface due to race conditions.)

    Freeze
    ifupdown functionality, mark feature requests as wontfix, and update the documentation.

    Should non-trivial bugs also be marked as wontfix?

    Ansgar

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Chris Hofstaedtler@21:1/5 to All on Mon Sep 16 10:30:01 2024
    * Michael Stone <mstone@debian.org> [240916 05:04]:
    On Tue, Jul 09, 2024 at 10:57:39AM +0200, Matthias Urlichs wrote:
    Agreed: either it's drop-in compatible or we may as well switch the
    default to NM and/or systemd-networkd.

    Well, here's a heretical thought: why don't we do that anyway, at least for new
    installations?

    Frankly the default is a completely uninteresting issue.

    The default is the only interesting thing for this thread.

    The major concern
    IMO is that the zeal to have Yet Another New Thing doesn't break all of the existing systems that are running perfectly well with ifupdown and which clearly don't need a new thing.

    Existing install can stay on ifupdown as long as it exists or maybe
    even longer. Changing priorities (at least to "standard") of a
    package does not magically install it on existing systems.

    Chris

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Michael Stone@21:1/5 to All on Tue Sep 17 05:20:03 2024
    On Mon, Sep 16, 2024 at 09:49:24AM +0200, Ansgar 🙀 wrote:
    Hi,

    On Sun, 2024-09-15 at 23:07 -0400, Michael Stone wrote:
    On Tue, Jul 09, 2024 at 02:13:26PM +0200, Daniel Gröber wrote:
    If ifupdown's paradigm were working for people we wouldn't be having this >> > conversation.
    How else would you move /etc/network/interfaces forward without breaking >> > anything?

    Just don't. If someone needs to do something new that's supported by a
    new tool and not ifupdown, they should just use the new tool.

    Hmm, ifupdown has problems assigning addresses for the internet
    protocol to interfaces. Is that something "new"? :)

    (And AFAIR that includes assigning static addresses to a static
    interface due to race conditions.)

    It's weird that something that apparently doesn't work, does work for so
    many.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)