]> git.pld-linux.org Git - packages/rpm.git/blobdiff - rpm-pld-autodep.patch
- updated
[packages/rpm.git] / rpm-pld-autodep.patch
index 780bc2ec02aca3ba9f17d6b65be8f3aaeca9c1fc..8ec40bdbcb7c6aa663ea2a5a55fe69ce7529b4c0 100644 (file)
@@ -1,6 +1,14 @@
 --- 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 @@
+@@ -1,6 +1,7 @@
+ #ifndef _H_RPMFC_
+ #define _H_RPMFC_
++#include <regex.h>
+ #undef        FILE_RCSID
+ #include "magic.h"
+@@ -44,6 +45,11 @@
      StringBuf sb_python;/*!< concatenated list of python colored files. */
      StringBuf sb_php;   /*!< concatenated list of php colored files. */
  
  };
  
  /**
---- 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"
- #include <signal.h>   /* getOutputFrom() */
-+#include <regex.h>
- #include <rpmbuild.h>
- #include <argv.h>
-@@ -9,6 +10,8 @@
+--- rpm-4.4.3/build/rpmfc.c.orig       2005-11-19 09:33:23.180067024 +0100
++++ rpm-4.4.3/build/rpmfc.c    2005-11-19 09:35:29.167913960 +0100
+@@ -9,6 +9,8 @@
  #define       _RPMDS_INTERNAL
  #include <rpmds.h>
  #include <rpmfi.h>
@@ -31,7 +31,7 @@
  
  #include "debug.h"
  
-@@ -299,14 +302,83 @@
+@@ -299,14 +301,83 @@
      return buf;
  };
  
            /* Add to package requires. */
            ds = rpmdsSingle(RPMTAG_REQUIRENAME, s, "", RPMSENSE_FIND_REQUIRES);
            xx = rpmdsMerge(&fc->requires, ds);
-@@ -731,42 +805,50 @@
+@@ -731,42 +804,50 @@
      (void) fclose(fp);
  
      if (fc->fcolor->vals[fc->ix] & RPMFC_PERL) {
        }
  
      return 0;
-@@ -794,14 +876,18 @@
+@@ -794,20 +875,26 @@
      default:
        break;
      case RPMTAG_PROVIDENAME:
-+      if (fc->findprov && !rpmfcMatchRegexps(fc->noautoprov, fc->noautoprov_c, ds->N[0])) {
++      if (fc->findprov && !rpmfcMatchRegexps(fc->noautoprov, fc->noautoprov_c, ds->N[0], 'P')) {
        /* Add to package provides. */
        rc = rpmdsMerge(&fc->provides, ds);
  
 +              rc = 0;
        break;
      case RPMTAG_REQUIRENAME:
-+      if (fc->findreq && !rpmfcMatchRegexps(fc->noautoreq, fc->noautoreq_c, ds->N[0])) {
++      if (fc->findreq && !rpmfcMatchRegexps(fc->noautoreq, fc->noautoreq_c, ds->N[0], 'R')) {
        /* Add to package requires. */
        rc = rpmdsMerge(&fc->requires, ds);
  
-@@ -848,6 +934,109 @@
+       /* Add to file dependencies. */
+       buf[0] = '\0';
+       rc = rpmfcSaveArg(&fc->ddict, rpmfcFileDep(buf, fc->ix, ds));
++      } else
++              rc = 0;
+       break;
+     }
+     return rc;
+@@ -848,6 +935,109 @@
      { NULL, 0 }
  };
  
 +        }
 +        hdr=rpmdbNextIterator(it);
 +        assert(hdr!=NULL);
