Merge pull request 'Sync with a10, reintroduce initramfs' (#25) from metalefty/raspberrypi:a9-initramfs into a9

Reviewed-on: rpms/raspberrypi2#25
This commit is contained in:
Andrew Lukoshko 2025-06-30 12:03:16 +00:00
commit 33a18106a9

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.
@ -21,6 +21,12 @@ ExclusiveArch: aarch64
%define kversion 6.12 %define kversion 6.12
%define patchlevel 25 %define patchlevel 25
%if 0%{?rhel} >= 10
%define pathfix %{__python3} %{_rpmconfigdir}/redhat/pathfix.py
%else
%define pathfix pathfix.py
%endif
# standard kernel # standard kernel
%define with_up %{?_without_up: 0} %{?!_without_up: 1} %define with_up %{?_without_up: 0} %{?!_without_up: 1}
# tools # tools
@ -35,9 +41,9 @@ Version: %{kversion}.%{patchlevel}
Release: %{version_tag}.%{local_version}.%{extra_version}%{?dist} Release: %{version_tag}.%{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/refs/tags/stable_%{version_tag}.tar.gz Source0: https://github.com/raspberrypi/linux/archive/stable_%{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
Patch100: config_2711.patch Patch100: config_2711.patch
Patch101: config_2712.patch Patch101: config_2712.patch
@ -69,9 +75,10 @@ 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
@ -88,11 +95,54 @@ 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.
%if 0%{?rhel} >= 10
%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.
%endif
%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
@ -152,7 +202,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
@ -164,8 +214,8 @@ glibc package.
%prep %prep
%setup -q -n linux-stable_%{version_tag} %setup -q -n linux-stable_%{version_tag}
%patch100 -p1 %patch -P 100 -p1
%patch101 -p1 %patch -P 101 -p1
perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{release}/" Makefile perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{release}/" Makefile
perl -p -i -e "s/^CONFIG_LOCALVERSION=.*/CONFIG_LOCALVERSION=/" arch/%{Arch}/configs/bcm2711_defconfig perl -p -i -e "s/^CONFIG_LOCALVERSION=.*/CONFIG_LOCALVERSION=/" arch/%{Arch}/configs/bcm2711_defconfig
perl -p -i -e "s/^CONFIG_LOCALVERSION=.*/CONFIG_LOCALVERSION=/" arch/%{Arch}/configs/bcm2712_defconfig perl -p -i -e "s/^CONFIG_LOCALVERSION=.*/CONFIG_LOCALVERSION=/" arch/%{Arch}/configs/bcm2712_defconfig
@ -176,9 +226,9 @@ perl -p -i -e "s/^CONFIG_LOCALVERSION=.*/CONFIG_LOCALVERSION=/" arch/%{Arch}/con
# -p preserves timestamps # -p preserves timestamps
# -n prevents creating ~backup files # -n prevents creating ~backup files
# -i specifies the interpreter for the shebang # -i specifies the interpreter for the shebang
pathfix.py -pni "%{__python3} %{py3_shbang_opts}" scripts/ %{pathfix} -pni "%{__python3} %{py3_shbang_opts}" scripts/
pathfix.py -pni "%{__python3} %{py3_shbang_opts}" scripts/diffconfig scripts/bloat-o-meter scripts/show_delta scripts/jobserver-exec %{pathfix} -pni "%{__python3} %{py3_shbang_opts}" scripts/diffconfig scripts/bloat-o-meter scripts/show_delta scripts/jobserver-exec
pathfix.py -pni "%{__python3} %{py3_shbang_opts}" tools/ tools/perf/scripts/python/*.py tools/kvm/kvm_stat/kvm_stat scripts/clang-tools/*.py %{pathfix} -pni "%{__python3} %{py3_shbang_opts}" tools/ tools/perf/scripts/python/*.py tools/kvm/kvm_stat/kvm_stat scripts/clang-tools/*.py
%endif %endif
%build %build
@ -376,13 +426,19 @@ if [ -d /boot ]; then
cp /usr/share/%{name}-kernel%{?ksuffix}/%{version}-%{release}/boot/overlays/*.dtb* /boot/overlays/ cp /usr/share/%{name}-kernel%{?ksuffix}/%{version}-%{release}/boot/overlays/*.dtb* /boot/overlays/
cp /usr/share/%{name}-kernel%{?ksuffix}/%{version}-%{release}/boot/overlays/README /boot/overlays/ cp /usr/share/%{name}-kernel%{?ksuffix}/%{version}-%{release}/boot/overlays/README /boot/overlays/
cp /boot/config-kernel-%{version}-%{release}.inc /boot/config-kernel.inc cp /boot/config-kernel-%{version}-%{release}.inc /boot/config-kernel.inc
/usr/bin/dracut --no-hostonly /boot/initramfs-%{version}-%{release}.img %{version}-%{release}
cp /boot/initramfs-%{version}-%{release}.img /boot/initramfs%{armtarget}
fi fi
%postun kernel%{?ksuffix} %postun kernel%{?ksuffix}
if [ -f /boot/kernel%{armtarget}.img ];then if [ -f /boot/kernel%{armtarget}.img ]; then
#only restore kernel%{armtarget}.img if it exists, we may have moved to initramfs #only restore kernel%{armtarget}.img if it exists, we may have moved to initramfs
cp $(ls -1 /boot/kernel-*-*|sort -V|tail -1) /boot/kernel%{armtarget}.img cp $(ls -1 /boot/kernel-*-*|sort -V|tail -1) /boot/kernel%{armtarget}.img
fi fi
if [ -f /boot/initramfs%{armtarget} ]; then
cp $(ls -1 /boot/initramfs-*-*|sort -V| tail -1) /boot/initramfs%{armtarget}
fi
cp $(ls -1d /usr/share/%{name}-kernel%{?ksuffix}/*-*/|sort -V|tail -1)/boot/*.dtb /boot/ cp $(ls -1d /usr/share/%{name}-kernel%{?ksuffix}/*-*/|sort -V|tail -1)/boot/*.dtb /boot/
cp $(ls -1d /usr/share/%{name}-kernel%{?ksuffix}/*-*/|sort -V|tail -1)/boot/overlays/*.dtb* /boot/overlays/ cp $(ls -1d /usr/share/%{name}-kernel%{?ksuffix}/*-*/|sort -V|tail -1)/boot/overlays/*.dtb* /boot/overlays/
cp $(ls -1d /usr/share/%{name}-kernel%{?ksuffix}/*-*/|sort -V|tail -1)/boot/overlays/README /boot/overlays/ cp $(ls -1d /usr/share/%{name}-kernel%{?ksuffix}/*-*/|sort -V|tail -1)/boot/overlays/README /boot/overlays/
@ -392,6 +448,20 @@ 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}
%if 0%{?rhel} >= 10
%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 %endif
%if %{with_tools} %if %{with_tools}
@ -445,22 +515,38 @@ cp $(ls -1 /boot/config-kernel-*-*|sort -V|tail -1) /boot/config-kernel.inc
%endif %endif
%changelog %changelog
* Mon Jun 23 2025 Koichiro Iwao <meta@almalinux.org> - 6.12.25-20250428.v8.2
- Reintroduce initramfs for XFS / LUKS
https://github.com/AlmaLinux/raspberry-pi/issues/65
https://github.com/AlmaLinux/raspberry-pi/issues/86
* Mon May 26 2025 Koichiro Iwao <meta@almalinux.org> - 6.12.25-20250428.v8.1 * Mon May 26 2025 Koichiro Iwao <meta@almalinux.org> - 6.12.25-20250428.v8.1
- Update kernel to 6.12.25 stable_20250428 - Update kernel to v6.12.25 stable_20250428
- Update firmware to 1.20250430 - Update firmware to 1.20250430
- Regenerate patches - Regenerate patches
- Apply the consistent directory under /usr/share (fix missed cases)
* Mon Apr 14 2025 Koichiro Iwao <meta@almalinux.org> - 6.6.74-20250127.v8.2
- Fixes to enable bootc
- Enable EROFS
- Use the consistent directory under /usr/share with the package name - Use the consistent directory under /usr/share with the package name
- Enable EROFS bootc container (contributed by Kevin Fox)
- Fixes to enable bootc (contributed by Kevin Fox)
* Thu Feb 20 2025 Koichiro Iwao <meta@almalinux.org> - 6.6.74-20250127.v8.1 * Mon Jan 27 2025 Koichiro Iwao <emta@almalinux.org> - 6.12.1-20241206.v8.2
- Update kernel to v6.6.74 stable_20250127 - Add pseudo subpackages for kernel modules to resolve dependency issue
- Update firmware to 1.20250127 - 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) - 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
- Update kernel to v6.12.1 rpi-6.12.y_20241206_2
- Update firmware to 1.20241126
* Tue Nov 12 2024 Koichiro Iwao <meta@almalinux.org> - 6.12.0-20241111.v8.1
- Update kernel to v6.12.0-rc7 20241110 bf70ebd2
* Tue Nov 12 2024 Koichiro Iwao <meta@almalinux.org> - 6.11.7-20241110.v8.1
- Update kernel to v6.11.7 20241110 efda653d
* Fri Nov 08 2024 Koichiro Iwao <meta@almalinux.org> - 6.6.51-20241008.v8.2
- Fix build for AL10 Kitten
* Mon Oct 21 2024 Koichiro Iwao <meta@almalinux.org> - 6.6.51-20241008.v8.1 * Mon Oct 21 2024 Koichiro Iwao <meta@almalinux.org> - 6.6.51-20241008.v8.1
- Update kernel to version v6.6.51 stable_20241008 - Update kernel to version v6.6.51 stable_20241008
- Update firmware to 1.20241008 - Update firmware to 1.20241008