RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Ralf S. Engelschall
Root: /v/rpm/cvs Email: rse@rpm5.org
Module: rpm Date: 27-Dec-2007 15:16:12
Branch: HEAD Handle: 2007122714161100
Modified files:
rpm CHANGES macros.in
rpm/build parseSpec.c rpmspec.h spec.c
Log:
make size of line buffer for .spec file parsing run-time configurable
via macro _spec_line_buffer_size
Summary:
Revision Changes Path
1.2022 +1 -0 rpm/CHANGES
2.130 +1 -1 rpm/build/parseSpec.c
2.70 +2 -1 rpm/build/rpmspec.h
2.174 +4 -1 rpm/build/spec.c
1.221 +5 -1 rpm/macros.in
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.2021 -r1.2022 CHANGES
--- rpm/CHANGES 27 Dec 2007 09:19:57 -0000 1.2021
+++ rpm/CHANGES 27 Dec 2007 14:16:11 -0000 1.2022
@@ -1,4 +1,5 @@
5.0b3 -> 5.0b4:
+ - rse: make size of line buffer for .spec file parsing run-time configurable via macro _spec_line_buffer_size
- rse: improve %patch macro implementation: less expansion redundancy and macro namespace collision avoidance
- rse: fix %{uncompress:<file>.lzo} by passing the required "-dc" options to LZOP's lzop(1)
- rse: fix %{uncompress:<file>.lzma} by passing the required "-dc" options to LZMA Utils' lzma(1)
@@ .
patch -p0 <<'@@ .'
Index: rpm/build/parseSpec.c
============================================================================
$ cvs diff -u -r2.129 -r2.130 parseSpec.c
--- rpm/build/parseSpec.c 20 Dec 2007 23:35:28 -0000 2.129
+++ rpm/build/parseSpec.c 27 Dec 2007 14:16:11 -0000 2.130
@@ -231,7 +231,7 @@
/* 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))) {
+ expandMacros(spec, spec->macros, spec->lbuf, spec->lbuf_len)) {
rpmlog(RPMLOG_ERR, _("line %d: %s\n"),
spec->lineNum, spec->lbuf);
return RPMRC_FAIL;
@@ .
patch -p0 <<'@@ .'
Index: rpm/build/rpmspec.h
============================================================================
$ cvs diff -u -r2.69 -r2.70 rpmspec.h
--- rpm/build/rpmspec.h 18 Dec 2007 19:40:52 -0000 2.69
+++ rpm/build/rpmspec.h 27 Dec 2007 14:16:11 -0000 2.70
@@ -117,7 +117,8 @@
/*@owned@*/
struct OpenFileInfo * fileStack;
- char lbuf[10*BUFSIZ];
+ char *lbuf;
+ size_t lbuf_len;
/*@dependent@*/
char *lbufPtr;
char nextpeekc;
@@ .
patch -p0 <<'@@ .'
Index: rpm/build/spec.c
============================================================================
$ cvs diff -u -r2.173 -r2.174 spec.c
--- rpm/build/spec.c 18 Dec 2007 19:40:52 -0000 2.173
+++ rpm/build/spec.c 27 Dec 2007 14:16:11 -0000 2.174
@@ -472,7 +472,8 @@
spec->st = newSt();
spec->fileStack = NULL;
- spec->lbuf[0] = '\0';
+ spec->lbuf_len = (size_t)rpmExpandNumeric("%{?_spec_line_buffer_size}%{!?_spec_line_buffer_size:10000}");
+ spec->lbuf = (char *)xcalloc(1, spec->lbuf_len);
spec->line = spec->lbuf;
spec->nextline = NULL;
spec->nextpeekc = '\0';
@@ -527,6 +528,8 @@
if (spec == NULL) return NULL;
+ spec->lbuf = _free(spec->lbuf);
+
spec->sl = freeSl(spec->sl);
spec->st = freeSt(spec->st);
@@ .
patch -p0 <<'@@ .'
Index: rpm/macros.in
============================================================================
$ cvs diff -u -r1.220 -r1.221 macros.in
--- rpm/macros.in 27 Dec 2007 09:19:57 -0000 1.220
+++ rpm/macros.in 27 Dec 2007 14:16:11 -0000 1.221
@@ -1,7 +1,7 @@
#/*! \page config_macros Default configuration: @USRLIBRPM@/macros
# \verbatim
#
-# $Id: macros.in,v 1.220 2007/12/27 09:19:57 rse Exp $
+# $Id: macros.in,v 1.221 2007/12/27 14:16:11 rse Exp $
#
# This is a global RPM configuration file. All changes made here will
# be lost when the rpm package is upgraded. Any per-system configuration
@@ -530,6 +530,10 @@
# Colon separated list of permitted arbitrary tag names
%_arbitrary_tags Class:Track:Trackprog:Foo:Bar:Baz
+#
+# Byte size of line buffer for .spec file parsing
+%_spec_line_buffer_size 10000
+
#==============================================================================
# ---- Database configuration macros.
# Macros used to configure Berkley db parameters.
@@ .
Received on Thu Dec 27 15:16:12 2007