Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ABI: Refactoring for libnetplan.so.1 #434

Merged
merged 7 commits into from
Jan 22, 2024
Merged

ABI: Refactoring for libnetplan.so.1 #434

merged 7 commits into from
Jan 22, 2024

Conversation

slyon
Copy link
Collaborator

@slyon slyon commented Jan 18, 2024

Description

Please review commit-by-commit.

Bumping libnetplan's SOVERSION to 1, indicating breaking changes. Also, bumping Netplan's version to "1.0" already, in preparation for the next release.

I've dropped some more legacy code and cleaned up the existing public & internal APIs, making sure we do not export anything that is either prefixed with _netplan_ (internal API) or netplan_ (public API).

Note

Feel free to ignore the last (big) commit in "abi-compat", as that is auto-generated (e6b3c7d)

Known issues

One thing I noticed already is, that it is building against noble-release using systemd v253 (instead of v255 from -proposed), therefore getting the wrong systemd-generator path from pkgconf.

FR-3760

Checklist

  • Runs make check successfully.
  • Retains 100% code coverage (make check-coverage).
  • New/changed keys in YAML format are documented.
  • (Optional) Adds example YAML for new feature.
  • (Optional) Closes an open bug in Launchpad.

@slyon slyon changed the title Refactoring for libnetplan1 SOVER Refactoring for libnetplan.so.1 Jan 18, 2024
@slyon slyon force-pushed the pre-1.0 branch 2 times, most recently from fd4f857 to 89ebac9 Compare January 18, 2024 11:31
The new systemd-dev build-dependency is not available on Jammy.
But it is part of the 'systemd' B-D itself.
@slyon slyon force-pushed the pre-1.0 branch 2 times, most recently from 79baf2b to e6b3c7d Compare January 18, 2024 11:55
@slyon slyon marked this pull request as ready for review January 18, 2024 13:04
@slyon slyon requested a review from daniloegea January 18, 2024 13:04
Copy link
Collaborator

@daniloegea daniloegea left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm! I just left 2 non-blocking comments.

src/meson.build Show resolved Hide resolved
.github/workflows/build-abi.yml Show resolved Hide resolved
@daniloegea
Copy link
Collaborator

Oh, about the Network Manager tests. I'm not sure why they are failing :( I tried it locally with netplan.io from -proposed and systemd from release (253) they just work... not sure if it's related to the usrmerge stuff...

@daniloegea
Copy link
Collaborator

wait... we got rid of the old .0 shared library, Network Manager needs to be rebuilt on Noble to work properly.

@slyon
Copy link
Collaborator Author

slyon commented Jan 18, 2024

wait... we got rid of the old .0 shared library, Network Manager needs to be rebuilt on Noble to work properly.

Ahh, yes! That might be it. On the distro side this will be enforced by changing the libnetplan1 package name. Inside the CI I need some way to work around it... maybe rebuilding NM.

@slyon slyon force-pushed the pre-1.0 branch 5 times, most recently from 1e8a30b to 13b067c Compare January 22, 2024 13:06
Also re-build the NetworkManager package during test, to account for the
new libnetplan.so.1 shared object.
They are now all encapsulated inside the netplan_state struct, to be used through the API.

Also, restructure the generator's includes for better separation of public vs internal headers.
@slyon slyon changed the title Refactoring for libnetplan.so.1 ABI: Refactoring for libnetplan.so.1 Jan 22, 2024
@slyon slyon merged commit 6072142 into canonical:main Jan 22, 2024
14 of 15 checks passed
@slyon slyon mentioned this pull request Jan 22, 2024
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants