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:   11-Apr-2010 19:47:32
  Branch: HEAD                             Handle: 2010041117472902

  Modified files:
    rpm                     CHANGES
    rpm/build               parseScript.c
    rpm/lib                 psm.c rpmds.c
    rpm/rpmio               rpmsql.c rpmsql.h

  Log:
    - rpmsql: stub-in the other "%post -p <sql>" embedding.

  Summary:
    Revision    Changes     Path
    1.3322      +1  -0      rpm/CHANGES
    2.78        +7  -1      rpm/build/parseScript.c
    2.395       +27 -2      rpm/lib/psm.c
    2.168       +5  -0      rpm/lib/rpmds.c
    2.21        +8  -0      rpm/rpmio/rpmsql.c
    2.12        +6  -0      rpm/rpmio/rpmsql.h
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.3321 -r1.3322 CHANGES
  --- rpm/CHANGES       11 Apr 2010 13:24:05 -0000      1.3321
  +++ rpm/CHANGES       11 Apr 2010 17:47:29 -0000      1.3322
  @@ -1,5 +1,6 @@
   
   5.2b1 -> 5.3a1
  +    - jbj: rpmsql: stub-in the other "%post -p <sql>" embedding.
       - jbj: rpmsql: try to read ~/.sqliterc sanely.
       - jbj: rpmsql: use rpmio for output, more refactoring.
       - jbj: rpmsql: another rafactoring pass adding doxygen/splint markup.
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/build/parseScript.c
  ============================================================================
  $ cvs diff -u -r2.77 -r2.78 parseScript.c
  --- rpm/build/parseScript.c   14 Sep 2009 21:32:20 -0000      2.77
  +++ rpm/build/parseScript.c   11 Apr 2010 17:47:31 -0000      2.78
  @@ -216,7 +216,7 @@
            if (prog[0] == '<') {
                if (prog[strlen(prog)-1] != '>') {
                    rpmlog(RPMLOG_ERR,
  -                          _("line %d: internal script must end "
  +                          _("line %d: embedded interpreter token must end "
                             "with \'>\': %s\n"), spec->lineNum, prog);
                    rc = RPMRC_FAIL;
                    goto exit;
  @@ -355,6 +355,12 @@
                                  "BuiltinSpookScripts", "5.3-1");
       } else
   #endif
  +#ifdef WITH_SQLITE
  +    if (!strcmp(progArgv[0], "<sql>")) {
  +     (void) rpmlibNeedsFeature(pkg->header,
  +                               "BuiltinSqlScripts", "5.3-1");
  +    } else
  +#endif
   #ifdef WITH_SQUIRREL
       if (!strcmp(progArgv[0], "<squirrel>")) {
        (void) rpmlibNeedsFeature(pkg->header,
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/lib/psm.c
  ============================================================================
  $ cvs diff -u -r2.394 -r2.395 psm.c
  --- rpm/lib/psm.c     19 Mar 2010 23:55:54 -0000      2.394
  +++ rpm/lib/psm.c     11 Apr 2010 17:47:30 -0000      2.395
  @@ -21,9 +21,16 @@
   #include <rpmpython.h>
   #include <rpmruby.h>
   #include <rpmsm.h>
  +#include <rpmsql.h>
   #include <rpmsquirrel.h>
   #include <rpmtcl.h>
   
  +#if defined(WITH_LUA) || defined(WITH_AUGEAS) || defined(WITH_FICL) || 
defined(WITH_JS) || defined(WITH_PERLEMBED) || defined(WITH_PYTHONEMBED) || 
defined(WITH_RUBYEMBED) || defined(WITH_SEMANAGE) || defined(WITH_SQLITE) || 
defined(WITH_SQUIRREL) || defined(WITH_TCL)
  +#define      _WITH_EMBEDDED
  +#else
  +#undef _WITH_ENBEDDED
  +#endif
  +
   #include <rpmtag.h>
   #include <rpmtypes.h>
   #include <pkgio.h>
  @@ -515,7 +522,7 @@
   }
   #endif       /* WITH_LUA */
   
  -#if defined(WITH_LUA) || defined(WITH_AUGEAS) || defined(WITH_FICL) || 
defined(WITH_JS) || defined(WITH_PERLEMBED) || defined(WITH_PYTHONEMBED) || 
defined(WITH_RUBYEMBED) || defined(WITH_SEMANAGE) || defined(WITH_SQUIRREL) || 
defined(WITH_TCL)
  +#if defined(_WITH_EMBEDDED)
   static int enterChroot(rpmpsm psm, int * fdnop)
        /*...@globals fileSystem, internalState @*/
        /*...@modifies psm, *fdnop, fileSystem, internalState @*/
  @@ -672,6 +679,22 @@
        sm = rpmsmFree(sm);
       } else
   #endif
  +#if defined(WITH_SQLITE)
  +    if (!strcmp(Phe->p.argv[0], "<sql>")) {
  +     rpmsql sql;
  +
  +     /* XXX HACK: lose the last $1 argument. */
  +     int ac = argvCount(av);
  +     const char * _avarg = av[ac-1];
  +     av[ac-1] = NULL;
  +     sql = rpmsqlNew((char **)av, 0);
  +     av[ac-1] = _avarg;
  +
  +     rc = rpmsqlRun(sql, script, NULL) == RPMRC_OK
  +         ? RPMRC_OK : RPMRC_FAIL;
  +     sql = rpmsqlFree(sql);
  +    } else
  +#endif
   #if defined(WITH_SQUIRREL)
       if (!strcmp(Phe->p.argv[0], "<squirrel>")) {
        rpmsquirrel squirrel = rpmsquirrelNew((char **)av, 0);
  @@ -780,15 +803,17 @@
       
       if (Phe->p.argv && Phe->p.argv[0])
       if (!strcmp(Phe->p.argv[0], "<lua>")
  +     || !strcmp(Phe->p.argv[0], "<augeas>")
        || !strcmp(Phe->p.argv[0], "<ficl>")
        || !strcmp(Phe->p.argv[0], "<js>")
        || !strcmp(Phe->p.argv[0], "<perl>")
        || !strcmp(Phe->p.argv[0], "<python>")
        || !strcmp(Phe->p.argv[0], "<ruby>")
  +     || !strcmp(Phe->p.argv[0], "<sql>")
        || !strcmp(Phe->p.argv[0], "<squirrel>")
        || !strcmp(Phe->p.argv[0], "<tcl>"))
       {
  -#if defined(WITH_LUA) || defined(WITH_FICL) || defined(WITH_JS) || 
defined(WITH_PERLEMBED) || defined(WITH_PYTHONEMBED) || defined(WITH_RUBYEMBED) 
|| defined(WITH_SQUIRREL) || defined(WITH_TCL)
  +#if defined(_WITH_EMBEDDED)
        rpmlog(RPMLOG_DEBUG,
                D_("%s: %s(%s) running %s scriptlet.\n"),
                psm->stepName, tag2sln(psm->scriptTag), NVRA, Phe->p.argv[0]);
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/lib/rpmds.c
  ============================================================================
  $ cvs diff -u -r2.167 -r2.168 rpmds.c
  --- rpm/lib/rpmds.c   6 Mar 2010 15:31:29 -0000       2.167
  +++ rpm/lib/rpmds.c   11 Apr 2010 17:47:30 -0000      2.168
  @@ -1501,6 +1501,11 @@
        (RPMSENSE_RPMLIB|RPMSENSE_EQUAL),
       N_("internal embedded Spook scripts.") },
   #endif
  +#if defined(WITH_SQLITE)
  +    { "rpmlib(BuiltinSqlScripts)",   "5.3-1",
  +     (RPMSENSE_RPMLIB|RPMSENSE_EQUAL),
  +    N_("internal embedded sqlite3 scripts.") },
  +#endif
   #if defined(WITH_SQUIRREL)
       { "rpmlib(BuiltinSquirrelScripts)",      "5.2-1",
        (RPMSENSE_RPMLIB|RPMSENSE_EQUAL),
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmsql.c
  ============================================================================
  $ cvs diff -u -r2.20 -r2.21 rpmsql.c
  --- rpm/rpmio/rpmsql.c        11 Apr 2010 13:24:06 -0000      2.20
  +++ rpm/rpmio/rpmsql.c        11 Apr 2010 17:47:31 -0000      2.21
  @@ -78,6 +78,9 @@
        fprintf(stderr, "\t  history: %s\n", sql->zHistory);
        fprintf(stderr, "\t   prompt: %s\n", sql->zPrompt);
        fprintf(stderr, "\t continue: %s\n", sql->zContinue);
  +
  +     fprintf(stderr, "\t      buf: %p[%u]\n", sql->buf, (unsigned)sql->nbuf);
  +     fprintf(stderr, "\t        b: %p[%u]\n", sql->b, (unsigned)sql->nb);
       }
   }
   #endif
  @@ -3761,6 +3764,7 @@
       FILE *in = NULL;
       int rc = 0;
   
  +SQLDBG((stderr, "--> %s(%p,%s)\n", __FUNCTION__, sql, sqliterc));
       if (sqliterc == NULL) 
        sqliterc = sql->zInitrc;
       if (sqliterc == NULL)
  @@ -3924,6 +3928,10 @@
        fclose(sql->iotrace);
       sql->iotrace = NULL;
   
  +    sql->buf = _free(sql->buf);
  +    sql->buf = sql->b = NULL;
  +    sql->nbuf = sql->nb = 0;
  +
       /* XXX INTERACTIVE cruft. */
       sql->zHome = _free(sql->zHome);
       sql->zInitrc = _free(sql->zInitrc);
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmsql.h
  ============================================================================
  $ cvs diff -u -r2.11 -r2.12 rpmsql.h
  --- rpm/rpmio/rpmsql.h        10 Apr 2010 18:14:52 -0000      2.11
  +++ rpm/rpmio/rpmsql.h        11 Apr 2010 17:47:31 -0000      2.12
  @@ -102,6 +102,12 @@
       const char * zPrompt;    /* "sql> " */
       const char * zContinue;  /* "...> " */
   
  +    /* Sliding window input line buffer. */
  +    char * buf;
  +    size_t nbuf;
  +/*...@null@*/
  +    char * b;
  +    size_t nb;
   #if defined(__LCLINT__)
   /*...@refs@*/
       int nrefs;                       /*!< (unused) keep splint happy */
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                [email protected]

Reply via email to