Build packages for different platforms
authorŁukasz Stelmach <l.stelmach@samsung.com>
Tue, 23 May 2023 10:11:52 +0000 (12:11 +0200)
committerJaehoon Chung <jh80.chung@samsung.com>
Mon, 24 Jul 2023 23:25:04 +0000 (08:25 +0900)
Build separate packages for QEMU and VisionFive2 platforms

Change-Id: I0a44f7065f284bc40cde907238a2591836534251
Signed-off-by: Łukasz Stelmach <l.stelmach@samsung.com>
arch/riscv/configs/tizen_qemu_defconfig [new file with mode: 0644]
arch/riscv/configs/tizen_visionfive2_defconfig [moved from arch/riscv/configs/tizen_vf2_defconfig with 100% similarity]
build.sh
packaging/linux-qemu.spec [new file with mode: 0644]
packaging/linux-riscv.spec.in [new file with mode: 0644]
packaging/linux-visionfive2.spec
packaging/pre_checkin.sh [new file with mode: 0755]

diff --git a/arch/riscv/configs/tizen_qemu_defconfig b/arch/riscv/configs/tizen_qemu_defconfig
new file mode 100644 (file)
index 0000000..3b66a9b
--- /dev/null
@@ -0,0 +1,144 @@
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_NO_HZ_IDLE=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_CGROUPS=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_CFS_BANDWIDTH=y
+CONFIG_CGROUP_BPF=y
+CONFIG_NAMESPACES=y
+CONFIG_USER_NS=y
+CONFIG_CHECKPOINT_RESTORE=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_EXPERT=y
+CONFIG_BPF_SYSCALL=y
+CONFIG_SOC_SIFIVE=y
+CONFIG_SOC_VIRT=y
+CONFIG_SMP=y
+CONFIG_JUMP_LABEL=y
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
+CONFIG_NETLINK_DIAG=y
+CONFIG_NET_9P=y
+CONFIG_NET_9P_VIRTIO=y
+CONFIG_PCI=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_PCI_HOST_GENERIC=y
+CONFIG_PCIE_XILINX=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_VIRTIO_BLK=y
+CONFIG_BLK_DEV_SD=y
+CONFIG_BLK_DEV_SR=y
+CONFIG_SCSI_VIRTIO=y
+CONFIG_ATA=y
+CONFIG_SATA_AHCI=y
+CONFIG_SATA_AHCI_PLATFORM=y
+CONFIG_NETDEVICES=y
+CONFIG_VIRTIO_NET=y
+CONFIG_MACB=y
+CONFIG_E1000E=y
+CONFIG_R8169=y
+CONFIG_MICROSEMI_PHY=y
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_EARLYCON_RISCV_SBI=y
+CONFIG_HVC_RISCV_SBI=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_VIRTIO=y
+CONFIG_SPI=y
+CONFIG_SPI_SIFIVE=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_SIFIVE=y
+# CONFIG_PTP_1588_CLOCK is not set
+CONFIG_POWER_RESET=y
+CONFIG_DRM=y
+CONFIG_DRM_RADEON=y
+CONFIG_DRM_VIRTIO_GPU=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_PLATFORM=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_HCD_PLATFORM=y
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_HCD_PLATFORM=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB_UAS=y
+CONFIG_MMC=y
+CONFIG_MMC_SPI=y
+CONFIG_RTC_CLASS=y
+CONFIG_VIRTIO_PCI=y
+CONFIG_VIRTIO_BALLOON=y
+CONFIG_VIRTIO_INPUT=y
+CONFIG_VIRTIO_MMIO=y
+CONFIG_RPMSG_CHAR=y
+CONFIG_RPMSG_VIRTIO=y
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_AUTOFS4_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_ROOT_NFS=y
+CONFIG_9P_FS=y
+CONFIG_CRYPTO_USER_API_HASH=y
+CONFIG_CRYPTO_DEV_VIRTIO=y
+CONFIG_PRINTK_TIME=y
+CONFIG_DEBUG_FS=y
+CONFIG_DEBUG_PAGEALLOC=y
+CONFIG_SCHED_STACK_END_CHECK=y
+CONFIG_DEBUG_VM=y
+CONFIG_DEBUG_VM_PGFLAGS=y
+CONFIG_DEBUG_MEMORY_INIT=y
+CONFIG_DEBUG_PER_CPU_MAPS=y
+CONFIG_SOFTLOCKUP_DETECTOR=y
+CONFIG_WQ_WATCHDOG=y
+CONFIG_DEBUG_TIMEKEEPING=y
+CONFIG_DEBUG_RT_MUTEXES=y
+CONFIG_DEBUG_SPINLOCK=y
+CONFIG_DEBUG_MUTEXES=y
+CONFIG_DEBUG_RWSEMS=y
+CONFIG_DEBUG_ATOMIC_SLEEP=y
+CONFIG_STACKTRACE=y
+CONFIG_DEBUG_LIST=y
+CONFIG_DEBUG_PLIST=y
+CONFIG_DEBUG_SG=y
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_EQS_DEBUG=y
+CONFIG_DEBUG_BLOCK_EXT_DEVT=y
+CONFIG_FTRACE=y
+# CONFIG_RUNTIME_TESTING_MENU is not set
+CONFIG_MEMTEST=y
+# CONFIG_SYSFS_SYSCALL is not set
+CONFIG_EFI=y
+CONFIG_FPU=y
+CONFIG_SECURITY=y
+CONFIG_SECURITY_SMACK=y
+CONFIG_SECURITY_SMACK_APPEND_SIGNALS=y
+CONFIG_MEMCG=y
+CONFIG_CPUSETS=y
+CONFIG_BLK_DEV_IO_TRACE=y
+CONFIG_BLK_DEV_NBD=m
index 58d6956..f66d4f8 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -60,7 +60,7 @@ rm -f output/*.tar
 CROSS_COMPILER=riscv64-linux-gnu-
 ARCH=riscv
 if ! [ -e .config ] ; then
-       make ARCH=${ARCH} CROSS_COMPILE="$CROSS_COMPILER" tizen_vf2_defconfig
+       make ARCH=${ARCH} CROSS_COMPILE="$CROSS_COMPILER" tizen_visionfive2_defconfig
 fi
 make ARCH=${ARCH} CROSS_COMPILE="$CROSS_COMPILER" -j8
 if [ ! -f "./arch/riscv/boot/Image" ]; then
diff --git a/packaging/linux-qemu.spec b/packaging/linux-qemu.spec
new file mode 100644 (file)
index 0000000..cde1ae4
--- /dev/null
@@ -0,0 +1,195 @@
+%define target_board qemu
+%define board_qemu 1
+
+# Ignore double dash in version for rpmbuild
+%define _wrong_version_format_terminate_build 0
+
+%define config_name tizen_%{target_board}_defconfig
+%define buildarch riscv
+%define variant %{buildarch}-%{target_board}
+
+Name: %{variant}-linux-kernel
+Summary: The Linux Kernel for RISC-V %{target_board}
+Version: 6.1.21
+Release: 0
+License: GPL-2.0
+ExclusiveArch: riscv64
+Group: System/Kernel
+Vendor: The Linux Community
+URL: https://www.kernel.org
+Source0:   %{variant}-linux-kernel-%{version}.tar.xz
+BuildRoot: %{_tmppath}/%{name}-%{PACKAGE_VERSION}-root
+
+%define fullVersion %{version}-%{target_board}
+
+BuildRequires: bc
+BuildRequires: module-init-tools
+BuildRequires: bison
+BuildRequires: flex
+BuildRequires: libopenssl1.1-devel
+BuildRequires: libunwind-devel
+BuildRequires: libdw-devel
+BuildRequires: libelf-devel
+BuildRequires: elfutils
+BuildRequires: xz-devel
+BuildRequires: binutils-devel
+BuildRequires: python3
+BuildRequires: rsync
+
+# 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})
+
+# modules
+
+%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}
+
+# devel
+
+%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.
+
+#headers
+%package -n %{variant}-linux-kernel-headers
+License: GPL-2.0
+Summary: Linux support headers for userspace development
+Group: System/Kernel
+Provides: kernel-headers-tizen-dev
+
+%description -n %{variant}-linux-kernel-headers
+This package provides userspaces headers from the Linux kernel. These
+headers are used by the installed headers for GNU glibc and other system
+ libraries.
+
+%package -n %{variant}-linux-kernel-perf
+Summary: The perf performance counter tool
+Group: System/Kernel
+Provides: perf = %{version}
+
+%description -n %{variant}-linux-kernel-perf
+This package provides the "perf" tool that can be used to monitor performance
+counter events as well as various kernel internal events.
+
+%prep
+%setup -q
+
+%build
+%{?asan:/usr/bin/gcc-unforce-options}
+%{?ubsan:/usr/bin/gcc-unforce-options}
+
+# distinguish binaries for different variants
+echo "-%{variant}" > localversion-tizen
+
+# extract uapi headers
+make headers_install %{?_smp_mflags}
+
+# Set config file
+make %{config_name} %{?_smp_mflags}
+
+# Build perf
+make -s -C tools/lib/traceevent %{?_smp_mflags}
+make -s -C tools/perf EXTRA_CFLAGS="-fPIE -rdynamic" %{?_smp_mflags}
+
+# Build Image/Image.gz
+make %{?_smp_mflags}
+
+# Build modules
+make  modules %{?_smp_mflags}
+
+%install
+QA_SKIP_BUILD_ROOT="DO_NOT_WANT"; export QA_SKIP_BUILD_ROOT
+
+# Destination directories
+mkdir -p %{buildroot}/boot
+mkdir -p %{buildroot}/lib/modules
+
+# Install kernel DTB
+%if 0%{?board_visionfive2}
+install -m 644 arch/%{buildarch}/boot/dts/starfive/jh7110*.dtb %{buildroot}/boot/
+%endif
+mkdir -p %{buildroot}/boot/overlays
+
+# Install kernel headers
+make headers_install %{?_smp_mflags} INSTALL_HDR_PATH=%{buildroot}/usr
+
+install -m 644 arch/%{buildarch}/boot/Image %{buildroot}/boot/Image
+
+# Install perf
+make -s -C tools/perf EXTRA_CFLAGS="-fPIE -rdynamic" DESTDIR=%{buildroot}/usr install
+rm -rf %{buildroot}/usr/etc
+rm -rf %{buildroot}/usr/lib/debug
+rm -rf %{buildroot}/usr/lib/perf
+rm -rf %{buildroot}/usr/share
+
+# Install modules
+make INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=%{buildroot} modules_install
+
+# Copy files for devel package
+mkdir -p %{buildroot}/boot/kernel/devel/kernel-devel-%{variant}
+rsync -r \
+  --include "/scripts/**.c" \
+  --exclude "/debug*.list" \
+  --exclude "/documentation.list" \
+  --exclude "/*.manifest" \
+  --exclude "/packaging/" \
+  --exclude "/.gbs.conf" \
+  --exclude "/.git**" \
+  --exclude ".gitignore" \
+  --exclude "*\.c" \
+  --exclude ".tmp_vmlinux*" \
+  --exclude ".*dtb*tmp" \
+  --exclude ".*dtb" \
+  --exclude "*.*tmp" \
+  --exclude "vmlinux" \
+  --exclude "Image" \
+  --exclude "zImage" \
+  --exclude "Image.gz" \
+  --exclude "*.cmd" \
+  --exclude "*.ko" \
+  --exclude "*.o" \
+  --exclude "*.S" \
+  --exclude "*.HEX" \
+  --exclude "/build/" \
+  ./  %{buildroot}/boot/kernel/devel/kernel-devel-%{variant}
+
+%clean
+rm -rf %{buildroot}
+
+%files -n %{variant}-linux-kernel-modules
+/lib/modules/%{version}-%{variant}
+
+%files -n %{variant}-linux-kernel-devel
+/boot/kernel/devel/
+
+%files -n %{variant}-linux-kernel
+%license COPYING
+/boot/Image
+%if 0%{?board_visionfive2}
+/boot/jh7110*.dtb
+%endif
+
+%files -n %{variant}-linux-kernel-headers
+/usr/include/*
+
+%files -n %{variant}-linux-kernel-perf
+%license COPYING
+/usr/bin/*
+/usr/libexec/*
+/usr/lib/traceevent/*
diff --git a/packaging/linux-riscv.spec.in b/packaging/linux-riscv.spec.in
new file mode 100644 (file)
index 0000000..f505922
--- /dev/null
@@ -0,0 +1,193 @@
+
+# Ignore double dash in version for rpmbuild
+%define _wrong_version_format_terminate_build 0
+
+%define config_name tizen_%{target_board}_defconfig
+%define buildarch riscv
+%define variant %{buildarch}-%{target_board}
+
+Name: %{variant}-linux-kernel
+Summary: The Linux Kernel for RISC-V %{target_board}
+Version: 6.1.21
+Release: 0
+License: GPL-2.0
+ExclusiveArch: riscv64
+Group: System/Kernel
+Vendor: The Linux Community
+URL: https://www.kernel.org
+Source0:   %{variant}-linux-kernel-%{version}.tar.xz
+BuildRoot: %{_tmppath}/%{name}-%{PACKAGE_VERSION}-root
+
+%define fullVersion %{version}-%{target_board}
+
+BuildRequires: bc
+BuildRequires: module-init-tools
+BuildRequires: bison
+BuildRequires: flex
+BuildRequires: libopenssl1.1-devel
+BuildRequires: libunwind-devel
+BuildRequires: libdw-devel
+BuildRequires: libelf-devel
+BuildRequires: elfutils
+BuildRequires: xz-devel
+BuildRequires: binutils-devel
+BuildRequires: python3
+BuildRequires: rsync
+
+# 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})
+
+# modules
+
+%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}
+
+# devel
+
+%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.
+
+#headers
+%package -n %{variant}-linux-kernel-headers
+License: GPL-2.0
+Summary: Linux support headers for userspace development
+Group: System/Kernel
+Provides: kernel-headers-tizen-dev
+
+%description -n %{variant}-linux-kernel-headers
+This package provides userspaces headers from the Linux kernel. These
+headers are used by the installed headers for GNU glibc and other system
+ libraries.
+
+%package -n %{variant}-linux-kernel-perf
+Summary: The perf performance counter tool
+Group: System/Kernel
+Provides: perf = %{version}
+
+%description -n %{variant}-linux-kernel-perf
+This package provides the "perf" tool that can be used to monitor performance
+counter events as well as various kernel internal events.
+
+%prep
+%setup -q
+
+%build
+%{?asan:/usr/bin/gcc-unforce-options}
+%{?ubsan:/usr/bin/gcc-unforce-options}
+
+# distinguish binaries for different variants
+echo "-%{variant}" > localversion-tizen
+
+# extract uapi headers
+make headers_install %{?_smp_mflags}
+
+# Set config file
+make %{config_name} %{?_smp_mflags}
+
+# Build perf
+make -s -C tools/lib/traceevent %{?_smp_mflags}
+make -s -C tools/perf EXTRA_CFLAGS="-fPIE -rdynamic" %{?_smp_mflags}
+
+# Build Image/Image.gz
+make %{?_smp_mflags}
+
+# Build modules
+make  modules %{?_smp_mflags}
+
+%install
+QA_SKIP_BUILD_ROOT="DO_NOT_WANT"; export QA_SKIP_BUILD_ROOT
+
+# Destination directories
+mkdir -p %{buildroot}/boot
+mkdir -p %{buildroot}/lib/modules
+
+# Install kernel DTB
+%if 0%{?board_visionfive2}
+install -m 644 arch/%{buildarch}/boot/dts/starfive/jh7110*.dtb %{buildroot}/boot/
+%endif
+mkdir -p %{buildroot}/boot/overlays
+
+# Install kernel headers
+make headers_install %{?_smp_mflags} INSTALL_HDR_PATH=%{buildroot}/usr
+
+install -m 644 arch/%{buildarch}/boot/Image %{buildroot}/boot/Image
+
+# Install perf
+make -s -C tools/perf EXTRA_CFLAGS="-fPIE -rdynamic" DESTDIR=%{buildroot}/usr install
+rm -rf %{buildroot}/usr/etc
+rm -rf %{buildroot}/usr/lib/debug
+rm -rf %{buildroot}/usr/lib/perf
+rm -rf %{buildroot}/usr/share
+
+# Install modules
+make INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=%{buildroot} modules_install
+
+# Copy files for devel package
+mkdir -p %{buildroot}/boot/kernel/devel/kernel-devel-%{variant}
+rsync -r \
+  --include "/scripts/**.c" \
+  --exclude "/debug*.list" \
+  --exclude "/documentation.list" \
+  --exclude "/*.manifest" \
+  --exclude "/packaging/" \
+  --exclude "/.gbs.conf" \
+  --exclude "/.git**" \
+  --exclude ".gitignore" \
+  --exclude "*\.c" \
+  --exclude ".tmp_vmlinux*" \
+  --exclude ".*dtb*tmp" \
+  --exclude ".*dtb" \
+  --exclude "*.*tmp" \
+  --exclude "vmlinux" \
+  --exclude "Image" \
+  --exclude "zImage" \
+  --exclude "Image.gz" \
+  --exclude "*.cmd" \
+  --exclude "*.ko" \
+  --exclude "*.o" \
+  --exclude "*.S" \
+  --exclude "*.HEX" \
+  --exclude "/build/" \
+  ./  %{buildroot}/boot/kernel/devel/kernel-devel-%{variant}
+
+%clean
+rm -rf %{buildroot}
+
+%files -n %{variant}-linux-kernel-modules
+/lib/modules/%{version}-%{variant}
+
+%files -n %{variant}-linux-kernel-devel
+/boot/kernel/devel/
+
+%files -n %{variant}-linux-kernel
+%license COPYING
+/boot/Image
+%if 0%{?board_visionfive2}
+/boot/jh7110*.dtb
+%endif
+
+%files -n %{variant}-linux-kernel-headers
+/usr/include/*
+
+%files -n %{variant}-linux-kernel-perf
+%license COPYING
+/usr/bin/*
+/usr/libexec/*
+/usr/lib/traceevent/*
index cf4c071..350c716 100644 (file)
@@ -1,24 +1,26 @@
+%define target_board visionfive2
+%define board_visionfive2 1
+
 # Ignore double dash in version for rpmbuild
 %define _wrong_version_format_terminate_build 0
 
-%define config_name tizen_vf2_defconfig
+%define config_name tizen_%{target_board}_defconfig
 %define buildarch riscv
-%define target_board visionfive2
 %define variant %{buildarch}-%{target_board}
 
-Name: visionfive2-linux-kernel
-Summary: The Linux Kernel for VisionFive2 Board
-Version: 6.1.29
+Name: %{variant}-linux-kernel
+Summary: The Linux Kernel for RISC-V %{target_board}
+Version: 6.1.32
 Release: 0
 License: GPL-2.0
 ExclusiveArch: riscv64
 Group: System/Kernel
 Vendor: The Linux Community
 URL: https://www.kernel.org
-Source0:   linux-kernel-%{version}.tar.xz
+Source0:   %{variant}-linux-kernel-%{version}.tar.xz
 BuildRoot: %{_tmppath}/%{name}-%{PACKAGE_VERSION}-root
 
-%define fullVersion %{version}-%{variant}
+%define fullVersion %{version}-%{target_board}
 
 BuildRequires: bc
 BuildRequires: module-init-tools
@@ -34,14 +36,7 @@ BuildRequires: binutils-devel
 BuildRequires: python3
 BuildRequires: rsync
 
-%description
-The Linux Kernel, the operating system core itself
-
 # kernel
-%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}
 
@@ -83,12 +78,12 @@ This package provides userspaces headers from the Linux kernel. These
 headers are used by the installed headers for GNU glibc and other system
  libraries.
 
-%package -n linux-kernel-perf
+%package -n %{variant}-linux-kernel-perf
 Summary: The perf performance counter tool
 Group: System/Kernel
 Provides: perf = %{version}
 
-%description -n linux-kernel-perf
+%description -n %{variant}-linux-kernel-perf
 This package provides the "perf" tool that can be used to monitor performance
 counter events as well as various kernel internal events.
 
@@ -99,6 +94,9 @@ counter events as well as various kernel internal events.
 %{?asan:/usr/bin/gcc-unforce-options}
 %{?ubsan:/usr/bin/gcc-unforce-options}
 
+# distinguish binaries for different variants
+echo "-%{variant}" > localversion-tizen
+
 # extract uapi headers
 make headers_install %{?_smp_mflags}
 
@@ -123,7 +121,9 @@ mkdir -p %{buildroot}/boot
 mkdir -p %{buildroot}/lib/modules
 
 # Install kernel DTB
+%if 0%{?board_visionfive2}
 install -m 644 arch/%{buildarch}/boot/dts/starfive/jh7110*.dtb %{buildroot}/boot/
+%endif
 mkdir -p %{buildroot}/boot/overlays
 
 # Install kernel headers
@@ -173,7 +173,7 @@ rsync -r \
 rm -rf %{buildroot}
 
 %files -n %{variant}-linux-kernel-modules
-/lib/modules/%{version}
+/lib/modules/%{version}-%{variant}
 
 %files -n %{variant}-linux-kernel-devel
 /boot/kernel/devel/
@@ -181,12 +181,14 @@ rm -rf %{buildroot}
 %files -n %{variant}-linux-kernel
 %license COPYING
 /boot/Image
+%if 0%{?board_visionfive2}
 /boot/jh7110*.dtb
+%endif
 
 %files -n %{variant}-linux-kernel-headers
 /usr/include/*
 
-%files -n linux-kernel-perf
+%files -n %{variant}-linux-kernel-perf
 %license COPYING
 /usr/bin/*
 /usr/libexec/*
diff --git a/packaging/pre_checkin.sh b/packaging/pre_checkin.sh
new file mode 100755 (executable)
index 0000000..e3e7790
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+cd $(dirname $0)
+for target_board in visionfive2 qemu; do
+       echo %define target_board ${target_board} > linux-${target_board}.spec
+       echo %define board_${target_board} 1 >> linux-${target_board}.spec
+       cat linux-riscv.spec.in >> linux-${target_board}.spec
+done