--- rpm-4.4.3/build/parseChangelog.c.orig 2005-11-12 01:20:12.000000000 +0100 +++ rpm-4.4.3/build/parseChangelog.c 2005-11-18 19:46:50.357322048 +0100 @@ -255,7 +255,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; } --- rpm-4.3/build/parseSpec.c.wiget Thu May 15 18:15:51 2003 +++ rpm-4.3/build/parseSpec.c Fri May 16 00:08:57 2003 @@ -156,12 +156,16 @@ ofi->readPtr = from; /* Don't expand macros (eg. %define) in false branch of %if clause */ + /* 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; } + } spec->nextline = spec->lbuf; } @@ -273,6 +277,7 @@ SKIPSPACE(s); match = -1; + if (! (strip & STRIP_NOEXPAND)) { if (!spec->readStack->reading && !strncmp("%if", s, sizeof("%if")-1)) { match = 0; } else if (! strncmp("%ifarch", s, sizeof("%ifarch")-1)) { @@ -354,6 +359,7 @@ ofi = spec->fileStack; goto retry; } + } if (match != -1) { rl = xmalloc(sizeof(*rl)); --- rpm-4.3/build/rpmbuild.h.wiget Sat May 10 17:19:33 2003 +++ rpm-4.3/build/rpmbuild.h Fri May 16 00:06:47 2003 @@ -75,6 +75,7 @@ #define STRIP_NOTHING 0 #define STRIP_TRAILINGSPACE (1 << 0) #define STRIP_COMMENTS (1 << 1) +#define STRIP_NOEXPAND (1 << 2) #ifdef __cplusplus extern "C" {