From 6afa016e86bc87b7ac7d2a90db00df7b35cc99a4 Mon Sep 17 00:00:00 2001 From: jbj Date: Fri, 15 Jun 2001 18:53:06 +0000 Subject: [PATCH] - ia64/sparc: .{req,prov} identical to linux.{req,prov}. - add "rpmlib(ScriptletInterpreterArgs)" to track %post -p "/sbin/ldconfig -n /usr/lib" incompatibilities. CVS patchset: 4866 CVS date: 2001/06/15 18:53:06 --- CHANGES | 4 ++++ autodeps/ia64-linux.req | 17 ++++++++++++----- autodeps/sparc-linux.req | 17 ++++++++++++----- build/parseScript.c | 5 ++++- lib/rpmlibprov.c | 3 +++ 5 files changed, 35 insertions(+), 11 deletions(-) diff --git a/CHANGES b/CHANGES index 1c1099a..b7994ce 100644 --- a/CHANGES +++ b/CHANGES @@ -109,6 +109,10 @@ - rpmdb iterator selectors permit default/strcmp/regex/glob matching. - rpmdb iterator selectors permit negative matches. - alpha: don't add "()(64bit)" dependency markers. + - ia64/sparc: .{req,prov} identical to linux.{req,prov}. + - add "rpmlib(ScriptletInterpreterArgs)" to track + %post -p "/sbin/ldconfig -n /usr/lib" + incompatibilities. 4.0 -> 4.0.[12] - add doxygen and lclint annotations most everywhere. diff --git a/autodeps/ia64-linux.req b/autodeps/ia64-linux.req index 9a92d5d..cae9c9d 100644 --- a/autodeps/ia64-linux.req +++ b/autodeps/ia64-linux.req @@ -21,11 +21,18 @@ pythonlist= tcllist= # +# --- Alpha does not mark 64bit dependencies +case `uname -m` in + alpha*) mark64="" ;; + *) mark64="()(64bit)" ;; +esac + +# # --- Executable sonames. for f in $exelist; do [ -r $f -a -x $f ] || continue lib64=`if file -L $f 2>/dev/null | \ - grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` + grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi` ldd $f | awk '/=>/ { if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/) { gsub(/'\''"/,"\\&",$1); @@ -39,7 +46,7 @@ done | xargs -r -n 1 basename | sort -u for f in $liblist; do [ -r $f ] || continue lib64=`if file -L $f 2>/dev/null | \ - grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` + grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi` ldd $f | awk '/=>/ { if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/) { gsub(/'\''"/,"\\&",$1); @@ -56,17 +63,17 @@ for f in $scriptlist; do interplist="$interplist $interp" case $interp in */perl) perllist="$perllist $f" ;; - *) [ "${f%.pm} != "${f}" ] && perllist="$perllist $f" ;; + *) [ "${f%.pm}" != "${f}" ] && perllist="$perllist $f" ;; esac done -[ -n "$interplist" ] && { echo "$interplist" | sort -u ; } +[ -n "$interplist" ] && { echo "$interplist" | tr [:blank:] \\n | sort -u ; } # # --- Weak symbol versions (from glibc). for f in $liblist $exelist ; do [ -r $f ] || continue lib64=`if file -L $f 2>/dev/null | \ - grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` + grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi` objdump -p $f | awk ' BEGIN { START=0; LIBNAME=""; } /Version References:/ { START=1; } diff --git a/autodeps/sparc-linux.req b/autodeps/sparc-linux.req index 9a92d5d..cae9c9d 100644 --- a/autodeps/sparc-linux.req +++ b/autodeps/sparc-linux.req @@ -21,11 +21,18 @@ pythonlist= tcllist= # +# --- Alpha does not mark 64bit dependencies +case `uname -m` in + alpha*) mark64="" ;; + *) mark64="()(64bit)" ;; +esac + +# # --- Executable sonames. for f in $exelist; do [ -r $f -a -x $f ] || continue lib64=`if file -L $f 2>/dev/null | \ - grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` + grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi` ldd $f | awk '/=>/ { if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/) { gsub(/'\''"/,"\\&",$1); @@ -39,7 +46,7 @@ done | xargs -r -n 1 basename | sort -u for f in $liblist; do [ -r $f ] || continue lib64=`if file -L $f 2>/dev/null | \ - grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` + grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi` ldd $f | awk '/=>/ { if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/) { gsub(/'\''"/,"\\&",$1); @@ -56,17 +63,17 @@ for f in $scriptlist; do interplist="$interplist $interp" case $interp in */perl) perllist="$perllist $f" ;; - *) [ "${f%.pm} != "${f}" ] && perllist="$perllist $f" ;; + *) [ "${f%.pm}" != "${f}" ] && perllist="$perllist $f" ;; esac done -[ -n "$interplist" ] && { echo "$interplist" | sort -u ; } +[ -n "$interplist" ] && { echo "$interplist" | tr [:blank:] \\n | sort -u ; } # # --- Weak symbol versions (from glibc). for f in $liblist $exelist ; do [ -r $f ] || continue lib64=`if file -L $f 2>/dev/null | \ - grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` + grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi` objdump -p $f | awk ' BEGIN { START=0; LIBNAME=""; } /Version References:/ { START=1; } diff --git a/build/parseScript.c b/build/parseScript.c index 9af580c..1d8a1df 100644 --- a/build/parseScript.c +++ b/build/parseScript.c @@ -265,9 +265,12 @@ int parseScript(Spec spec, int parsePart) if (progArgc == 1) (void) headerAddEntry(pkg->header, progtag, RPM_STRING_TYPE, *progArgv, progArgc); - else + else { + (void) rpmlibNeedsFeature(pkg->header, + "ScriptletInterpreterArgs", "4.0.3-1"); (void) headerAddEntry(pkg->header, progtag, RPM_STRING_ARRAY_TYPE, progArgv, progArgc); + } if (*p != '\0') (void) headerAddEntry(pkg->header, tag, RPM_STRING_TYPE, p, 1); diff --git a/lib/rpmlibprov.c b/lib/rpmlibprov.c index 8ee443e..b734436 100644 --- a/lib/rpmlibprov.c +++ b/lib/rpmlibprov.c @@ -31,6 +31,9 @@ static struct rpmlibProvides { { "rpmlib(HeaderLoadSortsTags)", "4.0.1-1", ( RPMSENSE_EQUAL), N_("header tags are always sorted after being loaded.") }, + { "rpmlib(ScriptletInterpreterArgs)", "4.0.3-1", + ( RPMSENSE_EQUAL), + N_("the scriptlet interpreter can use arguments from header.") }, { NULL, NULL, 0, NULL } }; -- 2.7.4