]> git.pld-linux.org Git - packages/rpm.git/blobdiff - rpm-noexpand.patch
- revert to python solution in %__spec_install_post_chrpath, readlink causes
[packages/rpm.git] / rpm-noexpand.patch
index 1b740bd1200f14387f600c45ad773d719d3d788b..7e796f6934474201c8d79ff434d59e584f2c83e0 100644 (file)
-diff -urN rpm-4.0.2/build/parseChangelog.c rpm-4.0.2.patched/build/parseChangelog.c
---- rpm-4.0.2/build/parseChangelog.c   Tue Jan 16 00:10:04 2001
-+++ rpm-4.0.2.patched/build/parseChangelog.c   Sat Sep  1 15:11:55 2001
-@@ -213,7 +213,7 @@
-     
-     while (! (nextPart = isPart(spec->line))) {
+--- rpm-5.0.1.noexpand/build/parseChangelog.c  2008-01-31 01:18:18.506330692 +0200
++++ rpm-5.0.1/build/parseChangelog.c   2008-01-31 01:20:45.467027848 +0200
+@@ -318,7 +318,7 @@
+       line = xstrtolocale(line);
        appendStringBuf(sb, spec->line);
+       line = _free(line);
 -      if ((rc = readLine(spec, STRIP_COMMENTS)) > 0) {
 +      if ((rc = readLine(spec, STRIP_COMMENTS | STRIP_NOEXPAND)) > 0) {
            nextPart = PART_NONE;
            break;
        }
-diff -urN rpm-4.0.2/build/parseSpec.c rpm-4.0.2.patched/build/parseSpec.c
---- rpm-4.0.2/build/parseSpec.c        Tue Jan 16 14:08:55 2001
-+++ rpm-4.0.2.patched/build/parseSpec.c        Sat Sep  1 15:36:00 2001
-@@ -131,12 +131,16 @@
-       ofi->readPtr = from;
+--- rpm-5.0.1.noexpand/build/parseSpec.c       2008-01-31 01:18:18.509664191 +0200
++++ rpm-5.0.1/build/parseSpec.c        2008-01-31 01:20:45.073674806 +0200
+@@ -168,7 +168,7 @@
+ /**
+  */
+-static int copyNextLineFromOFI(Spec spec, OFI_t * ofi)
++static int copyNextLineFromOFI(Spec spec, OFI_t * ofi, int strip)
+       /*@globals rpmGlobalMacroContext, h_errno,
+               fileSystem @*/
+       /*@modifies spec->nextline, spec->nextpeekc, spec->lbuf, spec->line,
+@@ -230,12 +230,16 @@
+ /*@=mods@*/
  
        /* Don't expand macros (eg. %define) in false branch of %if clause */
--      if (spec->readStack->reading &&
--          expandMacros(spec, spec->macros, spec->lbuf, sizeof(spec->lbuf))) {
--              rpmError(RPMERR_BADSPEC, _("line %d: %s\n"),
--                      spec->lineNum, spec->lbuf);
--              return RPMERR_BADSPEC;
--      }
 +      /* Also don't expand macros in %changelog where we set STRIP_NOEXPAND flag */
 +      /* (first line is ommited, so if there is e.g. %date macro, it will be expanded */
 +      if (!(strip & STRIP_NOEXPAND)) {
-+          if (spec->readStack->reading &&
-+                  expandMacros(spec, spec->macros, spec->lbuf, sizeof(spec->lbuf))) {
-+                      rpmError(RPMERR_BADSPEC, _("line %d: %s\n"),
-+                              spec->lineNum, spec->lbuf);
-+                      return RPMERR_BADSPEC;
-+                  }
-+      }       
+       if (spec->readStack->reading &&
+           expandMacros(spec, spec->macros, spec->lbuf, spec->lbuf_len)) {
+               rpmlog(RPMLOG_ERR, _("line %d: %s\n"),
+                       spec->lineNum, spec->lbuf);
+               return RPMRC_FAIL;
+       }
++      }
        spec->nextline = spec->lbuf;
      }
+     return 0;
+@@ -347,7 +351,7 @@
+       /* Copy next file line into the spec line buffer */
  
