packaging: Add spec file for rpi4
authorHoegeun Kwon <hoegeun.kwon@samsung.com>
Thu, 29 Aug 2019 07:59:28 +0000 (16:59 +0900)
committerHoegeun Kwon <hoegeun.kwon@samsung.com>
Mon, 7 Feb 2022 07:09:31 +0000 (16:09 +0900)
This adds linux-rpi4.spec file for armv7l rpm packaging.

Change-Id: Ic9aef54edc5f1c718ba2c301e70a4d9ee79af35d
Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
packaging/linux-rpi4.spec [new file with mode: 0644]

diff --git a/packaging/linux-rpi4.spec b/packaging/linux-rpi4.spec
new file mode 100644 (file)
index 0000000..dc51522
--- /dev/null
@@ -0,0 +1,147 @@
+# Ignore double dash in version for rpmbuild
+%define _wrong_version_format_terminate_build 0
+
+%define config_name tizen_bcm2711_defconfig
+%define buildarch arm
+%define target_board rpi4
+%define variant %{buildarch}-%{target_board}
+
+Name: rpi4-linux-kernel
+Summary: The Linux Kernel for Raspberry Pi4
+Version: 4.19.65
+Release: 0
+License: GPL-2.0
+ExclusiveArch: %{arm}
+Group: System/Kernel
+Vendor: The Linux Community
+URL: https://www.kernel.org
+Source0:   linux-kernel-%{version}.tar.xz
+BuildRoot: %{_tmppath}/%{name}-%{PACKAGE_VERSION}-root
+
+%define fullVersion %{version}-%{variant}
+
+BuildRequires: bc
+BuildRequires: module-init-tools
+#BuildRequires: u-boot-tools >= 2016.03
+BuildRequires: bison
+BuildRequires: flex
+BuildRequires: libopenssl1.1-devel
+
+%description
+The Linux Kernel, the operating system core itself
+
+%package -n %{variant}-linux-kernel
+License: GPL-2.0
+Summary: Tizen kernel for %{target_board}
+Group: System/Kernel
+Provides: %{variant}-kernel-uname-r = %{fullVersion}
+Provides: linux-kernel = %{version}-%{release}
+
+%description -n %{variant}-linux-kernel
+This package contains the Linux kernel for Tizen (arch %{buildarch}, target board %{target_board})
+
+%package -n %{variant}-linux-kernel-modules
+Summary: Kernel modules for %{target_board}
+Group: System/Kernel
+Provides: %{variant}-kernel-modules = %{fullVersion}
+Provides: %{variant}-kernel-modules-uname-r = %{fullVersion}
+
+%description -n %{variant}-linux-kernel-modules
+Kernel-modules includes the loadable kernel modules(.ko files) for %{target_board}
+
+%package -n %{variant}-linux-kernel-devel
+License: GPL-2.0
+Summary: Linux support kernel map and etc for other packages
+Group: System/Kernel
+Provides: %{variant}-kernel-devel = %{fullVersion}
+Provides: %{variant}-kernel-devel-uname-r = %{fullVersion}
+
+%description -n %{variant}-linux-kernel-devel
+This package provides kernel map and etc information.
+
+%prep
+%setup -q -n linux-kernel-%{version}
+
+%build
+%{?asan:/usr/bin/gcc-unforce-options}
+%{?ubsan:/usr/bin/gcc-unforce-options}
+
+# Make sure EXTRAVERSION says what we want it to say
+sed -i "s/^EXTRAVERSION.*/EXTRAVERSION = -%{variant}/" Makefile
+
+# 1-1. Set config file
+make %{config_name}
+
+# 1-2. Build Image/Image.gz
+make %{?_smp_mflags}
+
+# 1-3. Build dtbs
+make dtbs %{?_smp_mflags}
+
+# 1-4. Build modules
+make modules %{?_smp_mflags}
+
+%install
+QA_SKIP_BUILD_ROOT="DO_NOT_WANT"; export QA_SKIP_BUILD_ROOT
+
+# 2-1. Destination directories
+mkdir -p %{buildroot}/boot
+mkdir -p %{buildroot}/lib/modules
+
+# 2-2. Install kernel binary and DTB
+install -m 644 arch/%{buildarch}/boot/zImage %{buildroot}/boot/
+install -m 644 arch/%{buildarch}/boot/dts/bcm*.dtb %{buildroot}/boot/
+
+# 2-3. Install modules
+make INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=%{buildroot} modules_install
+
+# 2-4. Install boot binary files
+install -m 644 rpi4/boot/config.txt %{buildroot}/boot/
+install -m 644 rpi4/boot/LICENCE.broadcom %{buildroot}/boot/
+install -m 644 rpi4/boot/bootcode.bin %{buildroot}/boot/
+install -m 644 rpi4/boot/start*.elf %{buildroot}/boot/
+install -m 644 rpi4/boot/fixup*.dat %{buildroot}/boot/
+
+# 3-1. remove unnecessary files to prepare for devel package
+find %{_builddir}/linux-kernel-%{version} -name ".tmp_vmlinux*" -delete
+find %{_builddir}/linux-kernel-%{version} -name ".gitignore" -delete
+find %{_builddir}/linux-kernel-%{version} -name "\.*dtb*tmp" -delete
+find %{_builddir}/linux-kernel-%{version} -name "\.*dtb" -delete
+find %{_builddir}/linux-kernel-%{version} -name "*\.*tmp" -delete
+find %{_builddir}/linux-kernel-%{version} -name "vmlinux" -delete
+find %{_builddir}/linux-kernel-%{version} -name "Image" -delete
+find %{_builddir}/linux-kernel-%{version} -name "zImage" -delete
+find %{_builddir}/linux-kernel-%{version} -name "Image.gz" -delete
+find %{_builddir}/linux-kernel-%{version} -name "*.cmd" -delete
+find %{_builddir}/linux-kernel-%{version} -name "*\.ko" -delete
+find %{_builddir}/linux-kernel-%{version} -name "*\.o" -delete
+find %{_builddir}/linux-kernel-%{version} -name "*\.S" -delete
+find %{_builddir}/linux-kernel-%{version} -name "*\.HEX" -type f -delete
+find %{_builddir}/linux-kernel-%{version} -name "*\.c" -not -path "%{_builddir}/linux-kernel-%{version}/scripts/*" -delete
+
+# 3-2. move files for devel package
+cp -r  %{_builddir}/linux-kernel-%{version}/ %{_builddir}/kernel-devel-%{variant}/
+
+# 4. Move files for each package
+mkdir -p %{buildroot}/boot/kernel/devel
+mv %{_builddir}/kernel-devel-%{variant} %{buildroot}/boot/kernel/devel/
+
+
+%clean
+rm -rf %{buildroot}
+
+%files -n %{variant}-linux-kernel-modules
+/lib/modules/*
+
+%files -n %{variant}-linux-kernel-devel
+/boot/kernel/devel/*
+
+%files -n %{variant}-linux-kernel
+%license COPYING
+/boot/zImage
+/boot/bcm*.dtb
+/boot/config.txt
+/boot/LICENCE.broadcom
+/boot/bootcode.bin
+/boot/start*.elf
+/boot/fixup*.dat