%define with_signmodules 1 %define with_kabichk 1 %define modsign_cmd %{SOURCE10} %global Arch $(echo %{_host_cpu} | sed -e s/i.86/x86/ -e s/x86_64/x86/ -e s/aarch64.*/arm64/) %global TarballVer 4.19.13 %global KernelVer %{version}-%{release}.%{_target_cpu} %global hulkrelease vhulk1907.1.0 %define with_patch 0 %define debuginfodir /usr/lib/debug %define with_debuginfo 1 %define with_source 1 Name: kernel Version: 4.19.90 Release: %{hulkrelease}.0018 Summary: Linux Kernel License: GPLv2 URL: http://www.kernel.org/ %if 0%{?with_patch} Source0: linux-%{TarballVer}.tar.gz %else Source0: linux-%{version}.tar.gz %endif Source1: Makefile.common Source10: sign-modules Source11: x509.genkey Source12: extra_certificates Source15: merge.pl %if 0%{?with_kabichk} Source18: check-kabi Source20: Module.kabi_aarch64 %endif Source30: Makefile.config Source50: config-debug Source51: config-nodebug Source52: config-arm64 Source53: config-generic Source55: config-local Source59: config-arm-generic Source200: mkgrub-menu-aarch64.sh Source2000: cpupower.service Source2001: cpupower.config %if 0%{?with_patch} Source9000: apply-patches Source9001: guards Source9002: series.conf Source9998: patches.tar.bz2 %endif #BuildRequires: BuildRequires: module-init-tools, patch >= 2.5.4, bash >= 2.03, tar BuildRequires: bzip2, xz, findutils, gzip, m4, perl, make >= 3.78, diffutils, gawk BuildRequires: gcc >= 3.4.2, binutils >= 2.12 BuildRequires: hostname, net-tools, bc BuildRequires: xmlto, asciidoc BuildRequires: openssl-devel BuildRequires: hmaccalc BuildRequires: ncurses-devel #BuildRequires: pesign >= 0.109-4 BuildRequires: elfutils-libelf-devel #BuildRequires: sparse >= 0.4.1 BuildRequires: elfutils-devel zlib-devel binutils-devel newt-devel python-devel perl(ExtUtils::Embed) bison BuildRequires: audit-libs-devel BuildRequires: pciutils-devel gettext BuildRequires: rpm-build, elfutils BuildRequires: numactl-devel python3-devel glibc-static python3-docutils BuildRequires: perl-generators perl(Carp) libunwind-devel gtk2-devel libbabeltrace-devel java-1.8.0-openjdk AutoReq: no AutoProv: yes Conflicts: device-mapper-libs < 1.02.63-2 e2fsprogs < 1.37-4 initscripts < 7.23 iptables < 1.3.2-1 Conflicts: ipw2200-firmware < 2.4 isdn4k-utils < 3.2-32 iwl4965-firmware < 228.57.2 jfsutils < 1.1.7-2 Conflicts: mdadm < 3.2.1-5 nfs-utils < 1.0.7-12 oprofile < 0.9.1-2 ppp < 2.4.3-3 procps < 3.2.5-6.3 Conflicts: reiserfs-utils < 3.6.19-2 selinux-policy-targeted < 1.25.3-14 squashfs-tools < 4.0 Conflicts: udev < 063-6 util-linux < 2.12 wireless-tools < 29-3 xfsprogs < 2.6.13-4 Provides: kernel-aarch64 = %{version}-%{release} kernel-drm = 4.3.0 kernel-drm-nouveau = 16 kernel-modeset = 1 Provides: kernel-uname-r = %{KernelVer} kernel=%{KernelVer} Requires: dracut >= 001-7 grubby >= 8.28-2 initscripts >= 8.11.1-1 linux-firmware >= 20100806-2 module-init-tools >= 3.16-2 ExclusiveArch: noarch aarch64 i686 x86_64 ExclusiveOS: Linux %description The Linux Kernel, the operating system core itself. %package devel Summary: Development package for building kernel modules to match the %{KernelVer} kernel AutoReqProv: no Provides: %{name}-headers Obsoletes: %{name}-headers Provides: glibc-kernheaders Provides: kernel-devel-uname-r = %{KernelVer} Provides: kernel-devel-aarch64 = %{version}-%{release} Requires: perl findutils %description devel This package provides kernel headers and makefiles sufficient to build modules against the %{KernelVer} kernel package. %package tools Summary: Assortment of tools for the Linux kernel Provides: %{name}-tools-libs Obsoletes: %{name}-tools-libs Provides: cpufreq-utils = 1:009-0.6.p1 Provides: cpufrequtils = 1:009-0.6.p1 Obsoletes: cpufreq-utils < 1:009-0.6.p1 Obsoletes: cpufrequtils < 1:009-0.6.p1 Obsoletes: cpuspeed < 1:1.5-16 %description tools This package contains the tools/ directory from the kernel source and the supporting documentation. %package tools-devel Summary: Assortment of tools for the Linux kernel Requires: kernel-tools = %{version}-%{release} Requires: kernel-tools-libs = %{version}-%{release} Provides: kernel-tools-libs-devel = %{version}-%{release} Obsoletes: kernel-tools-libs-devel %description tools-devel This package contains the development files for the tools/ directory from the kernel source. %package -n perf Summary: Performance monitoring for the Linux kernel %description -n perf This package contains the perf tool, which enables performance monitoring of the Linux kernel. %package -n python2-perf Provides: python-perf = %{version}-%{release} Obsoletes: python-perf Summary: Python bindings for apps which will manipulate perf events %description -n python2-perf A Python module that permits applications written in the Python programming language to use the interface to manipulate perf events. %package -n python3-perf Summary: Python bindings for apps which will manipulate perf events %description -n python3-perf A Python module that permits applications written in the Python programming language to use the interface to manipulate perf events. %package -n bpftool Summary: Inspection and simple manipulation of eBPF programs and maps %description -n bpftool This package contains the bpftool, which allows inspection and simple manipulation of eBPF programs and maps. %package source Summary: the kernel source %description source This package contains vaious source files from the kernel. %if 0%{?with_debuginfo} %define _debuginfo_template %{nil} %define _debuginfo_subpackages 0 %define debuginfo_template(n:) \ %package -n %{-n*}-debuginfo\ Summary: Debug information for package %{-n*}\ Group: Development/Debug\ AutoReq: 0\ AutoProv: 1\ %description -n %{-n*}-debuginfo\ This package provides debug information for package %{-n*}.\ Debug information is useful when developing applications that use this\ package or when debugging this package.\ %{nil} %debuginfo_template -n kernel %files -n kernel-debuginfo -f kernel-debugfiles.list -f debugfiles.list %{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*/%{KernelVer}/.*|.*/vmlinux|XXX' -o kernel-debugfiles.list} %debuginfo_template -n bpftool %files -n bpftool-debuginfo -f bpftool-debugfiles.list %{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%{_sbindir}/bpftool.*(\.debug)?|XXX' -o bpftool-debugfiles.list} %debuginfo_template -n kernel-tools %files -n kernel-tools-debuginfo -f kernel-tools-debugfiles.list %{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%{_bindir}/centrino-decode.*(\.debug)?|.*%{_bindir}/powernow-k8-decode.*(\.debug)?|.*%{_bindir}/cpupower.*(\.debug)?|.*%{_libdir}/libcpupower.*|.*%{_libdir}/libcpupower.*|.*%{_bindir}/turbostat.(\.debug)?|.*%{_bindir}/.*gpio.*(\.debug)?|.*%{_bindir}/.*iio.*(\.debug)?|.*%{_bindir}/tmon.*(.debug)?|XXX' -o kernel-tools-debugfiles.list} %debuginfo_template -n perf %files -n perf-debuginfo -f perf-debugfiles.list %{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%{_bindir}/perf.*(\.debug)?|.*%{_libexecdir}/perf-core/.*|.*%{_libdir}/traceevent/.*|XXX' -o perf-debugfiles.list} %debuginfo_template -n python2-perf %files -n python2-perf-debuginfo -f python2-perf-debugfiles.list %{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%{python2_sitearch}/perf.*(.debug)?|XXX' -o python2-perf-debugfiles.list} %debuginfo_template -n python3-perf %files -n python3-perf-debuginfo -f python3-perf-debugfiles.list %{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%{python3_sitearch}/perf.*(.debug)?|XXX' -o python3-perf-debugfiles.list} %endif %prep %if 0%{?with_patch} if [ ! -d kernel-%{version}/vanilla-%{TarballVer} ];then %setup -q -n kernel-%{version} -a 9998 -c mv linux-%{TarballVer} vanilla-%{TarballVer} else cd kernel-%{version} fi cp -rl vanilla-%{TarballVer} linux-%{KernelVer} %else %setup -q -n kernel-%{version} -c cp -rl linux-%{version} linux-%{KernelVer} %endif cd linux-%{KernelVer} cp $RPM_SOURCE_DIR/config-* . cp %{SOURCE15} . cp %{SOURCE30} . %if 0%{?with_patch} cp %{SOURCE9000} . cp %{SOURCE9001} . cp %{SOURCE9002} . if [ ! -d patches ];then mv ../patches . fi Applypatches() { set -e set -o pipefail local SERIESCONF=$1 local PATCH_DIR=$2 sed -i '/^#/d' $SERIESCONF sed -i '/^[\s]*$/d' $SERIESCONF ( echo "trap 'echo \"*** patch \$_ failed ***\"' ERR" echo "set -ex" cat $SERIESCONF | \ sed "s!^!patch -s -F0 -E -p1 --no-backup-if-mismatch -i $PATCH_DIR/!" \ ) | sh } Applypatches series.conf %{_builddir}/kernel-%{version}/linux-%{KernelVer} %endif make -f Makefile.config VERSION=%{version} configs %if !0%{?debugbuildsenabled} rm -f kernel-%{version}-*debug.config %endif touch .scmversion find . \( -name "*.orig" -o -name "*~" \) -exec rm -f {} \; >/dev/null find . -name .gitignore -exec rm -f {} \; >/dev/null %if 0%{?with_signmodules} cp %{SOURCE11} certs/. %endif %if 0%{?with_source} # Copy directory backup for kernel-source cp -a ../linux-%{KernelVer} ../linux-%{KernelVer}-Source find ../linux-%{KernelVer}-Source -type f -name "\.*" -exec rm -rf {} \; >/dev/null %endif cp -a tools/perf tools/python3-perf %build cd linux-%{KernelVer} perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{release}.%{_target_cpu}/" Makefile ## make linux make mrproper %{_smp_mflags} make ARCH=%{Arch} euleros_defconfig make ARCH=%{Arch} oldnoconfig TargetImage=$(basename $(make -s image_name)) make ARCH=%{Arch} $TargetImage %{?_smp_mflags} make ARCH=%{Arch} modules %{?_smp_mflags} %if 0%{?with_kabichk} chmod 0755 %{SOURCE18} if [ -e $RPM_SOURCE_DIR/Module.kabi_%{_target_cpu} ]; then %{SOURCE18} -k $RPM_SOURCE_DIR/Module.kabi_%{_target_cpu} -s Module.symvers || exit 1 else echo "**** NOTE: Cannot find reference Module.kabi file. ****" fi %endif # aarch64 make dtbs %ifarch aarch64 make ARCH=%{Arch} dtbs %endif ## make tools # perf %global perf_make \ make EXTRA_CFLAGS="-Wl,-z,now -g -Wall -fstack-protector-strong -fPIC" EXTRA_PERFLIBS="-fpie -pie" %{?_smp_mflags} -s V=1 WERROR=0 NO_LIBUNWIND=1 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_LIBNUMA=1 NO_STRLCPY=1 prefix=%{_prefix} %global perf_python2 -C tools/perf PYTHON=%{__python2} %global perf_python3 -C tools/python3-perf PYTHON=%{__python3} # perf chmod +x tools/perf/check-headers.sh %{perf_make} %{perf_python2} all # make sure check-headers.sh is executable chmod +x tools/python3-perf/check-headers.sh %{perf_make} %{perf_python3} all pushd tools/perf/Documentation/ make %{?_smp_mflags} man popd # bpftool pushd tools/bpf/bpftool make popd # cpupower chmod +x tools/power/cpupower/utils/version-gen.sh make %{?_smp_mflags} -C tools/power/cpupower CPUFREQ_BENCH=false %ifarch %{ix86} pushd tools/power/cpupower/debug/i386 make %{?_smp_mflags} centrino-decode powernow-k8-decode popd %endif %ifarch x86_64 pushd tools/power/cpupower/debug/x86_64 make %{?_smp_mflags} centrino-decode powernow-k8-decode popd %endif %ifarch %{ix86} x86_64 pushd tools/power/x86/x86_energy_perf_policy/ make popd pushd tools/power/x86/turbostat make popd %endif # thermal pushd tools/thermal/tmon/ make popd # iio pushd tools/iio/ make popd # gpio pushd tools/gpio/ make popd # kvm pushd tools/kvm/kvm_stat/ make %{?_smp_mflags} man popd %install %if 0%{?with_source} %define _python_bytecompile_errors_terminate_build 0 mkdir -p $RPM_BUILD_ROOT/usr/src/ mv linux-%{KernelVer}-Source $RPM_BUILD_ROOT/usr/src/linux-%{KernelVer} cp linux-%{KernelVer}/.config $RPM_BUILD_ROOT/usr/src/linux-%{KernelVer}/ cp linux-%{KernelVer}/.scmversion $RPM_BUILD_ROOT/usr/src/linux-%{KernelVer}/ %endif cd linux-%{KernelVer} ## install linux # deal with kernel-source, now we don't need kernel-source #mkdir $RPM_BUILD_ROOT/usr/src/linux-%{KernelVer} #tar cf - --exclude SCCS --exclude BitKeeper --exclude .svn --exclude CVS --exclude .pc --exclude .hg --exclude .git --exclude=.tmp_versions --exclude=*vmlinux* --exclude=*.o --exclude=*.ko --exclude=*.cmd --exclude=Documentation --exclude=.config.old --exclude=.missing-syscalls.d --exclude=patches . | tar xf - -C %{buildroot}/usr/src/linux-%{KernelVer} mkdir -p $RPM_BUILD_ROOT/boot dd if=/dev/zero of=$RPM_BUILD_ROOT/boot/initramfs-%{KernelVer}.img bs=1M count=20 install -m 755 $(make -s image_name) $RPM_BUILD_ROOT/boot/vmlinuz-%{KernelVer} pushd $RPM_BUILD_ROOT/boot sha512hmac ./vmlinuz-%{KernelVer} >./.vmlinuz-%{KernelVer}.hmac popd install -m 644 .config $RPM_BUILD_ROOT/boot/config-%{KernelVer} install -m 644 System.map $RPM_BUILD_ROOT/boot/System.map-%{KernelVer} %if 0%{?with_kabichk} gzip -c9 < Module.symvers > $RPM_BUILD_ROOT/boot/symvers-%{KernelVer}.gz %endif mkdir -p $RPM_BUILD_ROOT%{_sbindir} install -m 755 %{SOURCE200} $RPM_BUILD_ROOT%{_sbindir}/mkgrub-menu-%{hulkrelease}.sh %if 0%{?with_debuginfo} mkdir -p $RPM_BUILD_ROOT%{debuginfodir}/lib/modules/%{KernelVer} cp vmlinux $RPM_BUILD_ROOT%{debuginfodir}/lib/modules/%{KernelVer} %endif # deal with module, if not kdump make ARCH=%{Arch} INSTALL_MOD_PATH=$RPM_BUILD_ROOT modules_install KERNELRELEASE=%{KernelVer} mod-fw= ######## to collect ko to module.filelist about netwoking. block. drm. modesetting ############### pushd $RPM_BUILD_ROOT/lib/modules/%{KernelVer} find -type f -name "*.ko" >modnames # mark modules executable so that strip-to-file can strip them xargs --no-run-if-empty chmod u+x < modnames # Generate a list of modules for block and networking. grep -F /drivers/ modnames | xargs --no-run-if-empty nm -upA | sed -n 's,^.*/\([^/]*\.ko\): *U \(.*\)$,\1 \2,p' > drivers.undef collect_modules_list() { sed -r -n -e "s/^([^ ]+) \\.?($2)\$/\\1/p" drivers.undef | LC_ALL=C sort -u > modules.$1 if [ ! -z "$3" ]; then sed -r -e "/^($3)\$/d" -i modules.$1 fi } collect_modules_list networking \ 'register_netdev|ieee80211_register_hw|usbnet_probe|phy_driver_register|rt2x00(pci|usb)_probe|register_netdevice' collect_modules_list block \ 'ata_scsi_ioctl|scsi_add_host|scsi_add_host_with_dma|blk_alloc_queue|blk_init_queue|register_mtd_blktrans|scsi_esp_register|scsi_register_device_handler|blk_queue_physical_block_size|ahci_platform_get_resources' 'pktcdvd.ko|dm-mod.ko' collect_modules_list drm \ 'drm_open|drm_init' collect_modules_list modesetting \ 'drm_crtc_init' # detect missing or incorrect license tags rm -f modinfo while read i do echo -n "$i " >> modinfo /sbin/modinfo -l $i >> modinfo done < modnames grep -E -v \ 'GPL( v2)?$|Dual BSD/GPL$|Dual MPL/GPL$|GPL and additional rights$' \ modinfo && exit 1 rm -f modinfo modnames drivers.undef for i in alias alias.bin builtin.bin ccwmap dep dep.bin ieee1394map inputmap isapnpmap ofmap pcimap seriomap symbols symbols.bin usbmap do rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.$i done popd # modsign module ko;need after find-debuginfo,strip %define __modsign_install_post \ if [ "%{with_signmodules}" -eq "1" ];then \ cp certs/signing_key.pem . \ cp certs/signing_key.x509 . \ chmod 0755 %{modsign_cmd} \ %{modsign_cmd} $RPM_BUILD_ROOT/lib/modules/%{KernelVer} || exit 1 \ fi \ %{nil} # deal with header make ARCH=%{Arch} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr KBUILD_SRC= headers_install make ARCH=%{Arch} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr headers_check find $RPM_BUILD_ROOT/usr/include -name "\.*" -exec rm -rf {} \; # aarch64 dtbs install %ifarch aarch64 mkdir -p $RPM_BUILD_ROOT/boot/dtb-%{KernelVer} install -m 644 $(find arch/%{Arch}/boot -name "*.dtb") $RPM_BUILD_ROOT/boot/dtb-%{KernelVer}/ rm -f $(find arch/$Arch/boot -name "*.dtb") %endif # deal with vdso make -s ARCH=%{Arch} INSTALL_MOD_PATH=$RPM_BUILD_ROOT vdso_install KERNELRELEASE=%{KernelVer} if [ ! -s ldconfig-kernel.conf ]; then echo "# Placeholder file, no vDSO hwcap entries used in this kernel." >ldconfig-kernel.conf fi install -D -m 444 ldconfig-kernel.conf $RPM_BUILD_ROOT/etc/ld.so.conf.d/kernel-%{KernelVer}.conf # deal with /lib/module/ path- sub path: build source kernel rm -f $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build rm -f $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/source mkdir -p $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build mkdir -p $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/extra mkdir -p $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/updates mkdir -p $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/weak-updates ############ to do collect devel file ######### # 1. Makefile And Kconfig, .config sysmbol # 2. scrpits dir # 3. .h file find -type f \( -name "Makefile*" -o -name "Kconfig*" \) -exec cp --parents {} $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build \; for f in Module.symvers System.map Module.markers .config;do test -f $f || continue cp $f $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build done cp -a scripts $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build if [ -d arch/%{Arch}/scripts ]; then cp -a arch/%{Arch}/scripts $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/arch/%{_arch} || : fi if [ -f arch/%{Arch}/*lds ]; then cp -a arch/%{Arch}/*lds $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/arch/%{_arch}/ || : fi find $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/scripts/ -name "*.o" -exec rm -rf {} \; if [ -d arch/%{Arch}/include ]; then cp -a --parents arch/%{Arch}/include $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/ fi cp -a include $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/include %ifarch aarch64 # Needed for systemtap cp -a --parents arch/arm64/kernel/module.lds $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/ cp -a --parents arch/arm/include/asm $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/ %endif # copy objtool for kernel-devel (needed for building external modules) if grep -q CONFIG_STACK_VALIDATION=y .config; then mkdir -p $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/tools/objtool cp -a tools/objtool/objtool $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/tools/objtool fi # Make sure the Makefile and version.h have a matching timestamp so that # external modules can be built touch -r $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/Makefile $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/include/generated/uapi/linux/version.h touch -r $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/.config $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/include/generated/autoconf.h # for make prepare if [ ! -f $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/include/config/auto.conf ];then cp .config $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/include/config/auto.conf fi mkdir -p %{buildroot}/usr/src/kernels mv $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build $RPM_BUILD_ROOT/usr/src/kernels/%{KernelVer} find $RPM_BUILD_ROOT/usr/src/kernels/%{KernelVer} -name ".*.cmd" -exec rm -f {} \; pushd $RPM_BUILD_ROOT/lib/modules/%{KernelVer} ln -sf /usr/src/kernels/%{KernelVer} build ln -sf build source popd # deal with doc , now we don't need # deal with kernel abi whitelists. now we don't need ## install tools # perf # perf tool binary and supporting scripts/binaries %{perf_make} %{perf_python2} DESTDIR=%{buildroot} lib=%{_lib} install-bin install-traceevent-plugins # remove the 'trace' symlink. rm -f %{buildroot}%{_bindir}/trace # remove the perf-tips rm -rf %{buildroot}%{_docdir}/perf-tip # remove examples rm -rf %{buildroot}/usr/lib/perf/examples # remove the stray header file that somehow got packaged in examples rm -rf %{buildroot}/usr/lib/perf/include/bpf/ # python-perf extension %{perf_make} %{perf_python3} DESTDIR=%{buildroot} install-python_ext %{perf_make} %{perf_python2} DESTDIR=%{buildroot} install-python_ext # perf man pages (note: implicit rpm magic compresses them later) install -d %{buildroot}/%{_mandir}/man1 install -pm0644 tools/kvm/kvm_stat/kvm_stat.1 %{buildroot}/%{_mandir}/man1/ install -pm0644 tools/perf/Documentation/*.1 %{buildroot}/%{_mandir}/man1/ # bpftool pushd tools/bpf/bpftool make DESTDIR=%{buildroot} prefix=%{_prefix} bash_compdir=%{_sysconfdir}/bash_completion.d/ mandir=%{_mandir} install doc-install popd # cpupower make -C tools/power/cpupower DESTDIR=%{buildroot} libdir=%{_libdir} mandir=%{_mandir} CPUFREQ_BENCH=false install rm -f %{buildroot}%{_libdir}/*.{a,la} %find_lang cpupower mv cpupower.lang ../ %ifarch %{ix86} pushd tools/power/cpupower/debug/i386 install -m755 centrino-decode %{buildroot}%{_bindir}/centrino-decode install -m755 powernow-k8-decode %{buildroot}%{_bindir}/powernow-k8-decode popd %endif %ifarch x86_64 pushd tools/power/cpupower/debug/x86_64 install -m755 centrino-decode %{buildroot}%{_bindir}/centrino-decode install -m755 powernow-k8-decode %{buildroot}%{_bindir}/powernow-k8-decode popd %endif chmod 0755 %{buildroot}%{_libdir}/libcpupower.so* mkdir -p %{buildroot}%{_unitdir} %{buildroot}%{_sysconfdir}/sysconfig install -m644 %{SOURCE2000} %{buildroot}%{_unitdir}/cpupower.service install -m644 %{SOURCE2001} %{buildroot}%{_sysconfdir}/sysconfig/cpupower %ifarch %{ix86} x86_64 mkdir -p %{buildroot}%{_mandir}/man8 pushd tools/power/x86/x86_energy_perf_policy make DESTDIR=%{buildroot} install popd pushd tools/power/x86/turbostat make DESTDIR=%{buildroot} install popd %endif # thermal pushd tools/thermal/tmon make INSTALL_ROOT=%{buildroot} install popd # iio pushd tools/iio make DESTDIR=%{buildroot} install popd # gpio pushd tools/gpio make DESTDIR=%{buildroot} install popd # kvm pushd tools/kvm/kvm_stat make INSTALL_ROOT=%{buildroot} install-tools popd %define __spec_install_post\ %{?__debug_package:%{__debug_install_post}}\ %{__arch_install_post}\ %{__os_install_post}\ %{__modsign_install_post}\ %{nil} %post %{_sbindir}/new-kernel-pkg --package kernel --install %{KernelVer} || exit $? %preun rm -rf /lib/modules/%{KernelVer}/EulerOS if [ `uname -i` == "aarch64" ] && [ -f /boot/EFI/grub2/grub.cfg ]; then /usr/bin/sh %{_sbindir}/mkgrub-menu-%{hulkrelease}.sh %{version}-%{hulkrelease}.aarch64 /boot/EFI/grub2/grub.cfg remove fi %postun %{_sbindir}/new-kernel-pkg --rminitrd --rmmoddep --remove %{KernelVer} || exit $? if [ -x %{_sbindir}/weak-modules ] then %{_sbindir}/weak-modules --remove-kernel %{KernelVer} || exit $? fi if [ "`ls -A /lib/modules/%{KernelVer}`" = "" ]; then rm -rf /lib/modules/%{KernelVer} fi %posttrans %{_sbindir}/new-kernel-pkg --package kernel --mkinitrd --dracut --depmod --update %{KernelVer} || exit $? %{_sbindir}/new-kernel-pkg --package kernel --rpmposttrans %{KernelVer} || exit $? if [ `uname -i` == "aarch64" ] && [ -f /boot/EFI/grub2/grub.cfg ]; then /usr/bin/sh %{_sbindir}/mkgrub-menu-%{hulkrelease}.sh %{version}-%{hulkrelease}.aarch64 /boot/EFI/grub2/grub.cfg update fi if [ ! -d "/lib/modules/EulerOS" ];then mkdir -p /lib/modules/EulerOS fi if [ -e "/lib/modules/%{KernelVer}/EulerOS" ]; then rm -rf "/lib/modules/%{KernelVer}/EulerOS" fi ln -sf /lib/modules/EulerOS /lib/modules/%{KernelVer}/EulerOS if [ -x %{_sbindir}/weak-modules ] then %{_sbindir}/weak-modules --add-kernel %{KernelVer} || exit $? fi %{_sbindir}/new-kernel-pkg --package kernel --mkinitrd --dracut --depmod --update %{KernelVer} || exit $? %{_sbindir}/new-kernel-pkg --package kernel --rpmposttrans %{KernelVer} || exit $? %postun devel if [ -f /etc/sysconfig/kernel ] then . /etc/sysconfig/kernel || exit $? fi if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink ] then (cd /usr/src/kernels/%{KernelVer} && /usr/bin/find . -type f | while read f; do hardlink -c /usr/src/kernels/*.fc*.*/$f $f done) fi %post -n kernel-tools /sbin/ldconfig %systemd_post cpupower.service %preun -n kernel-tools %systemd_preun cpupower.service %postun -n kernel-tools /sbin/ldconfig %systemd_postun cpupower.service %files %defattr (-, root, root) %doc /boot/config-* %ifarch aarch64 /boot/dtb-* %endif %if 0%{?with_kabichk} /boot/symvers-* %endif /boot/System.map-* /boot/vmlinuz-* %ghost /boot/initramfs-%{KernelVer}.img /boot/.vmlinuz-*.hmac /etc/ld.so.conf.d/* /lib/modules/%{KernelVer}/ %exclude /lib/modules/%{KernelVer}/source %exclude /lib/modules/%{KernelVer}/build %{_sbindir}/mkgrub-menu*.sh %files devel %defattr (-, root, root) %doc /lib/modules/%{KernelVer}/source /lib/modules/%{KernelVer}/build /usr/src/kernels/%{KernelVer} /usr/include/* %files -n perf %{_bindir}/perf %dir %{_libdir}/traceevent %{_libdir}/traceevent/plugins/ %{_libexecdir}/perf-core %{_datadir}/perf-core/ %{_mandir}/man[1-8]/perf* %{_sysconfdir}/bash_completion.d/perf %doc linux-%{KernelVer}/tools/perf/Documentation/examples.txt %license linux-%{KernelVer}/COPYING %files -n python2-perf %license linux-%{KernelVer}/COPYING %{python2_sitearch}/* %files -n python3-perf %license linux-%{KernelVer}/COPYING %{python3_sitearch}/* %files -n kernel-tools -f cpupower.lang %{_bindir}/cpupower %ifarch %{ix86} x86_64 %{_bindir}/centrino-decode %{_bindir}/powernow-k8-decode %endif %{_unitdir}/cpupower.service %{_mandir}/man[1-8]/cpupower* %config(noreplace) %{_sysconfdir}/sysconfig/cpupower %ifarch %{ix86} x86_64 %{_bindir}/x86_energy_perf_policy %{_mandir}/man8/x86_energy_perf_policy* %{_bindir}/turbostat %{_mandir}/man8/turbostat* %endif %{_bindir}/tmon %{_bindir}/iio_event_monitor %{_bindir}/iio_generic_buffer %{_bindir}/lsiio %{_bindir}/lsgpio %{_bindir}/gpio-hammer %{_bindir}/gpio-event-mon %{_mandir}/man1/kvm_stat* %{_bindir}/kvm_stat %{_libdir}/libcpupower.so.0 %{_libdir}/libcpupower.so.0.0.1 %license linux-%{KernelVer}/COPYING %files -n kernel-tools-devel %{_libdir}/libcpupower.so %{_includedir}/cpufreq.h %{_includedir}/cpuidle.h %files -n bpftool %{_sbindir}/bpftool %{_sysconfdir}/bash_completion.d/bpftool %{_mandir}/man8/bpftool-cgroup.8.gz %{_mandir}/man8/bpftool-map.8.gz %{_mandir}/man8/bpftool-prog.8.gz %{_mandir}/man8/bpftool-perf.8.gz %{_mandir}/man8/bpftool.8.gz %{_mandir}/man7/bpf-helpers.7.gz %license linux-%{KernelVer}/COPYING %if 0%{?with_source} %files source %defattr(-,root,root) /usr/src/linux-%{KernelVer}/* /usr/src/linux-%{KernelVer}/.config /usr/src/linux-%{KernelVer}/.scmversion %endif %changelog * Wed Dec 25 2019 luochunsheng - 4.19.90-vhulk1907.1.0.0018 - update Module.kabi_aarch64 - fix patch kernel-SMMU-V3-support-Virtualization-with-3408iMR-3.patch * Tue Dec 24 2019 Pan Zhang - 4.19.90-vhulk1907.1.0.0017 - fix get_user_pages_fast with evmm issue * Tue Dec 24 2019 caihongda - 4.19.90-vhulk1907.1.0.0016 - cpu/freq:remove unused patches * Tue Dec 24 2019 shenkai - 4.19.90-vhulk1907.1.0.0015 - modify vmap allocation start address * Tue Dec 24 2019 caomeng - 4.19.90-vhulk1907.1.0.0014 - fix some problem about rebase hulk * Mon Dec 23 2019 yuxiangyang - 4.19.90-vhulk1907.1.0.0013 - fix CONFIG_EULEROS_USE_IDLE_NO_CSTATES compile error - add a new method of cpu usage * Mon Dec 23 2019 caomeng - 4.19.90-vhulk1907.1.0.0012 - change version * Mon Dec 23 2019 luochunsheng - 4.19.36-vhulk1907.1.0.0011 - fix mkgrub-menu-*.sh path - SMMU supports bypass of configured PCI devices by cmdline smmu.bypassdev * Mon Dec 23 2019 chenmaodong - 4.19.36-vhulk1907.1.0.0010 - drm/radeon: Fix potential buffer overflow in ci_dpm.c * Mon Dec 23 2019 wuxu - 4.19.36-vhulk1907.1.0.0009 - add security compile noexecstack option for vdso * Mon Dec 23 2019 caomeng - 4.19.36-vhulk1907.1.0.0008 - rebase hulk patches * Fri Dec 20 2019 yeyunfeng - 4.19.36-vhulk1907.1.0.0007 - perf/smmuv3: fix possible sleep in preempt context - crypto: user - prevent operating on larval algorithms * Thu Dec 19 2019 luochunsheng - 4.19.36-vhulk1907.1.0.0006 - update release to satisfy upgrade * Wed Nov 27 2019 lihongjiang - 4.19.36-vhulk1907.1.0.h005 - change page size from 4K to 64K * Thu Nov 21 2019 caomeng - 4.19.36-vhulk1907.1.0.h004 - fix problem about x86 compile: change signing_key.pem to certs/signing_key.pem - in file arch/x86/configs/euleros_defconfig * Mon Nov 4 2019 caomeng - 4.19.36-vhulk1907.1.0.h003 - Add buildrequires ncurlses-devel * Fri Oct 25 2019 luochunsheng - 4.19.36-vhulk1907.1.0.h002 - Add vmlinx to debuginfo package and add kernel-source package * Wed Sep 04 2019 openEuler Buildteam - 4.19.36-vhulk1907.1.0.h001 - Package init