[SRU] Backport 0.107.1-3 to Ubuntu 22.04
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
netplan.io (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Jammy |
Fix Committed
|
Undecided
|
Unassigned | ||
Mantic |
Invalid
|
Undecided
|
Unassigned | ||
Noble |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Stable Release Update for netplan.io 0.107.1-3 to Jammy. This version has many bug fixes and new features we want to make available to users of Ubuntu 22.04. netplan.io has an SRU exception for backporting new versions with new features https:/
Another SRU, for Mantic, was prepared in a separate LP bug: https:/
[Impact]
This release contains both bug-fixes and new features and we would like to
make sure all of our supported customers have access to these improvements.
The notable ones are:
* The netplan.io package was split up into netplan.io, which contains the CLI tool, netplan-generator, which contains the systemd generator and python3-netplan which contains the libnetplan Python bindings.
netplan.io was changed to depend on the new packages so they will be automatically installed during upgrades
https:/
https:/
* Support for dummy interfaces (dummy-devices)
https:/
https:/
* Support for veth interfaces (virtual-ethernets)
https:/
* The libnetplan Python bindings implementation was refactored to use python3-cffi and was moved to its own package, python3-netplan.
https:/
In addition to all the changes from netplan.io 0.107.1-3, a couple of bug fixes were imported from netplan.io 1.0-1:
* debian/
https:/
https:/
This fixes an annoying warning message that many users were seeing when they call "netplan apply".
* d/p/0004-
https:/
This fixes a duplication problem where "netplan rebind" could process the same SR-IOV interface multiple times.
See the changelog entry below for a full list of changes and bugs.
[Test Plan]
The following development and SRU process was followed:
https:/
Netplan contains an extensive integration test suite that is ran using
the SRU package for each releases. This test suite's results are available here:
http://
A successful run is required before the proposed netplan package
can be let into -updates.
The netplan team will be in charge of attaching the artifacts and console
output of the appropriate run to the bug. Netplan team members will not
mark ‘verification-done’ until this has happened.
NOTE: there are a few autopkgtests failing on Jammy, but they are not regressions:
* ip6gre and vti6 tunnel types: after a kernel update on Ubuntu, systemd started to fail to setup these types of tunnels. The problem was narrowed down to systemd and there is a fix for that which is pending SRU: https:/
* veth activation with Network Manager: the Network Manager available in Jammy has a bug that prevents it to correctly activate veth interfaces. There is a fix for that pending analysis for a future SRU: https:/
We have been using patched packages for systemd and network-manager on Netplan's CI on Github and all the tests pass with the fixes. A PPA is available here https:/
Testing netplan upgrade
1) Launch a LXD VM with Jammy
lxc launch ubuntu:jammy jammy-vm --vm
lxc shell jammy-vm
2) Check netplan is working
netplan apply
Note the annoying warning below:
WARNING:root:Cannot call Open vSwitch: ovsdb-server.
The warnings about file permission can be suppressed with `chmod 600 /etc/netplan/*`.
netplan get
3) Add the PPA with the new package and upgrade your packages
add-apt-repository ppa:danilogondo
apt update ; apt -y upgrade
4) Check netplan is still working
netplan apply
netplan get
Also check that the old /usr/share/
ls /usr/share/
[Where problems could occur]
In order to mitigate the regression potential, the results of the
aforementioned integration tests are attached to this bug.
Autopkgtest logs: https:/
As this is a big update, there are changes across most of the code base. In addition to the existing distro patches to ensure backwards compatibility with Jammy, a new one was added: debian/
But as usual, any backwards compatibility issue that prevents the new netplan to parse existing YAML files would leave the system without networking configuration after a reboot.
[Other Info]
With the python3-netplan package, the directory /usr/share/
[Changelog]
* Backport netplan.io 0.107.1-3 to 22.04 (LP: #2058031):
- Support for "dummy" (`dummy-devices`) interfaces (LP: #1774203) (!361)
- Support for "veth" (`virtual-
- Add Python bindings for libnetplan (!385)
- netplan: Handle command exceptions (!334)
- WPA3 (personal) support (LP: #2023238) (!369)
- Add all the commands to the bash completion file (LP: #1749869) (!326)
- New submodule for state manipulation (!379)
- commands/status: show routes from all routing tables (!390)
- cli:status: Make rich pretty printing optional (!388)
- libnetplan: expose dhcp4 and dhcp6 properties (!394)
- Expose macaddress and DNS configuration from the netdef (!395)
- libnetplan: expose the routes list in the netdef (!397)
- NetworkManager: Wireguard private key flag support (!371)
- Add a netplan_
- keyfile parser: add support for all tunnel types (LP: #2016473) (!360)
- parse-nm:wg: add support for reading the listen-port property (!372)
- parse-nm: add support for VRF devices (!398)
- Vlan keyfile parser support (!370)
- Netplan docs rework (!333 & !337)
- docs: Add a short netplan-everywhere howto (!325)
- doc: make us of sphinx copybutton plugin (!354)
- doc: Add Ubuntu Code of Conduct 2.0 (!355)
- doc: Explanation about 00-network-
- wifi: add support for WPA3-Enterprise (LP: #2029876) (!402)
- wifi: support WPA2 and WPA3 Personal simultaneously (!404)
- added mii-monitor-
- docs: Add "Contribute Documentation" how-to
- auth: add support for LEAP and EAP-PWD (!415)
- tests: Add autopkgtest for (LP: #1959570) (!419)
- wifi: make it possible to have a psk and an eap password simultaneously
(!416)
- doc: Set-up some basic Doxygen project (!423)
- doc: Make Sphinx to handle autodoxygen project, using breathe (!423)
- doc: create libnetplan apidoc structure (!423)
- inc: Start documenting public API (!423)
- doc: Update 'Netplan everywhere' for 23.10 (!418)
Bug fixes:
- Fix FTBFS on Fedora and refresh RPM packaging (!323)
- parser: validate lacp-rate properly (LP: #1745648) (!324)
- use meson-make-
- netplan: cli: fix typo from 'unkown' to 'unknown' (!328)
- Handle duplication during parser second pass (LP: #2007682) (!329)
- parse:ovs: Ignore deprecated OpenFlow1.6 protocol (LP: #1963735) (!332)
- dbus: Build the copy path correctly (!331)
- tests: add new spread based snapd integration test (!330)
- Use controlled execution environment, to avoid failure if PATH is unset
(LP: #1959570) (!336)
- Some refactoring (!338)
- netplan: adjust the maximum buffer size to 1MB (!340)
- parse: use "--" with systemd-escape (!347)
- docs: fix bridge parameters types and add examples (!346)
- vrfs: skip policies parsing if list is NULL (LP: #2016427) (!341)
- networkd: plug a memory leak (!344)
- libnetplan: don't try to read from a NULL file (!342)
- nm: return if write_routes() fails (!345)
- parse: plug a memory leak (!348)
- parse: set the backend on nm-devices to NM (!349)
- parse: don't point to the wrong node on validation (!343)
- rtd: set the OS and Python versions explicitly (!357)
- Fix 8021x eap method parsing (LP: #2016625) (!358)
- CI: update canonical/setup-lxd to v0.1.1 (!359)
- CI: fix dch after adding the new 0.106.1 tag (!364)
- Provide frequency to wpa_supplicant in adhoc mode (LP: #2020754) (!363)
- Improve the coverage of the memory leak tests (!365)
- Fix keyfile parsing of wireguard config (!366)
- routes: fix metric rendering (LP: #2023681) (!367)
- CI: add DebCI integration test (!362)
- CI: initial NetworkManager autopkgtests (!374)
- parse-nm: handle cloned-mac-address special cases (LP: #2026230) (!376)
- Improve autopkgtest stability with systemd 253 & iproute 6.4 (!377)
- Fixes for minor issues (!380)
- tests:integration: Adopt for systemd v254 (Closes: #1041310) (!381)
- parse: Downgrade NM passthrough warning to debug (!384)
- Don't drop files with just global values (LP: #2027584) (!382)
- Fixing Coverity issues (!383)
- CLI: Refactoring to avoid namespace clash with public bindings (!387)
- tests: fix test coverage report with newer python-coverage (!389)
- github: add a scheduled action to run Coverity (!391)
- github: only run the coverity workflow on our repository (!392)
- Addressing a few issues found (!393)
- Wireguard fixes (!352)
- Fix a memory leak, an assert and an error message (!350)
- ovs: don't allow peers with the same name (!353)
- CI: make use of the canonical/setup-lxd action (!356)
- test:ovs: Avoid NetworkManager taking contol, breaking a test
- parse: allow COMMON_
- util: don't return a placeholder netdef in the iterator (!406)
- tunnels/validation: do not error out if "local" is not defined (!407)
- tests: add some integration tests without the local address (!407)
- wireguard: ignore empty endpoints (LP: #2038811) (!414)
- parse: improve the parsing of access-points (LP: #1809994) (!413)
- wifi: replace the previously defined AP with the new one (!413)
- doc: spelling check improvements (!417)
- Fix permissions on folder '/run/NetworkMa
- cli:try: avoid linting error for type hints (Closes: #1058524) (!422)
- nm-parse: always read the PSK into the new psk variable (!416)
- networkd: fix formatting (!424)
- networkd: replace deprecated CriticalConnection= by KeepConfiguration=
(!424)
- networkd: move KeepConfiguration= into [Network] section
- apply: bring "lo" back up if it's managed by NM (!408)
- apply: don't assume the NM loopback connection is called "lo" (!408)
Packaging restructuring:
- Split netplan-generator into separate package to make the Python
dependency optional.
- Split python3-netplan bindings into a separate package
* Add patches for bug fixes from netplan.io 1.0-1:
- debian/
Check if ovsdb-server.
(LP: #2041727) (!421)
- d/p/0004-
d/
d/
Don't generate duplicate entries in the netplan-
(!437)
* Drop patches not required for 22.04:
- debian/
* Add patches for SRU backwards compatibility:
- 0014-Demote-
Convert the error to a warning in a new validation for the option
'lacp-rate' to prevent breaking existing setups
* debian/control:
- Drop python3-rich dependency to Suggests
- Drop build dependency on systemd-dev
* debian/
- This preinst script is intended to cleanup the .pyc files from
share/
the upgrade from netplan.io 0.106.1 to 0.107.1, as the Python code
was moved to it's own python3-netplan package, but it's left behind
due to Python cached files.
* Drop changes related to usr-merge and not required for 22.04
- debian/
- debian/
- debian/
- debian/
* d/netplan-
- Drop overrides file. It wasn't really silencing any lintian warnings.
Related branches
- Lukas Märdian: Approve
- Ubuntu Core Development Team: Pending requested
-
Diff: 338 lines (+245/-38)5 files modifieddebian/changelog (+8/-2)
debian/patches/0017-emitter-allow-unicode-characters-in-the-emitter.patch (+111/-0)
debian/patches/0018-parse-do-not-escape-all-non-ascii-bytes.patch (+124/-0)
debian/patches/series (+2/-1)
dev/null (+0/-35)
- Lukas Märdian: Approve
- Ubuntu Core Development Team: Pending requested
-
Diff: 29134 lines (+13589/-4369)172 files modified.github/workflows/autopkgtest.yml (+7/-3)
.github/workflows/build-abi.yml (+4/-5)
.github/workflows/check-address-sanitizer.yml (+2/-2)
.github/workflows/check-coverage.yml (+7/-5)
.github/workflows/check-wording.yaml (+1/-1)
.github/workflows/codeql-analysis.yml (+3/-3)
.github/workflows/coverity.yml (+36/-0)
.github/workflows/debci.yml (+60/-0)
.github/workflows/network-manager.yml (+66/-0)
.github/workflows/rpmbuild.yml (+33/-0)
.github/workflows/spread.yml (+2/-2)
.gitignore (+1/-1)
.woke.yaml (+1/-8)
Doxyfile (+2688/-0)
Makefile (+29/-166)
README.md (+0/-2)
abi-compat/README.md (+4/-4)
abi-compat/jammy_0.107.xml (+1870/-1732)
debian/changelog (+143/-0)
debian/clean (+1/-0)
debian/control (+54/-5)
debian/extra/PLACEHOLDER (+4/-0)
debian/libnetplan0.symbols (+15/-0)
debian/netplan-generator.install (+5/-0)
debian/netplan.io.install (+5/-4)
debian/netplan.io.preinst (+17/-0)
debian/patches/0001-parse-nm-wg-append-the-correct-prefix-to-IPv6-addres.patch (+77/-0)
debian/patches/0004-tests-assert-generated-.service-files-in-assert_srio.patch (+26/-0)
debian/patches/0005-tests-sriov-test-if-the-generated-netplan-rebind-ser.patch (+57/-0)
debian/patches/0006-sriov-don-t-generate-duplicate-entries-in-the-rebind.patch (+96/-0)
debian/patches/lp2041727/0007-cli-utils-introduce-systemctl_is_installed-helper.patch (+66/-0)
debian/patches/lp2041727/0008-Update-ovs.py-to-check-if-ovsdb-server.service-is-in.patch (+75/-0)
debian/patches/series (+12/-26)
debian/patches/sru-compat/0009-validation-avoid-new-yaml_error-in-SRU.patch (+3/-7)
debian/patches/sru-compat/0010-Revert-ovs-don-t-allow-peers-with-the-same-name.patch (+2/-6)
debian/patches/sru-compat/0011-parse-add-comment-about-OpenFlow16-deprecation.patch (+1/-3)
debian/patches/sru-compat/0012-migrate-fix-looback_only-legacy-test.patch (+3/-5)
debian/patches/sru-compat/0013-Keep-old-file-permission-for-backwards-compatibility.patch (+11/-11)
debian/patches/sru-compat/0014-Demote-lacp-rate-validation-error-to-warning-for-bac.patch (+41/-0)
debian/python3-netplan.install (+1/-0)
debian/rules (+13/-0)
debian/tests/control (+30/-2)
debian/tests/prep-testbed.sh (+3/-0)
dev/null (+0/-511)
doc/apidoc/inc-netplan.md (+4/-0)
doc/apidoc/inc-parse-nm.md (+4/-0)
doc/apidoc/inc-parse.md (+4/-0)
doc/apidoc/inc-types.md (+4/-0)
doc/apidoc/inc-util.md (+4/-0)
doc/apidoc/index.md (+52/-0)
doc/conf.py (+29/-1)
doc/contribute-docs.md (+26/-0)
doc/explanation.md (+5/-0)
doc/howto.md (+1/-0)
doc/netplan-everywhere.md (+54/-60)
doc/netplan-yaml.md (+132/-6)
doc/nm-all.md (+26/-0)
doc/reference.md (+3/-3)
doc/requirements.txt (+1/-0)
doc/spelling_wordlist.txt (+36/-4)
examples/bonding.yaml (+1/-0)
examples/cffi-bindings.py (+69/-0)
examples/dummy-devices.yaml (+11/-0)
examples/virtual-ethernet.yaml (+16/-0)
examples/wireless_adhoc.yaml (+23/-0)
examples/wireless_wpa3.yaml (+10/-0)
examples/wpa3_enterprise.yaml (+26/-0)
features_py_generator.sh (+1/-1)
gcovr.cfg (+2/-0)
include/netplan.h (+13/-0)
include/parse-nm.h (+8/-0)
include/parse.h (+8/-1)
include/types.h (+74/-0)
include/util.h (+27/-0)
meson.build (+19/-8)
netplan_cli/__init__.py (+1/-1)
netplan_cli/cli/commands/__init__.py (+10/-10)
netplan_cli/cli/commands/apply.py (+24/-6)
netplan_cli/cli/commands/generate.py (+3/-3)
netplan_cli/cli/commands/get.py (+6/-42)
netplan_cli/cli/commands/info.py (+4/-4)
netplan_cli/cli/commands/ip.py (+1/-1)
netplan_cli/cli/commands/migrate.py (+1/-1)
netplan_cli/cli/commands/set.py (+10/-10)
netplan_cli/cli/commands/sriov_rebind.py (+2/-2)
netplan_cli/cli/commands/status.py (+263/-0)
netplan_cli/cli/commands/try_command.py (+11/-12)
netplan_cli/cli/core.py (+13/-4)
netplan_cli/cli/ovs.py (+3/-3)
netplan_cli/cli/sriov.py (+22/-22)
netplan_cli/cli/state.py (+173/-298)
netplan_cli/cli/utils.py (+23/-10)
netplan_cli/configmanager.py (+13/-8)
netplan_cli/meson.build (+2/-2)
python-cffi/meson.build (+1/-0)
python-cffi/netplan/__init__.py (+73/-0)
python-cffi/netplan/_build_cffi.py (+173/-0)
python-cffi/netplan/_utils.py (+214/-0)
python-cffi/netplan/meson.build (+50/-0)
python-cffi/netplan/netdef.py (+337/-0)
python-cffi/netplan/parser.py (+48/-0)
python-cffi/netplan/state.py (+135/-0)
rpm/netplan.spec (+9/-0)
spread.yaml (+2/-1)
src/abi.h (+36/-6)
src/abi_compat.c (+10/-3)
src/dbus.c (+6/-6)
src/error.c (+10/-7)
src/generate.c (+2/-2)
src/names.c (+19/-3)
src/names.h (+3/-0)
src/netplan.c (+63/-13)
src/netplan.script (+1/-1)
src/networkd.c (+128/-62)
src/nm.c (+138/-63)
src/openvswitch.c (+10/-12)
src/parse-nm.c (+346/-103)
src/parse.c (+328/-140)
src/sriov.c (+5/-5)
src/types-internal.h (+28/-2)
src/types.c (+10/-12)
src/util-internal.h (+56/-9)
src/util.c (+205/-19)
src/validation.c (+83/-43)
src/validation.h (+3/-0)
tests/cli/test_get_set.py (+76/-3)
tests/cli/test_state.py (+405/-0)
tests/cli/test_status.py (+214/-446)
tests/cli/test_units.py (+79/-2)
tests/ctests/meson.build (+4/-2)
tests/ctests/test_netplan_deprecated.c (+6/-6)
tests/ctests/test_netplan_error.c (+4/-4)
tests/ctests/test_netplan_keyfile.c (+295/-0)
tests/ctests/test_netplan_misc.c (+17/-17)
tests/ctests/test_netplan_nm.c (+62/-0)
tests/ctests/test_netplan_openvswitch.c (+69/-0)
tests/ctests/test_netplan_parser.c (+14/-14)
tests/ctests/test_netplan_state.c (+7/-7)
tests/ctests/test_netplan_validation.c (+6/-6)
tests/ctests/test_utils_keyfile.h (+48/-0)
tests/generator/base.py (+7/-0)
tests/generator/test_auth.py (+5/-2)
tests/generator/test_bonds.py (+1/-1)
tests/generator/test_common.py (+88/-3)
tests/generator/test_dummies.py (+94/-0)
tests/generator/test_routing.py (+63/-0)
tests/generator/test_tunnels.py (+69/-43)
tests/generator/test_veths.py (+199/-0)
tests/generator/test_vlans.py (+59/-0)
tests/generator/test_wifis.py (+467/-4)
tests/integration/base.py (+32/-10)
tests/integration/dummies.py (+89/-0)
tests/integration/ethernets.py (+1/-1)
tests/integration/ovs.py (+4/-1)
tests/integration/regressions.py (+31/-12)
tests/integration/routing.py (+1/-0)
tests/integration/scenarios.py (+2/-2)
tests/integration/tunnels.py (+50/-3)
tests/integration/veths.py (+91/-0)
tests/integration/vlans.py (+1/-1)
tests/parser/base.py (+30/-28)
tests/parser/test_keyfile.py (+914/-59)
tests/test_configmanager.py (+19/-2)
tests/test_libnetplan.py (+397/-67)
tests/test_ovs.py (+5/-5)
tests/test_sriov.py (+46/-46)
tests/test_terminal.py (+2/-2)
tests/test_utils.py (+28/-14)
tests/utils.py (+3/-3)
tools/keyfile_to_yaml.c (+34/-0)
tools/keyfile_to_yaml.py (+28/-0)
tools/run_asan.sh (+38/-4)
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
Changed in netplan.io (Ubuntu Noble): | |
status: | New → Fix Committed |
Changed in netplan.io (Ubuntu Mantic): | |
status: | New → Invalid |
Changed in netplan.io (Ubuntu Noble): | |
status: | Fix Committed → Fix Released |
description: | updated |
Changed in netplan.io (Ubuntu Jammy): | |
status: | New → In Progress |
Changed in netplan.io (Ubuntu Jammy): | |
status: | In Progress → New |
Autopkgtests from Jammy. See the description above for an explanation about why there are test failures.