- ia64/sparc: <arch>.{req,prov} identical to linux.{req,prov}.
authorjbj <devnull@localhost>
Fri, 15 Jun 2001 18:53:06 +0000 (18:53 +0000)
committerjbj <devnull@localhost>
Fri, 15 Jun 2001 18:53:06 +0000 (18:53 +0000)
- 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
autodeps/ia64-linux.req
autodeps/sparc-linux.req
build/parseScript.c
lib/rpmlibprov.c

diff --git a/CHANGES b/CHANGES
index 1c1099a..b7994ce 100644 (file)
--- a/CHANGES
+++ b/CHANGES
        - rpmdb iterator selectors permit default/strcmp/regex/glob matching.
        - rpmdb iterator selectors permit negative matches.
        - alpha: don't add "()(64bit)" dependency markers.
+       - ia64/sparc: <arch>.{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.
index 9a92d5d..cae9c9d 100644 (file)
@@ -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; }
index 9a92d5d..cae9c9d 100644 (file)
@@ -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; }
index 9af580c..1d8a1df 100644 (file)
@@ -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);
index 8ee443e..b734436 100644 (file)
@@ -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 }
 };