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

Bump SONAME of libzfs and libzpool before 2.3.0 release #16609

Closed
wants to merge 2 commits into from

Conversation

Harry-Chen
Copy link
Contributor

Motivation and Context

The ABI of libzfs and libzpool have breaking changes since last SONAME bump in commit fe6babc:

  • libzfs: zpool_print_unsup_feat removed (used by zpool cmd).
  • libzpool: multiple ddt_* symbols removed (used by zdb cmd), and many more.

Bump them to avoid ABI breakage.

See: #11817

cc @behlendorf

Description

See my commits. And here's the dpkg-gensymbols output comparing symbols from 2.3.0-rc1 to 2.2.6, for reference:

zfs-symbols.patch

How Has This Been Tested?

Compiled on my machine. Wait for CI run.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Performance enhancement (non-breaking change which improves efficiency)
  • Code cleanup (non-breaking change which makes code smaller or more readable)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Library ABI change (libzfs, libzfs_core, libnvpair, libuutil and libzfsbootenv)
  • Documentation (a change to man pages or other documentation)

Checklist:

Signed-off-by: Shengqi Chen <harry-chen@outlook.com>
The ABI of libzfs and libzpool have breaking changes since last
SONAME bump in commit fe6babc:

* libzfs: `zpool_print_unsup_feat` removed (used by zpool cmd).
* libzpool: multiple `ddt_*` symbols removed (used by zdb cmd).

Bump them to avoid ABI breakage.

See: openzfs#11817
ZFS-CI-Type: quick
Signed-off-by: Shengqi Chen <harry-chen@outlook.com>
@satmandu
Copy link
Contributor

satmandu commented Oct 6, 2024

Do any of the ABI changes affect programs shipped outside of OpenZFS (i.e., are any external consumers affected?)?

I assume that zpool and zdb are always packaged with OpenZFS, so they will always be packaged with a corresponding libzfs and libzpool and thus never break?

@Harry-Chen
Copy link
Contributor Author

Do any of the ABI changes affect programs shipped outside of OpenZFS (i.e., are any external consumers affected?)?

Yes. For example, truenas's https://github.com/truenas/py-libzfs links to libzfs. There might be other tools leveraging these libraries.

I assume that zpool and zdb are always packaged with OpenZFS, so they will always be packaged with a corresponding libzfs and libzpool and thus never break?

Executables and libraries are separately packaged in both RPM / DEB, so they are theoretically not always bundled together. Although executable packages can specify dependencies on specific library versions (and this is what we are doing now both in upstream and distros), it is always safer (and required by most distro policies) to have a SONAME bump whenever ABI have breaking changes.

Copy link
Contributor

@behlendorf behlendorf left a comment

Choose a reason for hiding this comment

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

Thanks, yes a SONAME version bump is definitely in order.

@behlendorf behlendorf added Component: Packaging custom packages Status: Accepted Ready to integrate (reviewed, tested) labels Oct 6, 2024
@behlendorf behlendorf closed this in c59d549 Oct 6, 2024
behlendorf pushed a commit that referenced this pull request Oct 6, 2024
The ABI of libzfs and libzpool have breaking changes since last
SONAME bump in commit fe6babc:

* libzfs: `zpool_print_unsup_feat` removed (used by zpool cmd).
* libzpool: multiple `ddt_*` symbols removed (used by zdb cmd).

Bump them to avoid ABI breakage.

See: #11817
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Shengqi Chen <harry-chen@outlook.com>
Closes #16609
@Harry-Chen Harry-Chen deleted the bump-soname branch October 7, 2024 07:08
behlendorf pushed a commit to behlendorf/zfs that referenced this pull request Oct 9, 2024
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Shengqi Chen <harry-chen@outlook.com>
Closes openzfs#16609
behlendorf pushed a commit to behlendorf/zfs that referenced this pull request Oct 9, 2024
The ABI of libzfs and libzpool have breaking changes since last
SONAME bump in commit fe6babc:

* libzfs: `zpool_print_unsup_feat` removed (used by zpool cmd).
* libzpool: multiple `ddt_*` symbols removed (used by zdb cmd).

Bump them to avoid ABI breakage.

See: openzfs#11817
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Shengqi Chen <harry-chen@outlook.com>
Closes openzfs#16609
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component: Packaging custom packages Status: Accepted Ready to integrate (reviewed, tested)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants