mirror of
https://github.com/koverstreet/bcachefs-tools.git
synced 2025-12-08 00:00:12 +03:00
Spec: Implement KMP package for OpenSUSE Tumbleweed
At least on OBS, opensuse leap <=16.1 come with linux 6.12, so no KMP for them...
This commit is contained in:
parent
bf5087c071
commit
db2af22c69
1
.github/workflows/obs.yml
vendored
1
.github/workflows/obs.yml
vendored
@ -280,6 +280,7 @@ jobs:
|
|||||||
addFilter("dkms-bcachefs.noarch: E: devel-file-in-non-devel-package")
|
addFilter("dkms-bcachefs.noarch: E: devel-file-in-non-devel-package")
|
||||||
EOT
|
EOT
|
||||||
tar -xvf *.tar.xz -C "$OBS_REPO_DIR" --wildcards '*/bcachefs-tools.spec' --strip-components=1
|
tar -xvf *.tar.xz -C "$OBS_REPO_DIR" --wildcards '*/bcachefs-tools.spec' --strip-components=1
|
||||||
|
tar -xvf *.tar.xz -C "$OBS_REPO_DIR" --wildcards '*/bcachefs-kmp.spec-preambule' --strip-components=1
|
||||||
tar -xvf *.tar.xz -C "$OBS_REPO_DIR" --wildcards '*/debian/cargo.config' --strip-components=2
|
tar -xvf *.tar.xz -C "$OBS_REPO_DIR" --wildcards '*/debian/cargo.config' --strip-components=2
|
||||||
patch "$OBS_REPO_DIR/bcachefs-tools.spec" <<EOF
|
patch "$OBS_REPO_DIR/bcachefs-tools.spec" <<EOF
|
||||||
--- a/bcachefs-tools.spec
|
--- a/bcachefs-tools.spec
|
||||||
|
|||||||
6
bcachefs-kmp.spec-preambule
Normal file
6
bcachefs-kmp.spec-preambule
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
Requires: kernel-%1
|
||||||
|
Provides: multiversion(kernel)
|
||||||
|
Enhances: kernel-%1
|
||||||
|
Supplements: (bcachefs-tools and kernel-%1)
|
||||||
|
Recommends: %{name}-ueficert = %{version}
|
||||||
@ -15,14 +15,24 @@
|
|||||||
|
|
||||||
%global make_opts VERSION="%{version}" BCACHEFS_FUSE=1 BUILD_VERBOSE=1 PREFIX=%{_prefix} ROOT_SBINDIR=%{_sbindir}
|
%global make_opts VERSION="%{version}" BCACHEFS_FUSE=1 BUILD_VERBOSE=1 PREFIX=%{_prefix} ROOT_SBINDIR=%{_sbindir}
|
||||||
|
|
||||||
|
%global MSRV 1.77
|
||||||
|
%global MINIMAL_KERNEL_VERSION_FOR_TOOLS 6.11.3
|
||||||
|
%global MINIMAL_KERNEL_VERSION_FOR_MODULE 6.16
|
||||||
|
|
||||||
|
%global _KMP_TMPDIR "%{_tmppath}/%{name}-%{version}-kmp"
|
||||||
|
|
||||||
|
%if %{undefined _with_kmp}
|
||||||
|
%if 0%{?suse_version} >= 1690
|
||||||
|
%global _with_kmp 1
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
Name: bcachefs-tools
|
Name: bcachefs-tools
|
||||||
# define with i.e. --define '_version 1.0'
|
# define with i.e. --define '_version 1.0'
|
||||||
Version: 0%{?_version}
|
Version: 0%{?_version}
|
||||||
Release: 0%{?dist}
|
Release: 0%{?dist}
|
||||||
Summary: Userspace tools for bcachefs
|
Summary: Userspace tools for bcachefs
|
||||||
|
|
||||||
%global MSRV 1.77
|
|
||||||
|
|
||||||
# --- rust ---
|
# --- rust ---
|
||||||
# Apache-2.0
|
# Apache-2.0
|
||||||
# Apache-2.0 OR MIT
|
# Apache-2.0 OR MIT
|
||||||
@ -43,6 +53,7 @@ Source: bcachefs-tools_%{version}.tar.xz
|
|||||||
Source1: bcachefs-tools_%{version}.tar.xz.sig
|
Source1: bcachefs-tools_%{version}.tar.xz.sig
|
||||||
Source2: apt.bcachefs.org.keyring
|
Source2: apt.bcachefs.org.keyring
|
||||||
Source3: cargo.config
|
Source3: cargo.config
|
||||||
|
Source4: bcachefs-kmp.spec-preambule
|
||||||
Source99: %{dkmsname}.rpmlintrc
|
Source99: %{dkmsname}.rpmlintrc
|
||||||
%else
|
%else
|
||||||
Source: https://evilpiepirate.org/%{name}/%{name}-vendored-%{version}.tar.zst
|
Source: https://evilpiepirate.org/%{name}/%{name}-vendored-%{version}.tar.zst
|
||||||
@ -67,7 +78,7 @@ BuildRequires: rust >= %{MSRV}
|
|||||||
BuildRequires: rustc >= %{MSRV}
|
BuildRequires: rustc >= %{MSRV}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
BuildRequires: kernel-headers >= 6.11.3
|
BuildRequires: kernel-headers >= %{MINIMAL_KERNEL_VERSION_FOR_TOOLS}
|
||||||
BuildRequires: libaio-devel >= 0.3.111
|
BuildRequires: libaio-devel >= 0.3.111
|
||||||
BuildRequires: libattr-devel
|
BuildRequires: libattr-devel
|
||||||
BuildRequires: pkgconfig(blkid)
|
BuildRequires: pkgconfig(blkid)
|
||||||
@ -88,6 +99,13 @@ BuildRequires: pkgconfig
|
|||||||
|
|
||||||
BuildRequires: systemd-rpm-macros
|
BuildRequires: systemd-rpm-macros
|
||||||
|
|
||||||
|
%if 0%{?_with_kmp} != 0
|
||||||
|
BuildRequires: %kernel_module_package_buildreqs
|
||||||
|
BuildRequires: kernel-devel >= %{MINIMAL_KERNEL_VERSION_FOR_MODULE}
|
||||||
|
BuildRequires: kernel-syms >= %{MINIMAL_KERNEL_VERSION_FOR_MODULE}
|
||||||
|
%kernel_module_package -n %{kmodname} -x xen -p %_sourcedir/bcachefs-kmp.spec-preambule
|
||||||
|
%endif
|
||||||
|
|
||||||
# Rust parts FTBFS on 32-bit arches
|
# Rust parts FTBFS on 32-bit arches
|
||||||
ExcludeArch: %{ix86} %{arm32}
|
ExcludeArch: %{ix86} %{arm32}
|
||||||
|
|
||||||
@ -130,7 +148,7 @@ mount, create, check, modify and correct any inconsistencies in the bcachefs fil
|
|||||||
Summary: Bcachefs kernel module managed by DKMS
|
Summary: Bcachefs kernel module managed by DKMS
|
||||||
Requires: diffutils
|
Requires: diffutils
|
||||||
Requires: dkms >= 3.2.1
|
Requires: dkms >= 3.2.1
|
||||||
Requires: kernel-devel >= 6.16
|
Requires: kernel-devel >= %{MINIMAL_KERNEL_VERSION_FOR_MODULE}
|
||||||
Requires: gcc
|
Requires: gcc
|
||||||
Requires: make
|
Requires: make
|
||||||
Requires: perl
|
Requires: perl
|
||||||
@ -197,6 +215,16 @@ cp %{_sourcedir}/cargo.config $PWD/.cargo/config.toml
|
|||||||
%set_build_flags
|
%set_build_flags
|
||||||
%make_build %{make_opts}
|
%make_build %{make_opts}
|
||||||
|
|
||||||
|
%if 0%{?_with_kmp} != 0
|
||||||
|
%make_build install_dkms DKMSDIR="%{_KMP_TMPDIR}/src"
|
||||||
|
for kmp_flavor in %{?flavors_to_build}; do
|
||||||
|
rm -Rf "%{_KMP_TMPDIR}/obj-$kmp_flavor"
|
||||||
|
cp -a "%{_KMP_TMPDIR}/src/." "%{_KMP_TMPDIR}/obj-$kmp_flavor"
|
||||||
|
%make_build \
|
||||||
|
-C "%{_KMP_TMPDIR}/obj-$kmp_flavor" \
|
||||||
|
KDIR="/usr/src/linux-obj/%_target_cpu/$kmp_flavor"
|
||||||
|
done
|
||||||
|
%endif
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%if 0%{?_version} == 0
|
%if 0%{?_version} == 0
|
||||||
@ -212,8 +240,19 @@ cp %{_sourcedir}/cargo.config $PWD/.cargo/config.toml
|
|||||||
# Purge unneeded debian stuff
|
# Purge unneeded debian stuff
|
||||||
rm -rfv %{buildroot}/%{_datadir}/initramfs-tools
|
rm -rfv %{buildroot}/%{_datadir}/initramfs-tools
|
||||||
|
|
||||||
|
%if 0%{?_with_kmp} != 0
|
||||||
|
for kmp_flavor in %{?flavors_to_build}; do
|
||||||
|
%make_build \
|
||||||
|
-C "/usr/src/linux-obj/%_target_cpu/$kmp_flavor" \
|
||||||
|
M="%{_KMP_TMPDIR}/obj-$kmp_flavor" \
|
||||||
|
INSTALL_MOD_PATH="%buildroot" \
|
||||||
|
modules_install
|
||||||
|
done
|
||||||
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sun Nov 19 2025 Roman Lebedev <lebedev.ri@gmail.com>
|
||||||
|
- Implement KMP package for OpenSUSE Tumbleweed
|
||||||
* Sun Oct 19 2025 Roman Lebedev <lebedev.ri@gmail.com>
|
* Sun Oct 19 2025 Roman Lebedev <lebedev.ri@gmail.com>
|
||||||
- Fix DKMS support on SUSE
|
- Fix DKMS support on SUSE
|
||||||
* Sun Oct 12 2025 Roman Lebedev <lebedev.ri@gmail.com>
|
* Sun Oct 12 2025 Roman Lebedev <lebedev.ri@gmail.com>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user