]> git.pld-linux.org Git - packages/rpm-build-macros.git/blobdiff - rpm.macros.kernel
- note that __true_false* may be used also with cmake
[packages/rpm-build-macros.git] / rpm.macros.kernel
index 98b91e586618be26ec0cccc48d76fa8f89ac44c4..4c7998ee2af7eceb7d6506a5ee9133b543522239 100644 (file)
@@ -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() {                                                                                                                    \
This page took 0.212959 seconds and 4 git commands to generate.