RPM Community Forums

Mailing List Message of <rpm-cvs>

[CVS] RPM: rpm/ CHANGES rpm/build/ pack.c parseSpec.c rpm/lib/ depends...

From: Jeff Johnson <jbj@rpm5.org>
Date: Fri 07 Dec 2007 - 20:54:19 CET
Message-Id: <20071207195419.4761D34848D@rpm5.org>
  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
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.