Compare commits

..

21 Commits

Author SHA1 Message Date
Willow C Reed 1b27c5a6fb remove makefile 2026-06-13 13:17:49 -06:00
Willow C Reed ded14df188 update files on dkms; update version 2026-06-13 13:16:08 -06:00
Cypress Reed 8c0a6a8dd3 Merge branch 'frawhide' into willow/openzfs 2026-06-13 13:07:20 -06:00
Cypress Reed 555758b5c0 Merge branch 'frawhide' into willow/openzfs 2026-06-13 11:52:15 -06:00
Willow C Reed 4072a0b354 i don't even know at this point 2026-04-15 20:59:58 -06:00
Willow C Reed e11fe91599 i added files 2026-04-15 18:48:58 -06:00
Willow C Reed cde62e8323 this config should actually work now i think 2026-04-15 18:48:44 -06:00
Willow Reed 56c9a8cb67 Merge branch 'frawhide' into willow/openzfs 2026-04-15 18:16:32 -06:00
Willow C Reed ee60625070 testing this config 2026-04-15 18:15:57 -06:00
Willow C Reed b7b5465aff i never added the python version lol 2026-04-15 18:11:36 -06:00
Willow C Reed f143b6de46 testing another spec 2026-04-15 18:07:22 -06:00
Willow Reed a0aa6c4622 Merge branch 'frawhide' into willow/openzfs 2026-04-15 17:49:27 -06:00
Willow C Reed 2a7d7cd0a8 working on zfs stuff again i guess 2026-04-15 17:48:55 -06:00
Willow Reed 1600d17f7a Merge branch 'frawhide' into willow/openzfs 2026-02-27 17:11:55 -07:00
Willow Reed 0b68c9c271 Merge branch 'frawhide' into willow/openzfs 2026-01-03 18:13:45 -07:00
halfcyan 98881b9b82 fix macro and add macros for libs and devel pacakges 2026-01-03 18:13:02 -07:00
Willow 02fed20eb5 Merge branch 'frawhide' into willow/openzfs 2026-01-01 22:27:08 -07:00
halfcyan d51c34fd27 add sample spec files from openzfs source 2026-01-01 22:25:48 -07:00
halfcyan 2fce0f882a change configure.sh to macro, change setup to autosetup 2026-01-01 22:24:01 -07:00
Willow f54c6ea682 Merge branch 'frawhide' into willow/openzfs 2026-01-01 22:08:55 -07:00
halfcyan e120623e07 initial commit 2026-01-01 22:07:23 -07:00
75 changed files with 1475 additions and 208 deletions
-5
View File
@@ -1,5 +0,0 @@
# Terra apps Folder
This folder is for all graphical-first, general purpose applications.
Any packages that have a graphical subpackage, or have a more specific purpose that better matches a different folder (for example, zed or veracrypt), should be placed in a more specific folder.
Use your best judgement.
+1
View File
@@ -4,5 +4,6 @@ project pkg {
}
labels {
nightly = 1
mock = 1
}
}
+34 -17
View File
@@ -1,16 +1,19 @@
%global commit 7d933c652919899e46a6dfa0ac08dac36c492d95
%global commit_date 20260614
%global commit 9347d4c7f8a58e619ab357adf14843371377b12e
%global commit_date 20260605
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global debug_package %nil
# terrible evil no good very bad hack
# fix one day
%global __requires_exclude_from (.*)lib(.*)so(.*)
%global __strip /bin/true
%global __provides_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*))$
%ifnarch aarch64
%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*)|(.*\\aarch64*\\.so.*))$
%elifarch aarch64
%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*)|(.*\\x86_64*\\.so.*)|(.*\\x86-64*\\.so.*))$
%endif
Name: legcord-nightly
%electronmeta -D
Version: %commit_date.%shortcommit
Release: 1%{?dist}
License: OSL-3.0 AND %{electron_license}
License: OSL-3.0
Summary: Custom lightweight Discord client designed to enhance your experience
URL: https://github.com/Legcord/Legcord
Group: Applications/Internet
@@ -28,21 +31,38 @@ while keeping everything lightweight.
%git_clone %{url}.git %{commit}
%build
echo "Electron Builder" > %{rpmbuilddir}/webapp-tool.txt
%pnpm_build -r build
pnpm install
pnpm run build
pnpm run package --linux AppImage tar.gz
%install
%electron_install -i legcord -l -I dist/.icon-set/icon_16.png -I dist/.icon-set/icon_32.png -I dist/.icon-set/icon_48x48.png -I dist/.icon-set/icon_64.png -I dist/.icon-set/icon_128.png -I dist/.icon-set/icon_256.png -I dist/.icon-set/icon_512.png -I dist/.icon-set/icon_1024.png
mkdir -p %{buildroot}%{_datadir}/legcord
%ifarch aarch64
mv dist/linux-arm64-unpacked/* %{buildroot}%{_datadir}/legcord
%else
mv dist/linux-unpacked/* -t %{buildroot}%{_datadir}/legcord
%endif
mkdir -p %{buildroot}%{_bindir}
ln -sf %{_datadir}/legcord/legcord %{buildroot}%{_bindir}/legcord
install -Dm644 dist/.icon-set/icon_16.png %{buildroot}%{_iconsdir}/hicolor/16x16/apps/legcord.png
install -Dm644 dist/.icon-set/icon_32.png %{buildroot}%{_iconsdir}/hicolor/32x32/apps/legcord.png
install -Dm644 dist/.icon-set/icon_48x48.png %{buildroot}%{_iconsdir}/hicolor/48x48/apps/legcord.png
install -Dm644 dist/.icon-set/icon_64.png %{buildroot}%{_iconsdir}/hicolor/64x64/apps/legcord.png
install -Dm644 dist/.icon-set/icon_128.png %{buildroot}%{_iconsdir}/hicolor/128x128/apps/legcord.png
install -Dm644 dist/.icon-set/icon_256.png %{buildroot}%{_iconsdir}/hicolor/256x256/apps/legcord.png
install -Dm644 dist/.icon-set/icon_512.png %{buildroot}%{_iconsdir}/hicolor/512x512/apps/legcord.png
install -Dm644 dist/.icon-set/icon_1024.png %{buildroot}%{_iconsdir}/hicolor/1024x1024/apps/legcord.png
dist/Legcord-*.AppImage --appimage-extract '*.desktop'
%desktop_file_install -k Exec,Icon -v "%{_libdir}/legcord-nightly/Legcord",legcord -u %U -f squashfs-root/Legcord.desktop
desktop-file-install --set-key=Exec --set-value="%{_datadir}/legcord/legcord %U" squashfs-root/legcord.desktop
%files
%doc README.md
%license license.txt
%{_bindir}/legcord-nightly
%{_datadir}/applications/Legcord.desktop
%{_libdir}/legcord-nightly/
%{_bindir}/legcord
%{_datadir}/applications/legcord.desktop
%{_datadir}/legcord/
%{_iconsdir}/hicolor/16x16/apps/legcord.png
%{_iconsdir}/hicolor/32x32/apps/legcord.png
%{_iconsdir}/hicolor/48x48/apps/legcord.png
@@ -53,9 +73,6 @@ dist/Legcord-*.AppImage --appimage-extract '*.desktop'
%{_iconsdir}/hicolor/1024x1024/apps/legcord.png
%changelog
* Mon May 18 2026 june-fish <june@fyralabs.com> - 1.2.4-1
- Use electron macros
* Fri Nov 22 2024 owen <owen@fyralabs.com> - 1.0.2-2
- Add nightly package.
+3
View File
@@ -2,4 +2,7 @@ project pkg {
rpm {
spec = "legcord.spec"
}
labels {
mock =1
}
}
+32 -15
View File
@@ -1,14 +1,17 @@
%global debug_package %nil
%define debug_package %nil
# terrible evil no good very bad hack
# fix one day
%global __requires_exclude_from (.*)lib(.*)so(.*)
# Exclude private libraries
%global __provides_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*))$
%ifnarch aarch64
%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*)|(.*\\aarch64*\\.so.*))$
%elifarch aarch64
%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*)|(.*\\x86_64*\\.so.*)|(.*\\x86-64*\\.so.*))$
%endif
Name: legcord
%electronmeta -D
Version: 1.2.4
Release: 1%{?dist}
License: OSL-3.0 AND %{electron_license}
License: OSL-3.0
Summary: Custom lightweight Discord client designed to enhance your experience
URL: https://github.com/Legcord/Legcord
Group: Applications/Internet
@@ -27,21 +30,38 @@ while keeping everything lightweight.
%git_clone %url v%version
%build
echo "Electron Builder" > %{rpmbuilddir}/webapp-tool.txt
%pnpm_build -r build
pnpm install
pnpm run build
pnpm run package --linux AppImage tar.gz
%install
%electron_install -i legcord -l -I dist/.icon-set/icon_16.png -I dist/.icon-set/icon_32.png -I dist/.icon-set/icon_48x48.png -I dist/.icon-set/icon_64.png -I dist/.icon-set/icon_128.png -I dist/.icon-set/icon_256.png -I dist/.icon-set/icon_512.png -I dist/.icon-set/icon_1024.png
mkdir -p %{buildroot}%{_datadir}/legcord
%ifarch aarch64
mv dist/linux-arm64-unpacked/* %{buildroot}%{_datadir}/legcord
%else
mv dist/linux-unpacked/* -t %{buildroot}%{_datadir}/legcord
%endif
mkdir -p %{buildroot}%{_bindir}
ln -sf %{_datadir}/legcord/legcord %{buildroot}%{_bindir}/legcord
install -Dm644 dist/.icon-set/icon_16.png %{buildroot}%{_iconsdir}/hicolor/16x16/apps/legcord.png
install -Dm644 dist/.icon-set/icon_32.png %{buildroot}%{_iconsdir}/hicolor/32x32/apps/legcord.png
install -Dm644 dist/.icon-set/icon_48x48.png %{buildroot}%{_iconsdir}/hicolor/48x48/apps/legcord.png
install -Dm644 dist/.icon-set/icon_64.png %{buildroot}%{_iconsdir}/hicolor/64x64/apps/legcord.png
install -Dm644 dist/.icon-set/icon_128.png %{buildroot}%{_iconsdir}/hicolor/128x128/apps/legcord.png
install -Dm644 dist/.icon-set/icon_256.png %{buildroot}%{_iconsdir}/hicolor/256x256/apps/legcord.png
install -Dm644 dist/.icon-set/icon_512.png %{buildroot}%{_iconsdir}/hicolor/512x512/apps/legcord.png
install -Dm644 dist/.icon-set/icon_1024.png %{buildroot}%{_iconsdir}/hicolor/1024x1024/apps/legcord.png
dist/Legcord-*.AppImage --appimage-extract '*.desktop'
%desktop_file_install -k Exec,Icon -v "%{_libdir}/legcord/Legcord",legcord -u %U -f squashfs-root/Legcord.desktop
desktop-file-install --set-key=Exec --set-value="%{_datadir}/legcord/legcord %U" squashfs-root/legcord.desktop
%files
%doc README.md
%license license.txt
%{_bindir}/legcord
%{_datadir}/applications/Legcord.desktop
%{_libdir}/legcord/
%{_datadir}/applications/legcord.desktop
%{_datadir}/legcord/
%{_iconsdir}/hicolor/16x16/apps/legcord.png
%{_iconsdir}/hicolor/32x32/apps/legcord.png
%{_iconsdir}/hicolor/48x48/apps/legcord.png
@@ -52,9 +72,6 @@ dist/Legcord-*.AppImage --appimage-extract '*.desktop'
%{_iconsdir}/hicolor/1024x1024/apps/legcord.png
%changelog
* Mon May 18 2026 june-fish <june@fyralabs.com> - 1.2.4-1
- Use electron macros
* Mon Oct 21 2024 madonuko <mado@fyralabs.com> - 1.0.2-2
- Rename to LegCord.
+1 -1
View File
@@ -1,4 +1,4 @@
%global ver 2026-06-14
%global ver 2026-06-13
%global goodver %(echo %ver | sed 's/-//g')
%global __brp_mangle_shebangs %{nil}
%bcond_without mold
-3
View File
@@ -1,3 +0,0 @@
# Terra buildsys Folder
This folder is for all build systems (buildsys).
+1 -1
View File
@@ -5,7 +5,7 @@
%global crate mise
Name: rust-mise
Version: 2026.6.7
Version: 2026.6.6
Release: 1%{?dist}
Summary: Front-end to your dev env
-3
View File
@@ -1,3 +0,0 @@
# Terra desktops Folder
This folder is for all desktop environments, wayland compositors, and any related packages.
-3
View File
@@ -1,3 +0,0 @@
# Terra desktops/budgie Folder
This folder is for all Budgie related packages.
-3
View File
@@ -1,3 +0,0 @@
# Terra desktops/elementary Folder
This folder is for all elementary related packages.
-3
View File
@@ -1,3 +0,0 @@
# Terra desktops/gnome Folder
This folder is for all gnome related packages.
-3
View File
@@ -1,3 +0,0 @@
# Terra desktops/hyprland Folder
This folder is for all hyprland related packages.
-3
View File
@@ -1,3 +0,0 @@
# Terra desktops/kde Folder
This folder is for all KDE related packages.
-3
View File
@@ -1,3 +0,0 @@
# Terra desktops/lomiri-unity Folder
This folder is for all lomiri-unity related packages.
-3
View File
@@ -1,3 +0,0 @@
# Terra desktops/mate Folder
This folder is for all MATE related packages.
-3
View File
@@ -1,3 +0,0 @@
# Terra desktops/niri Folder
This folder is for all niri related packages.
+1 -1
View File
@@ -1,5 +1,5 @@
Name: nirius
Version: 0.0.0
Version: 0.7.1
Release: 1%{?dist}
Summary: Utility commands for niri
-1
View File
@@ -1 +0,0 @@
rpm.version(sourcehut("~tsdh/nirius"));
+1 -1
View File
@@ -2,7 +2,7 @@
%global ver 5.0.0
%global commit 65e127f88a528a953ca87ba9011665303ee35d24
%global commit e3d292656c340e5d766e11c3e4be922a39f7ac51
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commitdate 20260608
-3
View File
@@ -1,3 +0,0 @@
# Terra desktops/singularity Folder
This folder is for all singularity related packages.
-3
View File
@@ -1,3 +0,0 @@
# Terra desktops/stardust Folder
This folder is for all Stardust XR related packages.
-3
View File
@@ -1,3 +0,0 @@
# Terra desktops/sway Folder
This folder is for all sway related packages.
-3
View File
@@ -1,3 +0,0 @@
# Terra desktops/waylands Folder
This folder is for all wayland compositor/tiling window manager related/enhancing packages.
-9
View File
@@ -1,9 +0,0 @@
# Terra devs Folder
This folder is for developer related packages.
Examples:
- Terminals
- IDEs/editors
- Shells
+2 -2
View File
@@ -1,6 +1,6 @@
%global commit df9c9f055e55c891e627ffe17cce51ac9e20c648
%global commit fca2ccd403e8d13c8f4b968cda2f2c322f420f5a
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commit_date 20260614
%global commit_date 20260613
%global ver 1.8.0
%bcond_with check
-3
View File
@@ -1,3 +0,0 @@
# Terra fonts Folder
This folder is for all fonts/font related packages.
+1 -1
View File
@@ -52,7 +52,7 @@
%global fontdescription %{expand:
Versatile typeface for code, from code.}
Version: 34.6.3
Version: 34.6.2
Release: 1%{?dist}
Packager: Cappy Ishihara <cappy@fyralabs.com>
Summary: Versatile typeface for code, from code.
-3
View File
@@ -1,3 +0,0 @@
# Terra games Folder
This folder is for all games/game related packages.
+2 -2
View File
@@ -9,8 +9,8 @@
# GLIBCXX_ASSERTIONS is known to break RPCS3
%global build_cflags %(echo "%{__build_flags_lang_c}" | sed 's|-Wp,-D_GLIBCXX_ASSERTIONS ||g') %{?_distro_extra_cflags}
%global build_cxxflags %(echo "%{__build_flags_lang_cxx}" | sed 's|-Wp,-D_GLIBCXX_ASSERTIONS ||g') %{?_distro_extra_cflags}
%global commit 4fed5e7b88d78c03359009377b740a3c826505a7
%global ver 0.0.41-19465
%global commit 5252f47a332e2b82daf8818bdf2bd72aacb5b39c
%global ver 0.0.41-19461
Name: rpcs3
Version: %(echo %{ver} | sed 's/-/^/g')
-5
View File
@@ -1,5 +0,0 @@
# Terra langs Folder
This folder is for all language-specific packages.
This mostly includes software written for a specific language (language servers, language specific libraries/modules, languages themselves), but may also include software written in a specific language that does not fit anywhere else (for example, all our Haskell ghc-* packages).
Use your best judgement when contributing here.
-3
View File
@@ -1,3 +0,0 @@
# Terra langs/crystal Folder
This folder is for all crystal packages.
-3
View File
@@ -1,3 +0,0 @@
# Terra langs/d Folder
This folder is for all D packages.
-3
View File
@@ -1,3 +0,0 @@
# Terra langs/go Folder
This folder is for go specific or misc go packages.
-3
View File
@@ -1,3 +0,0 @@
# Terra langs/haskell Folder
This folder is for all Haskell packages.
-3
View File
@@ -1,3 +0,0 @@
# Terra langs/holyc Folder
This folder is for HolyC and HolyC related packages.
-3
View File
@@ -1,3 +0,0 @@
# Terra langs/kotlin Folder
This folder is for all Kotlin packages.
-3
View File
@@ -1,3 +0,0 @@
# Terra langs/lua Folder
This folder is for all Lua packages.
-3
View File
@@ -1,3 +0,0 @@
# Terra langs/nim Folder
This folder is for Nim specific or miscellaneous Nim packages.
+2 -2
View File
@@ -1,8 +1,8 @@
%global csrc_commit 561b417c65791cd8356b5f73620914ceff845d10
%global commit 9d7c0cc68369a5040dc969a6ca6f69f005ee6cf0
%global commit 9db9b8ce5783ced38bda00f296a98b97d82e530b
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global ver 2.3.1
%global commit_date 20260614
%global commit_date 20260613
%global debug_package %nil
Name: nim-nightly
-3
View File
@@ -1,3 +0,0 @@
# Terra langs/python Folder
This folder is for Python specific packages, Python modules, or miscellaneous Python packages.
@@ -1,5 +1,5 @@
%global commit feeb9aa8dde3ae9269b13f3bae435b82d8538b76
%global commit_date 20260614
%global commit 7e3b6cd8101ec0b80eedffa9a0ffd949f3ea88ab
%global commit_date 20260613
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global pypi_name types-colorama
-3
View File
@@ -1,3 +0,0 @@
# Terra langs/rust Folder
This folder is for Rust specific packages, or miscellaneous Rust packages.
-3
View File
@@ -1,3 +0,0 @@
# Terra langs/vala Folder
This folder is for Vala packages.
-3
View File
@@ -1,3 +0,0 @@
# Terra langs/zig Folder
This folder is for Zig specific, or miscellaneous Zig packages.
-9
View File
@@ -1,9 +0,0 @@
# Terra langs Folder
This folder is for all library/library related packages.
Examples:
- C/C++ header/library first packages
- GUI frameworks
- API packages
- QT packages.
-1
View File
@@ -1 +0,0 @@
print(sourcehut("~alextee/libaudec"));
+2 -2
View File
@@ -1,6 +1,6 @@
%global commit a17f87c4cff7b90b278d12b91ba0614383aaee82
%global commit 062f26052623dbecedb42075cab78a759e9f9987
%global ver 1.8.65
%global commit_date 20260614
%global commit_date 20260613
%global shortcommit %(c=%{commit}; echo ${c:0:7})
Name: tdlib-nightly
-4
View File
@@ -1,4 +0,0 @@
# Terra misc Folder
This folder is for all miscellaneous packages that do not fit in any other folders.
Use your best judgement when contributing here.
+1 -1
View File
@@ -1 +1 @@
rpm.version(sourcehut("~delthas/senpai"));
rpm.version(gh_tag("delthas/senpai"));
@@ -1,7 +1,7 @@
%global commit 5e1035c6f2458efa45ac825a798960ed0c310110
%global commit 45ad4d784a328cff2f5ad976489c386d36ac07c3
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global ver 20260613160425
%global commit_date 20260614
%global ver 20260613035141
%global commit_date 20260613
Name: v2ray-domain-list-community
Version: %{ver}^%{commit_date}git.%{shortcommit}
-9
View File
@@ -1,9 +0,0 @@
# Terra multimedia Folder
This folder is for all multimedia packages.
Examples:
- Codecs
- Media manipulation tools
- Media explorers
-11
View File
@@ -1,11 +0,0 @@
# Terra system Folder
This folder is for all system related packages.
Examples:
- Kernel modules
- Package managers
- Schedulers
- udev rules
- Tools to interact directly with the system (ex. asusctl)
@@ -1,5 +1,5 @@
%global commit 50f2fd369f3f340a643082c8a75ac3eadcdeddae
%global commit_date 20260614
%global commit 3b9229e43482cd8770e467dc700fac9f77acb191
%global commit_date 20260613
%global shortcommit %(c=%{commit}; echo ${c:0:7})
Name: cloud-hypervisor-nightly
@@ -0,0 +1,91 @@
%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-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 <willow@willowidk.dev>
%{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 Willow Reed <willow@willowidk.dev> - 2.4.0-1
- Initial package
+5
View File
@@ -0,0 +1,5 @@
project "pkg" {
rpm {
spec = "akmod-openzfs.spec"
}
}
+2
View File
@@ -0,0 +1,2 @@
let ver = gh("openzfs/zfs").strip_prefix("zfs-");
rpm.version(ver);
+5
View File
@@ -0,0 +1,5 @@
project "pkg" {
rpm {
spec = "dkms-openzfs.spec"
}
}
@@ -0,0 +1,87 @@
%global debug_package %{nil}
%global __brp_mangle_shebangs %{nil}
%define module openzfs
Name: %{module}-dkms
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
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 <willow@willowidk.dev>
%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
mkdir -p %{buildroot}%{_usrsrc}/%{modulename}-%{version}/
cp -rf lib dkms.conf %{buildroot}%{_usrsrc}/%{modulename}-%{version}/
%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 <willow@willowidk.dev> - 2.4.0-1
- Initial package
+2
View File
@@ -0,0 +1,2 @@
let ver = gh("openzfs/zfs").strip_prefix("zfs-");
rpm.version(ver);
+168
View File
@@ -0,0 +1,168 @@
%{?!packager: %define packager Brian Behlendorf <behlendorf1@llnl.gov>}
%if ! 0%{?rhel}%{?fedora}%{?mageia}%{?suse_version}%{?openEuler}
%define not_rpm 1
%endif
# Exclude input files from mangling
%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$
%define module @PACKAGE@
%define mkconf scripts/dkms.mkconf
Name: %{module}-dkms
Version: @VERSION@
Release: @RELEASE@%{?dist}
Summary: Kernel module(s) (dkms)
Group: System Environment/Kernel
License: @ZFS_META_LICENSE@
URL: https://github.com/openzfs/zfs
Source0: %{module}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
Requires: dkms >= 2.2.0.3
Requires(pre): dkms >= 2.2.0.3
Requires(post): dkms >= 2.2.0.3
Requires(preun): dkms >= 2.2.0.3
Requires: gcc, make, perl, diffutils
Requires(post): gcc, make, perl, diffutils
# Hold back kernel upgrades if kernel is not supported by ZFS
%if 0%{?rhel}%{?fedora}%{?mageia}%{?suse_version}%{?openEuler}
Requires: kernel-devel >= @ZFS_META_KVER_MIN@, kernel-devel <= @ZFS_META_KVER_MAX@.999
Requires(post): kernel-devel >= @ZFS_META_KVER_MIN@, kernel-devel <= @ZFS_META_KVER_MAX@.999
Conflicts: kernel-devel < @ZFS_META_KVER_MIN@, kernel-devel > @ZFS_META_KVER_MAX@.999
Requires: kernel-uname-r >= @ZFS_META_KVER_MIN@, kernel-uname-r <= @ZFS_META_KVER_MAX@.999
Requires(post): kernel-uname-r >= @ZFS_META_KVER_MIN@, kernel-uname-r <= @ZFS_META_KVER_MAX@.999
Conflicts: kernel-uname-r < @ZFS_META_KVER_MIN@, kernel-uname-r > @ZFS_META_KVER_MAX@.999
Obsoletes: spl-dkms <= %{version}
%endif
Provides: %{module}-kmod = %{version}
AutoReqProv: no
%if (0%{?fedora}%{?suse_version}%{?openEuler}) || (0%{?rhel} && 0%{?rhel} < 9)
# We don't directly use it, but if this isn't installed, rpmbuild as root can
# crash+corrupt rpmdb
# See issue #12071
BuildRequires: ncompress
%endif
%description
This package contains the dkms ZFS kernel modules.
%prep
%setup -q -n %{module}-%{version}
%build
%{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/
%clean
if [ "$RPM_BUILD_ROOT" != "/" ]; then
rm -rf $RPM_BUILD_ROOT
fi
%files
%defattr(-,root,root)
/usr/src/%{module}-%{version}
%pre
echo "Running pre installation script: $0. Parameters: $*"
# We don't want any other versions lingering around in dkms.
# Tests with 'dnf' showed that in case of reinstall, or upgrade
# the preun scriptlet removed the version we are trying to install.
# Because of this, find all zfs dkms sources in /var/lib/dkms and
# remove them, if we find a matching version in dkms.
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"
opath="${dkms_root}/%{module}/${otherver}"
if [ "$otherver" != %{version} ]; then
# This is a workaround for a broken 'dkms status', we caused in a previous version.
# One day it might be not needed anymore, but it does not hurt to keep it.
if dkms status -m %{module} -v "$otherver" 2>&1 | grep "${opath}/source/dkms.conf does not exist"
then
echo "ERROR: dkms status is broken!" >&2
if [ -L "${opath}/source" -a ! -d "${opath}/source" ]
then
echo "Trying to fix it by removing the symlink: ${opath}/source" >&2
echo "You should manually remove ${opath}" >&2
rm -f "${opath}/source" || echo "Removal failed!" >&2
fi
fi
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
cd ${dkms_root}
fi
# Uninstall this version of zfs dkms modules before installation of the package.
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 "Running post installation script: $0. Parameters: $*"
# Add the module to dkms, as reccommended in the dkms man page.
# This is generally rpm specfic.
# But this also may help, if we have a broken 'dkms status'.
# Because, if the sources are available and only the symlink pointing
# to them is missing, this will resolve the situation
echo "Adding %{module} dkms modules version %{version} to dkms."
dkms add -m %{module} -v %{version} %{!?not_rpm:--rpm_safe_upgrade} ||:
# After installing the package, dkms install this zfs version for the current kernel.
# Force the overwriting of old modules to avoid diff warnings in dkms status.
# Or in case of a downgrade to overwrite newer versions.
# Or if some other backed up versions have been restored before.
echo "Installing %{module} dkms modules version %{version} for the current kernel."
dkms install --force -m %{module} -v %{version} ||:
%preun
dkms_root="/var/lib/dkms/%{module}/%{version}"
echo "Running pre uninstall script: $0. Parameters: $*"
# In case of upgrade we do nothing. See above comment in pre hook.
if [ "$1" = "1" -o "$1" = "upgrade" ] ; then
echo "This is an upgrade. Skipping pre uninstall action."
exit 0
fi
# Check if we uninstall the package. In that case remove the dkms modules.
# '0' is the value for the first parameter for rpm packages.
# 'remove' or 'purge' are the possible names for deb packages.
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 %{!?not_rpm:--rpm_safe_upgrade} && exit 0
fi
# If removing the modules failed, it might be because of the broken 'dkms status'.
if dkms status -m %{module} -v %{version} 2>&1 | grep "${dkms_root}/source/dkms.conf does not exist"
then
echo "ERROR: dkms status is broken!" >&2
echo "You should manually remove ${dkms_root}" >&2
echo "WARNING: installed modules in /lib/modules/`uname -r`/extra could not be removed automatically!" >&2
fi
else
echo "Script parameter $1 did not match any removal condition."
fi
exit 0
+215
View File
@@ -0,0 +1,215 @@
%define module @PACKAGE@
%if !%{defined ksrc}
%if 0%{?rhel}%{?fedora}%{?openEuler}
%define ksrc ${kernel_version##*___}
%else
%define ksrc "$( \
if [ -e "/usr/src/linux-${kernel_version%%___*}" ]; then \
echo "/usr/src/linux-${kernel_version%%___*}"; \
elif [ -e "/lib/modules/${kernel_version%%___*}/source" ]; then \
echo "/lib/modules/${kernel_version%%___*}/source"; \
else \
echo "/lib/modules/${kernel_version%%___*}/build"; \
fi)"
%endif
%endif
%if !%{defined kobj}
%if 0%{?rhel}%{?fedora}%{?openEuler}
%define kobj ${kernel_version##*___}
%else
%define kobj "$( \
if [ -e "/usr/src/linux-${kernel_version%%___*}" ]; then \
echo "/usr/src/linux-${kernel_version%%___*}"; \
else \
echo "/lib/modules/${kernel_version%%___*}/build"; \
fi)"
%endif
%endif
#define repo rpmfusion
#define repo chaos
# (un)define the next line to either build for the newest or all current kernels
%define buildforkernels newest
#define buildforkernels current
#define buildforkernels akmod
%bcond_with debug
%bcond_with debuginfo
Name: %{module}-kmod
Version: @VERSION@
Release: @RELEASE@%{?dist}
Summary: Kernel module(s)
Group: System Environment/Kernel
License: @ZFS_META_LICENSE@
URL: https://github.com/openzfs/zfs
Source0: %{module}-%{version}.tar.gz
Source10: kmodtool
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id} -u -n)
%if 0%{?rhel}%{?fedora}%{?openEuler}
BuildRequires: gcc, make
BuildRequires: elfutils-libelf-devel
%endif
%if (0%{?fedora}%{?suse_version}%{?openEuler}) || (0%{?rhel} && 0%{?rhel} < 9)
# We don't directly use it, but if this isn't installed, rpmbuild as root can
# crash+corrupt rpmdb
# See issue #12071
BuildRequires: ncompress
%endif
# The developments headers will conflict with the dkms packages.
Conflicts: %{module}-dkms
%if %{defined repo}
# Building for a repository use the proper build-sysbuild package
# to determine which kernel-devel packages should be installed.
BuildRequires: %{_bindir}/kmodtool
%{!?kernels:BuildRequires: buildsys-build-%{repo}-kerneldevpkgs-%{?buildforkernels:%{buildforkernels}}%{!?buildforkernels:current}-%{_target_cpu}}
%else
# Building local packages attempt to to use the installed kernel.
%{?rhel:BuildRequires: kernel-devel}
%{?fedora:BuildRequires: kernel-devel}
%{?openEuler:BuildRequires: kernel-devel}
%{?suse_version:BuildRequires: kernel-source}
%if !%{defined kernels} && !%{defined build_src_rpm}
%if 0%{?rhel}%{?fedora}%{?suse_version}%{?openEuler}
%define kernels %(ls -1 /usr/src/kernels)
%else
%define kernels %(ls -1 /lib/modules)
%endif
%endif
%endif
# LDFLAGS are not sanitized by arch/*/Makefile for these architectures.
%ifarch ppc ppc64 ppc64le aarch64
%global __global_ldflags %{nil}
%endif
# Kmodtool does its magic here. A patched version of kmodtool is shipped
# with the source rpm until kmod development packages are supported upstream.
# https://bugzilla.rpmfusion.org/show_bug.cgi?id=2714
%{expand:%(bash %{SOURCE10} --target %{_target_cpu} %{?repo:--repo %{?repo}} --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} --devel %{?prefix:--prefix "%{?prefix}"} %{?kernels:--for-kernels "%{?kernels}"} %{?kernelbuildroot:--buildroot "%{?kernelbuildroot}"} 2>/dev/null) }
%description
This package contains the ZFS kernel modules.
%prep
# Error out if there was something wrong with kmodtool.
%{?kmodtool_check}
# Print kmodtool output for debugging purposes:
bash %{SOURCE10} --target %{_target_cpu} %{?repo:--repo %{?repo}} --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} --devel %{?prefix:--prefix "%{?prefix}"} %{?kernels:--for-kernels "%{?kernels}"} %{?kernelbuildroot:--buildroot "%{?kernelbuildroot}"} 2>/dev/null
%if %{with debug}
%define debug --enable-debug
%else
%define debug --disable-debug
%endif
%if %{with debuginfo}
%define debuginfo --enable-debuginfo
%else
%define debuginfo --disable-debuginfo
%endif
# Leverage VPATH from configure to avoid making multiple copies.
%define _configure ../%{module}-%{version}/configure
%setup -q -c -T -a 0
for kernel_version in %{?kernel_versions}; do
%{__mkdir} _kmod_build_${kernel_version%%___*}
done
%build
for kernel_version in %{?kernel_versions}; do
cd _kmod_build_${kernel_version%%___*}
%configure \
--with-config=kernel \
--with-linux=%{ksrc} \
--with-linux-obj=%{kobj} \
%{debug} \
%{debuginfo} \
%{?kernel_cc} \
%{?kernel_ld} \
%{?kernel_llvm} \
%{?kernel_cross_compile} \
%{?kernel_arch}
# Pre-6.10 kernel builds didn't need to copy over the source files to the
# build directory. However we do need to do it though post-6.10 due to
# these commits:
#
# b1992c3772e6 kbuild: use $(src) instead of $(srctree)/$(src) for source
# directory
#
# 9a0ebe5011f4 kbuild: use $(obj)/ instead of $(src)/ for common pattern
# rules
#
# Note that kmodtool actually copies over the source into the build
# directory, so what we're doing here is normal. For efficiency reasons
# though we just use hardlinks instead of copying.
#
# See https://github.com/openzfs/zfs/issues/16439 for more info.
cp -lR ../%{module}-%{version}/module/* module/
make %{?_smp_mflags}
cd ..
done
# Module signing (modsign)
#
# This must be run _after_ find-debuginfo.sh runs, otherwise that will strip
# the signature off of the modules.
# (Based on Fedora's kernel.spec workaround)
%define __modsign_install_post \
sign_pem="%{ksrc}/certs/signing_key.pem"; \
sign_x509="%{ksrc}/certs/signing_key.x509"; \
if [ -f "${sign_x509}" ]\
then \
echo "Signing kernel modules ..."; \
for kmod in $(find ${RPM_BUILD_ROOT}%{kmodinstdir_prefix}/*/extra/ -name \*.ko); do \
%{ksrc}/scripts/sign-file sha256 ${sign_pem} ${sign_x509} ${kmod}; \
done \
fi \
%{nil}
# hack to ensure signing happens after find-debuginfo.sh runs
%define __spec_install_post \
%{?__debug_package:%{__debug_install_post}}\
%{__arch_install_post}\
%{__os_install_post}\
%{__modsign_install_post}
%install
rm -rf ${RPM_BUILD_ROOT}
# Relies on the kernel 'modules_install' make target.
for kernel_version in %{?kernel_versions}; do
cd _kmod_build_${kernel_version%%___*}
make install \
DESTDIR=${RPM_BUILD_ROOT} \
%{?prefix:INSTALL_MOD_PATH=%{?prefix}} \
INSTALL_MOD_DIR=%{kmodinstdir_postfix}
cd ..
done
# find-debuginfo.sh only considers executables
chmod u+x ${RPM_BUILD_ROOT}%{kmodinstdir_prefix}/*/extra/*/*
%{?akmod_install}
%clean
rm -rf $RPM_BUILD_ROOT
+531
View File
@@ -0,0 +1,531 @@
%global _libdir /%{_lib}
# Set the default udev directory based on distribution.
%if %{undefined _udevdir}
%if 0%{?rhel}%{?fedora}%{?centos}%{?suse_version}%{?openEuler}
%global _udevdir %{_prefix}/lib/udev
%else
%global _udevdir /lib/udev
%endif
%endif
# Set the default dracut directory based on distribution.
%if %{undefined _dracutdir}
%if 0%{?rhel}%{?fedora}%{?centos}%{?suse_version}%{?openEuler}
%global _dracutdir %{_prefix}/lib/dracut
%else
%global _dracutdir %{_prefix}/share/dracut
%endif
%endif
%if %{undefined _initconfdir}
%global _initconfdir /etc/sysconfig
%endif
%bcond_with debug
%bcond_with debuginfo
%bcond_with asan
%bcond_with ubsan
%bcond_with systemd
%bcond_with pam
%bcond_without pyzfs
# Generic enable switch for systemd
%if %{with systemd}
%define _systemd 1
%endif
# Distros below support systemd
%if 0%{?rhel}%{?fedora}%{?centos}%{?suse_version}%{?openEuler}
%define _systemd 1
%endif
# When not specified default to distribution provided version.
%if %{undefined __use_python}
%define __python /usr/bin/python3
%define __python_pkg_version 3
%else
%define __python %{__use_python}
%define __python_pkg_version %{__use_python_pkg_version}
%endif
%define __python_sitelib %(%{__python} -Esc "
scheme = 'posix_prefix'
prefix = '%{_prefix}'
sitedir = sysconfig.get_path('purelib', scheme, vars={'base': prefix})
print(sitedir);" 2>/dev/null || %{__python} -Esc "from distutils import sysconfig; print(sysconfig.get_python_lib(0,0))")
Name: @PACKAGE@
Version: @VERSION@
Release: @RELEASE@%{?dist}
Summary: Commands to control the kernel modules and libraries
Group: System Environment/Kernel
License: @ZFS_META_LICENSE@
URL: https://github.com/openzfs/zfs
Source0: %{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires: libzpool7%{?_isa} = %{version}-%{release}
Requires: libnvpair3%{?_isa} = %{version}-%{release}
Requires: libzfs7%{?_isa} = %{version}-%{release}
Requires: %{name}-kmod = %{version}
Provides: %{name}-kmod-common = %{version}-%{release}
Obsoletes: spl <= %{version}
# zfs-fuse provides the same commands and man pages that OpenZFS does.
# Renaming those on either side would conflict with all available documentation.
Conflicts: zfs-fuse
%if 0%{?rhel}%{?centos}%{?fedora}%{?suse_version}%{?openEuler}
BuildRequires: gcc, make
BuildRequires: zlib-devel
BuildRequires: libuuid-devel
BuildRequires: libblkid-devel
BuildRequires: libudev-devel
BuildRequires: libattr-devel
BuildRequires: openssl-devel
%if 0%{?fedora}%{?suse_version}%{?openEuler} || 0%{?rhel} >= 8 || 0%{?centos} >= 8
BuildRequires: libtirpc-devel
%endif
%if (0%{?fedora}%{?suse_version}%{?openEuler}) || (0%{?rhel} && 0%{?rhel} < 9)
# We don't directly use it, but if this isn't installed, rpmbuild as root can
# crash+corrupt rpmdb
# See issue #12071
BuildRequires: ncompress
%endif
Requires: openssl
%if 0%{?_systemd}
BuildRequires: systemd
%endif
%endif
%if 0%{?_systemd}
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
%endif
# The zpool iostat/status -c scripts call some utilities like lsblk and iostat
Requires: util-linux
Requires: sysstat
%description
This package contains the core ZFS command line utilities.
%package -n libzpool7
Summary: Native ZFS pool library for Linux
Group: System Environment/Kernel
Obsoletes: libzpool2 <= %{version}
Obsoletes: libzpool4 <= %{version}
Obsoletes: libzpool5 <= %{version}
Obsoletes: libzpool6 <= %{version}
%description -n libzpool7
This package contains the zpool library, which provides support
for managing zpools
%if %{defined ldconfig_scriptlets}
%ldconfig_scriptlets -n libzpool7
%else
%post -n libzpool7 -p /sbin/ldconfig
%postun -n libzpool7 -p /sbin/ldconfig
%endif
%package -n libnvpair3
Summary: Solaris name-value library for Linux
Group: System Environment/Kernel
Obsoletes: libnvpair1 <= %{version}
%description -n libnvpair3
This package contains routines for packing and unpacking name-value
pairs. This functionality is used to portably transport data across
process boundaries, between kernel and user space, and can be used
to write self describing data structures on disk.
%if %{defined ldconfig_scriptlets}
%ldconfig_scriptlets -n libnvpair3
%else
%post -n libnvpair3 -p /sbin/ldconfig
%postun -n libnvpair3 -p /sbin/ldconfig
%endif
# The library version is encoded in the package name. When updating the
# version information it is important to add an obsoletes line below for
# the previous version of the package.
%package -n libzfs7
Summary: Native ZFS filesystem library for Linux
Group: System Environment/Kernel
Obsoletes: libzfs2 <= %{version}
Obsoletes: libzfs4 <= %{version}
Obsoletes: libzfs5 <= %{version}
Obsoletes: libzfs6 <= %{version}
%description -n libzfs7
This package provides support for managing ZFS filesystems
%if %{defined ldconfig_scriptlets}
%ldconfig_scriptlets -n libzfs7
%else
%post -n libzfs7 -p /sbin/ldconfig
%postun -n libzfs7 -p /sbin/ldconfig
%endif
%package -n libzfs7-devel
Summary: Development headers
Group: System Environment/Kernel
Requires: libzfs7%{?_isa} = %{version}-%{release}
Requires: libzpool7%{?_isa} = %{version}-%{release}
Requires: libnvpair3%{?_isa} = %{version}-%{release}
Provides: libzpool7-devel = %{version}-%{release}
Provides: libnvpair3-devel = %{version}-%{release}
Obsoletes: zfs-devel <= %{version}
Obsoletes: libzfs2-devel <= %{version}
Obsoletes: libzfs4-devel <= %{version}
Obsoletes: libzfs5-devel <= %{version}
%description -n libzfs7-devel
This package contains the header files needed for building additional
applications against the ZFS libraries.
%package test
Summary: Test infrastructure
Group: System Environment/Kernel
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: parted
Requires: lsscsi
Requires: mdadm
Requires: bc
Requires: ksh
Requires: fio
Requires: acl
Requires: sudo
Requires: sysstat
Requires: libaio
Requires: python%{__python_pkg_version}
%if 0%{?rhel}%{?centos}%{?fedora}%{?suse_version}%{?openEuler}
BuildRequires: libaio-devel
%endif
AutoReqProv: no
%description test
This package contains test infrastructure and support scripts for
validating the file system.
%package dracut
Summary: Dracut module
Group: System Environment/Kernel
BuildArch: noarch
Requires: %{name} >= %{version}
Requires: dracut
Requires: /usr/bin/awk
Requires: grep
%description dracut
This package contains a dracut module used to construct an initramfs
image which is ZFS aware.
%if %{with pyzfs}
# Enforce `python36-` package prefix for CentOS 7
# since dependencies come from EPEL and are named this way
%package -n python%{__python_pkg_version}-pyzfs
Summary: Python %{python_version} wrapper for libzfs_core
Group: Development/Languages/Python
License: Apache-2.0
BuildArch: noarch
Requires: libzfs7 = %{version}-%{release}
Requires: libnvpair3 = %{version}-%{release}
Requires: libffi
Requires: python%{__python_pkg_version}
%if 0%{?centos} == 7
Requires: python36-cffi
%else
Requires: python%{__python_pkg_version}-cffi
%endif
%if 0%{?rhel}%{?centos}%{?fedora}%{?suse_version}%{?openEuler}
%if 0%{?centos} == 7
BuildRequires: python36-packaging
BuildRequires: python36-devel
BuildRequires: python36-cffi
BuildRequires: python36-setuptools
%else
BuildRequires: python%{__python_pkg_version}-packaging
BuildRequires: python%{__python_pkg_version}-devel
BuildRequires: python%{__python_pkg_version}-cffi
BuildRequires: python%{__python_pkg_version}-setuptools
%endif
BuildRequires: libffi-devel
%endif
%description -n python%{__python_pkg_version}-pyzfs
This package provides a python wrapper for the libzfs_core C library.
%endif
%if 0%{?_initramfs}
%package initramfs
Summary: Initramfs module
Group: System Environment/Kernel
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: initramfs-tools
%description initramfs
This package contains a initramfs module used to construct an initramfs
image which is ZFS aware.
%endif
%if %{with pam}
%package -n pam_zfs_key
Summary: PAM module for encrypted ZFS datasets
%if 0%{?rhel}%{?centos}%{?fedora}%{?suse_version}%{?openEuler}
BuildRequires: pam-devel
%endif
%description -n pam_zfs_key
This package contains the pam_zfs_key PAM module, which provides
support for unlocking datasets on user login.
%endif
%prep
%if %{with debug}
%define debug --enable-debug
%else
%define debug --disable-debug
%endif
%if %{with debuginfo}
%define debuginfo --enable-debuginfo
%else
%define debuginfo --disable-debuginfo
%endif
%if %{with asan}
%define asan --enable-asan
%else
%define asan --disable-asan
%endif
%if %{with ubsan}
%define ubsan --enable-ubsan
%else
%define ubsan --disable-ubsan
%endif
%if 0%{?_systemd}
%define systemd --enable-systemd --with-systemdunitdir=%{_unitdir} --with-systemdpresetdir=%{_presetdir} --with-systemdmodulesloaddir=%{_modulesloaddir} --with-systemdgeneratordir=%{_systemdgeneratordir} --disable-sysvinit
%define systemd_svcs zfs-import-cache.service zfs-import-scan.service zfs-mount.service zfs-mount@.service zfs-share.service zfs-zed.service zfs.target zfs-import.target zfs-volume-wait.service zfs-volumes.target
%else
%define systemd --enable-sysvinit --disable-systemd
%endif
%if %{with pyzfs}
%define pyzfs --enable-pyzfs
%else
%define pyzfs --disable-pyzfs
%endif
%if %{with pam}
%define pam --enable-pam
%else
%define pam --disable-pam
%endif
%setup -q
%build
%configure \
--with-config=user \
--with-udevdir=%{_udevdir} \
--with-udevruledir=%{_udevrulesdir} \
--with-dracutdir=%{_dracutdir} \
--with-pamconfigsdir=%{_datadir}/pam-configs \
--with-pammoduledir=%{_libdir}/security \
--with-python=%{__python} \
--with-pkgconfigdir=%{_pkgconfigdir} \
--with-mounthelperdir=%{_sbindir} \
--disable-static \
%{debug} \
%{debuginfo} \
%{asan} \
%{ubsan} \
%{systemd} \
%{pam} \
%{pyzfs}
make %{?_smp_mflags}
%install
%{__rm} -rf $RPM_BUILD_ROOT
make install DESTDIR=%{?buildroot}
find %{?buildroot}%{_libdir} -name '*.la' -exec rm -f {} \;
%if 0%{!?__brp_mangle_shebangs:1}
find %{?buildroot}%{_bindir} \
\( -name zarcsummary -or -name zarcstat -or -name dbufstat \
-or -name zilstat \) \
-exec %{__sed} -i 's|^#!.*|#!%{__python}|' {} \;
find %{?buildroot}%{_datadir} \
\( -name test-runner.py -or -name zts-report.py \) \
-exec %{__sed} -i 's|^#!.*|#!%{__python}|' {} \;
%endif
%post
%if 0%{?_systemd}
%if 0%{?systemd_post:1}
%systemd_post %{systemd_svcs}
%else
if [ "$1" = "1" -o "$1" = "install" ] ; then
# Initial installation
systemctl preset %{systemd_svcs} >/dev/null || true
fi
%endif
%else
if [ -x /sbin/chkconfig ]; then
/sbin/chkconfig --add zfs-import
/sbin/chkconfig --add zfs-load-key
/sbin/chkconfig --add zfs-mount
/sbin/chkconfig --add zfs-share
/sbin/chkconfig --add zfs-zed
fi
%endif
exit 0
# On RHEL/CentOS 7 the static nodes aren't refreshed by default after
# installing a package. This is the default behavior for Fedora.
%posttrans
%if 0%{?rhel} == 7 || 0%{?centos} == 7
systemctl restart kmod-static-nodes
systemctl restart systemd-tmpfiles-setup-dev
udevadm trigger
%endif
%preun
%if 0%{?_systemd}
%if 0%{?systemd_preun:1}
%systemd_preun %{systemd_svcs}
%else
if [ "$1" = "0" -o "$1" = "remove" ] ; then
# Package removal, not upgrade
systemctl --no-reload disable %{systemd_svcs} >/dev/null || true
systemctl stop %{systemd_svcs} >/dev/null || true
fi
%endif
%else
if [ "$1" = "0" -o "$1" = "remove" ] && [ -x /sbin/chkconfig ]; then
/sbin/chkconfig --del zfs-import
/sbin/chkconfig --del zfs-load-key
/sbin/chkconfig --del zfs-mount
/sbin/chkconfig --del zfs-share
/sbin/chkconfig --del zfs-zed
fi
%endif
exit 0
%postun
%if 0%{?_systemd}
%if 0%{?systemd_postun:1}
%systemd_postun %{systemd_svcs}
%else
systemctl --system daemon-reload >/dev/null || true
%endif
%endif
%files
# Core utilities
%{_sbindir}/*
%{_bindir}/raidz_test
%{_bindir}/zvol_wait
# Optional Python 3 scripts
%{_bindir}/zarcsummary
%{_bindir}/zarcstat
%{_bindir}/dbufstat
%{_bindir}/zilstat
# Man pages
%{_mandir}/man1/*
%{_mandir}/man4/*
%{_mandir}/man5/*
%{_mandir}/man7/*
%{_mandir}/man8/*
# Configuration files and scripts
%{_libexecdir}/%{name}
%{_udevdir}/vdev_id
%{_udevdir}/zvol_id
%{_udevdir}/rules.d/*
%{_datadir}/%{name}/compatibility.d
%if ! 0%{?_systemd} || 0%{?_initramfs}
# Files needed for sysvinit and initramfs-tools
%{_sysconfdir}/%{name}/zfs-functions
%config(noreplace) %{_initconfdir}/zfs
%else
%exclude %{_sysconfdir}/%{name}/zfs-functions
%exclude %{_initconfdir}/zfs
%endif
%if 0%{?_systemd}
%{_unitdir}/*
%{_presetdir}/*
%{_modulesloaddir}/*
%{_systemdgeneratordir}/*
%else
%config(noreplace) %{_sysconfdir}/init.d/*
%endif
%config(noreplace) %{_sysconfdir}/%{name}/zed.d/*
%config(noreplace) %{_sysconfdir}/%{name}/zpool.d/*
%config(noreplace) %{_sysconfdir}/%{name}/vdev_id.conf.*.example
%attr(440, root, root) %config(noreplace) %{_sysconfdir}/sudoers.d/*
%config(noreplace) %{bash_completions_dir}/zfs
%config(noreplace) %{bash_completions_dir}/zpool
%files -n libzpool7
%{_libdir}/libzpool.so.*
%files -n libnvpair3
%{_libdir}/libnvpair.so.*
%files -n libzfs7
%{_libdir}/libzfs*.so.*
%files -n libzfs7-devel
%{_pkgconfigdir}/libzfs.pc
%{_pkgconfigdir}/libzfsbootenv.pc
%{_pkgconfigdir}/libzfs_core.pc
%{_libdir}/*.so
%{_includedir}/*
%doc AUTHORS COPYRIGHT LICENSE NOTICE README.md
%files test
%{_datadir}/%{name}/zfs-tests
%{_datadir}/%{name}/test-runner
%{_datadir}/%{name}/runfiles
%{_datadir}/%{name}/*.sh
%files dracut
%doc contrib/dracut/README.md
%{_dracutdir}/modules.d/*
%if %{with pyzfs}
%files -n python%{__python_pkg_version}-pyzfs
%doc contrib/pyzfs/README
%doc contrib/pyzfs/LICENSE
%defattr(-,root,root,-)
%{__python_sitelib}/libzfs_core/*
%{__python_sitelib}/pyzfs*
%endif
%if 0%{?_initramfs}
%files initramfs
%doc contrib/initramfs/README.md
/usr/share/initramfs-tools/*
%else
# Since we're not building the initramfs package,
# ignore those files.
%exclude /usr/share/initramfs-tools
%endif
%if %{with pam}
%files -n pam_zfs_key
%{_libdir}/security/*
%{_datadir}/pam-configs/*
%endif
+5
View File
@@ -0,0 +1,5 @@
project "pkg" {
rpm {
spec = "zfs.spec"
}
}
+121
View File
@@ -0,0 +1,121 @@
Summary: OpenZFS for Linux
Group: Utilities/System
Name: zfs
Version: 2.4.1
Release: 1%?dist
License: CDDL
URL: https://zfsonlinux.org/
Source: https://github.com/openzfs/zfs/releases/download/zfs-%{version}/%{name}-%{version}.tar.gz
BuildRequires: zlib-devel
BuildRequires: e2fsprogs-devel
BuildRequires: libuuid-devel
BuildRequires: libblkid-devel
BuildRequires: libattr-devel
BuildRequires: libtirpc-devel
%description
ZFS is an advanced file system and volume manager which was originally
developed for Solaris and is now maintained by the Illumos community.
ZFS on Linux, which is also known as ZoL, is currently feature complete.
It includes fully functional and stable SPA, DMU, ZVOL, and ZPL layers.
%package devel
Summary: OpenZFS File System User Headers
Group: Development/Libraries
Requires: %{name}
Requires: zlib e2fsprogs
BuildRequires: zlib-devel e2fsprogs-devel
%description devel
The %{name}-devel package contains the header files needed for building
additional applications against the %{name} libraries.
%package test
Summary: OpenZFS File System Test Infrastructure
Group: Utilities/System
Requires: %{name}
Requires: parted lsscsi
%description test
The %{name}-test package contains a test infrastructure for zpios which
can be used to simplfy the benchmarking of various hardware and software
configurations. The test infrastructure additionally integrates with
various system profiling tools to facilitate an in depth analysis.
%package dracut
Summary: OpenZFS Dracut Module
Group: System Environment/Base
Requires: %{name}
Requires: dracut
%description dracut
The %{name}-dracut package allows dracut to construct initramfs images
which are ZFS aware.
%prep
%setup -q
#sed -i 's|:3|:4|' configure
%build
export LDFLAGS=-Wl,--allow-multiple-definition
%configure --with-config=user
make
%install
rm -rf $RPM_BUILD_ROOT
make DESTDIR=$RPM_BUILD_ROOT install
%files
%doc AUTHORS COPYRIGHT LICENSE *.md
/sbin/mount.zfs
%{_sbindir}/*
%{_bindir}/*
%{_libdir}/lib*
%{_mandir}/man?/*
%{_sysconfdir}/init.d/*
%{_sysconfdir}/zfs
/usr/lib/systemd/system-preset/*
/usr/lib/systemd/system/*
/usr/lib/systemd/system-generators/zfs-mount-generator
/lib/udev/rules.d/*
/lib/udev/*_id
%{_datadir}/zfs/*
/etc/sudoers.d/zfs
/etc/sysconfig/zfs
/etc/bash_completion.d/zfs
%{python3_sitelib}/*
%{_libdir}/security/pam_zfs_key.so
%{_datadir}/pam-configs/zfs_key
%{_sysconfdir}/bash_completion.d/zpool
%files devel
%{_includedir}/*
%{_libdir}/pkgconfig/*
%files test
%{_libexecdir}/zfs/*
%files dracut
/usr/lib/dracut/modules.d/90zfs/*
/usr/lib/modules-load.d/zfs.conf
/usr/lib/dracut/modules.d/02zfsexpandknowledge/module-setup.sh
%{_datadir}/initramfs-tools/conf-hooks.d/zfs
%{_datadir}/initramfs-tools/hooks/zfs
%{_datadir}/initramfs-tools/scripts/local-top/zfs
%{_datadir}/initramfs-tools/scripts/zfs
%{_datadir}/initramfs-tools/conf.d/zfs
%{_datadir}/initramfs-tools/hooks/zfsunlock
%{_datadir}/initramfs-tools/zfsunlock
%post
[ -x /sbin/chkconfig ] && /sbin/chkconfig --add zfs
exit 0
%preun
[ "$1" = 0 ] && [ -x /sbin/chkconfig ] && /sbin/chkconfig --del zfs
exit 0
%changelog
* Sun Dec 8 2024 Wei-Lun Chao <bluebat@member.fsf.org> - 2.2.6
- Rebuilt for Fedora
+5
View File
@@ -0,0 +1,5 @@
project "pkg" {
rpm {
spec = "openzfs.spec"
}
}
+140
View File
@@ -0,0 +1,140 @@
%global debug_package %{nil}
%global __brp_mangle_shebangs %{nil}
%global __python %{__python3}
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: libudev-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}
Requires: util-linux
Requires: sysstat
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 <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 \
--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-static
%make_build
%install
%make_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
%{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> - 2.4.0-1
- Initial package
@@ -0,0 +1 @@
rpm.version(gh("openzfs/zfs").strip_prefix("zfs-"));
@@ -1,6 +1,6 @@
%global commit 0f3df692e2bd733b0ea54add470ba4288b9bd3b2
%global commit 16e0680b53588b30cc416522a1fc52218f538931
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commitdate 20260614
%global commitdate 20260613
%global ver 1.1.1
%undefine __brp_mangle_shebangs
+1 -1
View File
@@ -18,7 +18,7 @@
Name: wine-staging
Version: 11.11
Version: 11.10
Release: 1%{?dist}
Epoch: 1
Summary: WINE Is Not An Emulator - runs MS Windows programs
-3
View File
@@ -1,3 +0,0 @@
# Terra terra Folder
This folder is for all terra related packages.
-3
View File
@@ -1,3 +0,0 @@
# Terra themes Folder
This folder is for all theme/theme related packages.
-5
View File
@@ -1,5 +0,0 @@
# Terra tools Folder
This folder is for all tool packages.
Generally speaking, these are CLI programs with a specific purpose.
Use your best judgement when contributing here.
@@ -1,5 +1,5 @@
%global commit f83547caeb4117783dc97ab3283e82f9a251e424
%global commit_date 20260614
%global commit ef74eb2e3e7f900f0a510dc1bf6f1a01e241cc19
%global commit_date 20260608
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%define debug_package %{nil}
+1 -1
View File
@@ -2,7 +2,7 @@
%global oldpkgname yt-dlp-nightly
Name: yt-dlp-git
Version: 2026.06.13.230640
Version: 2026.06.12.230009
Release: 1%{?dist}
Summary: A command-line program to download videos from online video platforms