abi-provides: extract/parse the header file only once

This commit is contained in:
Pavel Raiskup 2017-11-02 08:50:53 +01:00
parent 6cbe38d7cf
commit 82798a77c1
1 changed files with 14 additions and 16 deletions

View File

@ -30,15 +30,6 @@
# For more info: https://fedoraproject.org/wiki/Packaging:Guidelines#PIE
%global _hardened_build 1
# Extraction of API major & minor versions, so we can export them below:
%global gawk_api_major %%(tar -xf %{SOURCE0} gawk-%{version}/gawkapi.h --to-stdout | \
grep -i -e "gawk_api_major.*[[:digit:]]" | \
grep -o -e "[[:digit:]]")
%global gawk_api_minor %%(tar -xf %{SOURCE0} gawk-%{version}/gawkapi.h --to-stdout | \
grep -i -e "gawk_api_minor.*[[:digit:]]" | \
grep -o -e "[[:digit:]]")
# =============================================================================
Name: gawk
@ -58,7 +49,14 @@ Source3: LICENSE.BSD
Provides: /bin/awk
Provides: /bin/gawk
Provides: gawk(abi) = %{gawk_api_major}.%{gawk_api_minor}
# Extraction of API major & minor versions, so we can export them below. Put
# this below Source0 definition to have %%SOURCE0 defined.
%{expand:%(
tar xf %{SOURCE0} '*/gawkapi.h' --to-stdout 2>/dev/null | \
awk '/define\ gawk_api_/ {print "%%global " $2 " " $3 }'
)}
Provides: gawk(abi) = %{gawk_api_major_version}.%{gawk_api_minor_version}
# Safeguard to allow this package to be installed only on UsrMove enabled
# filesystem. More info: https://fedoraproject.org/wiki/Features/UsrMove
@ -225,18 +223,18 @@ install -m 0755 -d %{buildroot}%{_rpmconfigdir}/macros.d
cat > %{buildroot}%{_rpmconfigdir}/macros.d/macros.gawk << _EOF
# Current API version:
%%gawk_api_major %{gawk_api_major}
%%gawk_api_minor %{gawk_api_minor}
%%gawk_api_version %{gawk_api_major}.%{gawk_api_minor}
%%gawk_api_major %{gawk_api_major_version}
%%gawk_api_minor %{gawk_api_minor_version}
%%gawk_api_version %{gawk_api_major_version}.%{gawk_api_minor_version}
# Next API version which will be incopatible with current API:
%%gawk_api_version_next $((%{gawk_api_major} + 1)).0
%%gawk_api_version_next $((%{gawk_api_major_version} + 1)).0
# This macro will make sure that your current gawk extension
# is build against latest gawk API available in buildroot:
%%gawk_abi_requires \\
Requires: gawk(abi) >= %%{gawk_api_version} \\
Requires: gawk(abi) < %%{gawk_api_version_next} \\
Requires: gawk(abi) >= %{gawk_api_version} \\
Requires: gawk(abi) < %{gawk_api_version_next} \\
%%{nil}
_EOF