Author: qboosh                       Date: Fri Nov 18 23:33:26 2005 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- updated for 4.4.3

---- Files affected:
SOURCES:
   rpm-pld-autodep.patch (1.11 -> 1.12) 

---- Diffs:

================================================================
Index: SOURCES/rpm-pld-autodep.patch
diff -u SOURCES/rpm-pld-autodep.patch:1.11 SOURCES/rpm-pld-autodep.patch:1.12
--- SOURCES/rpm-pld-autodep.patch:1.11  Fri Mar  4 17:59:05 2005
+++ SOURCES/rpm-pld-autodep.patch       Sat Nov 19 00:33:21 2005
@@ -1,5 +1,19 @@
---- rpm-4.3/build/rpmfc.c.orig Wed May 19 11:30:29 2004
-+++ rpm-4.3/build/rpmfc.c      Wed May 19 17:03:01 2004
+--- rpm-4.4.3/build/rpmfc.h.orig       2005-11-18 23:08:14.231293000 +0100
++++ rpm-4.4.3/build/rpmfc.h    2005-11-18 23:55:16.694214392 +0100
+@@ -44,6 +44,11 @@
+     StringBuf sb_python;/*!< concatenated list of python colored files. */
+     StringBuf sb_php;   /*!< concatenated list of php colored files. */
+ 
++    int findprov, findreq;
++    regex_t *noautoprov;
++    int noautoprov_c;
++    regex_t *noautoreq;
++    int noautoreq_c;
+ };
+ 
+ /**
+--- rpm-4.4.3/build/rpmfc.c.orig       2005-11-18 23:08:14.332278624 +0100
++++ rpm-4.4.3/build/rpmfc.c    2005-11-19 00:15:40.643145872 +0100
 @@ -1,6 +1,7 @@
  #include "system.h"
  
@@ -15,9 +29,9 @@
 +#include <rpmts.h>
 +#include <rpmdb.h>
  
- #if HAVE_GELF_H
- #include <gelf.h>
-@@ -301,14 +304,83 @@
+ #include "debug.h"
+ 
+@@ -299,14 +302,83 @@
      return buf;
  };
  
@@ -102,7 +116,7 @@
        /[EMAIL PROTECTED] rpmGlobalMacroContext, h_errno, fileSystem, 
internalState @*/
        /[EMAIL PROTECTED] fc, rpmGlobalMacroContext, fileSystem, internalState 
@*/
  {
-@@ -394,6 +466,8 @@
+@@ -392,6 +464,8 @@
            }
  /[EMAIL PROTECTED]@*/
  