-+        r=rpmHeaderGetEntry(hdr,RPMTAG_NAME,NULL,(void **)&hname, NULL);
++        r=headerGetEntry(hdr,RPMTAG_NAME,NULL,(void **)&hname, NULL);
 +        assert(r<2);
 +        if (!strcmp(hname,N)) {
 +            rpmMessage(RPMMESS_DEBUG, _("%s -> %s (skipping)\n"),N,hname);
  int rpmfcApply(rpmfc fc)
  {
      rpmfcApplyTbl fcat;
-@@ -865,6 +1054,26 @@
-     int ix;
+@@ -865,6 +1055,26 @@
      int i;
      int xx;
+     int skipping;
 +    int j;
 +    regex_t *noautoprovfiles = NULL;
 +    int noautoprovfiles_c;
  
      /* Generate package and per-file dependencies. */
      for (fc->ix = 0; fc->fn[fc->ix] != NULL; fc->ix++) {
-@@ -885,10 +1094,43 @@
+@@ -1076,9 +1076,43 @@
        for (fcat = rpmfcApplyTable; fcat->func != NULL; fcat++) {
            if (!(fc->fcolor->vals[fc->ix] & fcat->colormask))
                /*@innercontinue@*/ continue;
 +          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],
-+                          fc->fn[fc->ix] + buildroot_l, 0, NULL, 0)) {
-+                      rpmMessage(RPMMESS_NORMAL,
-+                              _("skipping %s provides detection"
-+                              " (matches noautoprovfiles pattern #%i)\n"),
-+                              fc->fn[fc->ix], j);
-+                      fc->findprov = 0;
-+                      break;
++                  for(j = 0; j < noautoprovfiles_c; j++) {
++                          if (!regexec(&noautoprovfiles[j],
++                                                  fc->fn[fc->ix] + buildroot_l, 0, NULL, 0)) {
++                                  rpmMessage(RPMMESS_NORMAL,
++                                                  _("skipping %s provides detection"
++                                                          " (matches noautoprovfiles pattern #%i)\n"),
++                                                  fc->fn[fc->ix], j);
++                                  fc->findprov = 0;
++                                  break;
++                          }
 +                  }
-+              }
-+              for(j = 0; j < noautoreqfiles_c; j++) {
-+                  if (!regexec(&noautoreqfiles[j],
-+                          fc->fn[fc->ix] + buildroot_l, 0, NULL, 0)) {
-+                      rpmMessage(RPMMESS_NORMAL,
-+                              _("skipping %s requires detection"
-+                              " (matches noautoreqfiles pattern #%i)\n"),
-+                              fc->fn[fc->ix], j);
-+                      fc->findreq = 0;
-+                      break;
++                  for(j = 0; j < noautoreqfiles_c; j++) {
++                          if (!regexec(&noautoreqfiles[j],
++                                                  fc->fn[fc->ix] + buildroot_l, 0, NULL, 0)) {
++                                  rpmMessage(RPMMESS_NORMAL,
++                                                  _("skipping %s requires detection"
++                                                          " (matches noautoreqfiles pattern #%i)\n"),
++                                                  fc->fn[fc->ix], j);
++                                  fc->findreq = 0;
++                                  break;
++                          }
 +                  }
-+              }
 +          }
++
            xx = (*fcat->func) (fc);
        }
      }
 +    noautoprovfiles = rpmfcFreeRegexps(noautoprovfiles, noautoprovfiles_c);
 +    noautoreqfiles = rpmfcFreeRegexps(noautoreqfiles, noautoreqfiles_c);
 +    fc->noautoprov = rpmfcFreeRegexps(fc->noautoprov, fc->noautoprov_c);
 +#ifdef AUTODEP_PKGNAMES /* define to use package names in R */
 +    rpmfcFindRequiredPackages(fc);
 +#endif
  /*@-boundswrite@*/
      /* Generate per-file indices into package dependencies. */
-     nddict = argvCount(fc->ddict);
 --- rpm-4.3/po/POTFILES.in.orig        2004-01-04 03:13:02.000000000 +0100
 +++ rpm-4.3/po/POTFILES.in     2004-02-01 21:05:50.567248776 +0100
 @@ -22,6 +22,7 @@
This page took 0.059701 seconds and 4 git commands to generate.