source ${LBUILD_DIR}/lbuild-rhel # increment this if you have made a change that should force a new kernel # to build built BUILD_GEN+=".0" SPEC_NAME="kernel.spec" DEVEL_PATH_ARCH_DELIMETER="." USE_KABI=false # force local definition of %dist into ~/.rpmmacros # to avoid verbose extended strings like ".el9.centos" # in kernel version and rpm names # RMAC=$HOME/.rpmmacros grep '^%dist' $RMAC &> /dev/null || echo '%dist .el9' >> $RMAC patch_spec_rhel9() { sed -i -e '/Provides: kernel-uname-r =/a\ Provides: kernel-lustre = %{KVRA}%{?1:.%{1}}\\' \ -e '/Provides: kernel-devel-uname-r =/a\ Provides: kernel-devel-lustre = %{KVRA}%{?1:.%{1}}\\' \ -e '/^ find $RPM_BUILD_ROOT\/lib\/modules\/$KernelVer/a\ cp -a fs/ext4/* $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/fs/ext4\ rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/fs/ext4/ext4-inode-test*' \ SPECS/$SPEC_NAME 2>&1 || fatal 1 "Error while editing SPECS/$SPEC_NAME" } patch_spec() { local buildid="$1" # the el9 .spec file requires patch names to begin with "patch-3." # so rename the lustre patch from lbuild to one the .spec will like mv $TOPDIR/SOURCES/linux-${lnxmaj}-lustre.patch \ $TOPDIR/SOURCES/patch-${lnxmaj}-lustre.patch # edit the SPEC with our changes patch_spec_rhel9 "$buildid" sed -i -e '/^# empty final patch to facilitate testing of kernel patches/i\ # adds Lustre patches\ Patch99995: patch-%{version}-lustre.patch' \ -e '/^ApplyOptionalPatch linux-kernel-test.patch/i\ \ # lustre patch\ ApplyOptionalPatch patch-%{version}-lustre.patch\ ' \ -e '/^# Dynamically generate kernel/a echo "CONFIG_BH_LRU_SIZE=16" >> config-generic'\ SPECS/$SPEC_NAME 2>&1 || fatal 1 "Error while editing SPECS/$SPEC_NAME" } unpack_linux_devel_rpm-rhel9() { local callers_rpm="$1" unpack_linux_devel_rpm-rhel "$callers_rpm" } get_rpmbuildopts() { if $KERNEL_LUSTRE_NAMING; then echo -e "--define \"variant -lustre\" \c" fi echo "--with firmware --without debug" } find_linux_rpm-rhel9() { local prefix="$1" local wanted_kernel="$2" local pathtorpms=${3:-"$KERNELRPMSBASE/$lnxmaj/$DISTROMAJ/$TARGET_ARCH"} find_linux_rpm-rhel "$prefix" "$wanted_kernel" "$pathtorpms" } kernel_srpm_location() { local base_os="http://mirror.stream.centos.org/9-stream/BaseOS" echo "$base_os/source/tree/Packages/" } kernel_debuginfo_location() { local base_os="http://mirror.stream.centos.org/9-stream/BaseOS" echo "$base_os/$TARGET_ARCH/debug/tree/Packages/" } apply_kmod_requires_conflicts() { if $PATCHLESS; then # don't allow the patched kernel to be considered as # a valid kernel for the patchless client echo "Conflicts: kernel-lustre" >> rpm/kmp-lustre.preamble fi }