--- rpm-4.0.4/build/parseChangelog.c.wiget Sat Jan 5 19:40:22 2002 +++ rpm-4.0.4/build/parseChangelog.c Tue Feb 12 22:52:02 2002 @@ -217,7 +217,7 @@ while (! (nextPart = isPart(spec->line))) { appendStringBuf(sb, spec->line); - if ((rc = readLine(spec, STRIP_COMMENTS)) > 0) { + if ((rc = readLine(spec, STRIP_COMMENTS | STRIP_NOEXPAND)) > 0) { nextPart = PART_NONE; break; } --- rpm-4.0.4/build/parseSpec.c.wiget Sun Jan 20 22:03:52 2002 +++ rpm-4.0.4/build/parseSpec.c Tue Feb 12 23:02:16 2002 @@ -143,12 +143,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; } @@ -258,6 +262,7 @@ SKIPSPACE(s); match = -1; + if (! (strip & STRIP_NOEXPAND)) { if (! strncmp("%ifarch", s, sizeof("%ifarch")-1)) { const char *arch = rpmExpand("%{_target_cpu}", NULL); s += 7; @@ -337,6 +342,7 @@ ofi = spec->fileStack; goto retry; } + } if (match != -1) { rl = xmalloc(sizeof(*rl)); --- rpm-4.0.4/build/rpmbuild.h.wiget Sun Jan 20 22:17:36 2002 +++ rpm-4.0.4/build/rpmbuild.h Tue Feb 12 22:52:02 2002 @@ -73,6 +73,7 @@ #define STRIP_NOTHING 0 #define STRIP_TRAILINGSPACE (1 << 0) #define STRIP_COMMENTS (1 << 1) +#define STRIP_NOEXPAND (1 << 2) #ifdef __cplusplus extern "C" {