fedora-zen-custom/SPECS/linux-zen.spec

96 lines
2.4 KiB
RPMSpec
Raw Normal View History

2024-01-27 22:44:24 -05:00
%global debug_package %{nil}
2024-01-27 22:59:53 -05:00
%global zen zen1
2024-01-27 22:44:24 -05:00
Name: linux-zen
Version: 6.7.2
Release: 1%{?dist}
Summary: Linux kernel and modules with Zen patches
License: GPL-2.0-only
URL: http://www.zen-kernel.org/
2024-01-27 22:59:53 -05:00
Source0: v%{version}-%{zen}.tar.gz
2024-01-27 22:44:24 -05:00
Patch0: 0000-NTPatch.patch
Patch1: 0001-NTPatch.patch
Patch2: 0002-NTPatch.patch
Patch3: 0003-NTPatch.patch
Patch4: 0004-NTPatch.patch
Patch5: 0005-NTPatch.patch
Patch6: 0006-NTPatch.patch
Patch7: 0007-NTPatch.patch
Patch8: 0008-NTPatch.patch
BuildRequires: gcc, make, flex, bison, ncurses-devel, elfutils-libelf-devel, openssl-devel
%description
Linux kernel and modules with Zen patches (%{version} series) compiled with Clang.
%prep
2024-01-27 22:59:53 -05:00
%setup -q -n zen-kernel-%{version}-%{zen}
2024-01-27 22:44:24 -05:00
cp %{_sourcedir}/.config .config
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%build
# Set environment variables for Clang and LLVM tools
export CC=clang
export CXX=clang++
export LD=ld.lld
export AR=llvm-ar
export NM=llvm-nm
export STRIP=llvm-strip
export OBJCOPY=llvm-objcopy
export OBJDUMP=llvm-objdump
export HOSTCC=clang
export HOSTCXX=clang++
export HOSTLD=ld.lld
export HOSTAR=llvm-ar
export HOSTNM=llvm-nm
export HOSTSTRIP=llvm-strip
export HOSTOBJCOPY=llvm-objcopy
export HOSTOBJDUMP=llvm-objdump
# Adjust CFLAGS and LDFLAGS to remove unsupported and unused arguments when using Clang
%if "%{__cc}" == "clang"
export CFLAGS=$(echo %{optflags} | sed 's/-ffat-lto-objects//')
export CXXFLAGS=$(echo %{optflags} | sed 's/-ffat-lto-objects//')
export LDFLAGS=$(echo %{__global_ldflags} | sed 's/-specs=\/usr\/lib\/rpm\/redhat\/redhat-hardened-ld//')
%else
export CFLAGS="%{optflags}"
export CXXFLAGS="%{optflags}"
export LDFLAGS="%{__global_ldflags}"
%endif
make LLVM=1 %{?_smp_mflags}
%install
make modules_install INSTALL_MOD_PATH=%{buildroot}
# Define the path for vmlinuz file
VMLINUX_PATH=%{buildroot}/boot
# Create the boot directory
mkdir -p $VMLINUX_PATH
# Navigate to the directory where vmlinux is located
2024-01-27 22:59:53 -05:00
cd %{_builddir}/zen-kernel-%{version}-%{zen}
2024-01-27 22:44:24 -05:00
# Compress vmlinux and move it to the vmlinuz path
2024-01-28 01:41:21 -05:00
gzip -c vmlinux > $VMLINUX_PATH/vmlinuz-%{version}-%{zen}.fc39.x86_64
2024-01-27 22:44:24 -05:00
2024-01-28 13:11:53 -05:00
cp %{_sourcedir}/.config $VMLINUX_PATH/config-%{version}-%{zen}.fc39.x86_64
2024-01-27 22:44:24 -05:00
%files
2024-01-27 22:59:53 -05:00
/boot/vmlinuz-%{version}-%{zen}
2024-01-27 22:44:24 -05:00
/lib/modules/*
%changelog
* Fri Jan 27 2024 Wizzard <rich@bandaholics.cash>
- Initial package version