Skip to content

Commit 4d631a5

Browse files
author
Umer Saleem
authored
Add native Debian Packaging for Linux
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 #13451
1 parent 4938d01 commit 4d631a5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+1198
-0
lines changed

contrib/debian/changelog

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
openzfs-linux (2.1.99-1) unstable; urgency=low
2+
3+
* Integrate minimally modified Debian packaging from ZFS on Linux
4+
(source: https://salsa.debian.org/zfsonlinux-team/zfs)
5+
* This packaging is a fork of Debian zfs-linux 2.1.6-2 release.
6+
7+
-- Umer Saleem <[email protected]> Fri, 11 Oct 2022 15:00:00 -0400

contrib/debian/clean

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
bin/
2+
cmd/zed/zed.d/history_event-zfs-list-cacher.sh
3+
contrib/pyzfs/build/
4+
contrib/pyzfs/libzfs_core/__pycache__/
5+
contrib/pyzfs/libzfs_core/bindings/__pycache__/
6+
contrib/pyzfs/pyzfs.egg-info/
7+
debian/openzfs-libnvpair3.install
8+
debian/openzfs-libuutil3.install
9+
debian/openzfs-libzfs4.install
10+
debian/openzfs-libzfs-dev.install
11+
debian/openzfs-libzpool5.install

contrib/debian/control

+328
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,328 @@
1+
Source: openzfs-linux
2+
Section: contrib/kernel
3+
Priority: optional
4+
Maintainer: ZFS on Linux specific mailing list <[email protected]>
5+
Build-Depends: abigail-tools,
6+
debhelper-compat (= 12),
7+
dh-python,
8+
dkms (>> 2.1.1.2-5),
9+
libaio-dev,
10+
libblkid-dev,
11+
libcurl4-openssl-dev,
12+
libelf-dev,
13+
libpam0g-dev,
14+
libssl-dev | libssl1.0-dev,
15+
libtool,
16+
libudev-dev,
17+
lsb-release,
18+
po-debconf,
19+
python3-all-dev,
20+
python3-cffi,
21+
python3-setuptools,
22+
python3-sphinx,
23+
uuid-dev,
24+
zlib1g-dev
25+
Standards-Version: 4.5.1
26+
Homepage: https://openzfs.org/
27+
Vcs-Git: https://github.com/openzfs/zfs.git
28+
Vcs-Browser: https://github.com/openzfs/zfs
29+
Rules-Requires-Root: no
30+
XS-Autobuild: yes
31+
32+
Package: openzfs-libnvpair3
33+
Section: contrib/libs
34+
Architecture: linux-any
35+
Depends: ${misc:Depends}, ${shlibs:Depends}
36+
Breaks: libnvpair1, libnvpair3
37+
Replaces: libnvpair1, libnvpair3, libnvpair3linux
38+
Conflicts: libnvpair3linux
39+
Description: Solaris name-value library for Linux
40+
This library provides routines for packing and unpacking nv pairs for
41+
transporting data across process boundaries, transporting between
42+
kernel and userland, and possibly saving onto disk files.
43+
44+
Package: openzfs-libpam-zfs
45+
Section: contrib/admin
46+
Architecture: linux-any
47+
Depends: libpam-runtime, ${misc:Depends}, ${shlibs:Depends}
48+
Replaces: libpam-zfs
49+
Conflicts: libpam-zfs
50+
Description: PAM module for managing encryption keys for ZFS
51+
OpenZFS is a storage platform that encompasses the functionality of
52+
traditional filesystems and volume managers. It supports data checksums,
53+
compression, encryption, snapshots, and more.
54+
.
55+
This provides a Pluggable Authentication Module (PAM) that automatically
56+
unlocks encrypted ZFS datasets upon login.
57+
58+
Package: openzfs-libuutil3
59+
Section: contrib/libs
60+
Architecture: linux-any
61+
Depends: ${misc:Depends}, ${shlibs:Depends}
62+
Breaks: libuutil1, libuutil3
63+
Replaces: libuutil1, libuutil3, libuutil3linux
64+
Conflicts: libuutil3linux
65+
Description: Solaris userland utility library for Linux
66+
This library provides a variety of glue functions for ZFS on Linux:
67+
* libspl: The Solaris Porting Layer userland library, which provides APIs
68+
that make it possible to run Solaris user code in a Linux environment
69+
with relatively minimal modification.
70+
* libavl: The Adelson-Velskii Landis balanced binary tree manipulation
71+
library.
72+
* libefi: The Extensible Firmware Interface library for GUID disk
73+
partitioning.
74+
* libshare: NFS, SMB, and iSCSI service integration for ZFS.
75+
76+
Package: openzfs-libzfs-dev
77+
Section: contrib/libdevel
78+
Architecture: linux-any
79+
Depends: libssl-dev | libssl1.0-dev,
80+
openzfs-libnvpair3 (= ${binary:Version}),
81+
openzfs-libuutil3 (= ${binary:Version}),
82+
openzfs-libzfs4 (= ${binary:Version}),
83+
openzfs-libzfsbootenv1 (= ${binary:Version}),
84+
openzfs-libzpool5 (= ${binary:Version}),
85+
${misc:Depends}
86+
Replaces: libzfslinux-dev
87+
Conflicts: libzfslinux-dev
88+
Provides: libnvpair-dev, libuutil-dev
89+
Description: OpenZFS filesystem development files for Linux
90+
Header files and static libraries for compiling software against
91+
libraries of OpenZFS filesystem.
92+
.
93+
This package includes the development files of libnvpair3, libuutil3,
94+
libzpool5 and libzfs4.
95+
96+
Package: openzfs-libzfs4
97+
Section: contrib/libs
98+
Architecture: linux-any
99+
Depends: ${misc:Depends}, ${shlibs:Depends}
100+
# The libcurl4 is loaded through dlopen("libcurl.so.4").
101+
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=988521
102+
Recommends: libcurl4
103+
Breaks: libzfs2, libzfs4
104+
Replaces: libzfs2, libzfs4, libzfs4linux
105+
Conflicts: libzfs4linux
106+
Description: OpenZFS filesystem library for Linux - general support
107+
OpenZFS is a storage platform that encompasses the functionality of
108+
traditional filesystems and volume managers. It supports data checksums,
109+
compression, encryption, snapshots, and more.
110+
.
111+
The OpenZFS library provides support for managing OpenZFS filesystems.
112+
113+
Package: openzfs-libzfsbootenv1
114+
Section: contrib/libs
115+
Architecture: linux-any
116+
Depends: ${misc:Depends}, ${shlibs:Depends}
117+
Breaks: libzfs2, libzfs4
118+
Replaces: libzfs2, libzfs4, libzfsbootenv1linux
119+
Conflicts: libzfsbootenv1linux
120+
Description: OpenZFS filesystem library for Linux - label info support
121+
OpenZFS is a storage platform that encompasses the functionality of
122+
traditional filesystems and volume managers. It supports data checksums,
123+
compression, encryption, snapshots, and more.
124+
.
125+
The zfsbootenv library provides support for modifying ZFS label information.
126+
127+
Package: openzfs-libzpool5
128+
Section: contrib/libs
129+
Architecture: linux-any
130+
Depends: ${misc:Depends}, ${shlibs:Depends}
131+
Breaks: libzpool2, libzpool5
132+
Replaces: libzpool2, libzpool5, libzpool5linux
133+
Conflicts: libzpool5linux
134+
Description: OpenZFS pool library for Linux
135+
OpenZFS is a storage platform that encompasses the functionality of
136+
traditional filesystems and volume managers. It supports data checksums,
137+
compression, encryption, snapshots, and more.
138+
.
139+
This zpool library provides support for managing zpools.
140+
141+
Package: openzfs-python3-pyzfs
142+
Section: contrib/python
143+
Architecture: linux-any
144+
Depends: python3-cffi,
145+
openzfs-zfsutils (= ${binary:Version}),
146+
${misc:Depends},
147+
${python3:Depends}
148+
Replaces: python3-pyzfs
149+
Conflicts: python3-pyzfs
150+
Description: wrapper for libzfs_core C library
151+
libzfs_core is intended to be a stable interface for programmatic
152+
administration of ZFS. This wrapper provides one-to-one wrappers for
153+
libzfs_core API functions, but the signatures and types are more natural to
154+
Python.
155+
.
156+
nvlists are wrapped as dictionaries or lists depending on their usage.
157+
Some parameters have default values depending on typical use for
158+
increased convenience. Enumerations and bit flags become strings and lists
159+
of strings in Python. Errors are reported as exceptions rather than integer
160+
errno-style error codes. The wrapper takes care to provide one-to-many
161+
mapping of the error codes to the exceptions by interpreting a context
162+
in which the error code is produced.
163+
164+
Package: openzfs-pyzfs-doc
165+
Section: contrib/doc
166+
Architecture: all
167+
Depends: ${misc:Depends}, ${sphinxdoc:Depends}
168+
Recommends: openzfs-python3-pyzfs
169+
Replaces: pyzfs-doc
170+
Conflicts: pyzfs-doc
171+
Description: wrapper for libzfs_core C library (documentation)
172+
libzfs_core is intended to be a stable interface for programmatic
173+
administration of ZFS. This wrapper provides one-to-one wrappers for
174+
libzfs_core API functions, but the signatures and types are more natural to
175+
Python.
176+
.
177+
nvlists are wrapped as dictionaries or lists depending on their usage.
178+
Some parameters have default values depending on typical use for
179+
increased convenience. Enumerations and bit flags become strings and lists
180+
of strings in Python. Errors are reported as exceptions rather than integer
181+
errno-style error codes. The wrapper takes care to provide one-to-many
182+
mapping of the error codes to the exceptions by interpreting a context
183+
in which the error code is produced.
184+
.
185+
This package contains the documentation.
186+
187+
Package: openzfs-zfs-dkms
188+
Architecture: all
189+
Depends: dkms (>> 2.1.1.2-5),
190+
file,
191+
libc6-dev | libc-dev,
192+
lsb-release,
193+
python3-distutils | libpython3-stdlib (<< 3.6.4),
194+
${misc:Depends},
195+
${perl:Depends}
196+
Recommends: openzfs-zfs-zed, openzfs-zfsutils (>= ${source:Version}), ${linux:Recommends}
197+
# suggests debhelper because e.g. `dkms mkdeb -m zfs -v 0.8.2` needs dh_testdir (#909183)
198+
Suggests: debhelper
199+
Breaks: spl-dkms (<< 0.8.0~rc1)
200+
Replaces: spl-dkms, zfs-dkms
201+
Conflicts: zfs-dkms
202+
Provides: openzfs-zfs-modules
203+
Description: OpenZFS filesystem kernel modules for Linux
204+
OpenZFS is a storage platform that encompasses the functionality of
205+
traditional filesystems and volume managers. It supports data checksums,
206+
compression, encryption, snapshots, and more.
207+
.
208+
This DKMS package includes the SPA, DMU, ZVOL, and ZPL components of
209+
OpenZFS.
210+
211+
Package: openzfs-zfs-initramfs
212+
Architecture: all
213+
Depends: busybox-initramfs | busybox-static | busybox,
214+
initramfs-tools,
215+
openzfs-zfs-modules | openzfs-zfs-dkms,
216+
openzfs-zfsutils (>= ${source:Version}),
217+
${misc:Depends}
218+
Breaks: zfsutils-linux (<= 0.7.11-2)
219+
Replaces: zfsutils-linux (<= 0.7.11-2), zfs-initramfs
220+
Conflicts: zfs-initramfs
221+
Description: OpenZFS root filesystem capabilities for Linux - initramfs
222+
OpenZFS is a storage platform that encompasses the functionality of
223+
traditional filesystems and volume managers. It supports data checksums,
224+
compression, encryption, snapshots, and more.
225+
.
226+
This package adds OpenZFS to the system initramfs with a hook
227+
for the initramfs-tools infrastructure.
228+
229+
Package: openzfs-zfs-dracut
230+
Architecture: all
231+
Depends: dracut,
232+
openzfs-zfs-modules | openzfs-zfs-dkms,
233+
openzfs-zfsutils (>= ${source:Version}),
234+
${misc:Depends}
235+
Conflicts: zfs-dracut
236+
Replaces: zfs-dracut
237+
Description: OpenZFS root filesystem capabilities for Linux - dracut
238+
OpenZFS is a storage platform that encompasses the functionality of
239+
traditional filesystems and volume managers. It supports data checksums,
240+
compression, encryption, snapshots, and more.
241+
.
242+
This package adds OpenZFS to the system initramfs with a hook
243+
for the dracut infrastructure.
244+
245+
Package: openzfs-zfsutils
246+
Section: contrib/admin
247+
Architecture: linux-any
248+
Pre-Depends: ${misc:Pre-Depends}
249+
Depends: openzfs-libnvpair3 (= ${binary:Version}),
250+
openzfs-libuutil3 (= ${binary:Version}),
251+
openzfs-libzfs4 (= ${binary:Version}),
252+
openzfs-libzpool5 (= ${binary:Version}),
253+
python3,
254+
${misc:Depends},
255+
${shlibs:Depends}
256+
Recommends: lsb-base, openzfs-zfs-modules | openzfs-zfs-dkms, openzfs-zfs-zed
257+
Breaks: openrc,
258+
spl (<< 0.7.9-2),
259+
spl-dkms (<< 0.8.0~rc1),
260+
openzfs-zfs-dkms (<< ${source:Version}),
261+
openzfs-zfs-dkms (>> ${source:Version}...)
262+
Replaces: spl (<< 0.7.9-2), spl-dkms, zfsutils-linux
263+
Conflicts: zfs, zfs-fuse, zfsutils-linux
264+
Suggests: nfs-kernel-server,
265+
samba-common-bin (>= 3.0.23),
266+
openzfs-zfs-initramfs | openzfs-zfs-dracut
267+
Provides: openzfsutils
268+
Description: command-line tools to manage OpenZFS filesystems
269+
OpenZFS is a storage platform that encompasses the functionality of
270+
traditional filesystems and volume managers. It supports data checksums,
271+
compression, encryption, snapshots, and more.
272+
.
273+
This package provides the zfs and zpool commands to create and administer
274+
OpenZFS filesystems.
275+
276+
Package: openzfs-zfs-zed
277+
Section: contrib/admin
278+
Architecture: linux-any
279+
Pre-Depends: ${misc:Pre-Depends}
280+
Depends: openzfs-zfs-modules | openzfs-zfs-dkms,
281+
openzfs-zfsutils (>= ${binary:Version}),
282+
${misc:Depends},
283+
${shlibs:Depends}
284+
Conflicts: zfs, zfs-zed
285+
Replaces: zfs-zed
286+
Description: OpenZFS Event Daemon
287+
OpenZFS is a storage platform that encompasses the functionality of
288+
traditional filesystems and volume managers. It supports data checksums,
289+
compression, encryption, snapshots, and more.
290+
.
291+
ZED (ZFS Event Daemon) monitors events generated by the ZFS kernel
292+
module. When a zevent (ZFS Event) is posted, ZED will run any ZEDLETs
293+
(ZFS Event Daemon Linkage for Executable Tasks) that have been enabled
294+
for the corresponding zevent class.
295+
.
296+
This package provides the OpenZFS Event Daemon (zed).
297+
298+
Package: openzfs-zfs-test
299+
Section: contrib/admin
300+
Architecture: linux-any
301+
Depends: acl,
302+
attr,
303+
bc,
304+
fio,
305+
ksh,
306+
lsscsi,
307+
mdadm,
308+
parted,
309+
python3,
310+
openzfs-python3-pyzfs,
311+
sudo,
312+
sysstat,
313+
openzfs-zfs-modules | openzfs-zfs-dkms,
314+
openzfs-zfsutils (>=${binary:Version}),
315+
${misc:Depends},
316+
${shlibs:Depends}
317+
Recommends: nfs-kernel-server
318+
Breaks: zfsutils-linux (<= 0.7.9-2)
319+
Replaces: zfsutils-linux (<= 0.7.9-2), zfs-test
320+
Conflicts: zutils, zfs-test
321+
Description: OpenZFS test infrastructure and support scripts
322+
OpenZFS is a storage platform that encompasses the functionality of
323+
traditional filesystems and volume managers. It supports data checksums,
324+
compression, encryption, snapshots, and more.
325+
.
326+
This package provides the OpenZFS test infrastructure for destructively
327+
testing and validating a system using OpenZFS. It is entirely optional
328+
and should only be installed and used in test environments.

contrib/debian/control.modules.in

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
Source: openzfs-linux
2+
Section: contrib/kernel
3+
Priority: optional
4+
Maintainer: ZFS on Linux specific mailing list <[email protected]>
5+
Build-Depends: debhelper-compat (= 10),
6+
dkms (>> 2.1.1.2-5),
7+
libtool,
8+
linux-headers-_KVERS_
9+
Standards-Version: 4.3.0
10+
Homepage: http://www.openzfs.org/
11+
Vcs-Git: https://github.com/openzfs/zfs.git
12+
Vcs-Browser: https://github.com/openzfs/zfs
13+
14+
Package: openzfs-zfs-modules-_KVERS_
15+
Architecture: _ARCH_
16+
Provides: openzfs-zfs-modules
17+
Depends: linux-image-_KVERS_
18+
Recommends: openzfsutils
19+
Replaces: zfs-modules-_KVERS_
20+
Conflicts: zfs-modules-_KVERS_
21+
Description: OpenZFS filesystem kernel modules for Linux (kernel _KVERS_)
22+
An advanced integrated volume manager and filesystem that is designed for
23+
performance and data integrity. Snapshots, clones, checksums, deduplication,
24+
compression, and RAID redundancy are built-in features.
25+
.
26+
This package contains the compiled kernel module for _KVERS_
27+
.
28+
Includes the SPA, DMU, ZVOL, and ZPL components of OpenZFS.
29+
.
30+
If you have compiled your own kernel, you will most likely need to build
31+
your own zfs-modules. The zfs-source package has been
32+
provided for use with the Debian kernel-package utility to produce a
33+
version of zfs-module for your kernel.

0 commit comments

Comments
 (0)