@@ -111,34 +125,16 @@
  
            /* Add tracking dependency for versioned Provides: */
            if (!fc->tracked && deptype == 'P' && *EVR != '\0') {
-@@ -637,9 +711,16 @@
- /**
-  * Extract script dependencies.
-  * @param fc          file classifier
-+ * @param findprov    1 to enable provides
-+ * @param findreq     1 to enable requires
-+ * @param noautoprov  _noautoprov regexps
-+ * @param noautoprov_c        # of _noautoprov regexps
-+ * @param noautoreq   _noautoreq regexps
-+ * @param noautoreq_c # of _noautoreq regexps
-  * @return            0 on success
-  */
--static int rpmfcSCRIPT(rpmfc fc)
-+static int rpmfcSCRIPT(rpmfc fc, int findprov, int findreq,
-+    regex_t *noautoprov, int noautoprov_c, regex_t *noautoreq, int 
noautoreq_c)
-       /[EMAIL PROTECTED] rpmGlobalMacroContext, h_errno, fileSystem, 
internalState @*/
-       /[EMAIL PROTECTED] fc, rpmGlobalMacroContext, fileSystem, internalState 
@*/
- {
-@@ -691,7 +772,7 @@
+@@ -703,7 +777,7 @@
        *se = '\0';
        se++;
  
 -      if (is_executable) {
-+      if (is_executable && findreq && !rpmfcMatchRegexps(noautoreq, 
noautoreq_c, s, 'R')) {
++      if (is_executable && fc->findreq && !rpmfcMatchRegexps(fc->noautoreq, 
fc->noautoreq_c, s, 'R')) {
            /* Add to package requires. */
            ds = rpmdsSingle(RPMTAG_REQUIRENAME, s, "", RPMSENSE_FIND_REQUIRES);
            xx = rpmdsMerge(&fc->requires, ds);
-@@ -718,21 +799,22 @@
+@@ -731,42 +805,50 @@
      (void) fclose(fp);
  
      if (fc->fcolor->vals[fc->ix] & RPMFC_PERL) {
@@ -146,200 +142,83 @@
 -          xx = rpmfcHelper(fc, 'P', "perl");
 -      if (is_executable || (fc->fcolor->vals[fc->ix] & RPMFC_MODULE))
 -          xx = rpmfcHelper(fc, 'R', "perl");
-+      if (findprov && fc->fcolor->vals[fc->ix] & RPMFC_MODULE)
-+          xx = rpmfcHelper(fc, 'P', "perl", noautoprov, noautoprov_c);
-+      if (findreq && (is_executable || (fc->fcolor->vals[fc->ix] & 
RPMFC_MODULE)))
-+          xx = rpmfcHelper(fc, 'R', "perl", noautoreq, noautoreq_c);
-     }
++      if (fc->findprov && (fc->fcolor->vals[fc->ix] & RPMFC_MODULE))
++          xx = rpmfcHelper(fc, 'P', "perl", fc->noautoprov, fc->noautoprov_c);
++      if (fc->findreq && (is_executable || (fc->fcolor->vals[fc->ix] & 
RPMFC_MODULE)))
++          xx = rpmfcHelper(fc, 'R', "perl", fc->noautoreq, fc->noautoreq_c);
+     } else
      if (fc->fcolor->vals[fc->ix] & RPMFC_PYTHON) {
 -      xx = rpmfcHelper(fc, 'P', "python");
--#ifdef        NOTYET
--      if (is_executable)
--#endif
++      if (fc->findprov)
++      xx = rpmfcHelper(fc, 'P', "python", fc->noautoprov, fc->noautoprov_c);
+ #ifdef        NOTYET
+       if (is_executable)
+ #endif
 -          xx = rpmfcHelper(fc, 'R', "python");
-+      if (findprov)
-+          xx = rpmfcHelper(fc, 'P', "python", noautoprov, noautoprov_c);
-+      if (findreq)
-+          xx = rpmfcHelper(fc, 'R', "python", noautoreq, noautoreq_c);
++      if (fc->findreq)
++          xx = rpmfcHelper(fc, 'R', "python", fc->noautoreq, fc->noautoreq_c);
+     } else
+     if (fc->fcolor->vals[fc->ix] & RPMFC_LIBTOOL) {
+-      xx = rpmfcHelper(fc, 'P', "libtool");
++      if (fc->findprov)
++      xx = rpmfcHelper(fc, 'P', "libtool", fc->noautoprov, fc->noautoprov_c);
+ #ifdef        NOTYET
+       if (is_executable)
+ #endif
+-          xx = rpmfcHelper(fc, 'R', "libtool");
++      if (fc->findreq)
++          xx = rpmfcHelper(fc, 'R', "libtool", fc->noautoreq, 
fc->noautoreq_c);
+     } else
+     if (fc->fcolor->vals[fc->ix] & RPMFC_PKGCONFIG) {
+-      xx = rpmfcHelper(fc, 'P', "pkgconfig");
++      if (fc->findprov)
++      xx = rpmfcHelper(fc, 'P', "pkgconfig", fc->noautoprov, 
fc->noautoprov_c);
+ #ifdef        NOTYET
+       if (is_executable)
+ #endif
+-          xx = rpmfcHelper(fc, 'R', "pkgconfig");
++      if (fc->findreq)
++          xx = rpmfcHelper(fc, 'R', "pkgconfig", fc->noautoreq, 
fc->noautoreq_c);
+     } else
+     if (fc->fcolor->vals[fc->ix] & RPMFC_BOURNE) {
+ #ifdef        NOTYET
+       xx = rpmfcHelper(fc, 'P', "executable");
+ #endif
+-      if (is_executable)
+-          xx = rpmfcHelper(fc, 'R', "executable");
++      if (fc->findreq && is_executable)
++          xx = rpmfcHelper(fc, 'R', "executable", fc->noautoreq, 
fc->noautoreq_c);
      }
      if (fc->fcolor->vals[fc->ix] & RPMFC_PHP) {
 -              xx = rpmfcHelper(fc, 'P', "php");
 -          xx = rpmfcHelper(fc, 'R', "php");
-+            if (findprov)
-+              xx = rpmfcHelper(fc, 'P', "php", noautoprov, noautoprov_c);
-+            if (findreq)
-+                xx = rpmfcHelper(fc, 'R', "php", noautoreq, noautoreq_c);
++          if (fc->findprov)
++              xx = rpmfcHelper(fc, 'P', "php", fc->noautoprov, 
fc->noautoprov_c);
++          if (fc->findreq)
++          xx = rpmfcHelper(fc, 'R', "php", fc->noautoreq, fc->noautoreq_c);
        }
  
      return 0;
-@@ -739,9 +823,16 @@
- /**
-  * Extract Elf dependencies.
-  * @param fc          file classifier
-+ * @param findprov    1 to enable provides
-+ * @param findreq     1 to enable requires
-+ * @param noautoprov  _noautoprov regexps
-+ * @param noautoprov_c        # of _noautoprov regexps
-+ * @param noautoreq   _noautoreq regexps
-+ * @param noautoreq_c # of _noautoreq regexps
-  * @return            0 on success
-  */
--static int rpmfcELF(rpmfc fc)
-+static int rpmfcELF(rpmfc fc, int findprov, int findreq,
-+    regex_t *noautoprov, int noautoprov_c, regex_t *noautoreq, int 
noautoreq_c)
-       /[EMAIL PROTECTED] rpmGlobalMacroContext, h_errno, fileSystem, 
internalState @*/
-       /[EMAIL PROTECTED] fc, rpmGlobalMacroContext, fileSystem, internalState 
@*/
- {
-@@ -844,26 +935,31 @@
-                        && !(filter_GLIBC_PRIVATE != 0
-                               && !strcmp(s, "GLIBC_PRIVATE")))
-                       {
-+                          int doauto;
-+
-                           buf[0] = '\0';
-                           t = buf;
-                           t = stpcpy( stpcpy( stpcpy( stpcpy(t, soname), 
"("), s), ")");
- 
-+                          doauto = findprov && !rpmfcMatchRegexps(noautoprov, 
noautoprov_c, buf, 'P');
- #if !defined(__alpha__)
-                           if (isElf64)
-                               t = stpcpy(t, "(64bit)");
- #endif
-                           t++;
-+                            
-+                            if (doauto) {
-+                                /* Add to package provides. */
-+                                ds = rpmdsSingle(RPMTAG_PROVIDES,
-+                                            buf, "", RPMSENSE_FIND_PROVIDES);
-+                                xx = rpmdsMerge(&fc->provides, ds);
-+
-+                                /* Add to file dependencies. */
-+                                xx = rpmfcSaveArg(&fc->ddict,
-+                                            rpmfcFileDep(t, fc->ix, ds));
- 
--                          /* Add to package provides. */
--                          ds = rpmdsSingle(RPMTAG_PROVIDES,
--                                      buf, "", RPMSENSE_FIND_PROVIDES);
--                          xx = rpmdsMerge(&fc->provides, ds);
--
--                          /* Add to file dependencies. */
--                          xx = rpmfcSaveArg(&fc->ddict,
--                                      rpmfcFileDep(t, fc->ix, ds));
--
--                          ds = rpmdsFree(ds);
-+                                ds = rpmdsFree(ds);
-+                            }
-                       }
-                       auxoffset += aux->vda_next;
-                   }
-@@ -904,25 +1000,30 @@
-                        && !(filter_GLIBC_PRIVATE != 0
-                               && !strcmp(s, "GLIBC_PRIVATE")))
-                       {
-+                          int doauto;
-+
-                           buf[0] = '\0';
-                           t = buf;
-                           t = stpcpy( stpcpy( stpcpy( stpcpy(t, soname), 
"("), s), ")");
- 
-+                          doauto = findreq && !rpmfcMatchRegexps(noautoreq, 
noautoreq_c, buf, 'R');
- #if !defined(__alpha__)
-                           if (isElf64)
-                               t = stpcpy(t, "(64bit)");
- #endif
-                           t++;
- 
--                          /* Add to package dependencies. */
--                          ds = rpmdsSingle(RPMTAG_REQUIRENAME,
--                                      buf, "", RPMSENSE_FIND_REQUIRES);
--                          xx = rpmdsMerge(&fc->requires, ds);
--
--                          /* Add to file dependencies. */
--                          xx = rpmfcSaveArg(&fc->ddict,
--                                      rpmfcFileDep(t, fc->ix, ds));
--                          ds = rpmdsFree(ds);
-+                            if (doauto) {
-+                                /* Add to package dependencies. */
-+                                ds = rpmdsSingle(RPMTAG_REQUIRENAME,
-+                                            buf, "", RPMSENSE_FIND_REQUIRES);
-+                                xx = rpmdsMerge(&fc->requires, ds);
-+
-+                                /* Add to file dependencies. */
-+                                xx = rpmfcSaveArg(&fc->ddict,
-+                                            rpmfcFileDep(t, fc->ix, ds));
-+                                ds = rpmdsFree(ds);
-+                            }
-                       }
-                       auxoffset += aux->vna_next;
-                   }
-@@ -947,23 +1048,30 @@
-                       /* Files with executable bit set only. */
-                       if (fc->skipReq || !(st->st_mode & 
(S_IXUSR|S_IXGRP|S_IXOTH)))
-                           /[EMAIL PROTECTED]@*/ continue;
-+                        if (!findreq)
-+                          continue;
-                       /* Add to package requires. */
-                       depsp = &fc->requires;
-                       tagN = RPMTAG_REQUIRENAME;
-                       dsContext = RPMSENSE_FIND_REQUIRES;
-                       s = elf_strptr(elf, shdr->sh_link, dyn->d_un.d_val);
- assert(s != NULL);
-+                      if(rpmfcMatchRegexps(noautoreq, noautoreq_c, s, 'R'))
-+                          continue;
-                       /[EMAIL PROTECTED]@*/ break;
-                   case DT_SONAME:
-                       gotSONAME = 1;
-                       /* Add to package provides. */
-                       if (fc->skipProv)
-                           /[EMAIL PROTECTED]@*/ continue;
-+                        if (!findprov) continue;
-                       depsp = &fc->provides;
-                       tagN = RPMTAG_PROVIDENAME;
-                       dsContext = RPMSENSE_FIND_PROVIDES;
-                       s = elf_strptr(elf, shdr->sh_link, dyn->d_un.d_val);
- assert(s != NULL);
-+                      if(rpmfcMatchRegexps(noautoprov, noautoprov_c, s, 'P'))
-+                          continue;
-                       /[EMAIL PROTECTED]@*/ break;
-                   }
-                   if (s == NULL)
-@@ -997,7 +1105,7 @@
-     /[EMAIL PROTECTED] =uniondef @*/
- 
-     /* For DSO's, provide the basename of the file if DT_SONAME not found. */
--    if (!fc->skipProv && isDSO && !gotDEBUG && !gotSONAME) {
-+    if (findprov && !fc->skipProv && isDSO && !gotDEBUG && !gotSONAME) {
-       depsp = &fc->provides;
-       tagN = RPMTAG_PROVIDENAME;
-       dsContext = RPMSENSE_FIND_PROVIDES;
-@@ -1015,6 +1123,8 @@
-       t = stpcpy(t, s);
- /[EMAIL PROTECTED]@*/
- 
-+      if(!rpmfcMatchRegexps(noautoprov, noautoprov_c, buf, 'P')) {
-+
- #if !defined(__alpha__)
-       if (isElf64)
-           t = stpcpy(t, "()(64bit)");
-@@ -1032,6 +1142,7 @@
- /[EMAIL PROTECTED]@*/
- 
-       ds = rpmdsFree(ds);
-+      }
-     }
+@@ -794,14 +876,18 @@
+     default:
+       break;
+     case RPMTAG_PROVIDENAME:
++      if (fc->findprov && !rpmfcMatchRegexps(fc->noautoprov, 
fc->noautoprov_c, ds->N[0])) {
+       /* Add to package provides. */
+       rc = rpmdsMerge(&fc->provides, ds);
+ 
+       /* Add to file dependencies. */
+       buf[0] = '\0';
+       rc = rpmfcSaveArg(&fc->ddict, rpmfcFileDep(buf, fc->ix, ds));
++      } else
++              rc = 0;
+       break;
+     case RPMTAG_REQUIRENAME:
++      if (fc->findreq && !rpmfcMatchRegexps(fc->noautoreq, fc->noautoreq_c, 
ds->N[0])) {
+       /* Add to package requires. */
+       rc = rpmdsMerge(&fc->requires, ds);
  
- exit:
-@@ -1045,7 +1156,8 @@
- }
- 
- typedef struct rpmfcApplyTbl_s {
--    int (*func) (rpmfc fc);
-+    int (*func) (rpmfc fc, int findprov, int findreq,
-+      regex_t *noautoprov, int noautoprov_c, regex_t *noautoreq, int 
noautoreq_c);
-     int colormask;
- } * rpmfcApplyTbl;
- 
-@@ -1058,6 +1170,109 @@
+@@ -848,6 +934,109 @@
      { NULL, 0 }
  };
  
