-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Add Debian Packaging for Linux #13451
Conversation
Can you please add a complimentary PR to https://github.com/openzfs/openzfs-docs to update the docs for debian based systems? |
@gdevenyi Sure, will do. |
Quite a long way to just fix debuginfo generation, heh. Well done. My only suggestion is that it might be good to acknowledge that this is a minimally modified copy of the existing Debian maintainers' packaging for OpenZFS somewhere other than debian/copyright? I don't know that it's necessary, but I had to go looking to confirm you hadn't just deleted all references to them, since you emptied the changelog, and I'd rather acknowledge people too many times than too few. :) |
@happyaron @xnox @aerusso @cdluminate would you mind commenting on this? We'd like to (finally) add proper debian style packaging to the upstream repository to make it easier to build real packages to test with. However, I want to make sure we avoid stepping on any toes or causing unnecessary problems downstream. What's the right way for us to go about this? |
One of the possible scenario I can think of is people who run a custom build of debian package would like to upgrade to a distro build at a later time, or vice versa. Some care of the package names and dependencies should be taken to make sure they are compatible with the distro ones, so that a valid upgrade path exists. |
I'm curious, did you use existing Ubuntu ZFS packages as reference? |
Ubuntu ZFS package is pulled from Debian with slight modification. I'm continuously synchronizing Ubuntu modifications back to Debian package. But in fact most of the changes made by Ubuntu are Ubuntu-specific, like zsys support. They are not enabled on Debian. |
I currently have several concerns regarding this: |
Another debian package contributor is also around: @nabijaczleweli |
Yes, and I consider putting packaging in upstream sources idiotic at best, especially Debian-style packaging that takes over the source directory, especially especially if the downstream heavily patches this and has a particular binary package layout. If it were up to me I'd close this as severely out-of-scope; but it isn't, so I didn't post here at all. But (a) if you put If you want to build a Debian package off trunk for whatever reason then (a) configure for srpm and Don't @ me here again, thanks. |
|
(1): True. But as said by more than one person that, once Let me say this again: if |
(2) I can't agree with this as a good engineering practice. Assume Debian's packaging commit A has a bug. This snapshot is also imported to openzfs upstream. Is this bug debian bug or upstream bug? With alien, such packaging bugs are uniform across distribution. But if native debian packaging is imported, a bug will involve too much participants and may even be distribution-specific. Please be aware of such implication on maintenance burden for openzfs/zfs upstream. I think the upstream don't have to be distracted by such issue. |
We do agree that this is not a good approach. Moving For synchronizing changes, any changes downstream that seem generally useful may be contributed back to upstream since git allows to merge into a sub-directory. |
In that case please specify Conflicts+Replaces in |
as a former occasional Debian zfs contributor, and one of the downstream maintainers of ZFS packages derived from Debian's - another option instead of fully renaming the packages is to use a version suffix but keep the names/contents broadly in sync. we do this in our downstream distros (which are using the main Debian repositories and a downstream specific one, with the latter shipping higher versions of packages also shipped by Debian). Debian backports does the inverse (using a suffix that sorts lower than the actual package, so that upgrading from N-backports to N+1 works), Ubuntu uses a similar scheme for some packages. obviously, this requires some amount of coordination but not that much:
IMHO the most important requirement is that there needs to be someone available for reviewing changes to the upstream/forked packaging that (really) understands how Debian packaging works, and has a good working relationship with downstream (Debian/Ubuntu) maintainers. not sure whether such a person exists or whether any of the existing downstream maintainers want/have capacity to fill that role. dpkg-buildpackage operates on unpacked source trees, so if |
Sure, will do. |
Let me add my disclaimer here: As an active downstream Debian ZFS package maintainer, I will not keep track of the status and bugs of this copy of imported debian packaging. When new commits are made on the Debian side, I'll not inform the upstream to update the code copy. As long as (1) packaging incorporation does not interfere with the downstream (Debian) workflow, (2) copyright, changelog, credit to contributors and license are intact, I'm not going to stand in the way of anyone. |
Another detail -- the debian packaging is licensed under GPL-2+ due to historical reasons: https://salsa.debian.org/zfsonlinux-team/zfs/-/blob/master/debian/copyright#L194-204 -- please be aware. |
If motivation is described a bit better, different solutions and approaches can be done to make things easy to achieve the desired goal and make it easy to share packaging. Are you planning to start providing snapshot / daily builds of openzfs for debian/ubuntu? Or is it an advanced-user / developer enhancement to allow one to self-build .debs and install them to see how things are interacting? From Ubuntu point of view, it would be nice to use different package names, and maybe even have extra conflicts. This is because systems that are installed with zsys feature is currently trivially to irreversably make unbootable, and loose automatic snapshots and rollbacks. Thus ideally the packaging upstream should intentionally use different package names. Also in Ubuntu, zfs.ko is signed to support secureboot with enforced module signature checking. Care should be taken to ensure that packages provided here, do not allow installing dkms based zfs.ko module without signatures from an enrolled MOK key. |
The need for proper Debian style packaging was felt to: (1) Make things easier for developers to have an actively managed packaging for Debian based systems. Ease of development, testing and debugging for Debian based systems is the only goal here. |
As for (4). Debian packages built using the standard process do not include debug symbols neither. Debugging information will be split into |
I did take that route first. But after discussing it on the slack channel for OpenZFS, it was recommended we take this as a shorter path than trying to convince alien to emit debugging information. And that we should try to switch to a less alien based generation system. |
In continuation of previous openzfs#13451, this commits adds native-deb* targets to build native debian packages and updates the Github workflows to build and test native packages on Ubuntu 20.04. Ubuntu 18.04 workflow would still build and test the Alien converted Debian packages due to unmet build and install dependencies. Native packages only build with pre-configured paths (see the rules file). Initial config flags e.g. '--enable-debug' are passed to contrib/debian/rules. Additional packages on top ofexisting zfs packages required to build native packages include debhelper-compat, dh-python, dkms, po-debconf, python3-all-dev, python3-sphinx. For release, contrib/debian/changelog should be updated with release version. Signed-off-by: Umer Saleem <[email protected]>
In continuation of previous openzfs#13451, this commits adds native-deb* targets to build native debian packages and updates the Github workflows to build and test native packages on Ubuntu 20.04. Ubuntu 18.04 workflow would still build and test the Alien converted Debian packages due to unmet build and install dependencies. Native packages only build with pre-configured paths (see the rules file). Initial config flags e.g. '--enable-debug' are passed to contrib/debian/rules. Additional packages on top ofexisting zfs packages required to build native packages include debhelper-compat, dh-python, dkms, po-debconf, python3-all-dev, python3-sphinx. For release, contrib/debian/changelog should be updated with release version. Signed-off-by: Umer Saleem <[email protected]>
In continuation of previous openzfs#13451, this commits adds native-deb* targets to build native debian packages and updates the Github workflows to build and test native packages on Ubuntu 20.04. Ubuntu 18.04 workflow would still build and test the Alien converted Debian packages due to unmet build and install dependencies. Native packages only build with pre-configured paths (see the rules file). Initial config flags like --enable-debug are passed to contrib/debian/rules. Additional packages on top existing zfs packages required to build native packages include debhelper-compat, dh-python, dkms, po-debconf, python3-all-dev, python3-sphinx. For release, contrib/debian/changelog should be update with release version. Signed-off-by: Umer Saleem <[email protected]>
In continuation of previous openzfs#13451, this commits adds native-deb* targets to build native debian packages and updates the Github workflows to build and test native packages on Ubuntu 20.04. Ubuntu 18.04 workflow would still build and test the Alien converted Debian packages due to unmet build and install dependencies. Native packages only build with pre-configured paths (see the rules file). Initial config flags like --enable-debug are passed to contrib/debian/rules. Additional packages on top existing zfs packages required to build native packages include debhelper-compat, dh-python, dkms, po-debconf, python3-all-dev, python3-sphinx. For release, contrib/debian/changelog should be update with release version. Signed-off-by: Umer Saleem <[email protected]>
In continuation of previous openzfs#13451, this commits adds native-deb* targets to build native debian packages and updates the Github workflows to build and test native packages on Ubuntu 20.04. Ubuntu 18.04 workflow would still build and test the Alien converted Debian packages due to unmet build and install dependencies. Native packages only build with pre-configured paths (see the rules file). Initial config flags e.g. '--enable-debug' are passed to contrib/debian/rules. Additional packages on top ofexisting zfs packages required to build native packages include debhelper-compat, dh-python, dkms, po-debconf, python3-all-dev, python3-sphinx. For release, contrib/debian/changelog should be updated with release version. Signed-off-by: Umer Saleem <[email protected]>
In continuation of previous openzfs#13451, this commits adds native-deb* targets to build native debian packages and updates the Github workflows to build and test native packages on Ubuntu 20.04. Ubuntu 18.04 workflow would still build and test the Alien converted Debian packages due to unmet build and install dependencies. Native packages only build with pre-configured paths (see the rules file). Initial config flags e.g. '--enable-debug' are passed to contrib/debian/rules. Additional packages on top ofexisting zfs packages required to build native packages include debhelper-compat, dh-python, dkms, po-debconf, python3-all-dev, python3-sphinx. For release, contrib/debian/changelog should be updated with release version. Signed-off-by: Umer Saleem <[email protected]>
In continuation of previous openzfs#13451, this commits adds native-deb* targets to build native debian packages and updates the Github workflows to build and test native packages. Ubuntu 18.04 workflow would still build and test the Alien converted Debian packages due to unmet build and install dependencies. Native packages only build with pre-configured paths (see the dh_auto_configure section in contrib/debian/rules.in). While building native packages, paths should not be configured. Initial config flags e.g. '--enable-debug' are replaced in contrib/debian/rules.in. Additional packages on top of existing zfs packages required to build native packages include debhelper-compat, dh-python, dkms, po-debconf, python3-all-dev, python3-sphinx. For release, contrib/debian/changelog should be updated with release version. Signed-off-by: Umer Saleem <[email protected]>
In continuation of previous openzfs#13451, this commits adds native-deb* targets to build native debian packages and updates the Github workflows to build and test native packages. Ubuntu 18.04 workflow would still build and test the Alien converted Debian packages due to unmet build and install dependencies. Native packages only build with pre-configured paths (see the dh_auto_configure section in contrib/debian/rules.in). While building native packages, paths should not be configured. Initial config flags e.g. '--enable-debug' are replaced in contrib/debian/rules.in. Additional packages on top of existing zfs packages required to build native packages include debhelper-compat, dh-python, dkms, po-debconf, python3-all-dev, python3-sphinx. For release, contrib/debian/changelog should be updated with release version. Signed-off-by: Umer Saleem <[email protected]>
In continuation of previous openzfs#13451, this commits adds native-deb* targets to build native debian packages and updates the Github workflows to build and test native packages. Ubuntu 18.04 workflow would still build and test the Alien converted Debian packages due to unmet build and install dependencies. Native packages only build with pre-configured paths (see the dh_auto_configure section in contrib/debian/rules.in). While building native packages, paths should not be configured. Initial config flags e.g. '--enable-debug' are replaced in contrib/debian/rules.in. Additional packages on top of existing zfs packages required to build native packages include debhelper-compat, dh-python, dkms, po-debconf, python3-all-dev, python3-sphinx. For release, contrib/debian/changelog should be updated with release version. Signed-off-by: Umer Saleem <[email protected]>
In continuation of previous openzfs#13451, this commits adds native-deb* targets to build native debian packages and updates the Github workflows to build and test native packages. Ubuntu 18.04 workflow would still build and test the Alien converted Debian packages due to unmet build and install dependencies. Native packages only build with pre-configured paths (see the dh_auto_configure section in contrib/debian/rules.in). While building native packages, paths should not be configured. Initial config flags e.g. '--enable-debug' are replaced in contrib/debian/rules.in. Additional packages on top of existing zfs packages required to build native packages include debhelper-compat, dh-python, dkms, po-debconf, python3-all-dev, python3-sphinx. For release, contrib/debian/changelog should be updated with release version. Signed-off-by: Umer Saleem <[email protected]>
In continuation of previous openzfs#13451, this commits adds native-deb* targets to build native debian packages and updates the Github workflows to build and test native packages. Ubuntu 18.04 workflow would still build and test the Alien converted Debian packages due to unmet build and install dependencies. Native packages only build with pre-configured paths (see the dh_auto_configure section in contrib/debian/rules.in). While building native packages, paths should not be configured. Initial config flags e.g. '--enable-debug' are replaced in contrib/debian/rules.in. Additional packages on top of existing zfs packages required to build native packages include debhelper-compat, dh-python, dkms, po-debconf, python3-all-dev, python3-sphinx. For release, contrib/debian/changelog should be updated with release version. Signed-off-by: Umer Saleem <[email protected]>
In continuation of previous openzfs#13451, this commits adds native-deb* targets for make to build native debian packages. Github workflows are updated to build and test native Debian packages. Native packages only build with pre-configured paths (see the dh_auto_configure section in contrib/debian/rules.in). While building native packages, paths should not be configured. Initial config flags e.g. '--enable-debug' are replaced in contrib/debian/rules.in. Additional packages on top of existing zfs packages required to build native packages include debhelper-compat, dh-python, dkms, po-debconf, python3-all-dev, python3-sphinx. Signed-off-by: Umer Saleem <[email protected]>
In continuation of previous openzfs#13451, this commits adds native-deb* targets for make to build native debian packages. Github workflows are updated to build and test native Debian packages. Native packages only build with pre-configured paths (see the dh_auto_configure section in contrib/debian/rules.in). While building native packages, paths should not be configured. Initial config flags e.g. '--enable-debug' are replaced in contrib/debian/rules.in. Additional packages on top of existing zfs packages required to build native packages include debhelper-compat, dh-python, dkms, po-debconf, python3-all-dev, python3-sphinx. Signed-off-by: Umer Saleem <[email protected]>
In continuation of previous openzfs#13451, this commits adds native-deb* targets for make to build native debian packages. Github workflows are updated to build and test native Debian packages. Native packages only build with pre-configured paths (see the dh_auto_configure section in contrib/debian/rules.in). While building native packages, paths should not be configured. Initial config flags e.g. '--enable-debug' are replaced in contrib/debian/rules.in. Additional packages on top of existing zfs packages required to build native packages include debhelper-compat, dh-python, dkms, po-debconf, python3-all-dev, python3-sphinx. Signed-off-by: Umer Saleem <[email protected]>
In continuation of previous openzfs#13451, this commits adds native-deb* targets for make to build native debian packages. Github workflows are updated to build and test native Debian packages. Native packages only build with pre-configured paths (see the dh_auto_configure section in contrib/debian/rules.in). While building native packages, paths should not be configured. Initial config flags e.g. '--enable-debug' are replaced in contrib/debian/rules.in. Additional packages on top of existing zfs packages required to build native packages include debhelper-compat, dh-python, dkms, po-debconf, python3-all-dev, python3-sphinx. Signed-off-by: Umer Saleem <[email protected]>
In continuation of previous #13451, this commits adds native-deb* targets for make to build native debian packages. Github workflows are updated to build and test native Debian packages. Native packages only build with pre-configured paths (see the dh_auto_configure section in contrib/debian/rules.in). While building native packages, paths should not be configured. Initial config flags e.g. '--enable-debug' are replaced in contrib/debian/rules.in. Additional packages on top of existing zfs packages required to build native packages include debhelper-compat, dh-python, dkms, po-debconf, python3-all-dev, python3-sphinx. Reviewed-by: George Melikov <[email protected]> Reviewed-by: Ryan Moeller <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Umer Saleem <[email protected]> Closes #14265
Currently, the Debian packages are generated from ALIEN that converts RPMs to Debian packages. This commit adds native Debian packaging for Debian based systems. This packaging is a fork of Debian zfs-linux 2.1.6-2 release. (source: https://salsa.debian.org/zfsonlinux-team/zfs) Some updates have been made to keep the footprint minimal that include removing the tests, translation files, patches directory etc. All credits go to Debian ZFS on Linux Packaging Team. For copyright information, please refer to contrib/debian/copyright. scripts/debian-packaging.sh can be used to invoke the build. Reviewed-by: Mo Zhou <[email protected]> Reviewed-by: Ryan Moeller <[email protected]> Signed-off-by: Umer Saleem <[email protected]> Closes openzfs#13451
In continuation of previous openzfs#13451, this commits adds native-deb* targets for make to build native debian packages. Github workflows are updated to build and test native Debian packages. Native packages only build with pre-configured paths (see the dh_auto_configure section in contrib/debian/rules.in). While building native packages, paths should not be configured. Initial config flags e.g. '--enable-debug' are replaced in contrib/debian/rules.in. Additional packages on top of existing zfs packages required to build native packages include debhelper-compat, dh-python, dkms, po-debconf, python3-all-dev, python3-sphinx. Reviewed-by: George Melikov <[email protected]> Reviewed-by: Ryan Moeller <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Umer Saleem <[email protected]> Closes openzfs#14265
Currently, the Debian packages are generated from ALIEN that converts RPMs to Debian packages. This commit adds native Debian packaging for Debian based systems. This packaging is a fork of Debian zfs-linux 2.1.6-2 release. (source: https://salsa.debian.org/zfsonlinux-team/zfs) Some updates have been made to keep the footprint minimal that include removing the tests, translation files, patches directory etc. All credits go to Debian ZFS on Linux Packaging Team. For copyright information, please refer to contrib/debian/copyright. scripts/debian-packaging.sh can be used to invoke the build. Reviewed-by: Mo Zhou <[email protected]> Reviewed-by: Ryan Moeller <[email protected]> Signed-off-by: Umer Saleem <[email protected]> Closes openzfs#13451
In continuation of previous openzfs#13451, this commits adds native-deb* targets for make to build native debian packages. Github workflows are updated to build and test native Debian packages. Native packages only build with pre-configured paths (see the dh_auto_configure section in contrib/debian/rules.in). While building native packages, paths should not be configured. Initial config flags e.g. '--enable-debug' are replaced in contrib/debian/rules.in. Additional packages on top of existing zfs packages required to build native packages include debhelper-compat, dh-python, dkms, po-debconf, python3-all-dev, python3-sphinx. Reviewed-by: George Melikov <[email protected]> Reviewed-by: Ryan Moeller <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Umer Saleem <[email protected]> Closes openzfs#14265
In continuation of previous openzfs#13451, this commits adds native-deb* targets for make to build native debian packages. Github workflows are updated to build and test native Debian packages. Native packages only build with pre-configured paths (see the dh_auto_configure section in contrib/debian/rules.in). While building native packages, paths should not be configured. Initial config flags e.g. '--enable-debug' are replaced in contrib/debian/rules.in. Additional packages on top of existing zfs packages required to build native packages include debhelper-compat, dh-python, dkms, po-debconf, python3-all-dev, python3-sphinx. Reviewed-by: George Melikov <[email protected]> Reviewed-by: Ryan Moeller <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Umer Saleem <[email protected]> Closes openzfs#14265
Currently, the Debian packages are generated from ALIEN that converts RPMs to Debian packages. This commit adds native Debian packaging for Debian based systems. This packaging is a fork of Debian zfs-linux 2.1.6-2 release. (source: https://salsa.debian.org/zfsonlinux-team/zfs) Some updates have been made to keep the footprint minimal that include removing the tests, translation files, patches directory etc. All credits go to Debian ZFS on Linux Packaging Team. For copyright information, please refer to contrib/debian/copyright. scripts/debian-packaging.sh can be used to invoke the build. Reviewed-by: Mo Zhou <[email protected]> Reviewed-by: Ryan Moeller <[email protected]> Signed-off-by: Umer Saleem <[email protected]> Closes openzfs#13451
In continuation of previous openzfs#13451, this commits adds native-deb* targets for make to build native debian packages. Github workflows are updated to build and test native Debian packages. Native packages only build with pre-configured paths (see the dh_auto_configure section in contrib/debian/rules.in). While building native packages, paths should not be configured. Initial config flags e.g. '--enable-debug' are replaced in contrib/debian/rules.in. Additional packages on top of existing zfs packages required to build native packages include debhelper-compat, dh-python, dkms, po-debconf, python3-all-dev, python3-sphinx. Reviewed-by: George Melikov <[email protected]> Reviewed-by: Ryan Moeller <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Umer Saleem <[email protected]> Closes openzfs#14265
I'm obviously commenting on a long closed ticket, but has this new capability been documented somewhere?
I suppose it should also mention that |
Thanks for the reminder @dalbani , I will create a PR for documenting this. |
Motivation and Context
Add Debian Packaging for Linux
Description
Currently, the Debian packages are generated from ALIEN that converts
RPMs to Debian packages. This commit adds native Debian packaging for
Debian based systems from ZFS on Linux.
Proper Debian style packaging can:
How Has This Been Tested?
Built the packages from new packaging. Installed the packages on Debian 11 and ran the test suite.
Types of changes
Checklist:
Signed-off-by
.