RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
______________________________________________________________________
______
Server: rpm5.org Name: Ralf S. Engelschall
Root: /v/rpm/cvs Email: [EMAIL PROTECTED]
Module: rpm Date: 27-Dec-2007
16:32:32
Branch: HEAD Handle: 2007122715323101
Modified files:
rpm VENDOR
rpm/build parsePreamble.c
Log:
- OpenPKG-specific change "make-class-available-as-macro":
Do not treat "Class" tag as a fully arbitrary tag. In OpenPKG
some
.spec processing depends on the macro %{class} to be filled from
the value of the "Class" tag, hence make sure it is not treated
fully arbitrary (or else the macro would be not available). As
%_arbitrary_tags restricts the allowed tags anyway, best
would be to
export also arbitrary tags as macros!
- OpenPKG-specific change "append-tag-value-to-macro"
Instead of overwriting macro "foo" with the latest value
"quux" in
case of tag "Foo: bar" followed by tag "Foo: quux", set the
macro
"foo" to the comma-separated list "bar, quux". This allows
one to get
the values of all(!) tags instead of just the last one. In
OpenPKG we
use this to fetch the value of tags like BuildPreReq or
NoSource.
Summary:
Revision Changes Path
2.20 +20 -0 rpm/VENDOR
2.166 +17 -0 rpm/build/parsePreamble.c
______________________________________________________________________
______
patch -p0 <<'@@ .'
Index: rpm/VENDOR
======================================================================
======
$ cvs diff -u -r2.19 -r2.20 VENDOR
--- rpm/VENDOR 25 Dec 2007 19:22:34 -0000 2.19
+++ rpm/VENDOR 27 Dec 2007 15:32:31 -0000 2.20
@@ -328,4 +328,24 @@
expanded macro text already terminates with
a newline
Reason: Using e.g. rpm --eval "%{lua: print('foo\
\n') }" should
not lead to an extra trailing blank line.
+
______________________________________________________________________
__
+
+ Change: make-class-available-as-macro
+ Purpose: Do not treat "Class" tag as a fully
arbitrary tag.
+ Reason: In OpenPKG some .spec processing depends on
the
+ macro %{class} to be filled from the value
of the
+ "Class" tag, hence make sure it is not
treated fully
+ arbitrary (or else the macro would be not
available).
+ Hint: As %_arbitrary_tags restricts the allowed
tags anyway,
+ best would be to export also arbitrary tags
as macros!
+
______________________________________________________________________
__
+
+ Change: append-tag-value-to-macro
+ Purpose: Instead of overwriting macro "foo" with the
latest
+ value "quux" in case of tag "Foo: bar"
followed
+ by tag "Foo: quux", set the macro "foo" to the
+ comma-separated list "bar, quux".
+ Reason: This allows one to get the values of all(!)
tags
+ instead of just the last one. In OpenPKG we
use this
+ to fetch the value of tags like BuildPreReq
or NoSource.
@@ .
patch -p0 <<'@@ .'
Index: rpm/build/parsePreamble.c
======================================================================
======
$ cvs diff -u -r2.165 -r2.166 parsePreamble.c
--- rpm/build/parsePreamble.c 26 Dec 2007 09:36:35 -0000 2.165
+++ rpm/build/parsePreamble.c 27 Dec 2007 15:32:32 -0000 2.166
@@ -608,6 +608,9 @@
break;
case RPMTAG_GROUP:
case RPMTAG_SUMMARY:
+#if defined(RPM_VENDOR_OPENPKG) /* make-class-available-as-macro */
+ case RPMTAG_CLASS:
+#endif
(void) stashSt(spec, pkg->header, tag, lang);
/[EMAIL PROTECTED]@*/
case RPMTAG_DISTRIBUTION:
@@ -807,7 +810,18 @@
}
if (macro)
+#if defined(RPM_VENDOR_OPENPKG) /* append-tag-value-to-macro */
+ {
+ char *value = rpmExpand("%{?", macro, ":%{", macro,
"}, }", NULL);
+ size_t value_len = strlen(value);
+ value = xrealloc(value, value_len + strlen(field) + 1);
+ strcpy(value+value_len, field);
+ addMacro(spec->macros, macro, NULL, value, RMIL_SPEC);
+ value = _free(value);
+ }
+#else
addMacro(spec->macros, macro, NULL, field, RMIL_SPEC);
+#endif
return RPMRC_OK;
}
@@ -884,6 +898,9 @@
{RPMTAG_KEYWORDS, 0, 0, "keywords"},
{RPMTAG_KEYWORDS, 0, 0, "keyword"},
{RPMTAG_BUILDPLATFORMS, 0, 0, "buildplatforms"},
+#if defined(RPM_VENDOR_OPENPKG) /* make-class-available-as-macro */
+ {RPMTAG_CLASS, 0, 0, "class"},
+#endif
/[EMAIL PROTECTED]@*/ /* LCL: can't add null annotation */
{0, 0, 0, 0}
/[EMAIL PROTECTED]@*/
@@ .
______________________________________________________________________
RPM Package Manager http://rpm5.org
CVS Sources Repository [EMAIL PROTECTED]