fix sbin stuff

This commit is contained in:
Willow Reed
2026-06-15 18:08:11 -06:00
parent 36aab27bf5
commit b464a1129f
10 changed files with 52 additions and 396 deletions
@@ -1,91 +0,0 @@
%global buildforkernels akmod
%global debug_package %{nil}
%global modulename zfs
Name: akmod-openzfs
Summary: Kernel module (kmod) for OpenZFS filesystem
Version: 2.4.3
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-openzfs
Provides: akmod-%{modulename} = %{?epoch:%{epoch}:}%{version}-%{release}
Provides: akmod-openzfs = %{?epoch:%{epoch}:}%{version}-%{release}
Provides: %{modulename}-kmod-common = %{?epoch:%{epoch}:}%{version}-%{release}
Packager: Cypress Reed <cypress@fyralabs.com>
%{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
%autosetup
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 Cypress Reed <cypress@fyralabs.com>
- Initial package
-2
View File
@@ -1,2 +0,0 @@
let ver = gh("openzfs/zfs").strip_prefix("zfs-");
rpm.version(ver);
+5
View File
@@ -0,0 +1,5 @@
project "pkg" {
rpm {
spec = "openzfs.spec"
}
}
-115
View File
@@ -1,115 +0,0 @@
%global debug_package %{nil}
%global __brp_mangle_shebangs %{nil}
%define module openzfs
%define modulename %{module}
%define source_name zfs
%define _kmod_src_root %{_usrsrc}/%{module}-%{version}
Name: dkms-%{module}
Version: 2.4.3
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
BuildRequires: make
BuildRequires: perl
Requires: dkms >= 2.2.0.3
Requires: gcc
Requires: make
Requires: perl
Requires: diffutils
Requires: kernel-devel
Requires: kernel-modules
Requires: openzfs = %{?epoch:%{epoch}:}%{version}-%{release}
Provides: %{module}-kmod = %{version}-%{release}
Provides: dkms-openzfs = %{version}-%{release}
Conflicts: akmod-openzfs
RemovePathPostfixes: .dkms
Packager: Cypress Reed <cypress@fyralabs.com>
%description
This package contains the DKMS-managed OpenZFS kernel modules.
%prep
%autosetup -n zfs-%{version}
%build
scripts/dkms.mkconf -n %{module} -v %{version} -f dkms.conf
%install
INITIAL_ENVDIR=`pwd`
make distdir
cd %{source_name}-%{version}
for file in $(find cmd dracut etc lib man rpm udev tests -type f); do \
rm "$file"; \
test "$file" != "${file%%.in}" && printf "\x25:\n\t#\n" > "$file"; \
true; \
done
cd $INITIAL_ENVDIR
printf "#!/bin/sh\ncp \"$@\"\n" > %{source_name}-%{version}/cp
chmod 755 %{source_name}-%{version}/cp
mkdir -p %{buildroot}%{_usrsrc}
mv %{source_name}-%{version} %{buildroot}%{_kmod_src_root}.dkms
cp dkms.conf %{buildroot}%{_kmod_src_root}.dkms
%files
%defattr(-,root,root)
%{_kmod_src_root}.dkms
%pre
# Remove any existing openzfs 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 Cypress Reed <cypress@fyralabs.com>
- Initial package
-2
View File
@@ -1,2 +0,0 @@
let ver = gh("openzfs/zfs").strip_prefix("zfs-");
rpm.version(ver);
-5
View File
@@ -1,5 +0,0 @@
project "pkg" {
rpm {
spec = "gomp-openzfs.spec"
}
}
@@ -1,4 +1,7 @@
%global dkmsname dkms-%{name}
%if 0%{?fedora}
%global dkmsname akmod-%{name}
%endif
%global rpm_dkms_opt 1
@@ -28,7 +31,7 @@
--with-python=%{__python3} --with-udevdir=%{_udevdir} --with-udevruledir=%{_udevrulesdir} \\\
--with-systemdunitdir=%{_unitdir} --with-systemdpresetdir=%{_presetdir} \\\
--with-systemdmodulesloaddir=%{_modulesloaddir} --with-systemdgeneratordir=%{_systemdgeneratordir} \\\
--with-dracutdir=%{_dracutdir} --with-mounthelperdir=%{_sbindir} --with-pammoduledir=%{_libdir}/security \\\
--with-dracutdir=%{_dracutdir} --with-mounthelperdir=%{_bindir} --with-pammoduledir=%{_libdir}/security \\\
--disable-static --disable-sysvinit --enable-pam --enable-systemd \\\
%{nil}
@@ -69,7 +72,11 @@
%{!?python3_pkgversion: %global python3_pkgversion 3}
# kmod install path
%define _kmod_src_root %{_usrsrc}/%{name}-%{version}
%if 0%{?fedora}
%define _kmod_src_root %{_usrsrc}/%{name}-%{version}.akmods
%else
%define _kmod_src_root %{_usrsrc}/%{name}-%{version}.dkms
%endif
Name: zfs
@@ -92,6 +99,9 @@ BuildRequires: libtool
BuildRequires: python%{python3_pkgversion}-devel >= 3.6
BuildRequires: python%{python3_pkgversion}-cffi
BuildRequires: python%{python3_pkgversion}-packaging
%if 0%{?fedora}
BuildRequires: kmodtool
%endif
BuildRequires: libaio-devel
BuildRequires: libblkid-devel
@@ -152,14 +162,21 @@ This package contains the common kernel module files
for OpenZFS on Linux.
%package -n %{dkmsname}
Summary: Kernel module sources for %{name} managed by DKMS
Summary: Kernel module sources for %{name} managed by DKMS or Akmods
# ZFS modules are CDDL and SPL modules are GPLv2+
License: CDDL-1.0 and GPL-2.0-or-later
BuildArch: noarch
# elfutils' libelf is required now for newer kernels
Requires: elfutils-libelf-devel
Requires: diffutils
%if 0%{?fedora}
Requires: akmods
Conflicts: dkms-%{name}
RemovePathPostfixes: .akmods
%else
Requires: dkms >= 2.2.0.3
RemovePathPostfixes: .dkms
%endif
Requires: gcc
Requires: make
Requires: perl
@@ -167,11 +184,11 @@ Requires: python%{python3_pkgversion}
Provides: %{name}-kmod = %{version}-%{release}
Requires: %{name}-kmod-common = %{version}-%{release}
RemovePathPostfixes: .dkms
%description -n %{dkmsname}
This package contains the kernel module sources for
OpenZFS for Linux that is managed by DKMS.
OpenZFS for Linux that is managed by DKMS on non-Fedora systems
and Akmods on Fedora.
%package -n %{libname_zpool}
Summary: Native ZFS pool library for Linux
@@ -187,10 +204,10 @@ This package contains the zpool library, which provides support
for managing zpools
%post -n %{libname_zpool}
/sbin/ldconfig
{_bindir}/ldconfig
%postun -n %{libname_zpool}
/sbin/ldconfig
{_bindir}/ldconfig
%package -n %{libname_zfsbootenv}
Summary: Native ZFS boot environment library for Linux
@@ -202,10 +219,10 @@ This package contains the zfsbootenv library, which provides support
for managing zfs boot environments
%post -n %{libname_zfsbootenv}
/sbin/ldconfig
{_bindir}/ldconfig
%postun -n %{libname_zfsbootenv}
/sbin/ldconfig
{_bindir}/ldconfig
%package -n %{libname_nvpair}
Summary: Solaris name-value library for Linux
@@ -217,10 +234,10 @@ process boundaries, between kernel and user space, and can be used
to write self describing data structures on disk.
%post -n %{libname_nvpair}
/sbin/ldconfig
{_bindir}/ldconfig
%postun -n %{libname_nvpair}
/sbin/ldconfig
{_bindir}/ldconfig
%package -n %{libname_uutil}
Summary: Solaris userland utility library for Linux
@@ -237,10 +254,10 @@ This library provides a variety of compatibility functions for OpenZFS on Linux:
* libshare: NFS, SMB, and iSCSI service integration for ZFS.
%post -n %{libname_uutil}
/sbin/ldconfig
{_bindir}/ldconfig
%postun -n %{libname_uutil}
/sbin/ldconfig
{_bindir}/ldconfig
%package -n %{libname_zfs}
Summary: Native ZFS filesystem library for Linux
@@ -255,10 +272,10 @@ Requires: %{libname_uutil}%{?_isa} = %{version}-%{release}
This package provides support for managing ZFS filesystems
%post -n %{libname_zfs}
/sbin/ldconfig
{_bindir}/ldconfig
%postun -n %{libname_zfs}
/sbin/ldconfig
{_bindir}/ldconfig
%package -n %{devname_zfs}
Summary: Development headers
@@ -377,8 +394,8 @@ chmod 755 %{name}-%{version}/cp
# Install kernel sources
mkdir -p %{buildroot}%{_usrsrc}
mv %{name}-%{version} %{buildroot}%{_kmod_src_root}.dkms
cp dkms.conf %{buildroot}%{_kmod_src_root}.dkms
mv %{name}-%{version} %{buildroot}%{_kmod_src_root}
cp dkms.conf %{buildroot}%{_kmod_src_root}
# Erase initramfs-tools on non-Debian
rm -rf %{buildroot}%{_initramfstoolsdir}
@@ -393,18 +410,30 @@ mkdir -p %{buildroot}%{_datadir}/bash-completion/completions
mv %{buildroot}%{_sysconfdir}/bash_completion.d/* %{buildroot}%{_datadir}/bash-completion/completions/
rmdir %{buildroot}%{_sysconfdir}/bash_completion.d
%if 0%{?fedora}
%{?akmod_install}
%endif
%preun -n %{dkmsname}
%if 0%{?fedora}
:
%else
if [ "$(dkms status -m %{name} -v %{version})" ]; then
dkms remove -m %{name} -v %{version} --all %{?rpm_dkms_opt:--rpm_safe_upgrade}
fi
%endif
%post -n %{dkmsname}
%if 0%{?fedora}
:
%else
if [ "$1" -ge "1" ]; then
if [ -f /usr/lib/dkms/common.postinst ]; then
/usr/lib/dkms/common.postinst %{name} %{version}
exit $?
fi
fi
%endif
%post
%systemd_post %{zfs_systemd_units}
@@ -495,7 +524,7 @@ fi
%doc AUTHORS README.md
%files -n %{dkmsname}
%{_kmod_src_root}.dkms
%{_kmod_src_root}
%files test
%{_datadir}/%{name}
-162
View File
@@ -1,162 +0,0 @@
%global debug_package %{nil}
%global __brp_mangle_shebangs %{nil}
%global __python %{__python3}
%{!?python3_pkgversion: %global python3_pkgversion 3}
%{!?_udevdir: %global _udevdir %{_prefix}/lib/udev}
%{!?_dracutdir: %global _dracutdir %{_prefix}/lib/dracut}
%{!?_initconfdir: %global _initconfdir %{_sysconfdir}/sysconfig}
%{!?_pam_confdir: %global _pam_confdir %{_datadir}/pam-configs}
%{!?_pam_secconfdir: %global _pam_secconfdir %{_libdir}/security}
%global zfs_systemd_units zfs-import-cache.service zfs-import-scan.service zfs-mount.service zfs-share.service zfs-zed.service zfs.target zfs-import.target zfs-volume-wait.service zfs-volumes.target
Name: openzfs
Version: 2.4.3
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: libudev-devel
BuildRequires: openssl-devel
BuildRequires: libtirpc-devel
BuildRequires: libattr-devel
BuildRequires: libaio-devel
BuildRequires: libffi-devel
BuildRequires: zlib-ng-compat-devel
BuildRequires: systemd
BuildRequires: systemd-devel
BuildRequires: systemd-rpm-macros
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-cffi
BuildRequires: python3-packaging
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: util-linux
Requires: sysstat
Requires: bash-completion
Recommends: akmod-openzfs
Conflicts: zfs-fuse
Obsoletes: spl < 0.8.0~
# 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 <willow@willowidk.dev>
%description
OpenZFS userspace tools
%package libs
%pkg_libs_files
%package devel
%pkg_devel_files
%prep
%autosetup -n zfs-%{version}
%build
./autogen.sh
%configure \
--with-config=user \
--with-python=%{__python} \
--bindir=%{_bindir} \
--sbindir=%{_sbindir} \
--libexecdir=%{_libexecdir} \
--sysconfdir=%{_sysconfdir} \
--sharedstatedir=%{_sharedstatedir} \
--localstatedir=%{_localstatedir} \
--runstatedir=%{_runstatedir} \
--libdir=%{_libdir} \
--includedir=%{_includedir} \
--datarootdir=%{_datadir} \
--mandir=%{_mandir} \
--docdir=%{_docdir} \
--with-udevdir=%{_udevdir} \
--with-udevruledir=%{_udevrulesdir} \
--with-dracutdir=%{_dracutdir} \
--with-pamconfigsdir=%{_pam_confdir} \
--with-pammoduledir=%{_pam_secconfdir} \
--with-pkgconfigdir=%{_pkgconfigdir} \
--with-mounthelperdir=%{_sbindir} \
--with-systemdunitdir=%{_unitdir} \
--with-systemdpresetdir=%{_presetdir} \
--with-systemdmodulesloaddir=%{_modulesloaddir} \
--with-systemdgeneratordir=%{_systemdgeneratordir} \
--disable-sysvinit \
--enable-pam \
--enable-pyzfs \
--enable-systemd \
--disable-static
%make_build
( cd contrib/pyzfs && %py3_build )
%install
%make_install
( cd contrib/pyzfs && rm -rf %{buildroot}%{python3_sitelib} && %py3_install )
find %{buildroot} -name '*.la' -delete
%files
%doc AUTHORS COPYRIGHT LICENSE *.md
%{_sbindir}
%{_bindir}
%{_libdir}
%{_mandir}
%{_sysconfdir}/init.d
%{_sysconfdir}/zfs
%{_presetdir}/
%{_unitdir}/
%{_systemdgeneratordir}/zfs-mount-generator
%{_libdir}/udev/rules.d
%{_libdir}/udev/*_id
%{_datadir}/zfs
%{_sysconfdir}/sudoers.d/zfs
%{_sysconfdir}/sysconfig/zfs
%{bash_completions_dir}/zfs
%{bash_completions_dir}/zpool
%{python3_sitelib}
%{_libdir}/security/pam_zfs_key.so
%{_datadir}/pam-configs/zfs_key
%{_sysconfdir}/bash_completion.d/zpool
%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 <willow@willowidk.dev>
- Initial package
@@ -1 +0,0 @@
rpm.version(gh("openzfs/zfs").strip_prefix("zfs-"));