RPM Community Forums

Mailing List Message of <rpm-cvs>

[CVS] RPM: rpm/ CHANGES rpm/rpmdb/ hdrfmt.c rpmtag.h

From: Jeff Johnson <jbj@rpm5.org>
Date: Sat 26 Jan 2008 - 18:05:02 CET
Message-Id: <20080126170502.D260F348464@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 18:05:02
  Branch: HEAD                             Handle: 2008012617050200

  Modified files:
    rpm                     CHANGES
    rpm/rpmdb               hdrfmt.c rpmtag.h

  Log:
    - jbj: stub in RPMTAG_FILESTAT and RPMTAG_STAT extensions, w-i-p.

  Summary:
    Revision    Changes     Path
    1.2099      +1  -0      rpm/CHANGES
    1.63        +47 -0      rpm/rpmdb/hdrfmt.c
    1.35        +2  -0      rpm/rpmdb/rpmtag.h
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.2098 -r1.2099 CHANGES
  --- rpm/CHANGES	26 Jan 2008 04:12:43 -0000	1.2098
  +++ rpm/CHANGES	26 Jan 2008 17:05:02 -0000	1.2099
  @@ -1,4 +1,5 @@
   5.0.0 -> 5.1a1:
  +    - jbj: stub in RPMTAG_FILESTAT and RPMTAG_STAT extensions, w-i-p.
       - jbj: re-add PayloadFilesHavePrefix/CompressedFileNames w --lsb.
       - rse: provide %{shrink:<body>} macro for removing leading+trailing and removing intermediate whitespaces
       - rse: allow sub-shell and Lua independent speedy lookup of environment variables via %{getenv:<name>} in macros
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/hdrfmt.c
  ============================================================================
  $ cvs diff -u -r1.62 -r1.63 hdrfmt.c
  --- rpm/rpmdb/hdrfmt.c	23 Dec 2007 00:14:01 -0000	1.62
  +++ rpm/rpmdb/hdrfmt.c	26 Jan 2008 17:05:02 -0000	1.63
  @@ -1659,6 +1659,49 @@
       return _fnTag(h, he);
   }
   
  +static int filestatTag(Header h, HE_t he)
  +	/*@modifies he @*/
  +{
  +    rpmTagData paths = { .ptr = NULL };
  +    /* _dev */
  +    rpmTagData _ino = { .ptr = NULL };
  +    rpmTagData _mode = { .ptr = NULL };
  +    /* _nlink */
  +    /* _uid */
  +    /* _gid */
  +    rpmTagData _rdev = { .ptr = NULL };
  +    rpmTagData _size = { .ptr = NULL };
  +    /* _blksize */
  +    /* _blocks */
  +    /* _atime */
  +    rpmTagData _mtime = { .ptr = NULL };
  +    /* st_ctime */
  +    int rc;
  +
  +    he->tag = RPMTAG_BASENAMES;
  +    if ((rc = _fnTag(h, he)) != 0 || he->c == 0)
  +	goto exit;
  +
  +exit:
  +    paths.ptr = _free(paths.ptr);
  +    _ino.ptr = _free(_ino.ptr);
  +    _mode.ptr = _free(_mode.ptr);
  +    _rdev.ptr = _free(_rdev.ptr);
  +    _size.ptr = _free(_size.ptr);
  +    _mtime.ptr = _free(_mtime.ptr);
  +    return rc;
  +}
  +
  +static int diskstatTag(Header h, HE_t he)
  +	/*@modifies he @*/
  +{
  +    int rc;
  +
  +    he->tag = RPMTAG_BASENAMES;
  +    rc = _fnTag(h, he);
  +    return rc;
  +}
  +
   /*@-type@*/ /* FIX: cast? */
   static struct headerSprintfExtension_s _headerCompoundFormats[] = {
       { HEADER_EXT_TAG, "RPMTAG_CHANGELOGNAME",
  @@ -1687,6 +1730,10 @@
   	{ .tagFunction = filepathsTag } },
       { HEADER_EXT_TAG, "RPMTAG_ORIGPATHS",
   	{ .tagFunction = origpathsTag } },
  +    { HEADER_EXT_TAG, "RPMTAG_FILESTAT",
  +	{ .tagFunction = filestatTag } },
  +    { HEADER_EXT_TAG, "RPMTAG_STAT",
  +	{ .tagFunction = diskstatTag } },
       { HEADER_EXT_FORMAT, "armor",
   	{ .fmtFunction = armorFormat } },
       { HEADER_EXT_FORMAT, "base64",
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/rpmtag.h
  ============================================================================
  $ cvs diff -u -r1.34 -r1.35 rpmtag.h
  --- rpm/rpmdb/rpmtag.h	28 Dec 2007 10:05:56 -0000	1.34
  +++ rpm/rpmdb/rpmtag.h	26 Jan 2008 17:05:02 -0000	1.35
  @@ -410,6 +410,8 @@
       RPMTAG_TRACKPROG		= 1204, /* s internal arbitrary */
       RPMTAG_SANITYCHECK		= 1205, /* s */
       RPMTAG_SANITYCHECKPROG	= 1206, /* s */
  +    RPMTAG_FILESTAT		= 1207, /* s[] stat(2) from metadata extension*/
  +    RPMTAG_STAT			= 1208, /* s[] stat(2) from disk extension */
   
   /*@-enummemuse@*/
       RPMTAG_FIRSTFREE_TAG	/*!< internal */
  @@ .
Received on Sat Jan 26 18:05:02 2008
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.