From e120623e07cf6370ff5451a364cb8546a226b45b Mon Sep 17 00:00:00 2001 From: halfcyan Date: Thu, 1 Jan 2026 22:07:23 -0700 Subject: [PATCH] initial commit --- anda/system/openzfs/akmod/akmod-openzfs.spec | 94 +++++++++++++++ anda/system/openzfs/akmod/anda.hcl | 5 + anda/system/openzfs/akmod/update.rhai | 2 + anda/system/openzfs/dkms/anda.hcl | 5 + anda/system/openzfs/dkms/dkms-openzfs.spec | 90 +++++++++++++++ anda/system/openzfs/dkms/update.rhai | 2 + anda/system/openzfs/userspace/anda.hcl | 5 + anda/system/openzfs/userspace/openzfs.spec | 115 +++++++++++++++++++ anda/system/openzfs/userspace/update.rhai | 1 + 9 files changed, 319 insertions(+) create mode 100644 anda/system/openzfs/akmod/akmod-openzfs.spec create mode 100644 anda/system/openzfs/akmod/anda.hcl create mode 100644 anda/system/openzfs/akmod/update.rhai create mode 100644 anda/system/openzfs/dkms/anda.hcl create mode 100644 anda/system/openzfs/dkms/dkms-openzfs.spec create mode 100644 anda/system/openzfs/dkms/update.rhai create mode 100644 anda/system/openzfs/userspace/anda.hcl create mode 100644 anda/system/openzfs/userspace/openzfs.spec create mode 100644 anda/system/openzfs/userspace/update.rhai diff --git a/anda/system/openzfs/akmod/akmod-openzfs.spec b/anda/system/openzfs/akmod/akmod-openzfs.spec new file mode 100644 index 0000000000..bd3969b710 --- /dev/null +++ b/anda/system/openzfs/akmod/akmod-openzfs.spec @@ -0,0 +1,94 @@ +%global buildforkernels akmod +%global debug_package %{nil} +%global modulename zfs + +Name: akmod-openzfs +Summary: Kernel module (kmod) for OpenZFS filesystem +Version: 2.4.0 +Release: 1%?dist +License: CDDL-1.0 +URL: https://github.com/openzfs/zfs +Source0: https://github.com/openzfs/zfs/releases/download/zfs-%{version}/zfs-%{version}.tar.gz + +BuildRequires: gcc +BuildRequires: make +BuildRequires: kmodtool +BuildRequires: systemd-rpm-macros +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: libtool +BuildRequires: libtirpc-devel +BuildRequires: libblkid-devel +BuildRequires: libuuid-devel +BuildRequires: openssl-devel +BuildRequires: zlib-ng-compat-devel +BuildRequires: libaio-devel +BuildRequires: libattr-devel +BuildRequires: libffi-devel +BuildRequires: elfutils-libelf-devel + +Requires: akmods +Requires: kernel-devel +Requires: openzfs = %{?epoch:%{epoch}:}%{version}-%{release} +Conflicts: %{modulename}-dkms +Conflicts: dkms-zfs +Provides: akmod-%{modulename} = %{?epoch:%{epoch}:}%{version}-%{release} +Provides: akmod-openzfs = %{?epoch:%{epoch}:}%{version}-%{release} +Provides: %{modulename}-kmod-common = %{?epoch:%{epoch}:}%{version}-%{release} + +Packager: Willow Reed + +%{expand:%(kmodtool --target %{_target_cpu} --repo terra.fyralabs.com --kmodname %{modulename} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } + +%description +This package contains the OpenZFS kernel modules built using akmods. + +%prep +%{?kmodtool_check} + +kmodtool --target %{_target_cpu} --repo terra.fyralabs.com --kmodname %{modulename} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null + +%setup -q -c +(cd zfs-%{version} +) + +for kernel_version in %{?kernel_versions} ; do + cp -a zfs-%{version} _kmod_build_${kernel_version%%___*} +done + +%build +for kernel_version in %{?kernel_versions} ; do + cd _kmod_build_${kernel_version%%___*} + + ./autogen.sh + + ./configure \ + --with-config=kernel \ + --with-linux=${kernel_version##*___} \ + --with-linux-obj=${kernel_version##*___} + + make %{?_smp_mflags} -C ${kernel_version##*___} M=${PWD}/module modules + + cd .. +done + +%install +for kernel_version in %{?kernel_versions}; do + mkdir -p %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + + install -D -m 755 _kmod_build_${kernel_version%%___*}/module/avl/zavl.ko %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + install -D -m 755 _kmod_build_${kernel_version%%___*}/module/nvpair/znvpair.ko %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + install -D -m 755 _kmod_build_${kernel_version%%___*}/module/unicode/zunicode.ko %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + install -D -m 755 _kmod_build_${kernel_version%%___*}/module/zcommon/zcommon.ko %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + install -D -m 755 _kmod_build_${kernel_version%%___*}/module/zstd/zzstd.ko %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + install -D -m 755 _kmod_build_${kernel_version%%___*}/module/icp/icp.ko %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + install -D -m 755 _kmod_build_${kernel_version%%___*}/module/spl/spl.ko %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + install -D -m 755 _kmod_build_${kernel_version%%___*}/module/zfs/zfs.ko %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + + chmod a+x %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/*.ko +done +%{?akmod_install} + +%changelog +* Thu Jan 01 2026 Willow Reed - 2.4.0-1 +- Initial package \ No newline at end of file diff --git a/anda/system/openzfs/akmod/anda.hcl b/anda/system/openzfs/akmod/anda.hcl new file mode 100644 index 0000000000..15f8377a34 --- /dev/null +++ b/anda/system/openzfs/akmod/anda.hcl @@ -0,0 +1,5 @@ +project "pkg" { + rpm { + spec = "akmod-openzfs.spec" + } +} \ No newline at end of file diff --git a/anda/system/openzfs/akmod/update.rhai b/anda/system/openzfs/akmod/update.rhai new file mode 100644 index 0000000000..ead166fca1 --- /dev/null +++ b/anda/system/openzfs/akmod/update.rhai @@ -0,0 +1,2 @@ +let ver = gh("openzfs/zfs").strip_prefix("zfs-"); +rpm.version(ver); \ No newline at end of file diff --git a/anda/system/openzfs/dkms/anda.hcl b/anda/system/openzfs/dkms/anda.hcl new file mode 100644 index 0000000000..e644ed0e8a --- /dev/null +++ b/anda/system/openzfs/dkms/anda.hcl @@ -0,0 +1,5 @@ +project "pkg" { + rpm { + spec = "dkms-openzfs.spec" + } +} \ No newline at end of file diff --git a/anda/system/openzfs/dkms/dkms-openzfs.spec b/anda/system/openzfs/dkms/dkms-openzfs.spec new file mode 100644 index 0000000000..d261f72e79 --- /dev/null +++ b/anda/system/openzfs/dkms/dkms-openzfs.spec @@ -0,0 +1,90 @@ +%global debug_package %{nil} +%global __brp_mangle_shebangs %{nil} + +%define module openzfs + +Name: %{module}-dkms +Version: 2.4.0 +Release: 1%?dist +Summary: ZFS DKMS Kernel Modules +URL: https://github.com/openzfs/zfs +Source0: https://github.com/openzfs/zfs/releases/download/zfs-%{version}/zfs-%{version}.tar.gz +License: CDDL-1.0 +BuildArch: noarch + +Requires: dkms >= 2.2.0.3 +Requires: gcc, make, perl, diffutils, kernel-devel, kernel-modules +Requires: openzfs = %{?epoch:%{epoch}:}%{version} + +Provides: %{module}-kmod = %{version} +Conflicts: akmod-openzfs + +Packager: Willow Reed + +%description +This package contains the dkms ZFS kernel modules. + +%prep +%autosetup -n zfs-%{version} + +%build +scripts/dkms.mkconf -n %{module} -v %{version} -f dkms.conf + +%install +if [ "$RPM_BUILD_ROOT" != "/" ]; then + rm -rf $RPM_BUILD_ROOT +fi +mkdir -p $RPM_BUILD_ROOT/usr/src/ +cp -rf ${RPM_BUILD_DIR}/%{module}-%{version} $RPM_BUILD_ROOT/usr/src/ + +%files +%defattr(-,root,root) +/usr/src/%{module}-%{version} + +%pre +# Remove any existing zfs dkms modules +dkms_root=/var/lib/dkms +if [ -d ${dkms_root}/%{module} ]; then + cd ${dkms_root}/%{module} + for x in [[:digit:]]*; do + [ -d "$x" ] || continue + otherver="$x" + if [ "$otherver" != %{version} ]; then + if [ `dkms status -m %{module} -v "$otherver" | grep -c %{module}` -gt 0 ]; then + echo "Removing old %{module} dkms modules version $otherver from all kernels." + dkms remove -m %{module} -v "$otherver" --all ||: + fi + fi + done +fi + +# Remove previous version when upgrading/installing +if [ `dkms status -m %{module} -v %{version} | grep -c %{module}` -gt 0 ]; then + echo "Removing %{module} dkms modules version %{version} from all kernels." + dkms remove -m %{module} -v %{version} --all ||: +fi + +%post +echo "Adding %{module} dkms modules version %{version} to dkms." +dkms add -m %{module} -v %{version} --rpm_safe_upgrade ||: + +echo "Installing %{module} dkms modules version %{version} for the current kernel." +dkms install --force -m %{module} -v %{version} ||: + +%preun +# Do nothing if upgrade +if [ "$1" = "1" -o "$1" = "upgrade" ] ; then + exit 0 +fi + +# Remove modules on uninstall +if [ "$1" = "0" -o "$1" = "remove" -o "$1" = "purge" ] ; then + if [ `dkms status -m %{module} -v %{version} | grep -c %{module}` -gt 0 ]; then + echo "Removing %{module} dkms modules version %{version} from all kernels." + dkms remove -m %{module} -v %{version} --all --rpm_safe_upgrade ||: + fi +fi + +%changelog +* Thu Jan 01 2026 Willow Reed - 2.4.0-1 +- Initial package \ No newline at end of file diff --git a/anda/system/openzfs/dkms/update.rhai b/anda/system/openzfs/dkms/update.rhai new file mode 100644 index 0000000000..ead166fca1 --- /dev/null +++ b/anda/system/openzfs/dkms/update.rhai @@ -0,0 +1,2 @@ +let ver = gh("openzfs/zfs").strip_prefix("zfs-"); +rpm.version(ver); \ No newline at end of file diff --git a/anda/system/openzfs/userspace/anda.hcl b/anda/system/openzfs/userspace/anda.hcl new file mode 100644 index 0000000000..a899abaa76 --- /dev/null +++ b/anda/system/openzfs/userspace/anda.hcl @@ -0,0 +1,5 @@ +project "pkg" { + rpm { + spec = "openzfs.spec" + } +} diff --git a/anda/system/openzfs/userspace/openzfs.spec b/anda/system/openzfs/userspace/openzfs.spec new file mode 100644 index 0000000000..5c878f32d4 --- /dev/null +++ b/anda/system/openzfs/userspace/openzfs.spec @@ -0,0 +1,115 @@ +%global debug_package %{nil} +%global __brp_mangle_shebangs %{nil} + +Name: openzfs +Version: 2.4.0 +Release: 1%?dist +Summary: OpenZFS filesystem userspace utilities +License: CDDL-1.0 +URL: https://openzfs.org +Source0: https://github.com/openzfs/zfs/releases/download/zfs-%{version}/zfs-%{version}.tar.gz + +BuildRequires: gcc +BuildRequires: make +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: libtool +BuildRequires: libuuid-devel +BuildRequires: libblkid-devel +BuildRequires: openssl-devel +BuildRequires: libtirpc-devel +BuildRequires: libattr-devel +BuildRequires: libaio-devel +BuildRequires: libffi-devel +BuildRequires: zlib-ng-compat-devel +BuildRequires: systemd-devel +BuildRequires: systemd-rpm-macros +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-cffi + +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + +Recommends: akmod-openzfs + +# we assume openzfs as the name for consistency, but if someone wants to install just zfs, this shows that this package provides zfs. +Provides: zfs = %{version}-%{release} + +Packager: Willow Reed + +%description +OpenZFS userspace tools + +%package libs +Summary: OpenZFS libraries +%description libs +Libraries for OpenZFS filesystem utilities. + +%package devel +Summary: OpenZFS development headers +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +%description devel +Development headers for OpenZFS libraries. + +%prep +%autosetup -n zfs-%{version} + +%build +./autogen.sh + +%configure \ + --with-config=user \ + --with-systemdunitdir=%{_unitdir} \ + --with-systemdpresetdir=%{_presetdir} \ + --with-systemdgeneratordir=%{_systemdgeneratordir} \ + --with-mounthelperdir=%{_sbindir} \ + --with-pamdir=%{_libdir}/security \ + --with-pamconfdir=%{_sysconfdir}/security \ + --with-udevdir=%{_udevrulesdir} \ + --with-pkgconfigdir=%{_libdir}/pkgconfig \ + --enable-systemd \ + --enable-pyzfs \ + --disable-static + +%make_build + +%install +%make_install + +find %{buildroot} -name '*.la' -delete + +%files +??? + +%files libs +??? + +%files devel +??? + +%post +%systemd_post zfs-import-cache.service +%systemd_post zfs-import-scan.service +%systemd_post zfs-mount.service +%systemd_post zfs-share.service +%systemd_post zfs-zed.service +%systemd_post zfs.target + +%preun +%systemd_preun zfs-import-cache.service +%systemd_preun zfs-import-scan.service +%systemd_preun zfs-mount.service +%systemd_preun zfs-share.service +%systemd_preun zfs-zed.service +%systemd_preun zfs.target + +%postun +%systemd_postun_with_restart zfs-import-cache.service +%systemd_postun_with_restart zfs-import-scan.service +%systemd_postun_with_restart zfs-mount.service +%systemd_postun_with_restart zfs-share.service +%systemd_postun_with_restart zfs-zed.service + +%changelog +* Thu Jan 01 2026 Willow Reed - 2.4.0-1 +- Initial package diff --git a/anda/system/openzfs/userspace/update.rhai b/anda/system/openzfs/userspace/update.rhai new file mode 100644 index 0000000000..03937afa2d --- /dev/null +++ b/anda/system/openzfs/userspace/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("openzfs/zfs").strip_prefix("zfs-"));