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)
This commit is contained in:
Koichiro Iwao 2025-01-27 16:24:23 +09:00
parent 08e96e435e
commit 795eb41003

View File

@ -11,7 +11,7 @@ ExclusiveArch: aarch64
%define local_version v8 %define local_version v8
%define bcmmodel 2711 %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. # 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. # 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} Release: 20241206.%{local_version}.%{extra_version}%{?dist}
Summary: Specific kernel and bootcode for Raspberry Pi Summary: Specific kernel and bootcode for Raspberry Pi
License: GPLv2 License: GPL-2.0 WITH Linux-syscall-note
URL: https://github.com/raspberrypi/linux URL: https://github.com/raspberrypi/linux
Source0: https://github.com/raspberrypi/linux/archive/%{version_tag}.tar.gz Source0: https://github.com/raspberrypi/linux/archive/%{version_tag}.tar.gz
Source1: https://github.com/raspberrypi/firmware/archive/refs/tags/%{firmware_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 Group: System Environment/Kernel
Summary: The Linux kernel Summary: The Linux kernel
Provides: kernel = %{version}-%{release} Provides: kernel = %{version}-%{release}
Provides: kernel-core = %{version}-%{release}
Provides: installonlypkg(kernel) Provides: installonlypkg(kernel)
Requires: coreutils Requires: coreutils
#Requires: dracut
%description kernel%{?ksuffix} %description kernel%{?ksuffix}
The kernel package contains the Linux kernel (vmlinuz), the core of any The kernel package contains the Linux kernel (vmlinuz), the core of any
Linux operating system. The kernel handles the basic functions Linux operating system. The kernel handles the basic functions
@ -95,11 +94,52 @@ Autoreq: no
Requires(pre): findutils Requires(pre): findutils
Requires: findutils Requires: findutils
Requires: perl-interpreter Requires: perl-interpreter
%description kernel%{?ksuffix}-devel %description kernel%{?ksuffix}-devel
This package provides kernel headers and makefiles sufficient to build modules This package provides kernel headers and makefiles sufficient to build modules
against the kernel package. 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} %if %{with_tools}
%package kernel%{?ksuffix}-tools %package kernel%{?ksuffix}-tools
Summary: Assortment of tools for the Linux kernel Summary: Assortment of tools for the Linux kernel
@ -159,7 +199,7 @@ Obsoletes: kernel-headers < %{version}
Provides: kernel-headers = %{version}-%{release} Provides: kernel-headers = %{version}-%{release}
Obsoletes: glibc-kernheaders < 3.0-46 Obsoletes: glibc-kernheaders < 3.0-46
Provides: 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 %description kernel%{?ksuffix}-headers
Kernel-headers includes the C header files that specify the interface 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/*.dtb /boot/
cp /usr/share/%{name}-kernel/%{version}-%{release}/boot/overlays/*.dtb* /boot/overlays/ cp /usr/share/%{name}-kernel/%{version}-%{release}/boot/overlays/*.dtb* /boot/overlays/
cp /usr/share/%{name}-kernel/%{version}-%{release}/boot/overlays/README /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 cp /boot/config-kernel-%{version}-%{release}.inc /boot/config-kernel.inc
%postun kernel%{?ksuffix} %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 %files kernel%{?ksuffix}-devel
%defattr(-,root,root) %defattr(-,root,root)
/usr/src/kernels/%{version}-%{release} /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 %endif
%if %{with_tools} %if %{with_tools}
@ -438,6 +489,12 @@ cp $(ls -1 /boot/config-kernel-*-*|sort -V|tail -1) /boot/config-kernel.inc
%endif %endif
%changelog %changelog
* Mon Jan 27 2025 Koichiro Iwao <emta@almalinux.org> - 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 <meta@almalinux.org> - 6.12.1-20241206.v8.1 * Wed Dec 25 2024 Koichiro Iwao <meta@almalinux.org> - 6.12.1-20241206.v8.1
- Update kernel to v6.12.1 rpi-6.12.y_20241206_2 - Update kernel to v6.12.1 rpi-6.12.y_20241206_2
- Update firmware to 1.20241126 - Update firmware to 1.20241126