RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson
Root: /v/rpm/cvs Email: jbj@rpm5.org
Module: rpm Date: 07-Dec-2007 20:54:19
Branch: HEAD Handle: 2007120719541800
Modified files:
rpm CHANGES macros.in
rpm/build pack.c parseSpec.c
rpm/lib depends.c rpmns.c rpmns.h
Log:
- jbj: pop RPMTAG_TRACK work-in-progress into CVS. push "segfault on
HEAD".
Summary:
Revision Changes Path
1.1957 +1 -0 rpm/CHANGES
2.271 +23 -1 rpm/build/pack.c
2.124 +3 -9 rpm/build/parseSpec.c
1.371 +21 -0 rpm/lib/depends.c
1.7 +2 -0 rpm/lib/rpmns.c
1.9 +1 -0 rpm/lib/rpmns.h
1.208 +2 -1 rpm/macros.in
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.1956 -r1.1957 CHANGES
--- rpm/CHANGES 6 Dec 2007 23:32:04 -0000 1.1956
+++ rpm/CHANGES 7 Dec 2007 19:54:18 -0000 1.1957
@@ -1,4 +1,5 @@
5.0a4 -> 5.0b1:
+ - jbj: pop RPMTAG_TRACK work-in-progress into CVS. push "segfault on HEAD".
- jbj: stub in Requires: sanitycheck(N) probe. needs to run the script, duh.
- jbj: drill sanitycheck exec into psmStage() like %verifyscript.
- jbj: --rebuilddb has too many NOKEY's using rpmnss. use rpmbc in beta1.
@@ .
patch -p0 <<'@@ .'
Index: rpm/build/pack.c
============================================================================
$ cvs diff -u -r2.270 -r2.271 pack.c
--- rpm/build/pack.c 6 Dec 2007 22:06:33 -0000 2.270
+++ rpm/build/pack.c 7 Dec 2007 19:54:18 -0000 2.271
@@ -1122,6 +1122,7 @@
struct cpioSourceArchive_s csabuf;
CSA_t csa = &csabuf;
int rc;
+ int xx;
/* Add rpmlib markers for tracking. */
(void) rpmlibMarkers(spec->sourceHeader);
@@ -1129,7 +1130,6 @@
(void) genSourceRpmName(spec);
{ const char ** av = NULL;
- int xx;
(void)rpmGetMacroEntries(NULL, NULL, 1, &av);
if (av != NULL && av[0] != NULL) {
he->tag = RPMTAG_BUILDMACROS;
@@ -1141,6 +1141,27 @@
av = argvFree(av);
}
+ if (spec->track != NULL) {
+ const char * track = getStringBuf(spec->track);
+ he->p.str = rpmExpand("%{?__vcheck}", NULL);
+ if (track != NULL && track[0] != '\0'
+ && he->p.str != NULL && he->p.str[0] != '\0')
+ {
+ he->tag = RPMTAG_TRACKPROG;
+ he->t = RPM_STRING_TYPE;
+ he->c = 1;
+ if (he->p.str != NULL && he->p.str[0] != '\0')
+ xx = headerPut(spec->sourceHeader, he, 0);
+ he->p.str = _free(he->p.str);
+ he->tag = RPMTAG_TRACK;
+ he->t = RPM_STRING_TYPE;
+ he->p.str = track;
+ he->c = 1;
+ xx = headerPut(spec->sourceHeader, he, 0);
+ } else
+ he->p.str = _free(he->p.str);
+ }
+
spec->cookie = _free(spec->cookie);
/* XXX this should be %_srpmdir */
@@ -1164,6 +1185,7 @@
/*@=type@*/
fn = _free(fn);
}
+
return rc;
}
/*@=boundswrite@*/
@@ .
patch -p0 <<'@@ .'
Index: rpm/build/parseSpec.c
============================================================================
$ cvs diff -u -r2.123 -r2.124 parseSpec.c
--- rpm/build/parseSpec.c 6 Dec 2007 20:19:09 -0000 2.123
+++ rpm/build/parseSpec.c 7 Dec 2007 19:54:18 -0000 2.124
@@ -43,7 +43,7 @@
{ PART_TRIGGERIN, 0, "%triggerin"},
{ PART_TRIGGERIN, 0, "%trigger"},
{ PART_VERIFYSCRIPT, 0, "%verifyscript"},
- { PART_TRACK, 0, "%track"}, /* support "%track" script/section */
+ { PART_TRACK, 0, "%track"}, /* support "%track" scriptlet */
{ PART_SANITYCHECK, 0, "%sanitycheck"}, /* support "%sanitycheck" scriptlet */
{0, 0, 0}
};
@@ -494,6 +494,7 @@
case PART_BUILD:
case PART_INSTALL:
case PART_CHECK:
+ case PART_TRACK: /* support "%track" scriptlet */
case PART_CLEAN:
parsePart = parseBuildInstallClean(spec, parsePart);
/*@switchbreak@*/ break;
@@ -511,6 +512,7 @@
case PART_PRETRANS:
case PART_POSTTRANS:
case PART_VERIFYSCRIPT:
+ case PART_SANITYCHECK:
case PART_TRIGGERPREIN:
case PART_TRIGGERIN:
case PART_TRIGGERUN:
@@ -526,14 +528,6 @@
case PART_LAST:
case PART_BUILDARCHITECTURES:
/*@switchbreak@*/ break;
-
- case PART_TRACK: /* support "%track" script/section */
- parsePart = parseBuildInstallClean(spec, parsePart);
- /*@switchbreak@*/ break;
- /* support "%sanitycheck" script/section */
- case PART_SANITYCHECK:
- parsePart = parseScript(spec, parsePart);
- /*@switchbreak@*/ break;
}
if (goterror || parsePart >= PART_LAST) {
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/depends.c
============================================================================
$ cvs diff -u -r1.370 -r1.371 depends.c
--- rpm/lib/depends.c 6 Dec 2007 23:32:05 -0000 1.370
+++ rpm/lib/depends.c 7 Dec 2007 19:54:18 -0000 1.371
@@ -912,6 +912,27 @@
goto exit;
}
+ if (NSType == RPMNS_TYPE_VCHECK) {
+ rc = 1; /* assume failure */
+ if (rpmtsGetRdb(ts) != NULL) {
+ mi = rpmtsInitIterator(ts, RPMTAG_PROVIDENAME, Name, 0);
+ while ((h = rpmdbNextIterator(mi)) != NULL) {
+ if (!rpmdsAnyMatchesDep(h, dep, _rpmds_nopromote))
+ continue;
+ rc = (headerIsEntry(h, RPMTAG_TRACK) == 0);
+ if (rc == 0) {
+ /* XXX FIXME: actually run the vcheck script. */
+ break;
+ }
+ }
+ mi = rpmdbFreeIterator(mi);
+ }
+ if (Flags & RPMSENSE_MISSINGOK)
+ goto unsatisfied;
+ rpmdsNotify(dep, _("(vcheck probe)"), rc);
+ goto exit;
+ }
+
/* Search system configured provides. */
if (sysinfo_path == NULL) {
sysinfo_path = rpmExpand("%{?_rpmds_sysinfo_path}", NULL);
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpmns.c
============================================================================
$ cvs diff -u -r1.6 -r1.7 rpmns.c
--- rpm/lib/rpmns.c 6 Dec 2007 23:32:05 -0000 1.6
+++ rpm/lib/rpmns.c 7 Dec 2007 19:54:18 -0000 1.7
@@ -78,6 +78,7 @@
{ "envvar", RPMNS_TYPE_ENVVAR },
{ "running", RPMNS_TYPE_RUNNING },
{ "sanitycheck", RPMNS_TYPE_SANITY },
+ { "vcheck", RPMNS_TYPE_VCHECK },
{ "exists", RPMNS_TYPE_ACCESS },
{ "executable", RPMNS_TYPE_ACCESS },
{ "readable", RPMNS_TYPE_ACCESS },
@@ -194,6 +195,7 @@
case RPMNS_TYPE_ENVVAR:
case RPMNS_TYPE_RUNNING:
case RPMNS_TYPE_SANITY:
+ case RPMNS_TYPE_VCHECK:
ns->NS = ns->str;
if (ns->NS[0] == '!')
ns->NS++;
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpmns.h
============================================================================
$ cvs diff -u -r1.8 -r1.9 rpmns.h
--- rpm/lib/rpmns.h 6 Dec 2007 23:32:05 -0000 1.8
+++ rpm/lib/rpmns.h 7 Dec 2007 19:54:18 -0000 1.9
@@ -49,6 +49,7 @@
RPMNS_TYPE_ENVVAR = (1 << 23), /*!< envvar(foo) */
RPMNS_TYPE_RUNNING = (1 << 24), /*!< running(foo) */
RPMNS_TYPE_SANITY = (1 << 25), /*!< sanitycheck(foo) */
+ RPMNS_TYPE_VCHECK = (1 << 26), /*!< vcheck(foo) */
} nsType;
#if defined(_RPMNS_INTERNAL)
@@ .
patch -p0 <<'@@ .'
Index: rpm/macros.in
============================================================================
$ cvs diff -u -r1.207 -r1.208 macros.in
--- rpm/macros.in 6 Dec 2007 21:26:44 -0000 1.207
+++ rpm/macros.in 7 Dec 2007 19:54:18 -0000 1.208
@@ -1,7 +1,7 @@
#/*! \page config_macros Default configuration: @USRLIBRPM@/macros
# \verbatim
#
-# $Id: macros.in,v 1.207 2007/12/06 21:26:44 rse Exp $
+# $Id: macros.in,v 1.208 2007/12/07 19:54:18 jbj 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
@@ -85,6 +85,7 @@
%__tar @__TAR@
%__tclsh @__TCLSH@
%__unzip @__UNZIP@
+%__vcheck %{__rpmhome}/vcheck
%__wget @__WGET@
%__xar @__XAR@
@@ .
Received on Fri Dec 7 20:54:19 2007