-@@ -241,86 +245,88 @@
+-      if ((rc = copyNextLineFromOFI(spec, ofi)) != 0) {
++      if ((rc = copyNextLineFromOFI(spec, ofi, strip)) != 0) {
+       if (rc == RPMRC_FAIL)
+           goto retry;
+       return rc;
+@@ -360,6 +364,7 @@
      SKIPSPACE(s);
  
      match = -1;
--    if (! strncmp("%ifarch", s, sizeof("%ifarch")-1)) {
--      const char *arch = rpmExpand("%{_target_cpu}", NULL);
--      s += 7;
--      match = matchTok(arch, s);
--      free((void *)arch);
--    } else if (! strncmp("%ifnarch", s, sizeof("%ifnarch")-1)) {
--      const char *arch = rpmExpand("%{_target_cpu}", NULL);
--      s += 8;
--      match = !matchTok(arch, s);
--      free((void *)arch);
--    } else if (! strncmp("%ifos", s, sizeof("%ifos")-1)) {
--      const char *os = rpmExpand("%{_target_os}", NULL);
--      s += 5;
--      match = matchTok(os, s);
--      free((void *)os);
--    } else if (! strncmp("%ifnos", s, sizeof("%ifnos")-1)) {
--      const char *os = rpmExpand("%{_target_os}", NULL);
--      s += 6;
--      match = !matchTok(os, s);
--      free((void *)os);
--    } else if (! strncmp("%if", s, sizeof("%if")-1)) {
--      s += 3;
--        match = parseExpressionBoolean(spec, s);
--      if (match < 0) {
--          rpmError(RPMERR_UNMATCHEDIF,
--                      _("%s:%d: parseExpressionBoolean returns %d\n"),
--                      ofi->fileName, ofi->lineNum, match);
--          return RPMERR_BADSPEC;
--      }
--    } else if (! strncmp("%else", s, sizeof("%else")-1)) {
--      s += 5;
--      if (! spec->readStack->next) {
--          /* Got an else with no %if ! */
--          rpmError(RPMERR_UNMATCHEDIF,
--                      _("%s:%d: Got a %%else with no %%if\n"),
--                      ofi->fileName, ofi->lineNum);
--          return RPMERR_UNMATCHEDIF;
--      }
--      spec->readStack->reading =
--          spec->readStack->next->reading && ! spec->readStack->reading;
--      spec->line[0] = '\0';
--    } else if (! strncmp("%endif", s, sizeof("%endif")-1)) {
--      s += 6;
--      if (! spec->readStack->next) {
--          /* Got an end with no %if ! */
--          rpmError(RPMERR_UNMATCHEDIF,
--                      _("%s:%d: Got a %%endif with no %%if\n"),
--                      ofi->fileName, ofi->lineNum);
--          return RPMERR_UNMATCHEDIF;
--      }
--      rl = spec->readStack;
--      spec->readStack = spec->readStack->next;
--      free(rl);
--      spec->line[0] = '\0';
--    } else if (! strncmp("%include", s, sizeof("%include")-1)) {
--      char *fileName, *endFileName, *p;
--
--      s += 8;
--      fileName = s;
--      if (! isspace(*fileName)) {
--          rpmError(RPMERR_BADSPEC, _("malformed %%include statement\n"));
--          return RPMERR_BADSPEC;
--      }
--      SKIPSPACE(fileName);
--      endFileName = fileName;
--      SKIPNONSPACE(endFileName);
--      p = endFileName;
--      SKIPSPACE(p);
--      if (*p != '\0') {
--          rpmError(RPMERR_BADSPEC, _("malformed %%include statement\n"));
--          return RPMERR_BADSPEC;
--      }
--      *endFileName = '\0';
 +    if (! (strip & STRIP_NOEXPAND)) {
-+        if (! strncmp("%ifarch", s, sizeof("%ifarch")-1)) {
-+          const char *arch = rpmExpand("%{_target_cpu}", NULL);
-+          s += 7;
-+          match = matchTok(arch, s);
-+          free((void *)arch);
-+      } else if (! strncmp("%ifnarch", s, sizeof("%ifnarch")-1)) {
-+          const char *arch = rpmExpand("%{_target_cpu}", NULL);
-+          s += 8;
-+          match = !matchTok(arch, s);
-+          free((void *)arch);
-+      } else if (! strncmp("%ifos", s, sizeof("%ifos")-1)) {
-+          const char *os = rpmExpand("%{_target_os}", NULL);
-+          s += 5;
-+          match = matchTok(os, s);
-+          free((void *)os);
-+      } else if (! strncmp("%ifnos", s, sizeof("%ifnos")-1)) {
-+          const char *os = rpmExpand("%{_target_os}", NULL);
-+          s += 6;
-+          match = !matchTok(os, s);
-+          free((void *)os);
-+      } else if (! strncmp("%if", s, sizeof("%if")-1)) {
-+          s += 3;
-+          match = parseExpressionBoolean(spec, s);
-+          if (match < 0) {
-+              rpmError(RPMERR_UNMATCHEDIF,
-+                          _("%s:%d: parseExpressionBoolean returns %d\n"),
-+                          ofi->fileName, ofi->lineNum, match);
-+              return RPMERR_BADSPEC;
-+          }
-+      } else if (! strncmp("%else", s, sizeof("%else")-1)) {
-+          s += 5;
-+          if (! spec->readStack->next) {
-+              /* Got an else with no %if ! */
-+              rpmError(RPMERR_UNMATCHEDIF,
-+                          _("%s:%d: Got a %%else with no %%if\n"),
-+                          ofi->fileName, ofi->lineNum);
-+              return RPMERR_UNMATCHEDIF;
-+          }
-+          spec->readStack->reading =
-+              spec->readStack->next->reading && ! spec->readStack->reading;
-+          spec->line[0] = '\0';
-+      } else if (! strncmp("%endif", s, sizeof("%endif")-1)) {
-+          s += 6;
-+          if (! spec->readStack->next) {
-+              /* Got an end with no %if ! */
-+              rpmError(RPMERR_UNMATCHEDIF,
-+                          _("%s:%d: Got a %%endif with no %%if\n"),
-+                          ofi->fileName, ofi->lineNum);
-+              return RPMERR_UNMATCHEDIF;
-+          }
-+          rl = spec->readStack;
-+          spec->readStack = spec->readStack->next;
-+          free(rl);
-+          spec->line[0] = '\0';
-+      } else if (! strncmp("%include", s, sizeof("%include")-1)) {
-+          char *fileName, *endFileName, *p;
-+
-+          s += 8;
-+          fileName = s;
-+          if (! isspace(*fileName)) {
-+              rpmError(RPMERR_BADSPEC, _("malformed %%include statement\n"));
-+              return RPMERR_BADSPEC;
-+          }
-+          SKIPSPACE(fileName);
-+          endFileName = fileName;
-+          SKIPNONSPACE(endFileName);
-+          p = endFileName;
-+          SKIPSPACE(p);
-+          if (*p != '\0') {
-+              rpmError(RPMERR_BADSPEC, _("malformed %%include statement\n"));
-+              return RPMERR_BADSPEC;
-+          }
-+          *endFileName = '\0';
--      forceIncludeFile(spec, fileName);
-+          forceIncludeFile(spec, fileName);
--      ofi = spec->fileStack;
--      goto retry;
-+          ofi = spec->fileStack;
-+          goto retry;
-+      }
+     if (!spec->readStack->reading && !strncmp("%if", s, sizeof("%if")-1)) {
+       match = 0;
+     } else if (! strncmp("%ifarch", s, sizeof("%ifarch")-1)) {
+@@ -441,6 +446,7 @@
+       ofi = spec->fileStack;
+       goto retry;
      }
--
-+    
++    }
      if (match != -1) {
-       rl = xmalloc(sizeof(struct ReadLevelEntry));
-       rl->reading = spec->readStack->reading && match;
-diff -urN rpm-4.0.2/build/rpmbuild.h rpm-4.0.2.patched/build/rpmbuild.h
---- rpm-4.0.2/build/rpmbuild.h Thu Jan 11 15:15:15 2001
-+++ rpm-4.0.2.patched/build/rpmbuild.h Sat Sep  1 15:11:55 2001
-@@ -69,6 +69,7 @@
+       rl = xmalloc(sizeof(*rl));
+--- rpm-5.0.1.noexpand/build/rpmbuild.h        2008-01-31 01:18:18.509664191 +0200
++++ rpm-5.0.1/build/rpmbuild.h 2008-01-31 01:20:45.073674806 +0200
+@@ -83,6 +83,7 @@
  #define STRIP_NOTHING             0
  #define STRIP_TRAILINGSPACE (1 << 0)
  #define STRIP_COMMENTS      (1 << 1)
 +#define STRIP_NOEXPAND      (1 << 2)
  
- #ifdef __cplusplus
- extern "C" {
+ /*@unchecked@*/
+ extern int _rpmbuildFlags;
This page took 0.033628 seconds and 4 git commands to generate.