From 80483430ad05b0ca74084288cdeffc8fa0b46230 Mon Sep 17 00:00:00 2001 From: Panu Matilainen Date: Jan 04 2010 11:04:44 +0000 Subject: - always clear locally defined macros when they go out of scope --- diff --git a/rpm-4.7.90-macro-scope.patch b/rpm-4.7.90-macro-scope.patch new file mode 100644 index 0000000..0d2bac9 --- /dev/null +++ b/rpm-4.7.90-macro-scope.patch @@ -0,0 +1,26 @@ +commit f895acd285366cf58cc3c97b5f188fecbfd782a8 +Author: Panu Matilainen +Date: Mon Jan 4 12:20:09 2010 +0200 + + Always free locally defined macros when they go out of scope + - Prior to this, local defines in constructs like %{!?foo: %define foo bar} + would remain defined until a parametrized macro gets called, causing + obscure and confusing errors in specs such as RhBug:551971 and countless + others. Use of %global is now always required for such constructs. + +diff --git a/rpmio/macro.c b/rpmio/macro.c +index 88fb583..11db47d 100644 +--- a/rpmio/macro.c ++++ b/rpmio/macro.c +@@ -1344,9 +1344,8 @@ expandMacro(MacroBuf mb) + me->used++; /* Mark macro as used */ + } + +- /* Free args for "%name " macros with opts */ +- if (me->opts != NULL) +- freeArgs(mb); ++ /* Free locally defined macros, such as macro options */ ++ freeArgs(mb); + + s = se; + } diff --git a/rpm.spec b/rpm.spec index 4c6d0ab..0569c29 100644 --- a/rpm.spec +++ b/rpm.spec @@ -21,7 +21,7 @@ Summary: The RPM package management system Name: rpm Version: %{rpmver} -Release: 0.%{snapver}.4 +Release: 0.%{snapver}.5 Group: System Environment/Base Url: http://www.rpm.org/ Source0: http://rpm.org/releases/testing/%{name}-%{srcver}.tar.bz2 @@ -40,6 +40,7 @@ Patch3: rpm-4.7.90-fedora-specspo.patch Patch200: rpm-4.7.90-python-bytecompile.patch Patch201: rpm-4.7.90-python-refcounts.patch Patch202: rpm-4.7.90-spec-allow-unexpanded-macros.patch +Patch203: rpm-4.7.90-macro-scope.patch # These are not yet upstream Patch301: rpm-4.6.0-niagara.patch @@ -187,6 +188,7 @@ packages on a system. %patch200 -p1 -b .python-bytecompile %patch201 -p1 -b .python-refcounts %patch202 -p1 -b .spec-unexpanded-macros +%patch203 -p1 -b .macro-scope %patch301 -p1 -b .niagara %patch302 -p1 -b .geode @@ -401,6 +403,9 @@ exit 0 %doc doc/librpm/html/* %changelog +* Mon Jan 04 2010 Panu Matilainen - 4.8.0-0.beta1.5 +- always clear locally defined macros when they go out of scope + * Thu Dec 17 2009 Panu Matilainen - 4.8.0-0.beta1.4 - permit unexpanded macros when parsing spec (#547997)