SOURCES (AC-branch): rpm-truncate-cvslog.patch (NEW) - truncate cv...

glen glen at pld-linux.org
Wed Apr 26 21:36:23 CEST 2006


Author: glen                         Date: Wed Apr 26 19:36:23 2006 GMT
Module: SOURCES                       Tag: AC-branch
---- Log message:
- truncate cvs changelog at build time if configured

---- Files affected:
SOURCES:
   rpm-truncate-cvslog.patch (NONE -> 1.1.2.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/rpm-truncate-cvslog.patch
diff -u /dev/null SOURCES/rpm-truncate-cvslog.patch:1.1.2.1
--- /dev/null	Wed Apr 26 21:36:23 2006
+++ SOURCES/rpm-truncate-cvslog.patch	Wed Apr 26 21:36:18 2006
@@ -0,0 +1,65 @@
+# vim:ts=8:sw=4
+--- rpm-4.4.2/build/parseChangelog.c	2006-04-26 22:34:05.263994598 +0300
++++ rpm-4.4.2-truncate-changelog/build/parseChangelog.c	2006-04-26 22:32:50.622329157 +0300
+@@ -8,6 +8,9 @@
+ #include "rpmbuild.h"
+ #include "debug.h"
+ 
++#define CVS_RCSID "$""Log: "
++#define CVS_REVISION "Revision "
++
+ void addChangelogEntry(Header h, time_t time, const char *name, const char *text)
+ {
+     int_32 mytime = time;	/* XXX convert to header representation */
+@@ -116,6 +119,7 @@
+     time_t time;
+     time_t lastTime = 0;
+     char *date, *name, *text, *next;
++    int numchangelog = rpmExpandNumeric("%{?_buildchangelog}");
+ 
+     s = getStringBuf(sb);
+ 
+@@ -197,6 +202,43 @@
+ 	while ((s > text) && xisspace(*s)) {
+ 	    *s-- = '\0';
+ 	}
++
++	if (numchangelog && (s = strstr(text, CVS_RCSID))) {
++	    /* find end of line */
++	    while(*s && *s != '\n') s++;
++	    if (!*s) {
++		rpmError(RPMERR_BADSPEC, _("incomplete %%changelog entry\n"));
++		return RPMERR_BADSPEC;
++	    }
++	    s++;
++	    if (!*s) {
++		rpmError(RPMERR_BADSPEC, _("incomplete %%changelog entry\n"));
++		return RPMERR_BADSPEC;
++	    }
++
++	    /* we reached place where first Revisions should be */
++	    i = 0;
++	    while (1) {
++		if (strncmp(s, CVS_REVISION, sizeof(CVS_REVISION) - 1) == 0) {
++		    if (i++ == numchangelog) {
++			break;
++		    }
++		}
++		while(*s && *s != '\n') s++;
++		if (!*s) {
++		    break;
++		}
++		s++;
++	    }
++
++	    if (*s) {
++		s--;
++		/* backup to the beginning of line */
++		while ((s > text) && (*s == '\n' || xisspace(*s))) {
++		    *s-- = '\0';
++		}
++	    }
++	}
+ 	
+ 	addChangelogEntry(h, time, name, text);
+ 	s = next;
================================================================


More information about the pld-cvs-commit mailing list