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

  Server: rpm5.org                         Name:   Jeff Johnson
  Root:   /v/rpm/cvs                       Email:  j...@rpm5.org
  Module: rpm                              Date:   14-Dec-2009 00:06:06
  Branch: HEAD                             Handle: 2009121323060501

  Modified files:
    rpm                     CHANGES
    rpm/rpmdb               db3.c librpmdb.vers rpmdb.c

  Log:
    - rpmdb: permit patterns on (little used) secondary indices.
    - rpmdb: stub-in an event_notify callback.
    - rpmdb: wire up DB_RECOVER progress feedback callback.

  Summary:
    Revision    Changes     Path
    1.3198      +3  -0      rpm/CHANGES
    1.137       +54 -4      rpm/rpmdb/db3.c
    1.82        +1  -0      rpm/rpmdb/librpmdb.vers
    1.367       +6  -0      rpm/rpmdb/rpmdb.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.3197 -r1.3198 CHANGES
  --- rpm/CHANGES       13 Dec 2009 22:05:10 -0000      1.3197
  +++ rpm/CHANGES       13 Dec 2009 23:06:05 -0000      1.3198
  @@ -1,5 +1,8 @@
   
   5.2b1 -> 5.3a1
  +    - jbj: rpmdb: permit patterns on (little used) secondary indices.
  +    - jbj: rpmdb: stub-in an event_notify callback.
  +    - jbj: rpmdb: wire up DB_RECOVER progress feedback callback.
       - jbj: rpmlio: Register logio dispatch handler with db_recover.
       - jbj: rpmdb: Switch to inplace rpmtsRebuildDB(), eliminate 
