X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=rpm.macros.kernel;h=4c7998ee2af7eceb7d6506a5ee9133b543522239;hb=f51f5213a7611e36be1b4f179408517a9f36c7f8;hp=98b91e586618be26ec0cccc48d76fa8f89ac44c4;hpb=ccab679d7c402afb1624707b3c16de15a9399062;p=packages%2Frpm-build-macros.git diff --git a/rpm.macros.kernel b/rpm.macros.kernel index 98b91e5..4c7998e 100644 --- a/rpm.macros.kernel +++ b/rpm.macros.kernel @@ -68,8 +68,8 @@ done) %requires_releq_kernel_up(s:n:) Requires%{-s:(%{-s*})}: %releq_kernel_up %requires_releq_kernel_smp(s:n:) Requires%{-s:(%{-s*})}: %releq_kernel_smp -# kernel version-release handling -%__kernel_ver %( \\ +# kernel version-release handling, `uname -r` used for building/installing kernel modules +%_kernel_ver %( \\ Z=$([ -f '%{_kernelsrcdir}/include/generated/utsrelease.h' ] && \\ awk -F'"' '/UTS_RELEASE/{print $2}' %{_kernelsrcdir}/include/{linux/version,generated/utsrelease}.h 2>/dev/null || \\ awk -F'"' '/UTS_RELEASE/{print $2}' %{_kernelsrcdir}/include/linux/{version,utsrelease}.h 2>/dev/null); \\ @@ -77,6 +77,18 @@ done) %{_kernelsrcdir}/Makefile 2>/dev/null)}; \\ echo ${Z:-ERROR}; \\ ) +# left for compatibility +%__kernel_ver %{_kernel_ver} + +# package version to be used in @release field +%_kernel_ver_str %( \\ + Z=$([ -f '%{_kernelsrcdir}/include/generated/utsrelease.h' ] && \\ + awk -F'"' '/UTS_RELEASE/{gsub(/-/,"_",$2); print $2}' %{_kernelsrcdir}/include/{linux/version,generated/utsrelease}.h 2>/dev/null || \\ + awk -F'"' '/UTS_RELEASE/{gsub(/-/,"_",$2); print $2}' %{_kernelsrcdir}/include/linux/{version,utsrelease}.h 2>/dev/null); \\ + Z=${Z:-$(awk -F' = ' '/^VERSION/{v=$2} /^PATCHLEVEL/{p=$2} /^SUBLEVEL/{s=$2} /^EXTRAVERSION/{e=$2} END {z=sprintf("%d.%d.%d%s", v, p, s, e); gsub(/-/,"_",z); print z}' \\ + %{_kernelsrcdir}/Makefile 2>/dev/null)}; \\ + echo ${Z:-ERROR}; \\ +) %_kernel_version_code %( \\ Z=$(awk '/LINUX_VERSION_CODE/{print $3}' %{_kernelsrcdir}/include/linux/version.h 2>/dev/null); \\ @@ -85,28 +97,37 @@ done) %_kernel_version_magic() %(echo $((%{1} * 65536 + %{2} * 256 + %{3}))) -# `uname -r` used for building/installing kernel modules -%_kernel_ver %{__kernel_qf %{V}-%{R}} -# package version to be used in @release field -%_kernel_ver_str %(echo %{__kernel_qf %{V}-%{R}} | tr '-' '_') +%_host_base_arch %{expand:%%global _host_base_arch %(echo %{_host_cpu} | sed 's/i.86/i386/;s/athlon/i386/;s/pentium./i386/;s/amd64/x86_64/;s/ia32e/x86_64/;s/x32/x86_64/;s/sparcv./sparc/;s/arm.*/arm/')}%_host_base_arch +%_target_base_arch %{expand:%%global _target_base_arch %(echo %{_target_cpu} | sed 's/i.86/i386/;s/athlon/i386/;s/pentium./i386/;s/amd64/x86_64/;s/ia32e/x86_64/;s/x32/x86_64/;s/sparcv./sparc/;s/arm.*/arm/')}%_target_base_arch + +# Compression used for %__spec_install_post_compress_modules +# Supported values: +# - "gzip -9nf" (module-init-tools and kmod) +# - "xz" (kmod) +# - "xz -9e" (kmod), however size difference with "xz" default options is very minimal +# @since 1.707 +%kmod_compress_cmd %{__gzip} -9nf #----------------------------------------------------------------- -# Find and gzip all kernel modules +# Find and compress all kernel modules # # Requires: find +# Depends: kmod_compress_cmd # #%no_install_post_compress_modules 1 %__spec_install_post_compress_modules { \ %{!?no_install_post_compress_modules: __spec_install_post_compress_modules() { \ %{!?debug:set +x;} \ if [ -d $RPM_BUILD_ROOT/lib/modules ]; then \ + tool=$(%{kmod_compress_cmd} --version | head -n1); \ + case "$tool" in gzip*) ext=gz;; xz*) ext=xz;; esac; \ q=$(find $RPM_BUILD_ROOT/lib/modules -name '*o' -type f -print); \ if [ "$q" ]; then \ printf "Compress %d kernel modules..." $(echo "$q" | wc -l); \ - echo "$q" | xargs -r %{__gzip} -9nf; \ + echo "$q" | xargs -r %{kmod_compress_cmd}; \ echo "DONE"; \ find $RPM_BUILD_ROOT/lib/modules -name '*o' -type l -printf "%p %l\n" | \ - while read a b; do ln -sf $b.gz $a.gz; rm -f $a; done; \ + while read a b; do ln -sf $b.$ext $a.$ext; rm -f $a; done; \ fi; \ fi; \ }; __spec_install_post_compress_modules } } @@ -155,7 +176,7 @@ done) CC="%{__cc}" \\\ %endif \ %define MakeOpts HOSTCC="%{__cc}" SYSSRC=%{_kernelsrcdir} SYSOUT=$PWD/o \\\\\\\ - O=$PWD/o %{?with_verbose:V=1} %{Opts} \ + %{?with_verbose:V=1} %{Opts} \ \ %{?-C:cd %{-C*}} \ compile() { \ @@ -214,7 +235,7 @@ compile %{*} \ CC="%{__cc}" \\\ %endif \ %define MakeOpts HOSTCC="%{__cc}" SYSSRC=%{_kernelsrcdir} SYSOUT=$PWD/o \\\\\\\ - O=$PWD/o %{?with_verbose:V=1} %{Opts} \ + %{?with_verbose:V=1} %{Opts} \ \ %{?-C:cd %{-C*}} \ compile() { \