From 795eb41003422aa73e00baaac2016e510a814dae Mon Sep 17 00:00:00 2001
From: Koichiro Iwao
Date: Mon, 27 Jan 2025 16:24:23 +0900
Subject: [PATCH] Add pseudo -modules* sub-packages and adjust dependency
While here,
- The main kernel package now provides kernel-core
- Convert license to SPDX expression
- Remove dracut as initramfs is not needed (mentioned in 4.4.21-2)
---
SPECS/raspberrypi2.spec | 73 ++++++++++++++++++++++++++++++++++++-----
1 file changed, 65 insertions(+), 8 deletions(-)
diff --git a/SPECS/raspberrypi2.spec b/SPECS/raspberrypi2.spec
index f69973d..dd4c720 100644
--- a/SPECS/raspberrypi2.spec
+++ b/SPECS/raspberrypi2.spec
@@ -11,7 +11,7 @@ ExclusiveArch: aarch64
%define local_version v8
%define bcmmodel 2711
-%define extra_version 1
+%define extra_version 2
# This originally implies Kernel 4.x for RPi 2 and is not appropriate now.
# Be careful to change this not to disturb the seamless package update.
@@ -41,7 +41,7 @@ Version: %{kversion}.%{patchlevel}
Release: 20241206.%{local_version}.%{extra_version}%{?dist}
Summary: Specific kernel and bootcode for Raspberry Pi
-License: GPLv2
+License: GPL-2.0 WITH Linux-syscall-note
URL: https://github.com/raspberrypi/linux
Source0: https://github.com/raspberrypi/linux/archive/%{version_tag}.tar.gz
Source1: https://github.com/raspberrypi/firmware/archive/refs/tags/%{firmware_tag}.tar.gz
@@ -75,10 +75,9 @@ Specific kernel and bootcode for Raspberry Pi
Group: System Environment/Kernel
Summary: The Linux kernel
Provides: kernel = %{version}-%{release}
+Provides: kernel-core = %{version}-%{release}
Provides: installonlypkg(kernel)
-Requires: coreutils
-#Requires: dracut
-
+Requires: coreutils
%description kernel%{?ksuffix}
The kernel package contains the Linux kernel (vmlinuz), the core of any
Linux operating system. The kernel handles the basic functions
@@ -95,11 +94,52 @@ Autoreq: no
Requires(pre): findutils
Requires: findutils
Requires: perl-interpreter
-
%description kernel%{?ksuffix}-devel
This package provides kernel headers and makefiles sufficient to build modules
against the kernel package.
+%package kernel%{?ksuffix}-modules
+Summary: Pseudo package for kernel modules
+Group: System Environment/Kernel
+Provides: installonlypkg(kernel-module)
+Provides: kernel-modules = %{version}-%{release}
+Provides: kernel-modules-uname-r = %{version}-%{release}
+Obsoletes: kernel-modules < %{version}-%{release}
+Requires: %{name}-kernel%{?ksuffix} = %{version}-%{release}
+AutoReq: no
+AutoProv: yes
+%description kernel%{?ksuffix}-modules
+This package provides pseudo dependency for the packages that depends on regular
+kernel-modules packages.
+
+%package kernel%{?ksuffix}-modules-core
+Summary: Pseudo package for core kernel modules
+Group: System Environment/Kernel
+Provides: installonlypkg(kernel-module)
+Provides: kernel-modules-core = %{version}-%{release}
+Provides: kernel-modules-core-uname-r = %{version}-%{release}
+Obsoletes: kernel-modules-core < %{version}-%{release}
+Requires: %{name}-kernel%{?ksuffix} = %{version}-%{release}
+AutoReq: no
+AutoProv: yes
+%description kernel%{?ksuffix}-modules-core
+This package provides pseudo dependency for the packages that depends on regular
+kernel-modules-core packages.
+
+%package kernel%{?ksuffix}-modules-extra
+Summary: Pseudo package for extra kernel modules
+Group: System Environment/Kernel
+Provides: kernel-modules-extra = %{version}-%{release}
+Provides: kernel-modules-extra-uname-r = %{version}-%{release}
+Provides: installonlypkg(kernel-module)
+Obsoletes: kernel-modules-extra < %{version}-%{release}
+Requires: %{name}-kernel%{?ksuffix} = %{version}-%{release}
+AutoReq: no
+AutoProv: yes
+%description kernel%{?ksuffix}-modules-extra
+This package provides pseudo dependency for the packages that depends on regular
+kernel-modules-extra packages.
+
%if %{with_tools}
%package kernel%{?ksuffix}-tools
Summary: Assortment of tools for the Linux kernel
@@ -159,7 +199,7 @@ Obsoletes: kernel-headers < %{version}
Provides: kernel-headers = %{version}-%{release}
Obsoletes: glibc-kernheaders < 3.0-46
Provides: glibc-kernheaders = 3.0-46
-Summary: Header files for the Linux kernel for use by glibc
+Summary: Header files for the Linux kernel for use by glibc
%description kernel%{?ksuffix}-headers
Kernel-headers includes the C header files that specify the interface
@@ -368,7 +408,6 @@ fi
cp /usr/share/%{name}-kernel/%{version}-%{release}/boot/*.dtb /boot/
cp /usr/share/%{name}-kernel/%{version}-%{release}/boot/overlays/*.dtb* /boot/overlays/
cp /usr/share/%{name}-kernel/%{version}-%{release}/boot/overlays/README /boot/overlays/
-/usr/bin/dracut /boot/initramfs-%{version}-%{release}.img %{version}-%{release}
cp /boot/config-kernel-%{version}-%{release}.inc /boot/config-kernel.inc
%postun kernel%{?ksuffix}
@@ -385,6 +424,18 @@ cp $(ls -1 /boot/config-kernel-*-*|sort -V|tail -1) /boot/config-kernel.inc
%files kernel%{?ksuffix}-devel
%defattr(-,root,root)
/usr/src/kernels/%{version}-%{release}
+
+%files kernel%{?ksuffix}-modules
+# empty package
+%defattr(-,root,root)
+
+%files kernel%{?ksuffix}-modules-core
+# empty package
+%defattr(-,root,root)
+
+%files kernel%{?ksuffix}-modules-extra
+# empty package
+%defattr(-,root,root)
%endif
%if %{with_tools}
@@ -438,6 +489,12 @@ cp $(ls -1 /boot/config-kernel-*-*|sort -V|tail -1) /boot/config-kernel.inc
%endif
%changelog
+* Mon Jan 27 2025 Koichiro Iwao - 6.12.1-20241206.v8.2
+- Add pseudo subpackages for kernel modules to resolve dependency issue
+- The main kernel package now provides kernel-core
+- Convert license to SPDX expression
+- Remove dracut as initramfs is not needed (mentioned in 4.4.21-2)
+
* Wed Dec 25 2024 Koichiro Iwao - 6.12.1-20241206.v8.1
- Update kernel to v6.12.1 rpi-6.12.y_20241206_2
- Update firmware to 1.20241126