RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Jeff Johnson
  Root:   /v/rpm/cvs                       Email:  [EMAIL PROTECTED]
  Module: rpm                              Date:   30-Jul-2007 21:42:59
  Branch: HEAD                             Handle: 2007073020425801

  Modified files:
    rpm                     CHANGES
    rpm/lib                 poptALL.c
    rpm/rpmdb               header.c librpmdb.vers

  Log:
    - --newmagic enabler to add new signature/metadata magic to headers.

  Summary:
    Revision    Changes     Path
    1.1533      +1  -0      rpm/CHANGES
    2.40        +3  -0      rpm/lib/poptALL.c
    1.54        +23 -2      rpm/rpmdb/header.c
    1.6         +1  -0      rpm/rpmdb/librpmdb.vers
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.1532 -r1.1533 CHANGES
  --- rpm/CHANGES       30 Jul 2007 18:38:28 -0000      1.1532
  +++ rpm/CHANGES       30 Jul 2007 19:42:58 -0000      1.1533
  @@ -1,4 +1,5 @@
   4.5 -> 5.0:
  +    - jbj: --newmagic enabler to add new signature/metadata magic to headers.
       - jbj: nobrainer --nolead & --nosigh disablers.
       - jbj: get rid of convertdb1.
       - jbj: HEADER_MAGIC_YES always: remove the enum and arguments everywhere.
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/lib/poptALL.c
  ============================================================================
  $ cvs diff -u -r2.39 -r2.40 poptALL.c
  --- rpm/lib/poptALL.c 30 Jul 2007 18:38:29 -0000      2.39
  +++ rpm/lib/poptALL.c 30 Jul 2007 19:42:59 -0000      2.40
  @@ -28,6 +28,7 @@
   
   int _nolead = 0;
   int _nosigh = 0;
  +extern int _newmagic;
   
   /[EMAIL PROTECTED]@*/
   static int _debug = 0;
  @@ -471,6 +472,8 @@
        N_("disable rpm lead"), NULL},
    { "nosigh", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &_nosigh, -1,
        N_("disable rpm signature header"), NULL},
  + { "newmagic", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &_newmagic, -1,
  +     N_("dupe region tag into lsb of magic"), NULL},
   
      POPT_TABLEEND
   };
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/header.c
  ============================================================================
  $ cvs diff -u -r1.53 -r1.54 header.c
  --- rpm/rpmdb/header.c        30 Jul 2007 17:34:37 -0000      1.53
  +++ rpm/rpmdb/header.c        30 Jul 2007 19:42:59 -0000      1.54
  @@ -20,6 +20,8 @@
   /[EMAIL PROTECTED]@*/
   int _hdr_debug = 0;
   
  +int _newmagic = 0;
  +
   /[EMAIL PROTECTED] entryInfo @*/
   /[EMAIL PROTECTED] indexEntry @*/
   
  @@ -39,6 +41,16 @@
        0x8e, 0xad, 0xe8, 0x01, 0x00, 0x00, 0x00, 0x00
   };
   
  +/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/
  +static unsigned char sigh_magic[8] = {
  +     0x8e, 0xad, 0xe8, 0x3e, 0x00, 0x00, 0x00, 0x00
  +};
  +
  +/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/
  +static unsigned char meta_magic[8] = {
  +     0x8e, 0xad, 0xe8, 0x3c, 0x00, 0x00, 0x00, 0x00
  +};
  +
   /** \ingroup header
    * Alignment needed for header data types.
    */
  @@ -1360,7 +1372,10 @@
   /[EMAIL PROTECTED]@*/
       {        /* XXX HEADER_MAGIC_YES */
        magic = block[i++];
  -     if (memcmp(&magic, header_magic, sizeof(magic)))
  +     if (!(  !memcmp(&magic, header_magic, sizeof(magic))
  +      ||     !memcmp(&magic, sigh_magic, sizeof(magic))
  +      ||     !memcmp(&magic, meta_magic, sizeof(magic))
  +     ))
            goto exit;
        reserved = block[i++];
       }
  @@ -1434,9 +1449,15 @@
       if (uh == NULL)
        return 1;
       {        /* XXX HEADER_MAGIC_YES */
  +     unsigned char mymagic[sizeof(header_magic)];
  +
  +     /* XXX create new magic from region marker. */
  +     memcpy(mymagic, header_magic, sizeof(header_magic));
  +     if (_newmagic && length > 16+3)
  +         mymagic[3] = ((unsigned char *)uh)[16+3];
   /[EMAIL PROTECTED]@*/
        /[EMAIL PROTECTED]@*/
  -     nb = Fwrite(header_magic, sizeof(char), sizeof(header_magic), fd);
  +     nb = Fwrite(mymagic, sizeof(char), sizeof(mymagic), fd);
        /[EMAIL PROTECTED]@*/
   /[EMAIL PROTECTED]@*/
        if (nb != sizeof(header_magic))
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/librpmdb.vers
  ============================================================================
  $ cvs diff -u -r1.5 -r1.6 librpmdb.vers
  --- rpm/rpmdb/librpmdb.vers   27 Jun 2007 20:44:08 -0000      1.5
  +++ rpm/rpmdb/librpmdb.vers   30 Jul 2007 19:42:59 -0000      1.6
  @@ -37,6 +37,7 @@
       hGetNEVRA;
       _init;
       rpm_mergesort;
  +    _newmagic;
       prDbiOpenFlags;
       rdbOptions;
       rpmDatabasePoptTable;
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                [email protected]

Reply via email to