X-Git-Url: http://git.pld-linux.org/?p=packages%2Frpm.git;a=blobdiff_plain;f=rpm.macros;h=1911af6f68fda777ff64dceb34a7226af80408d0;hp=6611ac9ed2aa8b46852ecb97b518d328110c3004;hb=d65f5d0edf38dd0aee50cea6d567bbafe25784f1;hpb=a018c47ad3dab7571166b68c6f45d7ce76faa161 diff --git a/rpm.macros b/rpm.macros index 6611ac9..1911af6 100644 --- a/rpm.macros +++ b/rpm.macros @@ -291,8 +291,12 @@ unset DISPLAY ||:\ # Requires name = version-release %requires_releq() %(echo '%*' | LC_ALL="C" xargs -r rpm -q --qf 'Requires: %%{name} = %%{epoch}:%%{version}-%%{release}\\n' | sed -e 's/ (none):/ /' | grep -v "is not") -%releq_kernel() %((LC_ALL="C" rpm -qf --qf '%%{name} = %%{epoch}:%%{version}-%%{release}\\n' %{_kernelsrcdir}/include/linux/version.h 2>/dev/null || echo ERROR) | sed -e 's/ (none):/ /' | sed -e 's:-headers::' | grep -vE "(is not|no such)") -%requires_releq_kernel(s:) Requires%{-s:(%{-s*})}: %releq_kernel +%releq_kernel() %((LC_ALL="C" rpm -qf --qf '%%{name} = %%{epoch}:%%{version}-%%{release}\\n' %{_kernelsrcdir}/include/linux/version.h 2>/dev/null || echo ERROR) | sed -e 's/ (none):/ /' | sed -e 's:-headers::' | grep -vE "(is not|no such)") +%releq_kernel_up() %((LC_ALL="C" rpm -qf --qf '%%{name}-up = %%{epoch}:%%{version}-%%{release}\\n' %{_kernelsrcdir}/include/linux/version.h 2>/dev/null || echo ERROR) | sed -e 's/ (none):/ /' | sed -e 's:-headers::' | grep -vE "(is not|no such)") +%releq_kernel_smp() %((LC_ALL="C" rpm -qf --qf '%%{name}-smp = %%{epoch}:%%{version}-%%{release}\\n' %{_kernelsrcdir}/include/linux/version.h 2>/dev/null || echo ERROR) | sed -e 's/ (none):/ /' | sed -e 's:-headers::' | grep -vE "(is not|no such)") +%requires_releq_kernel(s:) Requires%{-s:(%{-s*})}: %releq_kernel +%requires_releq_kernel_up(s:) Requires%{-s:(%{-s*})}: %releq_kernel_up +%requires_releq_kernel_smp(s:) Requires%{-s:(%{-s*})}: %releq_kernel_smp %requires_eq() %(echo '%*' | LC_ALL="C" xargs -r rpm -q --qf 'Requires: %%{name} = %%{epoch}:%%{version}\\n' | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | grep -v "is not") %requires_eq_to() %(LC_ALL="C" rpm -q --qf 'Requires: %1 = %%{epoch}:%%{version}\\n' %2 | sed -e 's/ (none):/ /' | grep -v "is not") @@ -347,6 +351,12 @@ unset DISPLAY ||:\ echo "Compress man pages: $i"; \ find "$RPM_BUILD_ROOT$i" -name '*.bz2' -print | xargs -r %{__bzip2} -df; \ find "$RPM_BUILD_ROOT$i" -name '*.gz' -print | xargs -r %{__gzip} -dnf; \ + find $RPM_BUILD_ROOT$i -type l | while read a; do \ + m=$(readlink $a); \ + rm -f $a; \ + echo .so ${m##*/} > $a; \ + echo >&2 "Converted ${a#$RPM_BUILD_ROOT} from symlink to man link: ${m##*/}"; \ + done; \ find "$RPM_BUILD_ROOT$i" -type f -size +%{_min_compress_bytes}c -print | xargs -r %{__gzip} -9nf; \ fi; \ done; \ @@ -377,31 +387,50 @@ if [ -d "$RPM_BUILD_ROOT" ]; then \ echo "DONE"; \ fi; \ fi; \ - filelist=`find $RPM_BUILD_ROOT -type f ! -regex ".*ld-[0-9.]*so.*" ! -regex ".*libpthread-[0-9.]*so.*" ! -regex ".*/usr/lib[0-9]*/debug/.*\.debug" ! -regex ".*%{_docdir}/.*" ! -regex ".*%{_includedir}/.*" %{?_noautostrip:! -regex "%{_noautostrip}"}`; \ - # vim - " \ - if [ -z "$filelist" ]; then \ - return; \ + filelist=`find $RPM_BUILD_ROOT -type f ! -regex ".*/usr/lib[0-9]*/debug/.*\.debug" ! -regex ".*%{_docdir}/.*" ! -regex ".*%{_includedir}/.*" %{?_noautostrip:! -regex "%{_noautostrip}"} %{?_autostripall:! -regex "%{_autostripall}"} %{?_autostripunneeded:! -regex "%{_autostripunneeded}"} %{?_autostripdebug:! -regex "%{_autostripdebug}"}`; \ + if [ -n "$filelist" ]; then \ + filetypes=`echo "$filelist" | xargs -r -d'\\n' file`; \ + elfexelist=`echo "$filetypes" | awk -F: '/ELF.*executable/ {print $1}'`; \ + elfsharedlist=`echo "$filetypes" | awk -F: '/LF.*shared object/ {print $1}'`; \ + archiveslist=`echo "$filetypes" | awk -F '/current ar archive/ {print $1}'`; \ + if [ -n "$elfexelist" ]; then \ + printf "Stripping %d ELF executables..." $(echo "$elfexelist" | wc -l); \ + chmod u+w $elfexelist; \ + %{__strip} --remove-section=.note --remove-section=.comment $elfexelist; \ + echo "DONE"; \ + fi; \ + if [ -n "$elfsharedlist" ]; then \ + printf "Stripping %d ELF shared libraries..." $(echo "$elfsharedlist" | wc -l); \ + chmod u+w $elfsharedlist; \ + %{__strip} --strip-unneeded --remove-section=.note --remove-section=.comment $elfsharedlist; \ + echo "DONE"; \ + fi; \ + if [ -n "$archiveslist" ]; then \ + printf "Stripping %d ar archives..." $(echo "$elfsharedlist" | wc -l); \ + chmod u+w $archiveslist; \ + %{__strip} --strip-debug --remove-section=.note --remove-section=.comment $archiveslist; \ + echo "DONE"; \ + fi; \ fi; \ - filetypes=`echo "$filelist" | xargs -r -d'\\n' file`; \ - elfexelist=`echo "$filetypes" | awk -F: '/ELF.*executable/ {print $1}'`; \ - elfsharedlist=`echo "$filetypes" | awk -F: '/LF.*shared object/ {print $1}'`; \ - archiveslist=`echo "$filetypes" | awk -F '/current ar archive/ {print $1}'`; \ - if [ -n "$elfexelist" ]; then \ - printf "Stripping %d ELF executables..." $(echo "$elfexelist" | wc -l); \ + filelist_all=%{?_autostripall:`find $RPM_BUILD_ROOT -type f -regex "%{_autostripall}"} \ + filelist_unneeded=%{?_autostripunneeded:`find $RPM_BUILD_ROOT -type f -regex "%{_autostripunneeded}"} \ + filelist_debug=%{?_autostripdebug:`find $RPM_BUILD_ROOT -type f -regex "%{_autostripdebug}"} \ + if [ -n "$filelist_all" ]; then \ + printf "Stripping everything from %d additional files..." $(echo "$filelist_all" | wc -l); \ chmod u+w $elfexelist; \ - %{__strip} --remove-section=.note --remove-section=.comment $elfexelist; \ + %{__strip} --remove-section=.note --remove-section=.comment $filelist_all; \ echo "DONE"; \ fi; \ - if [ -n "$elfsharedlist" ]; then \ - printf "Stripping %d ELF shared libraries..." $(echo "$elfsharedlist" | wc -l); \ + if [ -n "$filelist_unneeded" ]; then \ + printf "Stripping unneeded from %d additional files..." $(echo "$filelist_unneeded" | wc -l); \ chmod u+w $elfsharedlist; \ - %{__strip} --strip-unneeded --remove-section=.note --remove-section=.comment $elfsharedlist; \ + %{__strip} --strip-unneeded --remove-section=.note --remove-section=.comment $filelist_unneeded; \ echo "DONE"; \ fi; \ - if [ -n "$archiveslist" ]; then \ - printf "Stripping %d ar archives..." $(echo "$elfsharedlist" | wc -l); \ + if [ -n "$filelist_debug" ]; then \ + printf "Stripping debuginfo from %d additional files..." $(echo "$filelist_debug" | wc -l); \ chmod u+w $archiveslist; \ - %{__strip} --strip-debug --remove-section=.note --remove-section=.comment $archiveslist; \ + %{__strip} --strip-debug --remove-section=.note --remove-section=.comment $filelist_debug; \ echo "DONE"; \ fi; \ fi; }; __spec_install_post_strip } } } @@ -581,6 +610,8 @@ fi \ %ruby_archdir %(ruby -r rbconfig -e 'print Config::CONFIG["archdir"]' 2>/dev/null || echo ERROR) %ruby_ridir %(ruby -r rbconfig -e 'include Config; print File.join(CONFIG["datadir"], "ri", CONFIG["ruby_version"], "system")' 2>/dev/null || echo ERROR) %ruby_rubylibdir %(ruby -r rbconfig -e 'print Config::CONFIG["rubylibdir"]' 2>/dev/null || echo ERROR) +%ruby_vendorarchdir %(ruby -r rbconfig -e 'print Config::CONFIG["vendorarchdir"]' 2>/dev/null || echo ERROR) +%ruby_vendorlibdir %(ruby -r rbconfig -e 'print Config::CONFIG["vendorlibdir"]' 2>/dev/null || echo ERROR) %ruby_sitearchdir %(ruby -r rbconfig -e 'print Config::CONFIG["sitearchdir"]' 2>/dev/null || echo ERROR) %ruby_sitelibdir %(ruby -r rbconfig -e 'print Config::CONFIG["sitelibdir"]' 2>/dev/null || echo ERROR) %ruby_version %(ruby -r rbconfig -e 'print Config::CONFIG["ruby_version"]' 2>/dev/null || echo ERROR) @@ -931,7 +962,6 @@ fi \ # Directory where arch-specific (JNI) version-independent jars are installed. %_jnidir %{_libdir}/java - %java_home %([ -f %{_javadir}-utils/java-functions ] || { echo ERROR; exit 0; }; unset JAVA_HOME; . %{_javadir}-utils/java-functions; set_jvm; echo ${JAVA_HOME:-ERROR}) %ant JAVA_HOME=%{java_home} ant @@ -979,6 +1009,53 @@ set_options $BASE_OPTIONS\ run "$@"\ EOF +# jpackage 1.7 +# Directory for maven depmaps +# +%_mavendepmapdir /etc/maven +%_mavendepmapfragdir /etc/maven/fragments + +# +# add_to_depmap adds an entry to the depmap. The arguments are: +# +# %1 the original groupid +# %2 the original artifact id +# %3 the version +# %4 the new groupid +# %5 the new artifactid +# + +%add_to_maven_depmap() \ +install -dm 755 $RPM_BUILD_ROOT/%{_mavendepmapfragdir}\ +cat >>$RPM_BUILD_ROOT/%{_mavendepmapfragdir}/%{name}<< EOF\ +\ + \ + %1\ + %2\ + %3\ + \ + \ + %4\ + %5\ + %3\ + \ +\ +\ +EOF\ +%{nil} + +#============================================================================== +# +# update_maven_depmap updates the main maven depmap +# +%update_maven_depmap() \ +echo -e "\\n" > %{_mavendepmapdir}/maven2-depmap.xml\ +if [ -d %{_mavendepmapfragdir} ] && [ -n "`find %{_mavendepmapfragdir} -type f`" ]; then\ +cat %{_mavendepmapfragdir}/* >> %{_mavendepmapdir}/maven2-depmap.xml\ +fi\ +echo -e "\\n" >> %{_mavendepmapdir}/maven2-depmap.xml + + # PEAR install macros # Author: Elan Ruusamäe # @@ -1167,8 +1244,9 @@ done \ compile() { \ L="<"; [[ '%{*}' != *$L$L* ]] || PATCH_SH="set -x -e;$(cat)" \ set -e -x \ + local cfgs='%{?with_dist_kernel:%{?with_smp: smp}%{?with_up: up}}%{!?with_dist_kernel: nondist}' \ \ -for cfg in %{?with_dist_kernel:dist}%{!?with_dist_kernel:nondist}; do \ +for cfg in ${cfgs:-dist}; do \ [ -r "%{_kernelsrcdir}/config-$cfg" ] || exit 1 \ \ rm -rf o \ @@ -1178,8 +1256,8 @@ for cfg in %{?with_dist_kernel:dist}%{!?with_dist_kernel:nondist}; do \ ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h o/include/linux/autoconf.h \ %ifarch ppc ppc64 \ install -d o/include/asm \ - [ ! -d %{_kernelsrcdir}/include/asm-%{_target_base_arch} ] || ln -sf %{_kernelsrcdir}/include/asm-%{_target_base_arch}/* o/include/asm \ - [ ! -d %{_kernelsrcdir}/include/asm-powerpc ] || ln -snf %{_kernelsrcdir}/include/asm-powerpc/* o/include/asm \ + [ ! -d %{_kernelsrcdir}/include/asm-%{_target_base_arch} ] || ln -snf %{_kernelsrcdir}/include/asm-%{_target_base_arch}/* o/include/asm \ + [ ! -d %{_kernelsrcdir}/include/asm-powerpc ] || ln -snf %{_kernelsrcdir}/include/asm-powerpc/* o/include/asm \ %else \ ln -sf %{_kernelsrcdir}/include/asm-%{_target_base_arch} o/include/asm \ %endif \ @@ -1229,7 +1307,7 @@ compile %{*}\ # -s -- suffix to use when installing modules, useful when module # with same name exists in kernel already # -n -- name of modprobe config file to use (without .conf extension) -# for definig aliases, only useful with -s +# for defining aliases, only useful with -s %install_kernel_modules(m:d:s:n:) \ %{!?-m:%{error:%{0}: Required module name (-m) missing}exit 1} \ @@ -1239,23 +1317,19 @@ compile %{*}\ %define KernelD $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver} \ %define ModprobeD $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{_kernel_ver} \ \ -install -d %{KernelD}/%{-d*} \ -%{?-s:install -d %{ModprobeD}} \ +local cfgs='%{?with_dist_kernel:%{?with_smp: smp}%{?with_up: up}}%{!?with_dist_kernel: nondist}' \ \ for MODULE in {%{-m*},}; do \ [ -n "${MODULE}" ] || continue \ - MNAME=${MODULE##*/} \ - %if %{without dist_kernel} \ - install ${MODULE}-nondist.ko \\\ - %{KernelD}/%{-d*}/${MNAME}%{-s:-%{-s*}}.ko \ - %{?-s:echo "alias ${MNAME} ${MNAME}-%{-s*}" \\\ - >> %{ModprobeD}/%{-n*}.conf} \ - %else \ - install ${MODULE}-dist.ko \\\ - %{KernelD}/%{-d*}/${MNAME}%{-s:-%{-s*}}.ko \ - %{?-s:echo "alias ${MNAME} ${MNAME}-%{-s*}" \\\ - >> %{ModprobeD}/%{-n*}.conf} \ - %endif \ + for cfg in ${cfgs:-dist}; do \ + [ "$cfg" = smp ] && suf=smp || suf= \ + MNAME=${MODULE##*/} \ + install -D ${MODULE}-$cfg.ko \\\ + %{KernelD}$suf/%{-d*}/${MNAME}%{-s:-%{-s*}}.ko \ + %{?-s:install -d %{ModprobeD}$suf \ + echo "alias ${MNAME} ${MNAME}-%{-s*}" \\\ + >> %{ModprobeD}$suf/%{-n*}.conf} \ + done \ done \ %{nil}