@@ -441,7 +320,7 @@
 +        rpmdbFreeIterator(it);
 +    }
 +
-+    noautoreqdep=rpmfcFreeRegexps(noautoreqdep,noautoreqdep_c);
++    noautoreqdep = rpmfcFreeRegexps(noautoreqdep, noautoreqdep_c);
 +    ts = rpmtsFree(ts);
 +    return 0;
 +}
@@ -449,43 +328,39 @@
  int rpmfcApply(rpmfc fc)
  {
      rpmfcApplyTbl fcat;
-@@ -1075,6 +1290,29 @@
+@@ -865,6 +1054,26 @@
      int ix;
      int i;
      int xx;
 +    int j;
-+    int findprov;
-+    int findreq;
 +    regex_t *noautoprovfiles = NULL;
 +    int noautoprovfiles_c;
 +    regex_t *noautoreqfiles = NULL;
 +    int noautoreqfiles_c;
-+    regex_t *noautoprov = NULL;
-+    int noautoprov_c;
-+    regex_t *noautoreq = NULL;
-+    int noautoreq_c;
 +    const char *buildroot;
 +    int buildroot_l;
 +
++    fc->noautoprov = NULL;
++    fc->noautoreq = NULL;
++
 +    buildroot = rpmExpand("%{buildroot}",NULL);
 +    buildroot_l = strlen(buildroot);
 +    
 +    noautoprovfiles = rpmfcExpandRegexps("%{__noautoprovfiles}", 
&noautoprovfiles_c);
 +    noautoreqfiles = rpmfcExpandRegexps("%{__noautoreqfiles}", 
&noautoreqfiles_c);
-+    noautoprov = rpmfcExpandRegexps("%{__noautoprov}", &noautoprov_c);
-+    noautoreq = rpmfcExpandRegexps("%{__noautoreq}", &noautoreq_c);
-+    rpmMessage(RPMMESS_DEBUG, _("%i _noautoprov patterns.\n"), noautoprov_c);
-+    rpmMessage(RPMMESS_DEBUG, _("%i _noautoreq patterns.\n"), noautoreq_c);
++    fc->noautoprov = rpmfcExpandRegexps("%{__noautoprov}", &fc->noautoprov_c);
++    fc->noautoreq = rpmfcExpandRegexps("%{__noautoreq}", &fc->noautoreq_c);
++    rpmMessage(RPMMESS_DEBUG, _("%i _noautoprov patterns.\n"), 
fc->noautoprov_c);
++    rpmMessage(RPMMESS_DEBUG, _("%i _noautoreq patterns.\n"), 
fc->noautoreq_c);
  
      /* Generate package and per-file dependencies. */
      for (fc->ix = 0; fc->fn[fc->ix] != NULL; fc->ix++) {
-@@ -1082,10 +1320,44 @@
+@@ -885,10 +1094,43 @@
        for (fcat = rpmfcApplyTable; fcat->func != NULL; fcat++) {
            if (!(fc->fcolor->vals[fc->ix] & fcat->colormask))
                /[EMAIL PROTECTED]@*/ continue;
--          xx = (*fcat->func) (fc);
-+          findprov = 1;
-+          findreq = 1;
++          fc->findprov = 1;
++          fc->findreq = 1;
 +          if (strncmp(fc->fn[fc->ix],buildroot,buildroot_l)==0) {/* sanity 
check */
 +              for(j = 0; j < noautoprovfiles_c; j++) {
 +                  if (!regexec(&noautoprovfiles[j],
@@ -494,7 +369,7 @@
 +                              _("skipping %s provides detection"
 +                              " (matches noautoprovfiles pattern #%i)\n"),
 +                              fc->fn[fc->ix], j);
-+                      findprov = 0;
++                      fc->findprov = 0;
 +                      break;
 +                  }
 +              }
@@ -505,20 +380,19 @@
 +                              _("skipping %s requires detection"
 +                              " (matches noautoreqfiles pattern #%i)\n"),
 +                              fc->fn[fc->ix], j);
-+                      findreq = 0;
++                      fc->findreq = 0;
 +                      break;
 +                  }
 +              }
 +          }
-+          xx = (*fcat->func) (fc, findprov, findreq,
-+              noautoprov, noautoprov_c, noautoreq, noautoreq_c);
+           xx = (*fcat->func) (fc);
        }
      }
  
 +    noautoprovfiles = rpmfcFreeRegexps(noautoprovfiles, noautoprovfiles_c);
 +    noautoreqfiles = rpmfcFreeRegexps(noautoreqfiles, noautoreqfiles_c);
-+    noautoprov = rpmfcFreeRegexps(noautoprov, noautoprov_c);
-+    noautoreq = rpmfcFreeRegexps(noautoreq, noautoreq_c);
++    fc->noautoprov = rpmfcFreeRegexps(fc->noautoprov, fc->noautoprov_c);
++    fc->noautoreq = rpmfcFreeRegexps(fc->noautoreq, fc->noautoreq_c);
 +#ifdef AUTODEP_PKGNAMES /* define to use package names in R */
 +    rpmfcFindRequiredPackages(fc);
 +#endif
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/SOURCES/rpm-pld-autodep.patch?r1=1.11&r2=1.12&f=u

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to