- side effect is that requires_eq now accepts only one paramter, contrary to previous where it accepted long list.
The test results of the new macros:
$ rpm -q xulrunner zlib
package xulrunner is not installed
zlib-1.2.3-7.i686
$ rpm -E '%requires_eq'
ERROR
$ rpm -E '%requires_eq zlib'
Requires: zlib = 0:1.2.3
$ rpm -E '%requires_eq xulrunner'
BuildRequires: xulrunner
$ rpm -E '%requires_eq xulrunner zlib'
ERROR
$ rpm -E '%requires_eq_to'
ERROR
$ rpm -E '%requires_eq_to zlib'
ERROR
$ rpm -E '%requires_eq_to xulrunner zlib'
Requires: xulrunner = 0:1.2.3
$ rpm -E '%requires_eq_to xulrunner zlib zl'
ERROR
$ rpm -E '%requires_eq_to xulrunner xulrunner'
BuildRequires: xulrunner
Changed files:
rpm.macros -> 1.503
%requires_releq_kernel_smp(s:) Requires%{-s:(%{-s*})}: %releq_kernel_smp
# Requires: name = version
-%requires_eq() %(Z=$(echo '%*' | LC_ALL=C xargs -r rpm -q --qf 'Requires: %{N} = %|E?{%{E}:}|%{V}\\n'); if echo "$Z" | ! grep -v '^Requires:'; then echo "$Z"; fi)
+%requires_eq() %{!?1:ERROR}%{?2:ERROR}%{?1:%{!?2:%{expand:%%requires_eq_to %1 %1}}}
# Requires: name = version (version based on querying package %2)
-%requires_eq_to() %(%{!?2:echo "ERROR: missing param 2 to %%requires_eq_to"}%{?2:Z=$(LC_ALL=C rpm -q --qf 'Requires: %1 = %|E?{%{E}:}|%{V}' %2 | grep -v "is not"); echo ${Z:-[%%requires_eq_to %1 %2] expanded to nothing}})
+%requires_eq_to() %{!?2:ERROR}%{?3:ERROR}%{?2:%{!?3:%(Z=$(LC_ALL=C rpm -q --qf 'Requires: %1 = %|E?{%{E}:}|%{V}\\n' %2); if ! echo "$Z" | grep '^Requires:'; then echo "BuildRequires: %2"; fi)}}
%apache_modules_api %{expand:%%global apache_modules_api %(awk '/#define MODULE_MAGIC_NUMBER_MAJOR/ {print $3}' /usr/include/apache/ap_mmn.h 2>/dev/null || echo ERROR)}%apache_modules_api