rpmdbRebuild().
       - jbj: rpmmi: Eliminate rpmmiSetHdrChk(), get ts out of the rpmdb layer.
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/db3.c
  ============================================================================
  $ cvs diff -u -r1.136 -r1.137 db3.c
  --- rpm/rpmdb/db3.c   13 Dec 2009 20:15:25 -0000      1.136
  +++ rpm/rpmdb/db3.c   13 Dec 2009 23:06:06 -0000      1.137
  @@ -32,7 +32,6 @@
   extern int logio_dispatch(DB_ENV * dbenv, DBT * dbt, DB_LSN * lsn, db_recops 
op)
        /*...@*/;
   
  -
   #if !defined(DB_CLIENT)      /* XXX db-4.2.42 retrofit */
   #define      DB_CLIENT       DB_RPCCLIENT
   #endif
  @@ -677,6 +676,53 @@
   }
   
   /*==============================================================*/
  +#define      _TABLE(_v)      { #_v, DB_EVENT_##_v }
  +static struct _events_s {
  +    const char * n;
  +    uint32_t v;
  +} _events[] = {
  +    _TABLE(NO_SUCH_EVENT),   /*  0 */
  +    _TABLE(PANIC),           /*  1 */
  +    _TABLE(REG_ALIVE),               /*  2 */
  +    _TABLE(REG_PANIC),               /*  3 */
  +    _TABLE(REP_CLIENT),              /*  4 */
  +    _TABLE(REP_ELECTED),     /*  5 */
  +    _TABLE(REP_MASTER),              /*  6 */
  +    _TABLE(REP_NEWMASTER),   /*  7 */
  +    _TABLE(REP_PERM_FAILED), /*  8 */
  +    _TABLE(REP_STARTUPDONE), /*  9 */
  +    _TABLE(WRITE_FAILED),    /* 10 */
  +    _TABLE(NO_SUCH_EVENT),   /* 11 */
  +    _TABLE(NO_SUCH_EVENT),   /* 12 */
  +    _TABLE(NO_SUCH_EVENT),   /* 13 */
  +    _TABLE(NO_SUCH_EVENT),   /* 14 */
  +    _TABLE(NO_SUCH_EVENT),   /* 15 */
  +};
  +#undef       _TABLE
  +
  +static void
  +rpmdbe_event_notify(DB_ENV * dbenv, u_int32_t event, void * event_info)
  +{
  +    void * o = (dbenv ? dbenv->app_private : NULL);
  +fprintf(stderr, "==> %s(%p, %s(%u), %p) app_private %p\n", __FUNCTION__, 
dbenv, _events[event & 0xf].n, event, event_info, o);
  +}
  +
  +static void
  +rpmdbe_feedback(DB_ENV * dbenv, u_int32_t opcode, int percent)
  +     /*...@*/
  +{
  +    dbenv = NULL;
  +    dbenv = dbenv;
  +    switch (opcode) {
  +    case DB_RECOVER:
  +     fprintf(stderr, "\rrecovery %d%% complete", percent);
  +     (void)fflush(stderr);   /* XXX unnecessary? */
  +     /*...@fallthrough@*/
  +    default:
  +     break;
  +    }
  +}
  +
   /*...@-moduncon@*/ /* FIX: annotate db3 methods */
   static int db_init(dbiIndex dbi, const char * dbhome,
                /*...@null@*/ const char * dbfile,
  @@ -747,7 +793,11 @@
    /* 4.1: dbenv->set_data_dir(???) */
    /* 4.1: dbenv->set_encrypt(???) */
   
  - /* 4.1: dbenv->set_feedback(???) */
  +    xx = dbenv->set_feedback(dbenv, rpmdbe_feedback);
  +    xx = cvtdberr(dbi, "dbenv->set_feedback", xx, _debug);
  +    xx = dbenv->set_event_notify(dbenv, rpmdbe_event_notify);
  +    xx = cvtdberr(dbi, "dbenv->set_event_notify", xx, _debug);
  +
    /* 4.1: dbenv->set_flags(???) */
   
    /* dbenv->set_paniccall(???) */
  @@ -778,7 +828,7 @@
   
        {   size_t _lo =  16 * 1024 * 1024;
            size_t _hi = 512 * 1024 * 1024;
  -         size_t _mp_mmapsize = _physmem / 2;
  +         size_t _mp_mmapsize = _physmem;     /* XXX default value? */
            if (_mp_mmapsize < _lo) _mp_mmapsize = _lo;
            if (_mp_mmapsize > _hi) _mp_mmapsize = _hi;
            xx = dbenv->set_mp_mmapsize(dbenv, _mp_mmapsize);
  @@ -820,7 +870,7 @@
        uint32_t _lo =  16 * 1024 * 1024;
        uint32_t _hi = 512 * 1024 * 1024;
        uint32_t _gb = 0;
  -     uint32_t _bytes = _physmem;
  +     uint32_t _bytes = _physmem;             /* XXX default value? */
        int _ncache = 4;
        if (_bytes < _lo) _bytes = _lo;
        if (_bytes > _hi) _bytes = _hi;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/librpmdb.vers
  ============================================================================
  $ cvs diff -u -r1.81 -r1.82 librpmdb.vers
  --- rpm/rpmdb/librpmdb.vers   13 Dec 2009 04:21:09 -0000      1.81
  +++ rpm/rpmdb/librpmdb.vers   13 Dec 2009 23:06:06 -0000      1.82
  @@ -81,6 +81,7 @@
       headerVerifyInfo;
       hGetColor;
       _init;
  +    logio_dispatch;
       logio_Chmod_log;
       logio_Chown_log;
       logio_Creat_log;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/rpmdb.c
  ============================================================================
  $ cvs diff -u -r1.366 -r1.367 rpmdb.c
  --- rpm/rpmdb/rpmdb.c 13 Dec 2009 20:19:00 -0000      1.366
  +++ rpm/rpmdb/rpmdb.c 13 Dec 2009 23:06:06 -0000      1.367
  @@ -2482,6 +2482,11 @@
        tag = RPMTAG_NVRA;
        /*...@fallthrough@*/
       case RPMTAG_NVRA:
  +    case RPMTAG_NAME:
  +    case RPMTAG_VERSION:
  +    case RPMTAG_RELEASE:
  +    case RPMTAG_ARCH:
  +    case RPMTAG_OS:
       case RPMTAG_GROUP:
        usePatterns = 1;
        break;
  @@ -2490,6 +2495,7 @@
        tag = RPMTAG_FILEPATHS;
        /*...@fallthrough@*/
       case RPMTAG_FILEPATHS:
  +    case RPMTAG_DIRNAMES:
        usePatterns = 1;
        break;
       }
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                rpm-cvs@rpm5.org

Reply via email to