RPM Community Forums

Mailing List Message of <rpm-cvs>

[CVS] RPM: rpm/ CHANGES rpm/lib/ depends.c verify.c

From: Jeff Johnson <jbj@rpm5.org>
Date: Sat 26 Jan 2008 - 22:19:49 CET
Message-Id: <20080126211949.23C6A348464@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:   26-Jan-2008 22:19:49
  Branch: HEAD                             Handle: 2008012621194800

  Modified files:
    rpm                     CHANGES
    rpm/lib                 depends.c verify.c

  Log:
    - fix: no output performing verify(...) probe.
    - fix: insure valid exit code for verify(...) probe.

  Summary:
    Revision    Changes     Path
    1.2101      +2  -0      rpm/CHANGES
    1.379       +1  -1      rpm/lib/depends.c
    2.183       +17 -12     rpm/lib/verify.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.2100 -r1.2101 CHANGES
  --- rpm/CHANGES	26 Jan 2008 17:44:17 -0000	1.2100
  +++ rpm/CHANGES	26 Jan 2008 21:19:48 -0000	1.2101
  @@ -1,4 +1,6 @@
   5.0.0 -> 5.1a1:
  +    - jbj: fix: no output performing verify(...) probe.
  +    - jbj: fix: insure valid exit code for verify(...) probe.
       - jbj: add verify(N) = E:V-R runtime dependency probe. more to do ...
       - jbj: stub in RPMTAG_FILESTAT and RPMTAG_STAT extensions, w-i-p.
       - jbj: re-add PayloadFilesHavePrefix/CompressedFileNames w --lsb.
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/lib/depends.c
  ============================================================================
  $ cvs diff -u -r1.378 -r1.379 depends.c
  --- rpm/lib/depends.c	26 Jan 2008 17:44:17 -0000	1.378
  +++ rpm/lib/depends.c	26 Jan 2008 21:19:48 -0000	1.379
  @@ -848,6 +848,7 @@
       if (NSType == RPMNS_TYPE_VERIFY) {
   	QVA_t qva = memset(alloca(sizeof(*qva)), 0, sizeof(*qva));
   
  +	qva->qva_mode = 'v';
   	qva->qva_flags = VERIFY_ALL & ~(VERIFY_DEPS|VERIFY_SCRIPT);
   	rc = 0;		/* assume success */
   	if (rpmtsGetRdb(ts) != NULL) {
  @@ -856,7 +857,6 @@
   		if (!rpmdsAnyMatchesDep(h, dep, _rpmds_nopromote))
   		    continue;
   		xx = (showVerifyPackage(qva, ts, h) ? 1 : 0);
  -fprintf(stderr, "==> xx %d\n", xx);
   		if (xx)
   		    rc = 1;
   	    }
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/lib/verify.c
  ============================================================================
  $ cvs diff -u -r2.182 -r2.183 verify.c
  --- rpm/lib/verify.c	6 Dec 2007 23:32:05 -0000	2.182
  +++ rpm/lib/verify.c	26 Jan 2008 21:19:48 -0000	2.183
  @@ -301,6 +301,7 @@
   
   	rc = rpmVerifyFile(ts, fi, &verifyResult, omitMask);
   	if (rc) {
  +	    if (qva->qva_mode != 'v')	/* XXX no output w verify(...) probe. */
   	    if (!(fflags & (RPMFILE_MISSINGOK|RPMFILE_GHOST)) || rpmIsVerbose()) {
   		sprintf(te, _("missing   %c %s"),
   			((fflags & RPMFILE_CONFIG)	? 'c' :
  @@ -323,8 +324,10 @@
   	    /*@observer@*/ static const char *const aok = ".";
   	    /*@observer@*/ static const char *const unknown = "?";
   
  -	    ec = 1;
  +	    if (!ec)
  +		ec = (verifyResult != 0);
   
  +	    if (qva->qva_mode != 'v') {	/* XXX no output w verify(...) probe. */
   #define	_verify(_RPMVERIFY_F, _C)	\
   	((verifyResult & _RPMVERIFY_F) ? _C : aok)
   #define	_verifylink(_RPMVERIFY_F, _C)	\
  @@ -334,21 +337,21 @@
   	((verifyResult & RPMVERIFY_READFAIL) ? unknown : \
   	 (verifyResult & _RPMVERIFY_F) ? _C : aok)
   	
  -	    digest = _verifyfile(RPMVERIFY_FDIGEST, "5");
  -	    size = _verify(RPMVERIFY_FILESIZE, "S");
  -	    link = _verifylink(RPMVERIFY_LINKTO, "L");
  -	    mtime = _verify(RPMVERIFY_MTIME, "T");
  -	    rdev = _verify(RPMVERIFY_RDEV, "D");
  -	    user = _verify(RPMVERIFY_USER, "U");
  -	    group = _verify(RPMVERIFY_GROUP, "G");
  -	    mode = _verify(RPMVERIFY_MODE, "M");
  +		digest = _verifyfile(RPMVERIFY_FDIGEST, "5");
  +		size = _verify(RPMVERIFY_FILESIZE, "S");
  +		link = _verifylink(RPMVERIFY_LINKTO, "L");
  +		mtime = _verify(RPMVERIFY_MTIME, "T");
  +		rdev = _verify(RPMVERIFY_RDEV, "D");
  +		user = _verify(RPMVERIFY_USER, "U");
  +		group = _verify(RPMVERIFY_GROUP, "G");
  +		mode = _verify(RPMVERIFY_MODE, "M");
   
   #undef _verifyfile
   #undef _verifylink
   #undef _verify
   
  -	    sprintf(te, "%s%s%s%s%s%s%s%s  %c %s",
  -		size, mode, digest, rdev, link, user, group, mtime,
  +		sprintf(te, "%s%s%s%s%s%s%s%s  %c %s",
  +		    size, mode, digest, rdev, link, user, group, mtime,
   			((fflags & RPMFILE_CONFIG)	? 'c' :
   			 (fflags & RPMFILE_DOC)	? 'd' :
   			 (fflags & RPMFILE_GHOST)	? 'g' :
  @@ -356,9 +359,11 @@
   			 (fflags & RPMFILE_PUBKEY)	? 'P' :
   			 (fflags & RPMFILE_README)	? 'r' : ' '),
   			rpmfiFN(fi));
  -	    te += strlen(te);
  +		te += strlen(te);
  +	    }
   	}
   
  +	if (qva->qva_mode != 'v')	/* XXX no output w verify(...) probe. */
   	if (te > t) {
   	    *te++ = '\n';
   	    *te = '\0';
  @@ .
Received on Sat Jan 26 22:19:49 2008
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.