[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers rpmeio.c rpmeio.h teio.c

2017-06-20 Thread Jeff Johnson
  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:   21-Jun-2017 08:40:28
  Branch: rpm-5_4  Handle: 2017062106402800

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers rpmeio.c rpmeio.h teio.c

  Log:
- rpmeio: cross-reference evl/loop/req as much as possible.
- rpmeio: add zlog tracing.

  Summary:
RevisionChanges Path
2.199.2.97  +1  -0  rpm/rpmio/librpmio.vers
1.1.2.7 +132 -44rpm/rpmio/rpmeio.c
1.1.2.6 +5  -2  rpm/rpmio/rpmeio.h
1.1.2.12+3  -10 rpm/rpmio/teio.c
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.96 -r2.199.2.97 librpmio.vers
  --- rpm/rpmio/librpmio.vers   21 Jun 2017 03:34:46 -  2.199.2.96
  +++ rpm/rpmio/librpmio.vers   21 Jun 2017 06:40:28 -  2.199.2.97
  @@ -474,6 +474,7 @@
   rpmMCExpand;
   rpmMCExpandNumeric;
   _rpmeio_debug;
  +rpmeioDrain;
   rpmeioDumpREQ;
   rpmeioLoop;
   rpmeioNew;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmeio.c
  
  $ cvs diff -u -r1.1.2.6 -r1.1.2.7 rpmeio.c
  --- rpm/rpmio/rpmeio.c21 Jun 2017 03:34:47 -  1.1.2.6
  +++ rpm/rpmio/rpmeio.c21 Jun 2017 06:40:28 -  1.1.2.7
  @@ -5,6 +5,7 @@
   #endif
   
   #include 
  +#include 
   #include 
   
   #define  _RPMEIO_INTERNAL
  @@ -19,7 +20,11 @@
   
   #define SPEW(_fmt, ...) \
   if (_rpmeio_debug || _rpmio_debug) \
  - fprintf(stderr, _fmt, __VA_ARGS__)
  + fprintf(stderr, _fmt "\n", __VA_ARGS__)
  +
  +#define ZSPEW(_fmt, ...) \
  +if (zlog) \
  + rpmzLogAdd(zlog, _fmt, __VA_ARGS__)
   
   #define REQ_ERRNO(req)   ((req)->errorno)
   
  @@ -84,6 +89,10 @@
   if (msg) fprintf(stderr, "== %s(%p)\n", msg, 
req);
   
   if (req) {
  + rpmeio eio = (rpmeio) (((rpmioItem)req) - 1);
  +
  + if (eio->evl)
  + fprintf(fp, "%25s: %p\n", "evl", eio->evl);
   
   #define PRINT(_fmt, _foo) \
   {   fprintf(fp, "%25s: %"#_fmt"\n", #_foo, req->_foo); }
  @@ -171,12 +180,6 @@
   
   #undef   USE_PIPE
   
  -#if !defined(USE_PIPE)
  -static ev_idle repeat_watcher;
  -static ev_async ready_watcher;
  -#endif
  -
  -typedef struct rpmevl_s *rpmevl;
   struct rpmevl_s {
   #if defined(USE_PIPE)
   int pipefdno[2];
  @@ -187,16 +190,28 @@
   rpmev idle_ev;
   rpmev async_ev;
   #endif
  +rpmzLog zlog;/*!< high precision timestamp'd log */
   };
   static struct rpmevl_s _evl;
  -static rpmevl evl = &_evl;
  +
  +static rpmevl rpmevlGet(void)
  +{
  +#if defined(USE_PIPE)
  +return &_evl;
  +#else
  +   return (rpmevl) ev_userdata(EV_DEFAULT);
  +#endif
  +}
   
   /* idle watcher callback, only used when eio_poll */
   /* didn't handle all results in one call */
   static void
   repeat (EV_P_ ev_idle *w, int revents)
   {
  -SPEW("*** %s(%p, %p, %d)\n", __FUNCTION__, loop, w, revents);
  +rpmevl evl = (rpmevl) ev_userdata(loop);
  +rpmzLog zlog = evl->zlog;
  +ZSPEW("--> %s(%p, %p, %d)", __FUNCTION__, loop, w, revents);
  +
   if (eio_poll() != -1)
ev_idle_stop (EV_A_ w);
   }
  @@ -205,10 +220,14 @@
   static void
   ready (EV_P_ ev_async *w, int revents)
   {
  -SPEW("*** %s(%p, %p, %d)\n", __FUNCTION__, loop, w, revents);
   #if !defined(USE_PIPE)
  -if (eio_poll() == -1)
  - ev_idle_start (EV_A_ &repeat_watcher);
  +rpmevl evl = (rpmevl) ev_userdata(loop);
  +rpmzLog zlog = evl->zlog;
  +ZSPEW("--> %s(%p, %p, %d)", __FUNCTION__, loop, w, revents);
  +
  +if (eio_poll() == -1) {
  + evl->idle_ev = rpmevNew(RPMEV_TYPE_IDLE,  NULL);
  +}
   #endif   /* USE_PIPE */
   }
   
  @@ -216,25 +235,32 @@
   static
   void want_poll (void)
   {
  +rpmevl evl = rpmevlGet();
  +rpmzLog zlog = evl->zlog;
  +
   #if defined(USE_PIPE)
   char dummy = '\0';
   ssize_t nw = write(pipeout, &dummy, sizeof(dummy));
  -SPEW("<-- %s(%d) nw %zd\n", "write", pipeout, nw);
  +ZSPEW("<-- %s(%d) nw %zd", "write", pipeout, nw);
   #else
  -ev_async_send(evl->loop, &ready_watcher);
  -SPEW("*** %s() loop %p)\n", __FUNCTION__, evl->loop);
  +ev_async * w = &evl->async_ev->evw.async;
  +ev_async_send(evl->loop, w);
  +ZSPEW("<-- %s()", __FUNCTION__);
   #endif
   }
   
   static
   void done_poll(void)
   {
  +rpmevl evl = rpmevlGet();
  +rpmzLog zlog = evl->zlog;
  +
   #if defined(USE_PIPE)
   char dummy = '\0

[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers rpmeio.c rpmeio.h teio.c

2017-06-20 Thread Jeff Johnson
  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:   21-Jun-2017 05:34:47
  Branch: rpm-5_4  Handle: 2017062103344601

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers rpmeio.c rpmeio.h teio.c

  Log:
- rpmeio: sketch in the libev <-> libeio loop handoff. more todo++.

  Summary:
RevisionChanges Path
2.199.2.96  +0  -3  rpm/rpmio/librpmio.vers
1.1.2.6 +95 -45 rpm/rpmio/rpmeio.c
1.1.2.5 +2  -6  rpm/rpmio/rpmeio.h
1.1.2.11+20 -13 rpm/rpmio/teio.c
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.95 -r2.199.2.96 librpmio.vers
  --- rpm/rpmio/librpmio.vers   20 Jun 2017 02:57:33 -  2.199.2.95
  +++ rpm/rpmio/librpmio.vers   21 Jun 2017 03:34:46 -  2.199.2.96
  @@ -478,9 +478,6 @@
   rpmeioLoop;
   rpmeioNew;
   rpmeioReqType;
  -rpmeioPipe;
  -rpmeioPollWant;
  -rpmeioPollDone;
   rpmeioStart;
   Eio_cancel;
   Eio_destroy;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmeio.c
  
  $ cvs diff -u -r1.1.2.5 -r1.1.2.6 rpmeio.c
  --- rpm/rpmio/rpmeio.c16 Jun 2017 12:30:30 -  1.1.2.5
  +++ rpm/rpmio/rpmeio.c21 Jun 2017 03:34:47 -  1.1.2.6
  @@ -1,10 +1,18 @@
   #include "system.h"
   
  +#if defined(HAVE_EV_H)
  +# include 
  +#endif
  +
   #include 
  +#include 
   
   #define  _RPMEIO_INTERNAL
   #include 
   
  +#define  _RPMEV_INTERNAL
  +#include 
  +
   #include "debug.h"
   
   int _rpmeio_debug = -1;
  @@ -160,17 +168,36 @@
   }
   
   /*==*/
  -#ifdef   REF
  -static struct ev_loop *loop;
  +
  +#undef   USE_PIPE
  +
  +#if !defined(USE_PIPE)
   static ev_idle repeat_watcher;
   static ev_async ready_watcher;
  +#endif
  +
  +typedef struct rpmevl_s *rpmevl;
  +struct rpmevl_s {
  +#if defined(USE_PIPE)
  +int pipefdno[2];
  +#define  pipein  evl->pipefdno[0]
  +#define  pipeout evl->pipefdno[1]
  +#else
  +struct ev_loop *loop;
  +rpmev idle_ev;
  +rpmev async_ev;
  +#endif
  +};
  +static struct rpmevl_s _evl;
  +static rpmevl evl = &_evl;
   
   /* idle watcher callback, only used when eio_poll */
   /* didn't handle all results in one call */
   static void
   repeat (EV_P_ ev_idle *w, int revents)
   {
  -if (eio_poll () != -1)
  +SPEW("*** %s(%p, %p, %d)\n", __FUNCTION__, loop, w, revents);
  +if (eio_poll() != -1)
ev_idle_stop (EV_A_ w);
   }
   
  @@ -178,44 +205,37 @@
   static void
   ready (EV_P_ ev_async *w, int revents)
   {
  -if (eio_poll () == -1)
  +SPEW("*** %s(%p, %p, %d)\n", __FUNCTION__, loop, w, revents);
  +#if !defined(USE_PIPE)
  +if (eio_poll() == -1)
ev_idle_start (EV_A_ &repeat_watcher);
  +#endif   /* USE_PIPE */
   }
   
   /* wake up the event loop */
  -static void
  -want_poll (void)
  -{
  -ev_async_send (loop, &ready_watcher)
  -}
  -
  -void
  -my_init_eio ()
  -{
  -loop = EV_DEFAULT;
  -
  -ev_idle_init (&repeat_watcher, repeat);
  -ev_async_init (&ready_watcher, ready);
  -ev_async_start (loop, &watcher);
  -
  -eio_init (want_poll, 0);
  -}
  -#endif   /* REF */
  -
  -int rpmeioPipe[2];
  -
  -void rpmeioPollWant(void)
  +static
  +void want_poll (void)
   {
  -char dummy;
  -ssize_t nw = write(rpmeioPipe[1], &dummy, 1);
  -SPEW("<-- %s() nw %zd\n)\n", __FUNCTION__, nw);
  +#if defined(USE_PIPE)
  +char dummy = '\0';
  +ssize_t nw = write(pipeout, &dummy, sizeof(dummy));
  +SPEW("<-- %s(%d) nw %zd\n", "write", pipeout, nw);
  +#else
  +ev_async_send(evl->loop, &ready_watcher);
  +SPEW("*** %s() loop %p)\n", __FUNCTION__, evl->loop);
  +#endif
   }
   
  -void rpmeioPollDone(void)
  +static
  +void done_poll(void)
   {
  -char dummy;
  -ssize_t nr = read(rpmeioPipe[0], &dummy, 1);
  -SPEW("<-- %s() nr %zd\n)\n", __FUNCTION__, nr);
  +#if defined(USE_PIPE)
  +char dummy = '\0';
  +ssize_t nr = read(pipein, &dummy, sizeof(dummy));
  +SPEW("*** %s(%d) nr %zd nthreads:%u nreqs:%u nready:%u npending:%u\n", " 
read", pipein, nr, eio_nthreads(), eio_nreqs(), eio_nready(), eio_npending());
  +#else
  +SPEW("*** %s() loop %p nthreads:%u nreqs:%u nready:%u npending:%u\n", 
__FUNCTION__, evl->loop, eio_nthreads(), eio_nreqs(), eio_nready(), 
eio_npending());
  +#endif   /* USE_PIPE */
   }
   
   #ifdef   TODO
  @@ -244,32 +264,62 @@
   
   #endi

[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers rpmeio.c rpmeio.h

2017-06-16 Thread Jeff Johnson
  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:   16-Jun-2017 14:30:31
  Branch: rpm-5_4  Handle: 2017061612303000

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers rpmeio.c rpmeio.h

  Log:
- rpmeio: expose Eio_request/Eio_submit, haul out the trash.

  Summary:
RevisionChanges Path
2.199.2.94  +1  -0  rpm/rpmio/librpmio.vers
1.1.2.5 +187 -494   rpm/rpmio/rpmeio.c
1.1.2.4 +3  -1  rpm/rpmio/rpmeio.h
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.93 -r2.199.2.94 librpmio.vers
  --- rpm/rpmio/librpmio.vers   16 Jun 2017 06:14:09 -  2.199.2.93
  +++ rpm/rpmio/librpmio.vers   16 Jun 2017 12:30:30 -  2.199.2.94
  @@ -484,6 +484,7 @@
   rpmeioStart;
   Eio_cancel;
   Eio_destroy;
  +Eio_request;
   Eio_submit;
   rpmeioCB;
   rpmeioCB_readdir;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmeio.c
  
  $ cvs diff -u -r1.1.2.4 -r1.1.2.5 rpmeio.c
  --- rpm/rpmio/rpmeio.c16 Jun 2017 11:00:06 -  1.1.2.4
  +++ rpm/rpmio/rpmeio.c16 Jun 2017 12:30:30 -  1.1.2.5
  @@ -311,14 +311,17 @@
   
   }
   
  -void Eio_submit(eio_req * req)
  +eio_req * Eio_submit(eio_req * req)
   {
   rpmeio eio = (rpmeio) (((rpmioItem)req) - 1);
  -SPEW("--> %s(%p) eio %p\n", __FUNCTION__, req, eio);
   #ifdef   NOTYET
   eio = rpmeioLink(eio);
   #endif
  -eio_submit(&eio->req);
  +assert(req == &eio->req);
  +req = &eio->req;
  +eio_submit(req);
  +SPEW("<-- %s(%p) eio %p\n", __FUNCTION__, req, eio);
  +return req;
   }
   
   /*==*/
  @@ -423,32 +426,11 @@
   }
   
   /*==*/
  -static eio_req * rpmeioReq(int reqtype, ...)
  +eio_req * Eio_request(int reqtype, ...)
   {
   rpmeio eio = NULL;
   eio_req * req = NULL;
   
  -eio_wd wd = NULL;
  -const char * path = NULL;
  -const char * npath = NULL;
  -void (*execute) (eio_req *req);
  -int fdno = -1;
  -int fdno2 = -1;
  -off_t offset = 0;
  -int whence = 0;
  -void *buf = NULL;
  -size_t length = 0;
  -size_t nbytes = 0;
  -eio_tstamp atime = 0.0;
  -eio_tstamp mtime = 0.0;
  -uid_t uid = -1;
  -gid_t gid = -1;
  -mode_t mode = 0;
  -void *addr = NULL;
  -int flags = 0;
  -eio_tstamp delay = 0.0;
  -dev_t dev = 0;
  -
   int pri = 0;
   eio_cb cb = rpmeioCB;
   void * data = NULL;
  @@ -464,440 +446,327 @@
   
   switch (reqtype) {
   case EIO_CUSTOM:
  - execute = va_arg(ap, void (*) (eio_req *));
  + req->feed = va_arg(ap, void (*) (eio_req *));
cb = rpmeioCB;  /* XXX */
data = "custom";
  -//   req = eio_custom(execute, pri, cb, data);
  - req->feed = execute;
break;
   case EIO_WD_OPEN:
  - path = va_arg(ap, const char *);
  + req->ptr1 = va_arg(ap, char *);
  + req->ptr1 = xstrdup((char *)req->ptr1);
  + req->flags |= EIO_FLAG_PTR1_FREE;
cb = rpmeioCB;  /* XXX */
data = "wd_open";
  -//   req = eio_wd_open(path, pri, cb, data);
  - req->flags |= EIO_FLAG_PTR1_FREE;
  - req->ptr1 = xstrdup(path);
break;
   case EIO_WD_CLOSE:
  - wd = va_arg(ap, eio_wd);
  + req->wd = va_arg(ap, eio_wd);
cb = rpmeioCB;  /* XXX */
data = "wd_close";
  -//   req = eio_wd_close(wd, pri, cb, data);
  - req->wd = wd;
break;
   case EIO_CLOSE:
  - fdno = va_arg(ap, int);
  + req->int1 = va_arg(ap, int);
cb = rpmeioCB;
data = "close";
  -//   req = eio_close(fdno, pri, cb, data);
  - req->int1 = fdno;
break;
   case EIO_DUP2:
  - fdno = va_arg(ap, int);
  - fdno2 = va_arg(ap, int);
  + req->int1 = va_arg(ap, int);
  + req->int2 = va_arg(ap, int);
cb = rpmeioCB;
data = "dup2";
  -//   req = eio_dup2(fdno, fdno2, pri, cb, data);
  - req->int1 = fdno;
  - req->int2 = fdno2;
break;
   case EIO_SEEK:
  - fdno = va_arg(ap, int);
  - offset = va_arg(ap, off_t);
  - whence = va_arg(ap, int);
  + req->int1 = va_arg(ap, int);
  + req->offs = va_arg(ap, off_t);
  + req->int2 = va_arg(ap, int);
cb = rpmeioCB;  /* XXX */
data = "seek";
  -//   req = eio_seek(fdno, offs

[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers rpmeio.c rpmeio.h

2017-06-15 Thread Jeff Johnson
  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:   16-Jun-2017 08:14:09
  Branch: rpm-5_4  Handle: 2017061606140900

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers rpmeio.c rpmeio.h

  Log:
- rpmeio: switch to the low-levl API.

  Summary:
RevisionChanges Path
2.199.2.93  +3  -2  rpm/rpmio/librpmio.vers
1.1.2.3 +577 -125   rpm/rpmio/rpmeio.c
1.1.2.3 +4  -5  rpm/rpmio/rpmeio.h
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.92 -r2.199.2.93 librpmio.vers
  --- rpm/rpmio/librpmio.vers   15 Jun 2017 07:16:18 -  2.199.2.92
  +++ rpm/rpmio/librpmio.vers   16 Jun 2017 06:14:09 -  2.199.2.93
  @@ -474,7 +474,6 @@
   rpmMCExpand;
   rpmMCExpandNumeric;
   _rpmeio_debug;
  -rpmeioCancel;
   rpmeioDumpREQ;
   rpmeioLoop;
   rpmeioNew;
  @@ -483,7 +482,9 @@
   rpmeioPollWant;
   rpmeioPollDone;
   rpmeioStart;
  -rpmeioSubmit;
  +Eio_cancel;
  +Eio_destroy;
  +Eio_submit;
   rpmeioCB;
   rpmeioCB_readdir;
   rpmeioCB_stat;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmeio.c
  
  $ cvs diff -u -r1.1.2.2 -r1.1.2.3 rpmeio.c
  --- rpm/rpmio/rpmeio.c15 Jun 2017 07:16:18 -  1.1.2.2
  +++ rpm/rpmio/rpmeio.c16 Jun 2017 06:14:09 -  1.1.2.3
  @@ -121,14 +121,21 @@
fprintf(fp, "%25s: %d %s data %s\n", "type", req->type, REQ_TYPE(req), 
(char *)REQ_DATA(req));
   #endif
   
  -#ifdef   NOTYET
  - PRINT(hhx, cancelled);
  - PRINT(hhx, flags);
  + if (req->cancelled)
  + PRINT(hhx, cancelled);
  + if (req->flags)
  + PRINT(hhx, flags);
  + if (req->pri)
PRINT(hhx, pri);
   
  - PRINT(p, data);
  - PRINT(p, finish);
  - PRINT(p, destroy);
  +#ifdef   NOTYET
  + if (req->data)
  + PRINT(p, data);
  +#endif
  + if (req->finish)
  + PRINT(p, finish);
  + if (req->destroy)
  + PRINT(p, destroy);
if (req->feed)
PRINT(p, feed);
   
  @@ -140,7 +147,6 @@
PRINT(p, grp_next);
if (req->grp_first)
PRINT(p, grp_first);
  -#endif   /* NOTYET */
   #undef   PRINT
   
   }
  @@ -259,22 +265,41 @@
   SPEW("<== %s() polled %d\n", __FUNCTION__, polled);
   }
   
  -void rpmeioSubmot(eio_req * req)
  +void Eio_cancel(eio_req * req)
   {
  -SPEW("--> %s(%p)\n", __FUNCTION__, req);
  -eio_submit(req);
  +rpmeio eio = (rpmeio) (((rpmioItem)req) - 1);
  +SPEW("--> %s(%p) eio %p\n", __FUNCTION__, req, eio);
  +eio_cancel(req);
   }
   
  -void rpmeioCancel(eio_req * req)
  +void Eio_destroy(eio_req * req)
   {
  -SPEW("--> %s(%p)\n", __FUNCTION__, req);
  -eio_cancel(req);
  +rpmeio eio = (rpmeio) (((rpmioItem)req) - 1);
  +SPEW("--> %s(%p) eio %p\n", __FUNCTION__, req, eio);
  +rpmeioDumpREQ(__FUNCTION__, req, NULL);
  +
  +do {
  + eio = rpmeioFree(eio);
  +} while (0);
  +
  +}
  +
  +void Eio_submit(eio_req * req)
  +{
  +rpmeio eio = (rpmeio) (((rpmioItem)req) - 1);
  +SPEW("--> %s(%p) eio %p\n", __FUNCTION__, req, eio);
  +#ifdef   NOTYET
  +eio = rpmeioLink(eio);
  +#endif
  +eio_submit(&eio->req);
   }
   
   /*==*/
   int rpmeioCB(eio_req * req)
   {
  -SPEW("--> %s(%s|%p) res %ld\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), 
EIO_RESULT(req));
  +rpmeio eio = (rpmeio) (((rpmioItem)req) - 1);
  +SPEW("--> %s(%s|%p) res %ld eio %p\n", __FUNCTION__, REQ_TYPE(req), 
REQ_DATA(req), EIO_RESULT(req), eio);
  +
   rpmeioDumpREQ(__FUNCTION__, req, NULL);
   
   if (EIO_RESULT(req) < 0) {
  @@ -282,14 +307,19 @@
perror(REQ_TYPE(req));
   }
   
  +#ifdef   NOTYET
  +eio = rpmeioFree(eio);
  +#endif
  +
   return 0;
   }
   
   int rpmeioCB_readdir(eio_req * req)
   {
  +rpmeio eio = (rpmeio) (((rpmioItem)req) - 1);
   char *buf = (char *) EIO_BUF(req);
   
  -SPEW("--> %s(%s|%p) res %ld\n", __FUNCTION__, REQ_TYPE(req), REQ_DATA(req), 
EIO_RESULT(req));
  +SPEW("--> %s(%s|%p) res %ld eio %p\n", __FUNCTION__, REQ_TYPE(req), 
REQ_DATA(req), EIO_RESULT(req), eio);
   rpmeioDumpREQ(__FUNCTION__, req, NULL);
   
   if (EIO_RESULT(req) < 0)
  @@ -300,14 +330,19 @@
buf += strlen(buf) + 1;
   }
   
  +#ifdef   NOTYET
  +eio = rpmeioFree(eio);
  +#endif
  +
   return 0;
  

[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers poptIO.c rpmev.h tmq.c

2017-06-12 Thread Jeff Johnson
  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:   13-Jun-2017 02:00:46
  Branch: rpm-5_4  Handle: 201706134500

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers poptIO.c rpmev.h tmq.c

  Log:
- rpmeio: stub in the demo.c program.
- rpmev: add an rpev deallocation queue. more todo++.

  Summary:
RevisionChanges Path
2.199.2.90  +3  -2  rpm/rpmio/librpmio.vers
1.94.2.38   +2  -0  rpm/rpmio/poptIO.c
1.1.2.4 +3  -3  rpm/rpmio/rpmev.h
1.1.2.21+224 -16rpm/rpmio/tmq.c
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.89 -r2.199.2.90 librpmio.vers
  --- rpm/rpmio/librpmio.vers   12 Jun 2017 06:54:06 -  2.199.2.89
  +++ rpm/rpmio/librpmio.vers   13 Jun 2017 00:00:45 -  2.199.2.90
  @@ -476,8 +476,9 @@
   _rpmev_debug;
   rpmevDump;
   rpmevNew;
  -evs;
  -nevs;
  +rpmevqGetHead;
  +rpmevqPutTail;
  +rpmevqPutHead;
   rpmioEVTable;
   rpmioEVFLAGTable;
   rpmioEVBACKENDTable;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/poptIO.c
  
  $ cvs diff -u -r1.94.2.37 -r1.94.2.38 poptIO.c
  --- rpm/rpmio/poptIO.c12 Jun 2017 06:54:06 -  1.94.2.37
  +++ rpm/rpmio/poptIO.c13 Jun 2017 00:00:45 -  1.94.2.38
  @@ -527,6 +527,7 @@
rpmlog(lvl, "%s exit.\n", msg);
   }
   
  +#ifdef   DYING
   __attribute__((constructor(101)))
   static void rpmioCtor(void)
   {
  @@ -555,6 +556,7 @@
   fprintf(stderr, "--> %s at %s:%u\n", __FUNCTION__, __FILE__, __LINE__);
   #endif   /* NOTYET */
   }
  +#endif   /* DYING */
   
   /**
*/
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmev.h
  
  $ cvs diff -u -r1.1.2.3 -r1.1.2.4 rpmev.h
  --- rpm/rpmio/rpmev.h 12 Jun 2017 06:54:06 -  1.1.2.3
  +++ rpm/rpmio/rpmev.h 13 Jun 2017 00:00:45 -  1.1.2.4
  @@ -65,9 +65,9 @@
   extern unsigned rpmioEVBACKEND;
   extern struct poptOption rpmioEVBACKENDTable[];
   
  -#define RPMEV_MAX_ALLOC 64
  -extern rpmev evs[RPMEV_MAX_ALLOC];
  -extern int nevs;
  +rpmev rpmevqGetHead(void);
  +void rpmevqPutTail(rpmev ev);
  +void rpmevqPutHead(rpmev ev);
   
   #endif   /* _RPMEV_INTERNAL */
   
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/tmq.c
  
  $ cvs diff -u -r1.1.2.20 -r1.1.2.21 tmq.c
  --- rpm/rpmio/tmq.c   12 Jun 2017 06:54:06 -  1.1.2.20
  +++ rpm/rpmio/tmq.c   13 Jun 2017 00:00:45 -  1.1.2.21
  @@ -105,7 +105,7 @@
   
   #define SPEW(_fmt, ...) \
   if (_debug || _rpmmsq_debug || _rpmio_debug) \
  - fprintf(stderr, _fmt, __VA_ARGS__)
  + fprintf(stderr, _fmt, ##__VA_ARGS__)
   
   #define Z(_rc)   assert((_rc) == 0)
   
  @@ -1171,72 +1171,88 @@
   
   /* initialise an io watcher, then start it */
   /* this one will watch for stdin to become readable */
  -ev = rpmevNew(RPMEV_TYPE_IO, NULL);
  -rpmevDump(__FUNCTION__, ev, NULL);
  +ev = rpmevNew(RPMEV_TYPE_IO, NULL, STDIN_FILENO, EV_READ);
  +#ifdef   DYING
   {ev_io * w = &ev->evw.io;
w->fd = STDIN_FILENO;
w->events = EV_READ;
ev_io_start(loop, w);
   }
  +#endif
   
   /* initialise a timer watcher, then start it */
   /* simple non-repeating 5.5 second timeout */
  -ev = rpmevNew(RPMEV_TYPE_TIMER,  NULL);
  +ev = rpmevNew(RPMEV_TYPE_TIMER,  NULL, 0,0, 5.5);
  +#ifdef   DYING
   {ev_timer * w = &ev->evw.timer;
  + w->at = 0.0;
w->repeat = 5.5;
ev_timer_start(loop, w);
   }
  +#endif
   
  -ev = rpmevNew(RPMEV_TYPE_PERIODIC,   NULL);
  +ev = rpmevNew(RPMEV_TYPE_PERIODIC,   NULL, 0.0, 11.0, NULL );
  +#ifdef   DYING
   {ev_periodic * w = &ev->evw.periodic;
w->offset = 0.0;
w->interval = 11.0;
w->reschedule_cb = NULL;
ev_periodic_start(loop, w);
   }
  +#endif
   
  -ev = rpmevNew(RPMEV_TYPE_SIGNAL, NULL);
  +ev = rpmevNew(RPMEV_TYPE_SIGNAL, NULL, SIGUSR1);
  +#ifdef   DYING
   {ev_signal * w = &ev->evw.signal;
w->signum = SIGUSR1;
ev_signal_start(loop, w);
   }
  +#endif
   
  -ev = rpmevNew(RPMEV_TYPE_CHILD,  NULL);
  +#ifdef   DYING
  +ev = rpmevNew(RPMEV_TYPE_CHILD,  NULL, 0, 0);
  

[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers msqio.c rpmaio.c rpmaio.h...

2017-05-29 Thread Jeff Johnson
  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:   29-May-2017 18:21:01
  Branch: rpm-5_4  Handle: 2017052916210001

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers msqio.c rpmaio.c rpmaio.h rpmmsq.h
tmq.c

  Log:
- msqio: sanity.

  Summary:
RevisionChanges Path
2.199.2.82  +0  -1  rpm/rpmio/librpmio.vers
1.1.2.20+71 -31 rpm/rpmio/msqio.c
1.1.2.3 +24 -25 rpm/rpmio/rpmaio.c
1.1.2.2 +4  -2  rpm/rpmio/rpmaio.h
1.1.2.17+21 -31 rpm/rpmio/rpmmsq.h
1.1.2.12+10 -0  rpm/rpmio/tmq.c
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.81 -r2.199.2.82 librpmio.vers
  --- rpm/rpmio/librpmio.vers   26 May 2017 19:52:21 -  2.199.2.81
  +++ rpm/rpmio/librpmio.vers   29 May 2017 16:21:00 -  2.199.2.82
  @@ -736,7 +736,6 @@
   msqio;
   rpmmsqClose;
   rpmmsqCtl;
  -rpmmsqDeliver;
   rpmmsqDump;
   rpmmsqFdopen;
   rpmmsqFlush;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/msqio.c
  
  $ cvs diff -u -r1.1.2.19 -r1.1.2.20 msqio.c
  --- rpm/rpmio/msqio.c 29 May 2017 06:57:54 -  1.1.2.19
  +++ rpm/rpmio/msqio.c 29 May 2017 16:21:00 -  1.1.2.20
  @@ -331,7 +331,7 @@
   
   /* === */
   static int _lockdebug = 0;
  -static int _conddebug = 0;
  +static int _conddebug = -1;
   #define PEEK(_bolt)  yarnPeekLock(_bolt)
   #define  POSSESS(_bolt) \
   {yarnPossess(_bolt); \
  @@ -375,7 +375,7 @@
   RPM_GNUC_TM_ATOMIC {
if ((item = aioq->head) != NULL) {
aioq->head = item->next;
  - item->next = NULL;  /* XXX rpmmalloc.c ? */
  + item->next = NULL;
if (aioq->head == NULL)
aioq->tail = &aioq->head;
}
  @@ -398,17 +398,32 @@
   
   static inline
   ssize_t aioqPutWait(rpmmsq msq, unsigned long *priop,
  - int op, int prio, void *b, size_t nb)
  + int op, int prio, void *b, size_t nb,
  + struct sigevent *sigev, off_t offset)
   {
   AIOQ_t aioq = &msq->aioq;
   rpmzLog zlog = msq->zlog;
   ssize_t rc;
   
  -rpmaio aio = rpmaioNew(msq->qid, op, prio, b, nb);
  +rpmaio aio = rpmaioNew(msq->qid, op, prio, b, nb, sigev, offset);
   aio->ix = ++msq->nqueued;
  +rpmioItem item = (rpmioItem) aio;;
   
  -rpmioItem item = rpmioLinkPoolItem(&aio->_item,
  +switch (op) {
  +case LIO_WRITE:
  + /* XXX Asynchronous writes? */
  + if ((msq->oflags & O_NONBLOCK) && nb <= sizeof(aio->buf)) {
  + memcpy(aio->buf, b, nb);
  + b = aio->buf;
  + break;
  + }
  + /*@fallthrough@*/
  +default:
  + item = rpmioLinkPoolItem(item,
__FUNCTION__, __FILE__, __LINE__);
  + break;
  +}
  +
   
   /* Producer monitor. */
   POSSESS(aioq->have);
  @@ -416,20 +431,26 @@
   aioqPutTail(aioq, item);
   TWIST(aioq->have, BY, 1);
   
  -/* Wait for AIO completion. */
  -POSSESS(item->use);
  -WAITFOR(item->use, TO_BE, 1);
  -RELEASE(item->use);
  -
  -rc = aio_return(&aio->cb);
  -if (rc >= 0 && priop)
  - *priop = aio->cb.aio_reqprio;   /* XXX prio */
  -if (rc < 0)
  - errno = aio_error(&aio->cb);/* XXX W2DO? */
  +if (b != aio->buf) {
  + /* Wait for AIO completion. */
  + POSSESS(item->use);
  + WAITFOR(item->use, TO_BE, 1);
  + RELEASE(item->use);
  +
  + rc = aio_return(&aio->aiocb);
  + if (rc >= 0 && priop)
  + *priop = aio->aiocb.aio_reqprio;/* XXX prio */
  + if (rc < 0)
  + errno = aio_error(&aio->aiocb); /* XXX W2DO? */
   
  -aio = rpmaioFree(aio);
  + aio = rpmaioFree(aio);
  +} else {
  + /* XXX Asynchronous writes. */
  + rc = 0;
  + errno = EINPROGRESS;/* XXX */
  +}
   
  -SPEW("<--\t%s(%p, %p) rc %ld\n", __FUNCTION__, aioq, item, rc);
  +SPEW("<--\t%s(%p, %p) rc %ld %m\n", __FUNCTION__, aioq, item, rc);
   return rc;
   }
   
  @@ -548,6 +569,10 @@
aioq->have = yarnFreeLock(aioq->have);
msq->nqueued = 0;
   
  + msq->st = _free(msq->st);
  + msq->ds = _free(msq->ds);
  + msq->mi = _free(msq->mi);
  +
if (msq->zlog)
msq->zlog = rpmzLogDump(msq->zlog, NULL);
 

[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers rpmlog.c rpmlog.h rpmzlog...

2017-05-26 Thread Jeff Johnson
  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:   26-May-2017 21:52:21
  Branch: rpm-5_4  Handle: 2017052619522100

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers rpmlog.c rpmlog.h rpmzlog.c
rpmzlog.h rpmzq.h

  Log:
- sanity.

  Summary:
RevisionChanges Path
2.199.2.81  +1  -0  rpm/rpmio/librpmio.vers
2.46.4.10   +3  -24 rpm/rpmio/rpmlog.c
2.24.4.7+59 -0  rpm/rpmio/rpmlog.h
2.5.6.3 +5  -5  rpm/rpmio/rpmzlog.c
2.5.6.5 +2  -0  rpm/rpmio/rpmzlog.h
1.38.6.3+2  -1  rpm/rpmio/rpmzq.h
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.80 -r2.199.2.81 librpmio.vers
  --- rpm/rpmio/librpmio.vers   25 May 2017 20:02:13 -  2.199.2.80
  +++ rpm/rpmio/librpmio.vers   26 May 2017 19:52:21 -  2.199.2.81
  @@ -910,6 +910,7 @@
   rpmxarPush;
   rpmxarStat;
   rpmxarSwapBuf;
  +_rpmzlog_debug;
   rpmzLogAdd;
   rpmzLogDump;
   rpmzLogFree;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmlog.c
  
  $ cvs diff -u -r2.46.4.9 -r2.46.4.10 rpmlog.c
  --- rpm/rpmio/rpmlog.c1 May 2017 19:54:43 -   2.46.4.9
  +++ rpm/rpmio/rpmlog.c26 May 2017 19:52:21 -  2.46.4.10
  @@ -123,27 +123,6 @@
   "D: ",   /*!< RPMLOG_DEBUG */
   };
   
  -#define ANSI_COLOR_BLACK "\x1b[30m"
  -#define ANSI_COLOR_RED   "\x1b[31m"
  -#define ANSI_COLOR_GREEN "\x1b[32m"
  -#define ANSI_COLOR_YELLOW"\x1b[33m"
  -#define ANSI_COLOR_BLUE  "\x1b[34m"
  -#define ANSI_COLOR_MAGENTA   "\x1b[35m"
  -#define ANSI_COLOR_CYAN  "\x1b[36m"
  -#define ANSI_COLOR_WHITE "\x1b[37m"
  -
  -#define ANSI_BRIGHT_BLACK"\x1b[30;1m"
  -#define ANSI_BRIGHT_RED  "\x1b[31;1m"
  -#define ANSI_BRIGHT_GREEN"\x1b[32;1m"
  -#define ANSI_BRIGHT_YELLOW   "\x1b[33;1m"
  -#define ANSI_BRIGHT_BLUE "\x1b[34;1m"
  -#define ANSI_BRIGHT_MAGENTA  "\x1b[35;1m"
  -#define ANSI_BRIGHT_CYAN "\x1b[36;1m"
  -#define ANSI_BRIGHT_WHITE"\x1b[37;1m"
  -
  -#define ANSI_COLOR_BOLD  "\x1b[1m"
  -#define ANSI_COLOR_RESET "\x1b[0m"
  -
   static const char *rpmlogMsgPrefixColor[] = {
   ANSI_BRIGHT_RED, /*!< RPMLOG_EMERG */
   ANSI_BRIGHT_RED, /*!< RPMLOG_ALERT */
  @@ -202,8 +181,8 @@
   case RPMLOG_ERR:
   case RPMLOG_WARNING:
if (colorOn && *colorOn) {
  - (void) fputs(ANSI_COLOR_RESET, msgout);
  - (void) fputs(ANSI_COLOR_BOLD, msgout);
  + (void) fputs(ANSI_RESET, msgout);
  + (void) fputs(ANSI_BOLD_ON, msgout);
}
   case RPMLOG_DEBUG:
   default:
  @@ -224,7 +203,7 @@
   case RPMLOG_WARNING:
   case RPMLOG_DEBUG:
if (colorOn && *colorOn)
  - (void) fputs(ANSI_COLOR_RESET, msgout);
  + (void) fputs(ANSI_RESET, msgout);
break;
   default:
break;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmlog.h
  
  $ cvs diff -u -r2.24.4.6 -r2.24.4.7 rpmlog.h
  --- rpm/rpmio/rpmlog.h5 Jul 2016 14:46:57 -   2.24.4.6
  +++ rpm/rpmio/rpmlog.h26 May 2017 19:52:21 -  2.24.4.7
  @@ -172,6 +172,65 @@
   #define RPMLOG_EXIT  0x02/*!< exit after logging */
   
   #if defined(_RPMLOG_INTERNAL)
  +
  +#define ANSI_BRIGHT_BLACK"\x1b[30;1m"
  +#define ANSI_BRIGHT_RED  "\x1b[31;1m"
  +#define ANSI_BRIGHT_GREEN"\x1b[32;1m"
  +#define ANSI_BRIGHT_YELLOW   "\x1b[33;1m"
  +#define ANSI_BRIGHT_BLUE "\x1b[34;1m"
  +#define ANSI_BRIGHT_MAGENTA  "\x1b[35;1m"
  +#define ANSI_BRIGHT_CYAN "\x1b[36;1m"
  +#define ANSI_BRIGHT_WHITE"\x1b[37;1m"
  +
  +#define ANSI_RESET   "\x1b[0m"
  +#define ANSI_BOLD_ON "\x1b[1m"
  +#define ANSI_FAINT_ON"\x1b[2m"
  +#define ANSI_ITALICS_ON  "\x1b[3m"
  +#define ANSI_UNDERLINE_ON"\x1b[4m"
  +#define ANSI_BLINK_ON"\x1b[5m"
  +#define ANSI_INVERSE_ON  "\x1b[7m"
  +#define ANSI_STRIKETHROUGH_ON"\x1b[9m"
  +
  +#define ANSI_FONT_RESET  "\x1b[11m"
  +#define ANSI_FONT_1  "\x1b[11m"
  +#define ANSI_FONT_2  "\x1b[12m"
  +#define ANSI_FONT_3  "\x1b[13m"
  +#define ANSI_FONT_4  "\x1b[14m"
  +#define ANSI_FONT_5  "\x1b[15m"
  +#define ANSI_FONT_

[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers

2017-05-04 Thread Jeff Johnson
  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:   04-May-2017 22:57:43
  Branch: rpm-5_4  Handle: 2017050420574300

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers

  Log:
- orphan.

  Summary:
RevisionChanges Path
2.199.2.71  +8  -0  rpm/rpmio/librpmio.vers
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.70 -r2.199.2.71 librpmio.vers
  --- rpm/rpmio/librpmio.vers   21 Apr 2017 06:19:16 -  2.199.2.70
  +++ rpm/rpmio/librpmio.vers   4 May 2017 20:57:43 -   2.199.2.71
  @@ -410,6 +410,14 @@
   rpmbfIntersect;
   rpmbfParams;
   rpmbfUnion;
  +_rpmcap_debug;
  +rpmcapGetFD;
  +rpmcapGetFN;
  +rpmcapSetFD;
  +rpmcapSetFN;
  +rpmcapValidate;
  +rpmcapVerifyFD;
  +rpmcapVerifyFN;
   rpmcdsaImplVecs;
   _cph_debug;
   _cphParam;
  @@ .
__
RPM Package Managerhttp://rpm5.org
CVS Sources Repositoryrpm-cvs@rpm5.org


[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers rpmmqtt.c rpmmqtt.h tmqtt...

2016-07-06 Thread Jeff Johnson
  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:   06-Jul-2016 11:06:25
  Branch: rpm-5_4  Handle: 2016070609062500

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers rpmmqtt.c rpmmqtt.h tmqtt.c

  Log:
- mqtt: wrap subscribe*/unsubscribe* functions.

  Summary:
RevisionChanges Path
2.199.2.60  +4  -0  rpm/rpmio/librpmio.vers
1.1.2.17+193 -35rpm/rpmio/rpmmqtt.c
1.1.2.15+13 -5  rpm/rpmio/rpmmqtt.h
1.1.2.11+18 -11 rpm/rpmio/tmqtt.c
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.59 -r2.199.2.60 librpmio.vers
  --- rpm/rpmio/librpmio.vers   4 Jul 2016 07:45:23 -   2.199.2.59
  +++ rpm/rpmio/librpmio.vers   6 Jul 2016 09:06:25 -   2.199.2.60
  @@ -643,6 +643,10 @@
   rpmmqttPub;
   rpmmqttRun;
   rpmmqttSub;
  +rpmmqttSubscribe;
  +rpmmqttSubscribeMany;
  +rpmmqttUnsubscribe;
  +rpmmqttUnsubscribeMany;
   _rpmmrb_debug;
   _rpmmrbI;
   _rpmmrbPool;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmmqtt.c
  
  $ cvs diff -u -r1.1.2.16 -r1.1.2.17 rpmmqtt.c
  --- rpm/rpmio/rpmmqtt.c   5 Jul 2016 19:48:13 -   1.1.2.16
  +++ rpm/rpmio/rpmmqtt.c   6 Jul 2016 09:06:25 -   1.1.2.17
  @@ -425,6 +425,21 @@
   (void) rpmmqttConnect(mqtt);
   }
   
  +static void onFailure(void * _mqtt, MQTTAsync_failureData * response)
  +{
  +rpmmqtt mqtt = (rpmmqtt) _mqtt;
  +rpmlog(RPMLOG_WARNING, "MQTT failed\n");
  +SPEW((stderr, "<-- %s(%p,%p)\n", __FUNCTION__, _mqtt, response));
  +mqtt->finished = 1;
  +}
  +
  +static void onSuccess(void * _mqtt, MQTTAsync_successData * response)
  +{
  +rpmmqtt mqtt = (rpmmqtt) _mqtt;
  +SPEW((stderr, "<-- %s(%p,%p)\n", __FUNCTION__, _mqtt, response));
  +mqtt->finished = 1;
  +}
  +
   static void onDisconnectFailure(void * _mqtt, MQTTAsync_failureData * 
response)
   {
   rpmmqtt mqtt = (rpmmqtt) _mqtt;
  @@ -496,9 +511,17 @@
   mqtt->finished = 1;
   }
   
  +static void onSubscribeManyFailure(void * _mqtt, MQTTAsync_failureData * 
response)
  +{
  +rpmmqtt mqtt = (rpmmqtt) _mqtt;
  +rpmlog(RPMLOG_WARNING, "MQTTsubscribeMany failed\n");
  +mqtt->finished = 1;
  +}
  +
   static void onSubscribeMany(void * _mqtt, MQTTAsync_successData * response)
   {
   rpmmqtt mqtt = (rpmmqtt) _mqtt;
  +#ifdef   DYING
   int *subqos = response->alt.qosList;
   
   SPEW((stderr, "--> %s(%p,%p) subqos %p[%u]\n", __FUNCTION__, _mqtt, 
response, subqos, mqtt->ac));
  @@ -506,6 +529,23 @@
if (mqtt->debug || _rpmmqtt_debug)
rpmlog(RPMLOG_DEBUG, "MQTT  subscribe qos(%d)\n", subqos[i]);
   }
  +#endif
  +mqtt->finished = 1;
  +}
  +
  +static void onUnsubscribeManyFailure(void * _mqtt, MQTTAsync_failureData * 
response)
  +{
  +rpmmqtt mqtt = (rpmmqtt) _mqtt;
  +rpmlog(RPMLOG_WARNING, "MQTTunsubscribeMany failed\n");
  +mqtt->finished = 1;
  +}
  +
  +static void onUnsubscribeMany(void * _mqtt, MQTTAsync_successData * response)
  +{
  +rpmmqtt mqtt = (rpmmqtt) _mqtt;
  +
  +rpmlog(RPMLOG_DEBUG, "MQTT  unsubscribeMany\n");
  +SPEW((stderr, "<-- %s(%p,%p)\n", __FUNCTION__, _mqtt, response));
   mqtt->finished = 1;
   }
   
  @@ -978,9 +1018,9 @@
   return ptr;
   }
   
  -int rpmmqttConnect(rpmmqtt mqtt)
  +rpmRC rpmmqttConnect(rpmmqtt mqtt)
   {
  -int rc = -1;
  +rpmRC rc = RPMRC_FAIL;   /* assume failure */
   
   SPEW((stderr, "--> %s(%p)\n", __FUNCTION__, mqtt));
   #ifdef   WITH_MQTT
  @@ -990,16 +1030,19 @@
MQTTAsync_connect(mqtt->I, AOBJ(mqtt, 'C')));
while (!mqtt->finished)
usleep(1000);
  -} else
  - rc = 0;
  + if (rc)
  + goto exit;
  +}
  +rc = RPMRC_OK;
  +exit:
   #endif   /* WITH_MQTT */
   SPEW((stderr, "<-- %s(%p) rc %d\n", __FUNCTION__, mqtt, rc));
   return rc;
   }
   
  -int rpmmqttDisconnect(rpmmqtt mqtt)
  +rpmRC rpmmqttDisconnect(rpmmqtt mqtt)
   {
  -int rc = -1;
  +rpmRC rc = RPMRC_FAIL;   /* assume failure */
   #ifdef   WITH_MQTT
   if (MQTTAsync_isConnected(mqtt->I)) {
mqtt->finished = 0;
  @@ -1007,17 +1050,20 @@
MQTTAsync_disconnect(mqtt->I, AOBJ(mqtt, 'D')));
while (!mqtt->finished)
usleep(100);
  -} else
  - rc = 0;
  + if (rc)
  + goto exit;
  +}
  +rc = RPMRC_OK;
  +exit

[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers

2016-06-24 Thread Jeff Johnson
  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:   24-Jun-2016 21:34:49
  Branch: rpm-5_4  Handle: 2016062419344900

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers

  Log:
- cygwin: __progname is a macro.

  Summary:
RevisionChanges Path
2.199.2.56  +1  -0  rpm/rpmio/librpmio.vers
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.55 -r2.199.2.56 librpmio.vers
  --- rpm/rpmio/librpmio.vers   17 Jun 2016 08:07:27 -  2.199.2.55
  +++ rpm/rpmio/librpmio.vers   24 Jun 2016 19:34:49 -  2.199.2.56
  @@ -323,6 +323,7 @@
   print_expand_trace;
   print_macro_trace;
   __progname;
  +program_name;
   prpsoffsets32;
   prpsoffsets64;
   Readdir;
  @@ .
__
RPM Package Managerhttp://rpm5.org
CVS Sources Repositoryrpm-cvs@rpm5.org


[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers

2016-03-12 Thread Jeff Johnson
  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:   12-Mar-2016 20:44:01
  Branch: rpm-5_4  Handle: 2016031219440100

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers

  Log:
- mongoc: update to mongoc-1.3.2.
- bson: update to libbson-1.3.3.

  Summary:
RevisionChanges Path
2.199.2.54  +142 -0 rpm/rpmio/librpmio.vers
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.53 -r2.199.2.54 librpmio.vers
  --- rpm/rpmio/librpmio.vers   27 Feb 2016 20:36:50 -  2.199.2.53
  +++ rpm/rpmio/librpmio.vers   12 Mar 2016 19:44:01 -  2.199.2.54
  @@ -949,7 +949,9 @@
   bson_append_undefined;
   bson_append_utf8;
   bson_append_value;
  +bson_array_as_json;
   bson_as_json;
  +bson_ascii_strtoll;
   bson_bcone_magic;
   bson_bcon_magic;
   bson_compare;
  @@ -960,18 +962,25 @@
   bson_copy;
   bson_copy_to;
   bson_copy_to_excluding;
  +bson_copy_to_excluding_noinit;
   bson_count_keys;
   bson_destroy;
   bson_destroy_with_steal;
   bson_equal;
   bson_free;
   bson_get_data;
  +bson_get_major_version;
  +bson_get_minor_version;
  +bson_get_micro_version;
  +bson_get_version;
  +bson_check_version;
   bson_get_monotonic_time;
   bson_gettimeofday;
   bson_has_field;
   bson_init;
   bson_init_from_json;
   bson_init_static;
  +_bson_iso8601_date_parse;
   bson_iter_array;
   bson_iter_as_bool;
   bson_iter_as_int64;
  @@ -1042,6 +1051,7 @@
   bson_reader_new_from_file;
   bson_reader_new_from_handle;
   bson_reader_read;
  +bson_reader_reset;
   bson_reader_set_destroy_func;
   bson_reader_set_read_func;
   bson_reader_tell;
  @@ -1134,9 +1144,26 @@
   yajl_tree_get;
   yajl_tree_parse;
   yajl_version;
  +mongoc_apm_callbacks_destroy;
  +mongoc_apm_callbacks_new;
  +mongoc_apm_command_started_get_context;
  +mongoc_apm_command_started_get_operation_id;
  +mongoc_apm_command_started_get_request_id;
  +mongoc_apm_command_started_get_server_id;
  +mongoc_apm_command_succeeded_get_context;
  +mongoc_apm_command_succeeded_get_request_id;
  +mongoc_apm_command_succeeded_get_server_id;
  +mongoc_apm_set_command_started_cb;
  +mongoc_apm_set_command_succeeded_cb;
   _mongoc_array_append_vals;
  +_mongoc_array_copy;
   _mongoc_array_destroy;
   _mongoc_array_init;
  +mongoc_async_cmd;
  +mongoc_async_cmd_tls_setup;
  +mongoc_async_destroy;
  +mongoc_async_new;
  +mongoc_async_run;
   _mongoc_buffer_append_from_stream;
   _mongoc_buffer_clear;
   _mongoc_buffer_destroy;
  @@ -1146,12 +1173,14 @@
   mongoc_bulk_operation_delete_one;
   mongoc_bulk_operation_destroy;
   mongoc_bulk_operation_execute;
  +mongoc_bulk_operation_get_hint;
   mongoc_bulk_operation_insert;
   _mongoc_bulk_operation_new;
   mongoc_bulk_operation_new;
   mongoc_bulk_operation_remove;
   mongoc_bulk_operation_remove_one;
   mongoc_bulk_operation_replace_one;
  +mongoc_bulk_operation_set_bypass_document_validation;
   mongoc_bulk_operation_set_client;
   mongoc_bulk_operation_set_collection;
   mongoc_bulk_operation_set_database;
  @@ -1159,24 +1188,34 @@
   mongoc_bulk_operation_set_write_concern;
   mongoc_bulk_operation_update;
   mongoc_bulk_operation_update_one;
  +mongoc_check_version;
   mongoc_cleanup;
   mongoc_client_command;
   mongoc_client_command_simple;
  +mongoc_client_command_simple_with_server_id;
   _mongoc_client_create_stream;
  +mongoc_client_default_stream_initiator;
   mongoc_client_destroy;
   mongoc_client_get_collection;
   mongoc_client_get_database;
   mongoc_client_get_database_names;
  +mongoc_client_get_default_database;
   mongoc_client_get_gridfs;
   mongoc_client_get_max_bson_size;
   mongoc_client_get_max_message_size;
   mongoc_client_get_read_prefs;
  +mongoc_client_get_server_description;
  +mongoc_client_get_server_descriptions;
   mongoc_client_get_server_status;
   mongoc_client_get_uri;
   mongoc_client_get_write_concern;
  +mongoc_client_kill_cursor;
   mongoc_client_new;
   mongoc_client_new_from_uri;
   mongoc_client_pool_destroy;
  +mongoc_client_pool_get_size;
  +mongoc_client_pool_max_size;
  +mongoc_client_pool_min_siz

[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers rpmgfs.c rpmgfs.h tgfs.c

2014-10-04 Thread Jeff Johnson
  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:   04-Oct-2014 19:21:57
  Branch: rpm-5_4  Handle: 2014100417215601

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers rpmgfs.c rpmgfs.h tgfs.c

  Log:
- rpmgfs: add rpmgfsDel.

  Summary:
RevisionChanges Path
2.199.2.51  +1  -0  rpm/rpmio/librpmio.vers
1.1.2.4 +106 -68rpm/rpmio/rpmgfs.c
1.1.2.3 +34 -3  rpm/rpmio/rpmgfs.h
1.1.2.2 +7  -1  rpm/rpmio/tgfs.c
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.50 -r2.199.2.51 librpmio.vers
  --- rpm/rpmio/librpmio.vers   3 Oct 2014 19:20:14 -   2.199.2.50
  +++ rpm/rpmio/librpmio.vers   4 Oct 2014 17:21:56 -   2.199.2.51
  @@ -433,6 +433,7 @@
   rpmGetPath;
   _rpmgfs_debug;
   _rpmgfsI;
  +rpmgfsDel;
   rpmgfsDump;
   rpmgfsGet;
   rpmgfsList;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmgfs.c
  
  $ cvs diff -u -r1.1.2.3 -r1.1.2.4 rpmgfs.c
  --- rpm/rpmio/rpmgfs.c3 Oct 2014 19:20:14 -   1.1.2.3
  +++ rpm/rpmio/rpmgfs.c4 Oct 2014 17:21:56 -   1.1.2.4
  @@ -69,89 +69,128 @@
   
   }
   
  +static void * rpmgfsChk(rpmgfs gfs, const char * msg,
  + bson_error_t * bep, void * p)
  +{
  +if (p == NULL) {
  +fprintf(stderr, "*** %s: (%u.%u) %s\n", msg, bep->domain, bep->code, 
bep->message);
  +}
  +return p;
  +}
  +
   /*==*/
  -int rpmgfsGet(rpmgfs gfs, const char * sfn)
  +int rpmgfsGet(rpmgfs gfs, const char * dfn, const char * sfn)
   {
  +mongoc_stream_t *S = NULL;
  +mongoc_gridfs_file_t *F = NULL;
   char buf[BUFSIZ];
   bson_error_t berr;
  +FD_t fd = NULL;
   ssize_t nr;
   int rc = 1;  /* assume failure */
   
  +if (dfn == NULL)
  + dfn = "-";
  +fd = Fopen(dfn, "w");
  +if (fd == NULL || Ferror(fd))
  + goto exit;
  +
   gfs->iov.iov_base = (void *)buf;
   gfs->iov.iov_len = sizeof buf;
   
  -gfs->F = mongoc_gridfs_find_one_by_filename(gfs->G, sfn, &berr);
  -if (gfs->F == NULL) {
  -fprintf(stderr, "*** %s: (%u.%u) %s\n", __FUNCTION__, berr.domain, 
berr.code, berr.message);
  +F = rpmgfsChk(gfs, __FUNCTION__, &berr,
  + mongoc_gridfs_find_one_by_filename(gfs->G, sfn, &berr));
  +if (F == NULL)
goto exit;
  -}
   
  -gfs->S = mongoc_stream_gridfs_new(gfs->F);
  -if (gfs->S == NULL)
  +S = mongoc_stream_gridfs_new(F);
  +if (S == NULL)
goto exit;
   
   for (;;) {
  - nr = mongoc_stream_readv(gfs->S, &gfs->iov, 1, -1, 0);
  + nr = mongoc_stream_readv(S, &gfs->iov, 1, -1, 0);
if (nr < 0)
goto exit;
if (nr == 0)
   break;
   
  - if (fwrite(gfs->iov.iov_base, nr, 1, stdout) != (size_t)nr)
  + if (Fwrite(gfs->iov.iov_base, nr, 1, fd) != (size_t)nr)
goto exit;
   }
   rc = 0;
   
   exit:
   SPEW((stderr, "<-- %s(%p,%s) rc %d\n", __FUNCTION__, gfs, sfn, rc));
  -#ifdef   NOTYET
  -if (gfs->S)
  - mongoc_stream_destroy(gfs->S);
  -#endif
  -gfs->S = NULL;
  -#ifdef   NOTYET
  -if (gfs->F)
  - mongoc_gridfs_file_destroy(gfs->F);
  -#endif
  -gfs->F = NULL;
  +if (fd)
  + (void) Fclose(fd);
  +if (S)
  + mongoc_stream_destroy(S);
  +if (F)
  + mongoc_gridfs_file_destroy(F);
   return rc;
   }
   
   int rpmgfsPut(rpmgfs gfs, const char * dfn, const char * sfn)
   {
  +mongoc_stream_t *S = NULL;
  +mongoc_gridfs_file_t *F = NULL;
   mongoc_gridfs_file_opt_t opt = { 0 };
   int rc = 1;  /* assume failure */
   
  -gfs->S = mongoc_stream_file_new_for_path(sfn, O_RDONLY, 0);
  -if (gfs->S == NULL)
  +S = mongoc_stream_file_new_for_path(sfn, O_RDONLY, 0);
  +if (S == NULL)
goto exit;
   
  +/* XXX fill in other fields */
   opt.filename = dfn;
   
  -gfs->F = mongoc_gridfs_create_file_from_stream(gfs->G, gfs->S, &opt);
  -if (gfs->F == NULL)
  +F = mongoc_gridfs_create_file_from_stream(gfs->G, S, &opt);
  +if (F == NULL)
goto exit;
   
  -mongoc_gridfs_file_save(gfs->F);
  +mongoc_gridfs_file_save(F);
   rc = 0;
   
   exit:
   SPEW((stderr, "<-- %s(%p,%s,%s) rc %d\n", __FUNCTION__, gfs, dfn, sfn, rc));
  -#ifdef   NOTYET
  -if (gfs->S)
  -   

[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers rpmdav.c

2014-09-19 Thread Jeff Johnson
  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:   19-Sep-2014 21:26:21
  Branch: rpm-5_4  Handle: 2014091919262001

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers rpmdav.c

  Log:
- rpmdav: haul out more trash.

  Summary:
RevisionChanges Path
2.199.2.43  +2  -0  rpm/rpmio/librpmio.vers
2.119.2.13  +368 -243   rpm/rpmio/rpmdav.c
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.42 -r2.199.2.43 librpmio.vers
  --- rpm/rpmio/librpmio.vers   18 Sep 2014 05:07:01 -  2.199.2.42
  +++ rpm/rpmio/librpmio.vers   19 Sep 2014 19:26:21 -  2.199.2.43
  @@ -69,6 +69,8 @@
   davClose;
   davClosedir;
   _dav_debug;
  +_dav_cb_debug;
  +_dav_hook_debug;
   _dav_nooptions;
   davLstat;
   davMkdir;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmdav.c
  
  $ cvs diff -u -r2.119.2.12 -r2.119.2.13 rpmdav.c
  --- rpm/rpmio/rpmdav.c19 Sep 2014 05:17:00 -  2.119.2.12
  +++ rpm/rpmio/rpmdav.c19 Sep 2014 19:26:20 -  2.119.2.13
  @@ -61,14 +61,14 @@
   if (((_f) < 0 && _dav_debug < 0) || ((_f) > 0 && _dav_debug)) \
fprintf _list
   
  -static int _hook_debug = -1;
  +int _dav_hook_debug;
   #define  HOOKDEBUG(_f, _list) \
  -if (((_f) < 0 && _hook_debug < 0) || ((_f) > 0 && _hook_debug)) \
  +if (((_f) < 0 && _dav_hook_debug < 0) || ((_f) > 0 && _dav_hook_debug)) \
fprintf _list
   
  -static int _callback_debug = -1;
  +int _dav_cb_debug;
   #define  CALLBACKDEBUG(_f, _list) \
  -if (((_f) < 0 && _callback_debug < 0) || ((_f) > 0 && _callback_debug)) \
  +if (((_f) < 0 && _dav_cb_debug < 0) || ((_f) > 0 && _dav_cb_debug)) \
fprintf _list
   
   /* HACK: reasonable value needed (wget uses 900 as default). */
  @@ -91,13 +91,239 @@
   int rpmioHttpMaxRedirect = 20;
   #endif
   
  -#ifdef   DEAD
  -const char * rpmioHttpAccept;/* HACK: rpmioHttpAccept is unused. */
  -#endif
  +/* HACK: rpmioHttpAccept is used only by tools/wget.c. */
  +const char * rpmioHttpAccept;
   const char * rpmioHttpUserAgent;
   
   #ifdef WITH_NEON
   /* === */
  +static FD_t ud2fd(void * userdata, const char * value, const char * tag)
  +{
  +assert(userdata != NULL);
  +assert(value == NULL || value != NULL);
  +assert(tag != NULL);
  +FD_t ctrl = (FD_t) userdata;
  +urlinfo u = (urlinfo) ctrl->u;
  +#ifdef   HACK
  +assert(u);
  +#else
  +if (u)
  +#endif
  +URLSANE(u);
  +
  +CALLBACKDEBUG(-1, (stderr, "*** fd %p %s: %s\n", ctrl, tag, value));
  +return ctrl;
  +}
  +
  +static urlinfo ud2u(void * userdata, const char * value, const char * tag, 
const char * label)
  +{
  +if (userdata == NULL) fprintf(stderr, "?!? %s -> %s\n", label, __FUNCTION__);
  +assert(userdata != NULL);
  +assert(value == NULL || value != NULL);
  +assert(tag != NULL);
  +FD_t ctrl = (FD_t) userdata;
  +urlinfo u = (urlinfo) ctrl->u;
  +#ifdef HACK
  +assert(u);   /* XXX HACK: Accept-Ranges: ctrl->u == NULL? */
  +#else
  +if (u)
  +#endif
  +URLSANE(u);
  +
  +CALLBACKDEBUG(-1, (stderr, "***  u %p %s: %s\n", u, tag, value));
  +return u;
  +}
  +
  +static void davAcceptRanges(void * userdata, const char * value)
  +{
  +urlinfo u = ud2u(userdata, value, "Accept-Ranges", __FUNCTION__);
  +
  +assert(u);   /* XXX HACK: Accept-Ranges: ctrl->u == NULL? */
  +if (u && value) {
  + if (!strcmp(value, "bytes"))
  + u->caps |= RPMURL_SERVER_HASRANGE;
  + if (!strcmp(value, "none"))
  + u->caps &= ~RPMURL_SERVER_HASRANGE;
  +}/* XXX Reset RPMURL_SERVER_HASRANGE if value == NULL? */
  +}
  +
  +static void davContentLength(void * userdata, const char * value)
  +{
  +FD_t ctrl = ud2fd(userdata, value, "Content-Length");
  +
  +ctrl->contentLength = (value ? strtoll(value, NULL, 10) : 0);
  +}
  +
  +static void davContentType(void * userdata, const char * value)
  +{
  +FD_t ctrl = ud2fd(userdata, value, "Content-Type");
  +
  +ctrl->contentType = _free(ctrl->contentType);
  +if (value)
  + ctrl->contentType = xstrdup(value);
  +}
  +
  +static void davContentDisposition(void * userdata, const char * value)
  +{
  +FD_t ctrl = ud2fd(userdata, value, "Content-Disposition");
  +
  +ctrl->contentDisposition = _free(ctrl->contentDisposition);
  +if (

[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers rpmkeyring.c rpmkeyring.h

2014-09-03 Thread Jeff Johnson
  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:   03-Sep-2014 22:41:58
  Branch: rpm-5_4  Handle: 2014090320415700

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers rpmkeyring.c rpmkeyring.h

  Log:
- python: fiddleups for rpmkeyring-py.c resurrection.

  Summary:
RevisionChanges Path
2.199.2.38  +2  -0  rpm/rpmio/librpmio.vers
1.8.6.1 +30 -0  rpm/rpmio/rpmkeyring.c
1.8.6.2 +16 -0  rpm/rpmio/rpmkeyring.h
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.37 -r2.199.2.38 librpmio.vers
  --- rpm/rpmio/librpmio.vers   3 Sep 2014 19:28:54 -   2.199.2.37
  +++ rpm/rpmio/librpmio.vers   3 Sep 2014 20:41:57 -   2.199.2.38
  @@ -543,6 +543,8 @@
   rpmkuFindPubkey;
   rpmkuStorePubkey;
   rpmkuPassPhrase;
  +rpmPubkeyBase64;
  +rpmPubkeyDig;
   rpmPubkeyFree;
   rpmPubkeyLink;
   rpmPubkeyNew;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmkeyring.c
  
  $ cvs diff -u -r1.8 -r1.8.6.1 rpmkeyring.c
  --- rpm/rpmio/rpmkeyring.c2 Aug 2008 22:37:38 -   1.8
  +++ rpm/rpmio/rpmkeyring.c3 Sep 2014 20:41:57 -   1.8.6.1
  @@ -1,6 +1,7 @@
   #include "system.h"
   
   #include "rpmio_internal.h"
  +#include/* XXX b64encode */
   #include "rpmkeyring.h"
   
   #include "debug.h"
  @@ -168,6 +169,35 @@
   return NULL;
   }
   
  +pgpDig rpmPubkeyDig(rpmPubkey key)
  +{
  +pgpDig dig = NULL;
  +static unsigned char zeros[] = 
  + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
  +if (key == NULL)
  + return NULL;
  +
  +dig = pgpDigNew(RPMVSF_DEFAULT, 0);
  +if (pgpPrtPkts(key->pkt, key->pktlen, dig, 0) == 0) {
  + pgpDigParams pubp = &dig->pubkey;
  + if (!memcmp(pubp->signid, zeros, sizeof(pubp->signid)) ||
  + !memcmp(pubp->time, zeros, sizeof(pubp->time)) ||
  + pubp->userid == NULL) {
  + dig = pgpDigFree(dig);
  + }
  +}
  +return dig;
  +}
  +
  +char * rpmPubkeyBase64(rpmPubkey key)
  +{
  +char *enc = NULL;
  +
  +if (key)
  + enc = b64encode(key->pkt, key->pktlen);
  +return enc;
  +}
  +
   rpmRC rpmKeyringLookup(rpmKeyring keyring, pgpDig sig)
   {
   rpmRC res = RPMRC_NOKEY;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmkeyring.h
  
  $ cvs diff -u -r1.8.6.1 -r1.8.6.2 rpmkeyring.h
  --- rpm/rpmio/rpmkeyring.h19 Apr 2012 17:26:06 -  1.8.6.1
  +++ rpm/rpmio/rpmkeyring.h3 Sep 2014 20:41:57 -   1.8.6.2
  @@ -114,6 +114,22 @@
   rpmPubkey rpmPubkeyUnlink(/*@killref@*/ rpmPubkey key)
/*@modifies key @*/;
   
  +/** \ingroup rpmkeyring
  + * Parse OpenPGP pubkey parameters.
  + * @param key   Pubkey
  + * @return  parsed output of pubkey packet parameters
  + */
  +pgpDig rpmPubkeyDig(rpmPubkey key)
  + /*@modifies key @*/;
  +
  +/** \ingroup rpmkeyring
  + * Return base64 encoding of pubkey
  + * @param key   Pubkey
  + * @return  base64 encoded pubkey (malloced), NULL on error
  + */
  +char * rpmPubkeyBase64(rpmPubkey key)
  + /*@modifies key @*/;
  +
   #ifdef __cplusplus
   }
   #endif
  @@ .
__
RPM Package Managerhttp://rpm5.org
CVS Sources Repositoryrpm-cvs@rpm5.org


[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers rpmio.c rpmio.h rpmsq.c r...

2014-09-03 Thread Jeff Johnson
  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:   03-Sep-2014 21:28:55
  Branch: rpm-5_4  Handle: 2014090319285401

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers rpmio.c rpmio.h rpmsq.c rpmsq.h

  Log:
- python: fiddleups needed for rpmfd-py.c resurrection.

  Summary:
RevisionChanges Path
2.199.2.37  +2  -0  rpm/rpmio/librpmio.vers
1.230.2.16  +11 -0  rpm/rpmio/rpmio.c
1.97.2.2+6  -0  rpm/rpmio/rpmio.h
1.42.6.4+5  -0  rpm/rpmio/rpmsq.c
1.14.6.2+9  -0  rpm/rpmio/rpmsq.h
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.36 -r2.199.2.37 librpmio.vers
  --- rpm/rpmio/librpmio.vers   6 Aug 2014 20:42:36 -   2.199.2.36
  +++ rpm/rpmio/librpmio.vers   3 Sep 2014 19:28:54 -   2.199.2.37
  @@ -107,6 +107,7 @@
   Fdopen;
   _Fdopen;
   fdReadable;
  +fdSize;
   fdWritable;
   Ferror;
   _Ferror;
  @@ -671,6 +672,7 @@
   rpmsqEnable;
   rpmsqExecve;
   rpmsqFork;
  +rpmsqIsCaught;
   rpmsqInsert;
   rpmsqJoin;
   rpmsqQueue;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmio.c
  
  $ cvs diff -u -r1.230.2.15 -r1.230.2.16 rpmio.c
  --- rpm/rpmio/rpmio.c 6 Aug 2014 20:42:36 -   1.230.2.15
  +++ rpm/rpmio/rpmio.c 3 Sep 2014 19:28:54 -   1.230.2.16
  @@ -263,6 +263,17 @@
   }
   
   /* === */
  +off_t fdSize(FD_t fd)
  +{
  +struct stat sb;
  +off_t rc = -1;
  +
  +FDSANE(fd);
  +if (fstat(Fileno(fd), &sb) == 0)
  +rc = sb.st_size;
  +return rc;
  +}
  +
   FD_t fdDup(int fdno)
   {
   FD_t fd;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmio.h
  
  $ cvs diff -u -r1.97.2.1 -r1.97.2.2 rpmio.h
  --- rpm/rpmio/rpmio.h 20 Jul 2014 00:09:14 -  1.97.2.1
  +++ rpm/rpmio/rpmio.h 3 Sep 2014 19:28:55 -   1.97.2.2
  @@ -537,6 +537,12 @@
   /*@{*/
   
   /**
  + *  */
  +off_t   fdSize(FD_t fd)
  + /*@globals fileSystem, internalState @*/
  + /*@modifies fileSystem, internalState @*/;
  +
  +/**
*/
   /*@null@*/ FD_t fdDup(int fdno)
/*@globals fileSystem, internalState @*/
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmsq.c
  
  $ cvs diff -u -r1.42.6.3 -r1.42.6.4 rpmsq.c
  --- rpm/rpmio/rpmsq.c 16 Apr 2012 20:53:33 -  1.42.6.3
  +++ rpm/rpmio/rpmsq.c 3 Sep 2014 19:28:55 -   1.42.6.4
  @@ -387,6 +387,11 @@
   };
   /*@=fullinitblock@*/
   
  +int rpmsqIsCaught(int signum)
  +{
  +return sigismember(&rpmsqCaught, signum);
  +}
  +
   void rpmsqAction(int signum, /*@unused@*/ void * info,
/*@unused@*/ void * context)
   {
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmsq.h
  
  $ cvs diff -u -r1.14.6.1 -r1.14.6.2 rpmsq.h
  --- rpm/rpmio/rpmsq.h 12 Jul 2013 21:40:49 -  1.14.6.1
  +++ rpm/rpmio/rpmsq.h 3 Sep 2014 19:28:55 -   1.14.6.2
  @@ -85,6 +85,15 @@
/*@modifies elem, fileSystem, internalState @*/;
   /*@=exportlocal@*/
   
  +/** \ingroup rpmsq
  + * Test if given signal has been caught (while signals blocked).
  + * Similar to sigismember() but operates on internal signal queue.
  + * @param signumsignal to test for
  + * @return  1 if caught, 0 if not and -1 on error
  + */
  +int rpmsqIsCaught(int signum)
  + /*@*/;
  +
   /**
* Default signal handler.
* @param signum signal number
  @@ .
__
RPM Package Managerhttp://rpm5.org
CVS Sources Repositoryrpm-cvs@rpm5.org


[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers

2014-04-24 Thread Jeff Johnson
  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:   25-Apr-2014 04:42:18
  Branch: rpm-5_4  Handle: 2014042502421700

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers

  Log:
- sanity

  Summary:
RevisionChanges Path
2.199.2.32  +5  -1  rpm/rpmio/librpmio.vers
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.31 -r2.199.2.32 librpmio.vers
  --- rpm/rpmio/librpmio.vers   18 Apr 2014 18:45:54 -  2.199.2.31
  +++ rpm/rpmio/librpmio.vers   25 Apr 2014 02:42:17 -  2.199.2.32
  @@ -273,6 +273,7 @@
   _pgp_print;
   pgpExportPubkey;
   pgpExportSignature;
  +pgpExtractPubkeyFingerprint;
   pgpFindPubkey;
   pgpGetPubkey;
   pgpGetSignature;
  @@ -281,9 +282,11 @@
   pgpGetSig;
   pgpGetSiglen;
   pgpGrabPkts;
  +pgpHashAlgo2Name;
   pgpHashAlgoStringToNumber;
   pgpHashTbl;
   pgpImplVecs;
  +pgpHashName2Algo;
   pgpKeyServerPrefsTbl;
   pgpPrtComment;
   pgpPrtKey;
  @@ -295,8 +298,9 @@
   pgpPrtSubType;
   pgpPrtUserID;
   pgpPrtVal;
  +pgpPubkeyAlgo2Name;
   pgpPubkeyFingerprint;
  -pgpExtractPubkeyFingerprint;
  +pgpPubkeyName2Algo;
   pgpPktLen;
   pgpPubkeyTbl;
   pgpReadPkts;
  @@ .
__
RPM Package Managerhttp://rpm5.org
CVS Sources Repositoryrpm-cvs@rpm5.org


[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers rpmgit.c rpmgit.h tgit.c

2013-09-05 Thread Jeff Johnson
  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:   05-Sep-2013 18:50:28
  Branch: rpm-5_4  Handle: 2013090516502700

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers rpmgit.c rpmgit.h tgit.c

  Log:
- git: add rev-parse.c fluff.

  Summary:
RevisionChanges Path
2.199.2.27  +3  -0  rpm/rpmio/librpmio.vers
2.1.2.37+95 -30 rpm/rpmio/rpmgit.c
2.1.2.21+18 -0  rpm/rpmio/rpmgit.h
1.1.2.33+64 -0  rpm/rpmio/tgit.c
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.26 -r2.199.2.27 librpmio.vers
  --- rpm/rpmio/librpmio.vers   19 Jul 2013 08:56:51 -  2.199.2.26
  +++ rpm/rpmio/librpmio.vers   5 Sep 2013 16:50:27 -   2.199.2.27
  @@ -400,6 +400,7 @@
   _rpmgit_tree;
   _rpmgitI;
   rpmgitAddFile;
  +rpmgitClose;
   rpmgitCmdAdd;
   rpmgitCmdCommit;
   rpmgitCmdDiff;
  @@ -410,6 +411,8 @@
   rpmgitInfo;
   rpmgitInit;
   rpmgitNew;
  +rpmgitOid;
  +rpmgitOpen;
   rpmgitPopt;
   rpmgitPrintCommit;
   rpmgitPrintHead;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmgit.c
  
  $ cvs diff -u -r2.1.2.36 -r2.1.2.37 rpmgit.c
  --- rpm/rpmio/rpmgit.c4 Sep 2013 21:14:45 -   2.1.2.36
  +++ rpm/rpmio/rpmgit.c5 Sep 2013 16:50:27 -   2.1.2.37
  @@ -147,6 +147,30 @@
   
   /*==*/
   
  +static void check(int error, const char *message, const char *extra)
  +{
  +const git_error *lg2err;
  +const char *lg2msg = "";
  +const char *lg2spacer = "";
  +
  +if (!error)
  + return;
  +
  +if ((lg2err = giterr_last()) != NULL && lg2err->message != NULL) {
  + lg2msg = lg2err->message;
  + lg2spacer = " - ";
  +}
  +
  +if (extra)
  + fprintf(stderr, "%s '%s' [%d]%s%s\n",
  + message, extra, error, lg2spacer, lg2msg);
  +else
  + fprintf(stderr, "%s [%d]%s%s\n",
  + message, error, lg2spacer, lg2msg);
  +
  +exit(1);
  +}
  +
   static int Xchkgit(/*@unused@*/ rpmgit git, const char * msg,
   int error, int printit,
   const char * func, const char * fn, unsigned ln)
  @@ -448,6 +472,7 @@
git->R = NULL;
   }
/* XXX git_repository_init_ext(&git->R, git->fn, &opts); */
  + /* XXX git->repodir? */
   rc = chkgit(git, "git_repository_init",
git_repository_init((git_repository **)&git->R,
git->fn, git->is_bare));
  @@ -604,8 +629,8 @@
   }
   if (git->fp)
fprintf(git->fp, "%s: %s\n", var_name, value);
  -SPEW(0, rc, git);
   
  +SPEW(0, rc, git);
   return rc;
   }
   #endif   /* defined(WITH_LIBGT2) */
  @@ -613,8 +638,8 @@
   int rpmgitConfig(rpmgit git)
   {
   int rc = -1;
  -#if defined(WITH_LIBGIT2)
   
  +#if defined(WITH_LIBGIT2)
   /* Read/print/save configuration info. */
   rc = chkgit(git, "git_repository_config",
git_repository_config((git_config **)&git->cfg, git->R));
  @@ -632,6 +657,59 @@
   return rc;
   }
   
  +const char * rpmgitOid(rpmgit git, const void * _oid)
  +{
  +#if defined(WITH_LIBGIT2)
  +git_oid * oid = (git_oid *) _oid;
  +git->str[0] = '\0';
  +git_oid_tostr(git->str, sizeof(git->str), oid);
  +git->str[RPMGIT_OID_HEXSZ] = '\0';
  +#else
  +git->str[0] = '\0';
  +#endif   /* defined(WITH_LIBGT2) */
  +return git->str;
  +}
  +
  +int rpmgitClose(rpmgit git)
  +{
  +int rc = 0;
  +
  +#if defined(WITH_LIBGIT2)
  + /* XXX other sanity checks and side effects? */
  +if (git->R) {
  + git_repository_free(git->R);
  + git->R = NULL;
  + git->repodir = _free(git->repodir);
  +}
  +#endif   /* defined(WITH_LIBGT2) */
  +
  +SPEW(0, rc, git);
  +return rc;
  +}
  +
  +int rpmgitOpen(rpmgit git, const char * repodir)
  +{
  +int rc = 0;
  +
  +#if defined(WITH_LIBGIT2)
  + /* XXX lazy close? */
  +if (git->R == NULL) {
  + if (repodir) {
  + git->repodir = _free(git->repodir);
  + git->repodir = Realpath(repodir, NULL);
  + } else if (git->repodir == NULL) {
  + const char * dn = (git->fn ? git->fn : ".");
  + git->repodir = Realpath(dn, NULL);
  + }
  + rc = chkgit(git, "git_repository_open_ext",
  + git_repository_open_ext((git_repository **)&

[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers

2013-07-19 Thread Jeff Johnson
  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:   19-Jul-2013 10:19:43
  Branch: rpm-5_4  Handle: 2013071908194200

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers

  Log:
- bson: expose all symbols.

  Summary:
RevisionChanges Path
2.199.2.25  +4  -0  rpm/rpmio/librpmio.vers
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.24 -r2.199.2.25 librpmio.vers
  --- rpm/rpmio/librpmio.vers   15 Jul 2013 22:11:06 -  2.199.2.24
  +++ rpm/rpmio/librpmio.vers   19 Jul 2013 08:19:42 -  2.199.2.25
  @@ -889,6 +889,7 @@
   bson_init_empty;
   bson_init_finished_data;
   bson_init_finished_data_with_copy;
  +bson_iterator_alloc;
   bson_iterator_bin_data;
   bson_iterator_bin_len;
   bson_iterator_bin_type;
  @@ -898,6 +899,7 @@
   bson_iterator_code_scope;
   bson_iterator_code_scope_init;
   bson_iterator_date;
  +bson_iterator_dealloc;
   bson_iterator_double;
   bson_iterator_double_raw;
   bson_iterator_init;
  @@ -918,6 +920,8 @@
   bson_iterator_subobject_init;
   bson_iterator_time_t;
   bson_iterator_timestamp;
  +bson_iterator_timestamp_increment;
  +bson_iterator_timestamp_time;
   bson_iterator_type;
   bson_iterator_value;
   bson_little_endian64;
  @@ .
__
RPM Package Managerhttp://rpm5.org
CVS Sources Repositoryrpm-cvs@rpm5.org


[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers

2013-07-15 Thread Jeff Johnson
  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:   16-Jul-2013 00:11:07
  Branch: rpm-5_4  Handle: 2013071522110600

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers

  Log:
- mongo: expose gridfs symbols for tests/mongo/gridfs.c

  Summary:
RevisionChanges Path
2.199.2.24  +5  -0  rpm/rpmio/librpmio.vers
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.23 -r2.199.2.24 librpmio.vers
  --- rpm/rpmio/librpmio.vers   9 Jul 2013 12:04:25 -   2.199.2.23
  +++ rpm/rpmio/librpmio.vers   15 Jul 2013 22:11:06 -  2.199.2.24
  @@ -942,6 +942,8 @@
   bson_swap_endian64;
   bson_swap_endian32;
   set_bson_err_handler;
  +gridfile_create;
  +gridfile_dealloc;
   gridfile_destroy;
   gridfile_exists;
   gridfile_get_boolean;
  @@ -958,7 +960,10 @@
   gridfile_get_uploaddate;
   gridfile_init;
   gridfile_read;
  +gridfile_read_buffer;
   gridfile_seek;
  +gridfile_set_size;
  +gridfile_truncate;
   gridfile_write_buffer;
   gridfile_write_file;
   gridfile_writer_done;
  @@ .
__
RPM Package Managerhttp://rpm5.org
CVS Sources Repositoryrpm-cvs@rpm5.org


[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers mongo.c mongo.h

2013-07-09 Thread Jeff Johnson
  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:   09-Jul-2013 14:04:26
  Branch: rpm-5_4  Handle: 2013070912042500

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers mongo.c mongo.h

  Log:
- mongo: expose mongo_env_close_socket()

  Summary:
RevisionChanges Path
2.199.2.23  +1  -0  rpm/rpmio/librpmio.vers
2.3.4.7 +1  -1  rpm/rpmio/mongo.c
2.2.4.5 +3  -0  rpm/rpmio/mongo.h
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.22 -r2.199.2.23 librpmio.vers
  --- rpm/rpmio/librpmio.vers   9 Jul 2013 08:50:31 -   2.199.2.22
  +++ rpm/rpmio/librpmio.vers   9 Jul 2013 12:04:25 -   2.199.2.23
  @@ -999,6 +999,7 @@
   mongo_data_append64;
   mongo_destroy;
   mongo_disconnect;
  +mongo_env_close_socket;
   mongo_find;
   mongo_find_one;
   mongo_init;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/mongo.c
  
  $ cvs diff -u -r2.3.4.6 -r2.3.4.7 mongo.c
  --- rpm/rpmio/mongo.c 29 Jun 2013 21:04:19 -  2.3.4.6
  +++ rpm/rpmio/mongo.c 9 Jul 2013 12:04:25 -   2.3.4.7
  @@ -1588,7 +1588,7 @@
   # define NI_MAXSERV 32
   #endif
   
  -static int mongo_env_close_socket( SOCKET socket ) {
  +int mongo_env_close_socket( SOCKET socket ) {
   return close( socket );
   }
   
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/mongo.h
  
  $ cvs diff -u -r2.2.4.4 -r2.2.4.5 mongo.h
  --- rpm/rpmio/mongo.h 27 Jun 2013 22:13:43 -  2.2.4.4
  +++ rpm/rpmio/mongo.h 9 Jul 2013 12:04:25 -   2.2.4.5
  @@ -928,6 +928,9 @@
*/
   MONGO_EXPORT void mongo_clear_errors( mongo *conn );
   
  +/* Close a socket */
  +MONGO_EXPORT int mongo_env_close_socket( SOCKET socket );
  +
   MONGO_EXTERN_C_END
   
   /*==*/
  @@ .
__
RPM Package Managerhttp://rpm5.org
CVS Sources Repositoryrpm-cvs@rpm5.org


[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers

2013-07-09 Thread Jeff Johnson
  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:   09-Jul-2013 10:50:31
  Branch: rpm-5_4  Handle: 2013070908503100

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers

  Log:
- fix: export only bson/mongo symbols used by tests.

  Summary:
RevisionChanges Path
2.199.2.22  +31 -0  rpm/rpmio/librpmio.vers
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.21 -r2.199.2.22 librpmio.vers
  --- rpm/rpmio/librpmio.vers   20 Jun 2012 15:26:54 -  2.199.2.21
  +++ rpm/rpmio/librpmio.vers   9 Jul 2013 08:50:31 -   2.199.2.22
  @@ -834,6 +834,7 @@
   yarnRelease;
   yarnTwist;
   yarnWaitFor;
  +bson_alloc;
   bson_append;
   bson_append32;
   bson_append64;
  @@ -870,6 +871,8 @@
   bson_buffer_finish;
   bson_buffer_init;
   bson_copy;
  +bson_data;
  +bson_dealloc;
   bson_destroy;
   bson_empty;
   bson_ensure_space;
  @@ -880,8 +883,12 @@
   bson_finish;
   bson_fprintf;
   bson_free;
  +bson_free_func;
   bson_from_buffer;
   bson_init;
  +bson_init_empty;
  +bson_init_finished_data;
  +bson_init_finished_data_with_copy;
   bson_iterator_bin_data;
   bson_iterator_bin_len;
   bson_iterator_bin_type;
  @@ -889,6 +896,7 @@
   bson_iterator_bool_raw;
   bson_iterator_code;
   bson_iterator_code_scope;
  +bson_iterator_code_scope_init;
   bson_iterator_date;
   bson_iterator_double;
   bson_iterator_double_raw;
  @@ -907,6 +915,7 @@
   bson_iterator_string_len;
   bson_iterator_subiterator;
   bson_iterator_subobject;
  +bson_iterator_subobject_init;
   bson_iterator_time_t;
   bson_iterator_timestamp;
   bson_iterator_type;
  @@ -927,6 +936,7 @@
   bson_realloc_func;
   bson_set_oid_fuzz;
   bson_set_oid_inc;
  +bson_shared_empty;
   bson_size;
   bson_sprintf;
   bson_swap_endian64;
  @@ -961,6 +971,8 @@
   gridfs_store_buffer;
   gridfs_store_file;
   mongo_check_connection;
  +mongo_clear_errors;
  +mongo_client;
   mongo_cmd_add_user;
   mongo_cmd_authenticate;
   mongo_cmd_drop_collection;
  @@ -972,6 +984,7 @@
   mongo_connect;
   mongo_connect_pair;
   mongo_count;
  +mongo_create_capped_collection;
   mongo_create_index;
   mongo_create_simple_index;
   mongo_cursor_bson;
  @@ -988,6 +1001,7 @@
   mongo_disconnect;
   mongo_find;
   mongo_find_one;
  +mongo_init;
   mongo_insert;
   mongo_insert_batch;
   mongo_md5_append;
  @@ -1002,9 +1016,26 @@
   mongo_replset_add_seed;
   mongo_replset_connect;
   mongo_run_command;
  +mongo_set_op_timeout;
  +mongo_set_write_concern;
   mongo_simple_int_command;
   mongo_simple_str_command;
   mongo_update;
  +mongo_validate_ns;
  +mongo_write_concern_destroy;
  +mongo_write_concern_finish;
  +mongo_write_concern_get_cmd;
  +mongo_write_concern_get_fsync;
  +mongo_write_concern_get_j;
  +mongo_write_concern_get_mode;
  +mongo_write_concern_get_w;
  +mongo_write_concern_get_wtimeout;
  +mongo_write_concern_init;
  +mongo_write_concern_set_fsync;
  +mongo_write_concern_set_j;
  +mongo_write_concern_set_mode;
  +mongo_write_concern_set_w;
  +mongo_write_concern_set_wtimeout;
 local:
   *;
   };
  @@ .
__
RPM Package Managerhttp://rpm5.org
CVS Sources Repositoryrpm-cvs@rpm5.org


[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers rpmgit.c

2012-06-20 Thread Jeff Johnson
  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:   20-Jun-2012 17:26:55
  Branch: rpm-5_4  Handle: 2012062015265400

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers rpmgit.c

  Log:
- git: orphan.

  Summary:
RevisionChanges Path
2.199.2.21  +9  -2  rpm/rpmio/librpmio.vers
2.1.2.25+0  -1  rpm/rpmio/rpmgit.c
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.20 -r2.199.2.21 librpmio.vers
  --- rpm/rpmio/librpmio.vers   14 Jun 2012 21:50:21 -  2.199.2.20
  +++ rpm/rpmio/librpmio.vers   20 Jun 2012 15:26:54 -  2.199.2.21
  @@ -398,7 +398,13 @@
   _rpmgit_debug;
   _rpmgit_dir;
   _rpmgit_tree;
  +_rpmgitI;
   rpmgitAddFile;
  +rpmgitCmdAdd;
  +rpmgitCmdCommit;
  +rpmgitCmdDiff;
  +rpmgitCmdInit;
  +rpmgitCmdStatus;
   rpmgitCommit;
   rpmgitConfig;
   rpmgitInfo;
  @@ -415,6 +421,7 @@
   rpmgitPrintTime;
   rpmgitPrintTree;
   rpmgitRead;
  +rpmgitRun;
   rpmgitWalk;
   rpmgitWrite;
   rpmGlob;
  @@ -599,9 +606,9 @@
   rpmpythonRunFile;
   rpmioExists;
   rpmioCtime;
  +_rpmruby_debug;
   _rpmrubyI;
   _rpmrubyPool;
  -_rpmruby_debug;
   rpmrubyNew;
   rpmrubyRun;
   rpmrubyRunFile;
  @@ -632,8 +639,8 @@
   rpmsqThreadEqual;
   rpmsqWait;
   _sql;
  -_rpmsqlI;
   _rpmsql_debug;
  +_rpmsqlI;
   _rpmsqlOptions;
   _rpmsqlSeenInterrupt;
   _rpmsqlShellStatic;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmgit.c
  
  $ cvs diff -u -r2.1.2.24 -r2.1.2.25 rpmgit.c
  --- rpm/rpmio/rpmgit.c20 Jun 2012 14:21:22 -  2.1.2.24
  +++ rpm/rpmio/rpmgit.c20 Jun 2012 15:26:54 -  2.1.2.25
  @@ -832,7 +832,6 @@
   {
   static int _popt_flags = POPT_CONTEXT_POSIXMEHARDER;
   int rc;
  -int save;
   int xx;
   
   if (_rpmgit_debug) argvPrint("before", (ARGV_t)argv, NULL);
  @@ .
__
RPM Package Managerhttp://rpm5.org
CVS Sources Repositoryrpm-cvs@rpm5.org


[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers rpmgit.c rpmgit.h tgit.c

2012-06-14 Thread Jeff Johnson
  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-Jun-2012 23:50:22
  Branch: rpm-5_4  Handle: 2012061421502100

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers rpmgit.c rpmgit.h tgit.c

  Log:
- git: more refactoring.

  Summary:
RevisionChanges Path
2.199.2.20  +3  -0  rpm/rpmio/librpmio.vers
2.1.2.21+38 -1  rpm/rpmio/rpmgit.c
2.1.2.14+13 -5  rpm/rpmio/rpmgit.h
1.1.2.23+135 -182   rpm/rpmio/tgit.c
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.19 -r2.199.2.20 librpmio.vers
  --- rpm/rpmio/librpmio.vers   13 Jun 2012 23:07:36 -  2.199.2.19
  +++ rpm/rpmio/librpmio.vers   14 Jun 2012 21:50:21 -  2.199.2.20
  @@ -396,12 +396,15 @@
   rpmGetMacroEntries;
   rpmGetPath;
   _rpmgit_debug;
  +_rpmgit_dir;
  +_rpmgit_tree;
   rpmgitAddFile;
   rpmgitCommit;
   rpmgitConfig;
   rpmgitInfo;
   rpmgitInit;
   rpmgitNew;
  +rpmgitPopt;
   rpmgitPrintCommit;
   rpmgitPrintHead;
   rpmgitPrintIndex;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmgit.c
  
  $ cvs diff -u -r2.1.2.20 -r2.1.2.21 rpmgit.c
  --- rpm/rpmio/rpmgit.c14 Jun 2012 18:39:03 -  2.1.2.20
  +++ rpm/rpmio/rpmgit.c14 Jun 2012 21:50:21 -  2.1.2.21
  @@ -17,6 +17,10 @@
   
   /*@unchecked@*/
   int _rpmgit_debug = 0;
  +/*@unchecked@*/
  +const char * _rpmgit_dir;/* XXX GIT_DIR */
  +/*@unchecked@*/
  +const char * _rpmgit_tree;   /* XXX GIT_WORK_TREE */
   
   #define  SPEW(_t, _rc, _git) \
 { if ((_t) || _rpmgit_debug ) \
  @@ -793,6 +797,34 @@
   }
   
   /*==*/
  +static int
  +rpmgitPopt(rpmgit git, int argc, char *argv[], struct poptOption * opts)
  +{
  +static int _popt_flags = 0;
  +int rc;
  +int xx;
  +
  +rpmgitPrintRepo(git, git->R, git->fp);
  +git->con = poptFreeContext(git->con);/* XXX necessary? */
  +git->con = poptGetContext(argv[0], argc, (const char **)argv, opts, 
_popt_flags);
  +while ((rc = poptGetNextOpt(git->con)) > 0) {
  + const char * arg = poptGetOptArg(git->con);
  + arg = _free(arg);
  +}
  +if (rc < -1) {
  +fprintf(stderr, "%s: %s: %s\n", argv[0],
  +poptBadOption(git->con, POPT_BADOPTION_NOALIAS),
  +poptStrerror(rc));
  + git->con = poptFreeContext(git->con);
  +}
  +git->av = argvFree(git->av); /* XXX necessary? */
  +if (git->con)
  + xx = argvAppend(&git->av, (ARGV_t)poptGetArgs(git->con));
  +git->ac = argvCount(git->av);
  +return rc;
  +}
  +
  +/*==*/
   
   static void rpmgitFini(void * _git)
/*@globals fileSystem @*/
  @@ -859,10 +891,15 @@
   return git;
   }
   
  -rpmgit rpmgitNew(const char * fn, int flags)
  +rpmgit rpmgitNew(char ** argv, uint32_t flags, void * _opts)
   {
   rpmgit git = rpmgitGetPool(_rpmgitPool);
  +int argc = argvCount(argv);
  +poptOption * opts = (poptOption *) _opts;
  +const char * fn = _rpmgit_dir;
  +int xx;
   
  +xx = rpmgitPopt(git, argc, argv, opts);
   git->fn = (fn ? xstrdup(fn) : NULL);
   git->flags = flags;
   
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmgit.h
  
  $ cvs diff -u -r2.1.2.13 -r2.1.2.14 rpmgit.h
  --- rpm/rpmio/rpmgit.h14 Jun 2012 18:39:03 -  2.1.2.13
  +++ rpm/rpmio/rpmgit.h14 Jun 2012 21:50:21 -  2.1.2.14
  @@ -9,6 +9,10 @@
*/
   /*@unchecked@*/
   extern int _rpmgit_debug;
  +/*@unchecked@*/
  +extern const char * _rpmgit_dir; /* XXX GIT_DIR */
  +/*@unchecked@*/
  +extern const char * _rpmgit_tree;/* XXX GIT_WORK_TREE */
   
   /** \ingroup rpmio
*/
  @@ -17,17 +21,21 @@
   #if defined(_RPMGIT_INTERNAL)
   
   #include 
  +#include 
  +
  +#if defined(HAVE_GIT2_H)
   #include 
   #include 
   #include 
  -#include 
  +#endif
   
   /** \ingroup rpmio
*/
   struct rpmgit_s {
   struct rpmioItem_s _item;/*!< usage mutex and pool identifier. */
  +
   const char * fn;
  -int flags;
  +uint32_t flags;
   
   poptContext con;
   ARGV_t av;
  @@ -112,16 +120,16 @@
   
   /**
* Create and load a git wrapper.
  - * @param fn git file
  + * @param argv

[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers rpmsql.c tgit.c

2012-06-13 Thread Jeff Johnson
  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-Jun-2012 01:07:38
  Branch: rpm-5_4  Handle: 2012061323073600

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers rpmsql.c tgit.c

  Log:
 git: WIP.

  Summary:
RevisionChanges Path
2.199.2.19  +1  -0  rpm/rpmio/librpmio.vers
2.59.2.5+2  -1  rpm/rpmio/rpmsql.c
1.1.2.20+85 -9  rpm/rpmio/tgit.c
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.18 -r2.199.2.19 librpmio.vers
  --- rpm/rpmio/librpmio.vers   7 May 2012 14:38:23 -   2.199.2.18
  +++ rpm/rpmio/librpmio.vers   13 Jun 2012 23:07:36 -  2.199.2.19
  @@ -408,6 +408,7 @@
   rpmgitPrintOid;
   rpmgitPrintRepo;
   rpmgitPrintSig;
  +rpmgitPrintTag;
   rpmgitPrintTime;
   rpmgitPrintTree;
   rpmgitRead;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmsql.c
  
  $ cvs diff -u -r2.59.2.4 -r2.59.2.5 rpmsql.c
  --- rpm/rpmio/rpmsql.c4 Jun 2012 15:10:21 -   2.59.2.4
  +++ rpm/rpmio/rpmsql.c13 Jun 2012 23:07:36 -  2.59.2.5
  @@ -5117,7 +5117,8 @@
N_("Common options for all rpmio executables:"), NULL},
   #endif
   
  -POPT_AUTOHELP {NULL, (char) -1, POPT_ARG_INCLUDE_TABLE, NULL, 0,
  +POPT_AUTOHELP
  +  { NULL, (char) -1, POPT_ARG_INCLUDE_TABLE, NULL, 0,
N_("\
   Usage: dbsql [OPTIONS] FILENAME [SQL]\n\
   FILENAME is the name of an SQLite database. A new database is created\n\
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/tgit.c
  
  $ cvs diff -u -r1.1.2.19 -r1.1.2.20 tgit.c
  --- rpm/rpmio/tgit.c  13 Jun 2012 19:44:56 -  1.1.2.19
  +++ rpm/rpmio/tgit.c  13 Jun 2012 23:07:36 -  1.1.2.20
  @@ -1440,7 +1440,7 @@
   
   opts.flags |=  GIT_STATUS_OPT_INCLUDE_IGNORED;
   opts.flags |=  GIT_STATUS_OPT_INCLUDE_UNMODIFIED;
  -opts.flags &= ~GIT_STATUS_OPT_EXCLUDE_SUBMODULED;
  +opts.flags &= ~GIT_STATUS_OPT_EXCLUDE_SUBMODULES;
   if (!strcmp(status_untracked_files, "no")) {
opts.flags &= ~GIT_STATUS_OPT_INCLUDE_UNTRACKED;
opts.flags &= ~GIT_STATUS_OPT_RECURSE_UNTRACKED_DIRS;
  @@ -2480,6 +2480,8 @@
   int ndigits;
   int xx = -1;
   
  +fprintf(stderr, "--> %s(%p[%d]) con %p tag_flags %x\n", __FUNCTION__, argv, 
argc, con, tag_flags);
  +
   argvPrint(__FUNCTION__, (ARGV_t)argv, NULL);
   if (strcmp(argv[0], "tag")) assert(0);
   rpmgitPrintRepo(git, git->R, git->fp);
  @@ -2601,8 +2603,14 @@
   rpmgit git = rpmgitNew(git_dir, 0);
   FILE * fp = stdout;
   rpmRC rc = RPMRC_FAIL;
  +git_reset_type _rtype = GIT_RESET_MIXED;
  +git_oid oid;
  +git_object * obj = NULL;
  +int ndigits = 0;
   int xx = -1;
   
  +fprintf(stderr, "--> %s(%p[%d]) con %p reset_flags %x\n", __FUNCTION__, 
argv, argc, con, reset_flags);
  +
   argvPrint(__FUNCTION__, (ARGV_t)argv, NULL);
   if (strcmp(argv[0], "reset")) assert(0);
   rpmgitPrintRepo(git, git->R, git->fp);
  @@ -2611,6 +2619,38 @@
   ac = argvCount(av);
   argvPrint(__FUNCTION__, (ARGV_t)av, NULL);
   
  +if (ac > 1)
  + goto exit;
  +
  +if (ac == 1) {
  + git_reference * H = NULL;
  + ndigits = GIT_OID_HEXSZ;
  + xx = chkgit(git, "git_repository_head",
  + git_repository_head(&H, git->R));
  + if (xx)
  + goto exit;
  + git_oid_cpy(&oid, git_reference_oid(H));
  +} else {
  + ndigits = strlen(av[1]);
  + xx = chkgit(git, "git_oid_fromstrn",
  + git_oid_fromstrn(&oid, av[0], ndigits));
  + if (xx)
  + goto exit;
  +}
  +
  +if (!(ndigits > 0 && ndigits <= GIT_OID_HEXSZ))
  + ndigits = GIT_OID_HEXSZ;
  + /* XXX GIT_OBJ_TAG is also permitted. */
  +xx = chkgit(git, "git_object_lookup_prefix",
  + git_object_lookup_prefix(&obj, git->R, &oid, ndigits, 
GIT_OBJ_COMMIT));
  +if (xx)
  + goto exit;
  +
  + /* XXX no reset --hard yet. */
  +_rtype = (RESET_ISSET(SOFT) ? GIT_RESET_SOFT : GIT_RESET_MIXED);
  +xx = chkgit(git, "git_reset",
  + git_reset(git->R, obj, _rtype));
  +
   xx = 0;
   
   exit:
  @@ -4042,7 +4082,7 @@
N_("Register file contents in the working tree to the index."), NULL },
{ "update-ref", '\0', POPT_ARG_MAINCALL,cmd_noop, ARGMINMAX(0,0),
N_("Update the object name stored in a ref safely."

[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers rpmsql.c rpmsql.h

2012-05-07 Thread Jeff Johnson
  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:   07-May-2012 16:38:24
  Branch: rpm-5_4  Handle: 2012050714382300

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers rpmsql.c rpmsql.h

  Log:
- sqldb: expose sqlite3_create_function() wrapper.

  Summary:
RevisionChanges Path
2.199.2.18  +2  -0  rpm/rpmio/librpmio.vers
2.59.2.2+9  -21 rpm/rpmio/rpmsql.c
2.27.4.2+20 -0  rpm/rpmio/rpmsql.h
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.17 -r2.199.2.18 librpmio.vers
  --- rpm/rpmio/librpmio.vers   16 Apr 2012 03:21:22 -  2.199.2.17
  +++ rpm/rpmio/librpmio.vers   7 May 2012 14:38:23 -   2.199.2.18
  @@ -633,6 +633,8 @@
   _rpmsqlOptions;
   _rpmsqlSeenInterrupt;
   _rpmsqlShellStatic;
  +_rpmsqlCFT;
  +_rpmsqlLoadCFT;
   _rpmsqlLoadVMT;
   rpmsqlArgv;
   rpmsqlCmd;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmsql.c
  
  $ cvs diff -u -r2.59.2.1 -r2.59.2.2 rpmsql.c
  --- rpm/rpmio/rpmsql.c5 Sep 2011 23:08:23 -   2.59.2.1
  +++ rpm/rpmio/rpmsql.c7 May 2012 14:38:23 -   2.59.2.2
  @@ -2344,18 +2344,6 @@
   mire = mireFree(mire);
   }
   
  -typedef struct rpmsqlCF_s * rpmsqlCF;
  -struct rpmsqlCF_s {
  -const char * zName;
  -int8_t nArg;
  -uint8_t argType; /* 0: none.  1: db  2: (-1) */
  -uint8_t eTextRep;/* SQLITE_UTF8 or SQLITE_UTF16 */
  -uint8_t  needCollSeq;
  -void (*xFunc)  (sqlite3_context *, int, sqlite3_value **);
  -void (*xStep)  (sqlite3_context *, int, sqlite3_value **);
  -void (*xFinal) (sqlite3_context *);
  -};
  -
   static struct rpmsqlCF_s __CF[] = {
   /* math.h extensions */
 { "acos",  1, 0, SQLITE_UTF8,  0, acosFunc, NULL, NULL },
  @@ -2430,20 +2418,20 @@
 { "regexp",2, 0, SQLITE_UTF8,  0, regexpFunc, NULL, 
NULL },
 { NULL,0, 0, 0,0, NULL, NULL, NULL }
   };
  -static rpmsqlCF _CF = __CF;
   
  -/**
  - * Load sqlite3 function extensions.
  - * @param sqlsql interpreter
  - */
  -static int _rpmsqlLoadCF(rpmsql sql)
  +rpmsqlCF _rpmsqlCFT = __CF;
  +
  +int _rpmsqlLoadCFT(rpmsql sql, void * _CF)
   {
   sqlite3 * db = (sqlite3 *)sql->I;
   rpmsqlCF CF;
   int rc = 0;
   
  -SQLDBG((stderr, "--> %s(%p)\n", __FUNCTION__, sql));
  -for (CF = _CF; CF->zName != NULL; CF++) {
  +SQLDBG((stderr, "--> %s(%p,%p)\n", __FUNCTION__, sql, _CF));
  +if (_CF == NULL)
  + _CF = _rpmsqlCFT;
  +if (_CF)
  +for (CF = (rpmsqlCF) _CF; CF->zName != NULL; CF++) {
void * _pApp = NULL;
int xx;
   
  @@ -2837,7 +2825,7 @@
sql->I = db;
   
if (db && rc == SQLITE_OK) {
  - (void) _rpmsqlLoadCF(sql);
  + (void) _rpmsqlLoadCFT(sql, _rpmsqlCFT);
(void) _rpmsqlLoadVMT(db, __VMT);
}
   
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmsql.h
  
  $ cvs diff -u -r2.27.4.1 -r2.27.4.2 rpmsql.h
  --- rpm/rpmio/rpmsql.h6 May 2012 21:30:08 -   2.27.4.1
  +++ rpm/rpmio/rpmsql.h7 May 2012 14:38:23 -   2.27.4.2
  @@ -298,6 +298,26 @@
/*@modifies sql, *resultp, fileSystem, internalState @*/;
   
   #ifdef   _RPMSQL_INTERNAL
  +typedef struct rpmsqlCF_s * rpmsqlCF;
  +struct rpmsqlCF_s {
  +const char * zName;
  +int8_t nArg;
  +uint8_t argType; /* 0: none.  1: db  2: (-1) */
  +uint8_t eTextRep;/* SQLITE_UTF8 or SQLITE_UTF16 */
  +uint8_t  needCollSeq;
  +void (*xFunc)(); /*  (sqlite3_context *, int, sqlite3_value **); */
  +void (*xStep)(); /*  (sqlite3_context *, int, sqlite3_value **); */
  +void (*xFinal)();/* (sqlite3_context *); */
  +};
  +
  +/**
  + * Load sqlite3 function extensions.
  + * @param sqlsql interpreter
  + * @param _CFcreate function table (NULL uses _rpmsqlCFT)
  + */
  +int _rpmsqlLoadCFT(rpmsql sql, /*@null@*/ void * _CF)
  + /*@*/;
  +
   typedef struct sqlite3_module * rpmsqlVM;
   typedef struct rpmsqlVMT_s * rpmsqlVMT;
   
  @@ .
__
RPM Package Managerhttp://rpm5.org
CVS Sources Repository   

[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers rpmodbc.c rpmodbc.h todbc...

2012-03-24 Thread Jeff Johnson
  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:   25-Mar-2012 01:36:55
  Branch: rpm-5_4  Handle: 2012032500365300

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers rpmodbc.c rpmodbc.h todbc.c

  Log:
- odbc: transaction commit/rollback methods.

  Summary:
RevisionChanges Path
2.199.2.15  +3  -0  rpm/rpmio/librpmio.vers
1.1.2.14+31 -0  rpm/rpmio/rpmodbc.c
1.1.2.12+7  -0  rpm/rpmio/rpmodbc.h
1.1.2.12+8  -0  rpm/rpmio/todbc.c
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.14 -r2.199.2.15 librpmio.vers
  --- rpm/rpmio/librpmio.vers   25 Mar 2012 00:11:47 -  2.199.2.14
  +++ rpm/rpmio/librpmio.vers   25 Mar 2012 00:36:53 -  2.199.2.15
  @@ -218,8 +218,10 @@
   odbcCloseCursor;
   odbcColAttribute;
   odbcColumns;
  +odbcCommit;
   odbcConnect;
   odbcDisconnect;
  +odbcEndTran;
   odbcExecute;
   odbcExecDirect;
   odbcFetch;
  @@ -236,6 +238,7 @@
   odbcNew;
   odbcPrepare;
   odbcPrint;
  +odbcRollback;
   odbcSetCursorName;
   odbcSetEnvAttr;
   odbcSetStmtAttr;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmodbc.c
  
  $ cvs diff -u -r1.1.2.13 -r1.1.2.14 rpmodbc.c
  --- rpm/rpmio/rpmodbc.c   25 Mar 2012 00:11:47 -  1.1.2.13
  +++ rpm/rpmio/rpmodbc.c   25 Mar 2012 00:36:53 -  1.1.2.14
  @@ -55,6 +55,9 @@
   #define SQL_COLUMN_TABLE_NAME15
   #define SQL_COLUMN_LABEL 18
   
  +#define  SQL_COMMIT  0
  +#define  SQL_ROLLBACK1
  +
   #endif
   
   /*==*/
  @@ -634,10 +637,12 @@
default:
continue;
break;
  +#ifdef   NOTYET  /* XXX unimplemented in unixODBC=>postgres */
case   0:
rc = odbcColAttribute(odbc, colx, _type, b, nb, &ns, &got);
   fprintf(fp, "\t%s:\tgot %lx %p[%hu] = \"%s\"\n", SQL_CATTRS[i].n, got, b, 
ns, b);
break;
  +#endif
case   4:
rc = odbcColAttribute(odbc, colx, _type, b, nb, &ns, &got);
   fprintf(fp, "\t%s:\t0x%lx\n", SQL_CATTRS[i].n, got);
  @@ -730,6 +735,32 @@
   
   /*==*/
   
  +int odbcEndTran(ODBC_t odbc, int _rollback)
  +{
  +SQLHANDLE * dbc = odbc->dbc->hp; /* XXX env? */
  +short _completion = (_rollback ? SQL_ROLLBACK : SQL_COMMIT);
  +int rc = 0;
  +(void)dbc;
  +
  +rc = CHECK(odbc, SQL_HANDLE_DBC, "SQLEndTran",
  + SQLEndTran(SQL_HANDLE_DBC, dbc, _completion));
  +
  +SPEW(0, rc, odbc);
  +return rc;
  +}
  +
  +int odbcCommit(ODBC_t odbc)
  +{
  +return odbcEndTran(odbc, SQL_COMMIT);
  +}
  +
  +int odbcRollback(ODBC_t odbc)
  +{
  +return odbcEndTran(odbc, SQL_ROLLBACK);
  +}
  +
  +/*==*/
  +
   int odbcConnect(ODBC_t odbc, const char * uri)
   {
   const char * db = NULL;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmodbc.h
  
  $ cvs diff -u -r1.1.2.11 -r1.1.2.12 rpmodbc.h
  --- rpm/rpmio/rpmodbc.h   25 Mar 2012 00:11:47 -  1.1.2.11
  +++ rpm/rpmio/rpmodbc.h   25 Mar 2012 00:36:53 -  1.1.2.12
  @@ -160,6 +160,13 @@
   int odbcSetCursorName(ODBC_t odbc, const char * s, size_t ns)
/*@*/;
   
  +int odbcEndTran(ODBC_t odbc, int _rollback)
  + /*@*/;
  +int odbcCommit(ODBC_t odbc)
  + /*@*/;
  +int odbcRollback(ODBC_t odbc)
  + /*@*/;
  +
   int odbcNRows(ODBC_t odbc)
/*@*/;
   int odbcNCols(ODBC_t odbc)
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/todbc.c
  
  $ cvs diff -u -r1.1.2.11 -r1.1.2.12 todbc.c
  --- rpm/rpmio/todbc.c 25 Mar 2012 00:11:47 -  1.1.2.11
  +++ rpm/rpmio/todbc.c 25 Mar 2012 00:36:53 -  1.1.2.12
  @@ -183,15 +183,19 @@
   
   fprintf(fp, "==> %s\n", s);
   rc = odbcPrepare(odbc, s, 0);
  +#ifdef   NOTYET
   fprintf(fp, "before: %s\n", odbcGetCursorName(odbc));
   xx = odbcSetCursorName(odbc, "poker", 0);
   fprintf(fp, " after: %s\n", odbcGetCursorName(odbc));
  +#endif
   
   while (params && *params)
rc = odbcBindParameter(odbc, *params++);
   
   rc = odbcExecute(odbc);
  +#ifdef   NOTYET

[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers rpmodbc.c rpmodbc.h todbc...

2012-03-24 Thread Jeff Johnson
  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:   25-Mar-2012 01:11:48
  Branch: rpm-5_4  Handle: 2012032500114700

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers rpmodbc.c rpmodbc.h todbc.c

  Log:
- odbc: add methods for named cursors.

  Summary:
RevisionChanges Path
2.199.2.14  +5  -0  rpm/rpmio/librpmio.vers
1.1.2.13+80 -0  rpm/rpmio/rpmodbc.c
1.1.2.11+11 -2  rpm/rpmio/rpmodbc.h
1.1.2.11+11 -0  rpm/rpmio/todbc.c
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.13 -r2.199.2.14 librpmio.vers
  --- rpm/rpmio/librpmio.vers   24 Mar 2012 23:30:50 -  2.199.2.13
  +++ rpm/rpmio/librpmio.vers   25 Mar 2012 00:11:47 -  2.199.2.14
  @@ -214,6 +214,8 @@
   _odbc_debug;
   odbcBindCol;
   odbcBindParameter;
  +odbcCancel;
  +odbcCloseCursor;
   odbcColAttribute;
   odbcColumns;
   odbcConnect;
  @@ -222,6 +224,7 @@
   odbcExecDirect;
   odbcFetch;
   odbcFetchScroll;
  +odbcGetCursorName;
   odbcGetData;
   odbcGetEnvAttr;
   odbcGetInfo;
  @@ -229,9 +232,11 @@
   odbcListDataSources;
   odbcListDrivers;
   odbcNCols;
  +odbcNRows;
   odbcNew;
   odbcPrepare;
   odbcPrint;
  +odbcSetCursorName;
   odbcSetEnvAttr;
   odbcSetStmtAttr;
   odbcStatistics;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmodbc.c
  
  $ cvs diff -u -r1.1.2.12 -r1.1.2.13 rpmodbc.c
  --- rpm/rpmio/rpmodbc.c   24 Mar 2012 23:30:50 -  1.1.2.12
  +++ rpm/rpmio/rpmodbc.c   25 Mar 2012 00:11:47 -  1.1.2.13
  @@ -679,6 +679,57 @@
   
   /*==*/
   
  +int odbcCloseCursor(ODBC_t odbc)
  +{
  +SQLHANDLE * stmt = odbc->stmt->hp;
  +int rc = SQL_NO_DATA;
  +(void)stmt;
  +
  +rc = CHECK(odbc, SQL_HANDLE_STMT, "SQLCloseCursor",
  + SQLCloseCursor(stmt));
  +
  +SPEW(0, rc, odbc);
  +return rc;
  +}
  +
  +const char * odbcGetCursorName(ODBC_t odbc)
  +{
  +SQLHANDLE * stmt = odbc->stmt->hp;
  +int rc = SQL_NO_DATA;
  +char b[BUFSIZ];
  +short nb = sizeof(b);
  +char * t = NULL;
  +short ns;
  +(void)stmt;
  +(void)nb;
  +(void)ns;
  +
  +rc = CHECK(odbc, SQL_HANDLE_STMT, "SQLGetCursorName",
  + SQLGetCursorName(stmt, (SQLCHAR *)b, nb, &ns));
  +
  +SPEW(0, rc, odbc);
  +if (rc == 0)
  + t = xstrdup(b);
  +return t;
  +}
  +
  +int odbcSetCursorName(ODBC_t odbc, const char * s, size_t ns)
  +{
  +SQLHANDLE * stmt = odbc->stmt->hp;
  +int rc = SQL_NO_DATA;
  +(void)stmt;
  +
  +if (ns == 0)
  + ns = strlen(s);
  +rc = CHECK(odbc, SQL_HANDLE_STMT, "SQLSetCursorName",
  + SQLSetCursorName(stmt, (SQLCHAR *)s, (SQLSMALLINT)ns));
  +
  +SPEW(0, rc, odbc);
  +return rc;
  +}
  +
  +/*==*/
  +
   int odbcConnect(ODBC_t odbc, const char * uri)
   {
   const char * db = NULL;
  @@ -812,6 +863,21 @@
   return rc;
   }
   
  +int odbcNRows(ODBC_t odbc)
  +{
  +SQLHANDLE * stmt = odbc->stmt->hp;
  +long rows = 0;
  +int rc = 0;
  +(void)stmt;
  +
  +rc = CHECK(odbc, SQL_HANDLE_STMT, "SQLRowCount",
  + SQLRowCount(stmt, &rows));
  +rc = rows;
  +
  +SPEW(0, rc, odbc);
  +return rc;
  +}
  +
   int odbcNCols(ODBC_t odbc)
   {
   SQLHANDLE * stmt = odbc->stmt->hp;
  @@ -827,6 +893,20 @@
   return rc;
   }
   
  +int odbcCancel(ODBC_t odbc)
  +{
  +SQLHANDLE * stmt = odbc->stmt->hp;
  +int rc = SQL_NO_DATA;
  +(void)stmt;
  +
  +rc = CHECK(odbc, SQL_HANDLE_STMT, "SQLCancel",
  + SQLCancel(stmt));
  +odbc->stmt = hFree(odbc, odbc->stmt);/* XXX lazy? */
  +
  +SPEW(0, rc, odbc);
  +return rc;
  +}
  +
   int odbcFetch(ODBC_t odbc)
   {
   SQLHANDLE * stmt = odbc->stmt->hp;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmodbc.h
  
  $ cvs diff -u -r1.1.2.10 -r1.1.2.11 rpmodbc.h
  --- rpm/rpmio/rpmodbc.h   24 Mar 2012 23:30:50 -  1.1.2.10
  +++ rpm/rpmio/rpmodbc.h   25 Mar 2012 00:11:47 -  1.1.2.11
  @@ -138,13 +138,11 @@
   
   int odbcConnect(ODBC_t odbc, /*@null@*/ const char * uri)
/*@*/;
  -
   int odbcDisconnect(ODBC_t odbc)
/*@*

[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers rpmodbc.c rpmodbc.h todbc...

2012-03-24 Thread Jeff Johnson
  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:   25-Mar-2012 00:30:50
  Branch: rpm-5_4  Handle: 2012032423305000

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers rpmodbc.c rpmodbc.h todbc.c

  Log:
- odbc: add Statistics and attem[t to resurrect Tables/Columns.

  Summary:
RevisionChanges Path
2.199.2.13  +1  -0  rpm/rpmio/librpmio.vers
1.1.2.12+37 -12 rpm/rpmio/rpmodbc.c
1.1.2.10+4  -3  rpm/rpmio/rpmodbc.h
1.1.2.10+6  -7  rpm/rpmio/todbc.c
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.12 -r2.199.2.13 librpmio.vers
  --- rpm/rpmio/librpmio.vers   24 Mar 2012 22:19:47 -  2.199.2.12
  +++ rpm/rpmio/librpmio.vers   24 Mar 2012 23:30:50 -  2.199.2.13
  @@ -234,6 +234,7 @@
   odbcPrint;
   odbcSetEnvAttr;
   odbcSetStmtAttr;
  +odbcStatistics;
   odbcTables;
   Open;
   _Open;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmodbc.c
  
  $ cvs diff -u -r1.1.2.11 -r1.1.2.12 rpmodbc.c
  --- rpm/rpmio/rpmodbc.c   24 Mar 2012 22:58:40 -  1.1.2.11
  +++ rpm/rpmio/rpmodbc.c   24 Mar 2012 23:30:50 -  1.1.2.12
  @@ -278,7 +278,7 @@
   static KEY SQL_INFOS[] = {
   #if defined(WITH_UNIXODBC)
 /* sql.h */
  -_ENTRY(  0, FETCH_DIRECTION),
  +_ENTRY(  0, FETCH_DIRECTION),/* ul? (unixODBC) */
   
   _ENTRY(  1, ACCESSIBLE_PROCEDURES),  /* c: Y/N */
   _ENTRY(  1, ACCESSIBLE_TABLES),  /* c: Y/N */
  @@ -721,8 +721,7 @@
/* XXX FIXME: SQLDriverConnect should print once?. */
   
   if (rc == 0) {
  - if (_odbc_debug < 0)
  - xx = odbcDumpInfo(odbc, NULL);
  + xx = odbcDumpInfo(odbc, NULL);
   }
   
   SPEW(0, rc, odbc);
  @@ -770,7 +769,7 @@
desc, sizeof(desc), &desc_ret)
   {
direction = SQL_FETCH_NEXT;
  - fprintf(fp, "%s - %s\n", dsn, desc);
  + fprintf(fp, "\t%s - %s\n", dsn, desc);
   #ifdef   NOTYET
if (ret == SQL_SUCCESS_WITH_INFO) fprintf(fp, "\tdata truncation\n");
   #endif
  @@ -803,7 +802,7 @@
attr, sizeof(attr), &attr_ret)
   {
direction = SQL_FETCH_NEXT;
  - fprintf(fp, "%s - %s\n", driver, attr);
  + fprintf(fp, "\t%s - %s\n", driver, attr);
   #ifdef   NOTYET
if (xx == SQL_SUCCESS_WITH_INFO) fprintf(fp, "\tdata truncation\n");
   #endif
  @@ -941,7 +940,7 @@
   return rc;
   }
   
  -int odbcTables(ODBC_t odbc)
  +int odbcTables(ODBC_t odbc, const char * tblname)
   {
   SQLHANDLE * stmt;
   int rc = 0;
  @@ -951,14 +950,17 @@
   stmt = odbc->stmt->hp;
   
   rc = CHECK(odbc, SQL_HANDLE_STMT, "SQLTables",
  - SQLTables(stmt, NULL, 0, NULL, 0, NULL, 0,
  - (SQLCHAR *) "TABLE", SQL_NTS));
  + SQLTables(stmt,
  + NULL, 0,
  + NULL, 0,
  + (SQLCHAR *) tblname, SQL_NTS,
  + NULL, 0));
   
   SPEW(0, rc, odbc);
   return rc;
   }
   
  -int odbcColumns(ODBC_t odbc)
  +int odbcColumns(ODBC_t odbc, const char * tblname, const char * colname)
   {
   SQLHANDLE * stmt;
   int rc = 0;
  @@ -967,9 +969,32 @@
odbc->stmt = hAlloc(odbc, SQL_HANDLE_STMT);
   stmt = odbc->stmt->hp;
   
  -rc = CHECK(odbc, SQL_HANDLE_STMT, "SQLTables",
  - SQLColumns(stmt, NULL, 0, NULL, 0, NULL, 0,
  - (SQLCHAR *) "TABLE", SQL_NTS));
  +rc = CHECK(odbc, SQL_HANDLE_STMT, "SQLColumns",
  + SQLColumns(stmt,
  + NULL, 0,
  + NULL, 0,
  + (SQLCHAR *) tblname, SQL_NTS,
  + (SQLCHAR *) colname, SQL_NTS));
  +
  +SPEW(0, rc, odbc);
  +return rc;
  +}
  +
  +int odbcStatistics(ODBC_t odbc, const char * tblname)
  +{
  +SQLHANDLE * stmt;
  +int rc = 0;
  +
  +if (odbc->stmt == NULL)
  + odbc->stmt = hAlloc(odbc, SQL_HANDLE_STMT);
  +stmt = odbc->stmt->hp;
  +
  +rc = CHECK(odbc, SQL_HANDLE_STMT, "SQLStatistics",
  + SQLStatistics(stmt,
  + NULL, 0,
  + NULL, 0,
  + (SQLCHAR *) tblname, SQL_NTS,
  + 0, 0));
   
   SPEW(0, rc, odbc);
   return rc;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmodbc.h
  

[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers rpmodbc.c rpmodbc.h todbc...

2012-03-24 Thread Jeff Johnson
  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:   24-Mar-2012 23:19:48
  Branch: rpm-5_4  Handle: 2012032422194700

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers rpmodbc.c rpmodbc.h todbc.c
rpm/tests/ref   odbc.out

  Log:
- odbc: label columns in output spew.

  Summary:
RevisionChanges Path
2.199.2.12  +6  -1  rpm/rpmio/librpmio.vers
1.1.2.10+141 -18rpm/rpmio/rpmodbc.c
1.1.2.9 +29 -5  rpm/rpmio/rpmodbc.h
1.1.2.9 +1  -1  rpm/rpmio/todbc.c
1.1.2.3 +304 -314   rpm/tests/ref/odbc.out
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.11 -r2.199.2.12 librpmio.vers
  --- rpm/rpmio/librpmio.vers   24 Mar 2012 21:02:17 -  2.199.2.11
  +++ rpm/rpmio/librpmio.vers   24 Mar 2012 22:19:47 -  2.199.2.12
  @@ -212,12 +212,17 @@
   Mount;
   noLibio;
   _odbc_debug;
  -odbcBind;
  +odbcBindCol;
  +odbcBindParameter;
  +odbcColAttribute;
   odbcColumns;
   odbcConnect;
   odbcDisconnect;
   odbcExecute;
   odbcExecDirect;
  +odbcFetch;
  +odbcFetchScroll;
  +odbcGetData;
   odbcGetEnvAttr;
   odbcGetInfo;
   odbcGetStmtAttr;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmodbc.c
  
  $ cvs diff -u -r1.1.2.9 -r1.1.2.10 rpmodbc.c
  --- rpm/rpmio/rpmodbc.c   24 Mar 2012 21:02:17 -  1.1.2.9
  +++ rpm/rpmio/rpmodbc.c   24 Mar 2012 22:19:47 -  1.1.2.10
  @@ -13,6 +13,7 @@
   #include 
   #include 
   #include 
  +#include 
   
   #define  _RPMODBC_INTERNAL
   #include 
  @@ -40,6 +41,20 @@
   #define SQL_FETCH_PRIOR  4
   #define SQL_FETCH_ABSOLUTE   5
   #define SQL_FETCH_RELATIVE   6
  +
  +#define  SQL_C_CHAR  1
  +#define  SQL_C_SHORT 5
  +#define  SQL_C_LONG  4
  +#define  SQL_C_FLOAT 6
  +#define  SQL_C_DOUBLE8
  +#define  SQL_C_DATE  9
  +#define  SQL_C_TIME  10
  +#define  SQL_C_TIMESTAMP 11
  +
  +#define SQL_COLUMN_NAME  1
  +#define SQL_COLUMN_TABLE_NAME15
  +#define SQL_COLUMN_LABEL 18
  +
   #endif
   
   /*==*/
  @@ -612,7 +627,8 @@
/* XXX FIXME: SQLDriverConnect should print once?. */
   
   if (rc == 0) {
  - xx = odbcDumpInfo(odbc, NULL);
  + if (_odbc_debug < 0)
  + xx = odbcDumpInfo(odbc, NULL);
   }
   
   SPEW(0, rc, odbc);
  @@ -718,41 +734,126 @@
   return rc;
   }
   
  +int odbcFetch(ODBC_t odbc)
  +{
  +SQLHANDLE * stmt = odbc->stmt->hp;
  +int rc = SQL_NO_DATA;
  +(void)stmt;
  +
  +rc = CHECK(odbc, SQL_HANDLE_STMT, "SQLFetch",
  + SQLFetch(stmt));
  +
  +SPEW(0, rc, odbc);
  +return rc;
  +}
  +
  +int odbcFetchScroll(ODBC_t odbc, short FetchOrientation, long FetchOffset)
  +{
  +SQLHANDLE * stmt = odbc->stmt->hp;
  +int rc = SQL_NO_DATA;
  +(void)stmt;
  +
  +rc = CHECK(odbc, SQL_HANDLE_STMT, "SQLFetch",
  + SQLFetchScroll(stmt, FetchOrientation, FetchOffset));
  +
  +SPEW(0, rc, odbc);
  +return rc;
  +}
  +
  +int odbcGetData(ODBC_t odbc,
  + unsigned short Col_or_Param_Num,
  + short TargetType,
  + void * TargetValuePtr,
  + long BufferLength,
  + long * StrLen_or_IndPtr)
  +{
  +SQLHANDLE * stmt = odbc->stmt->hp;
  +int rc = -1;
  +(void)stmt;
  +
  +rc = CHECK(odbc, SQL_HANDLE_STMT, "SQLGetData",
  + SQLGetData(stmt,
  + Col_or_Param_Num,
  + TargetType,
  + TargetValuePtr,
  + BufferLength,
  + StrLen_or_IndPtr));
  +
  +SPEW(0, rc, odbc);
  +return rc;
  +}
  +
  +int odbcColAttribute(ODBC_t odbc,
  + unsigned short ColumnNumber,
  + unsigned short FieldIdentifier,
  + void * CharacterAttributePtr,
  + short BufferLength,
  + short * StringLengthPtr,
  + long * NumericAttributePtr)
  +{
  +SQLHANDLE * stmt = odbc->stmt->hp;
  +int rc = -1;
  +(void)stmt;
  +
  +rc = CHECK(odbc, SQL_HANDLE_STMT, "SQLColAttribute",
  + SQLColAttribute(stmt,
  + ColumnNumber,
  + FieldIdentifier,
  + CharacterAttributePtr,
  + Buffer

[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers rpmodbc.c rpmodbc.h

2012-03-24 Thread Jeff Johnson
  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:   24-Mar-2012 22:02:18
  Branch: rpm-5_4  Handle: 2012032421021700

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers rpmodbc.c rpmodbc.h

  Log:
- odbc: add getter/setter tables.

  Summary:
RevisionChanges Path
2.199.2.11  +5  -0  rpm/rpmio/librpmio.vers
1.1.2.9 +445 -41rpm/rpmio/rpmodbc.c
1.1.2.8 +11 -0  rpm/rpmio/rpmodbc.h
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.10 -r2.199.2.11 librpmio.vers
  --- rpm/rpmio/librpmio.vers   20 Mar 2012 16:12:42 -  2.199.2.10
  +++ rpm/rpmio/librpmio.vers   24 Mar 2012 21:02:17 -  2.199.2.11
  @@ -218,12 +218,17 @@
   odbcDisconnect;
   odbcExecute;
   odbcExecDirect;
  +odbcGetEnvAttr;
  +odbcGetInfo;
  +odbcGetStmtAttr;
   odbcListDataSources;
   odbcListDrivers;
   odbcNCols;
   odbcNew;
   odbcPrepare;
   odbcPrint;
  +odbcSetEnvAttr;
  +odbcSetStmtAttr;
   odbcTables;
   Open;
   _Open;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmodbc.c
  
  $ cvs diff -u -r1.1.2.8 -r1.1.2.9 rpmodbc.c
  --- rpm/rpmio/rpmodbc.c   21 Mar 2012 18:09:49 -  1.1.2.8
  +++ rpm/rpmio/rpmodbc.c   24 Mar 2012 21:02:17 -  1.1.2.9
  @@ -134,6 +134,441 @@
   };
   
   /*==*/
  +typedef struct key_s {
  +int32_t  t;
  +uint32_t v;
  +const char *n;
  +} KEY;
  +
  +#define _ENTRY(_t, _v)  { _t, SQL_ATTR_##_v, #_v, }
  +static KEY SQL_ATTRS[] = {
  +#if defined(WITH_UNIXODBC)
  +  /* sql.h */
  +_ENTRY(8+1, APP_PARAM_DESC), /* ptr */
  +_ENTRY(8+1, APP_ROW_DESC),   /* ptr */
  +_ENTRY(8+1, IMP_PARAM_DESC), /* RO ptr */
  +_ENTRY(8+1, IMP_ROW_DESC),   /* RO ptr */
  +  /* sqlext.h */
  +_ENTRY(  8, ASYNC_ENABLE),   /* ul */
  + /* SQL_ATTR_ASYNC_STMT_EVENT ptr */
  + /* SQL_ATTR_ASYNC_STMT_PCALLBACK ptr */
  + /* SQL_ATTR_ASYNC_STMT_PCONTEXT ptr */
  +_ENTRY(  8, CONCURRENCY),/* ul */
  + /* SQL_ATTR_CURSOR_SCROLLABLE ul */
  + /* SQL_ATTR_CURSOR_SENSITIVITY ul */
  +_ENTRY(  8, CURSOR_TYPE),/* ul */
  +_ENTRY(  8, ENABLE_AUTO_IPD),/* ul */
  +_ENTRY(8+8, FETCH_BOOKMARK_PTR), /* *l */
  +_ENTRY(  8, KEYSET_SIZE),/* ul */
  +_ENTRY(  8, MAX_LENGTH), /* ul */
  +_ENTRY(  8, MAX_ROWS),   /* ul */
  + /* SQL_ATTR_METADATA_ID ul */
  +_ENTRY(  8, NOSCAN), /* ul */
  +_ENTRY(8+8, PARAM_BIND_OFFSET_PTR),  /* *ul */
  +_ENTRY(  8, PARAM_BIND_TYPE),/* ul */
  +_ENTRY(8+2, PARAM_OPERATION_PTR),/* *uh */
  +_ENTRY(8+2, PARAM_STATUS_PTR),   /* *uh */
  +_ENTRY(8+8, PARAMS_PROCESSED_PTR),   /* *ul */
  +_ENTRY(  8, PARAMSET_SIZE),  /* ul */
  +_ENTRY(  8, QUERY_TIMEOUT),  /* ul */
  +_ENTRY(  8, RETRIEVE_DATA),  /* ul */
  +_ENTRY(  8, ROW_ARRAY_SIZE), /* ul */
  +_ENTRY(8+8, ROW_BIND_OFFSET_PTR),/* *ul */
  +_ENTRY(  8, ROW_BIND_TYPE),  /* ul */
  +_ENTRY(  8, ROW_NUMBER), /* RO ul */
  +_ENTRY(8+2, ROW_OPERATION_PTR),  /* *uh */
  +_ENTRY(8+2, ROW_STATUS_PTR), /* *uh */
  +_ENTRY(8+8, ROWS_FETCHED_PTR),   /* *ul */
  +_ENTRY(  8, SIMULATE_CURSOR),/* ul */
  +_ENTRY(  8, USE_BOOKMARKS),  /* ul */
  +#else
  +{ 0, 0, "UNKNOWN" },
  +#endif   /* WITH_UNIXODBC */
  +};
  +#undef   _ENTRY
  +static size_t nSQL_ATTRS = sizeof(SQL_ATTRS) / sizeof(SQL_ATTRS[0]);
  +
  +static int odbcDumpStmt(ODBC_t odbc, void * _fp)
  +{
  +FILE * fp = (_fp ? _fp : stderr);
  +int rc = 0;
  +size_t i;
  +
  +for (i = 0; i < nSQL_ATTRS; i++) {
  + int _attr = SQL_ATTRS[i].v;
  + unsigned long _ul;
  + void * _p;
  + unsigned short * _uhp;
  + unsigned long * _ulp;
  + int ns;
  +
  + _ul = 0;
  + _p = NULL;
  + _uhp = NULL;
  + _ulp = NULL;
  + ns = 0;
  + switch (SQL_ATTRS[i].t) {
  + default:
  + continue;
  + break;
  + case   8:
  + rc = odbcGetStmtAttr(odbc, _attr, &_ul, sizeof(_ul), &ns);
  + if (_ul != 0)
  +fprintf(fp, "\t%s:\t0x%lx\n", SQL_ATTRS[i].n, _ul);
  + 

[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers rpmodbc.c rpmodbc.h todbc...

2012-03-20 Thread Jeff Johnson
  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:   20-Mar-2012 17:12:43
  Branch: rpm-5_4  Handle: 2012032016124200

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers rpmodbc.c rpmodbc.h todbc.c

  Log:
- odbc: stub-in odbcBind for C <-> SQL data sharing on retrievals.
- odbc: retrieve handle diagnostics on error.

  Summary:
RevisionChanges Path
2.199.2.10  +1  -0  rpm/rpmio/librpmio.vers
1.1.2.7 +87 -37 rpm/rpmio/rpmodbc.c
1.1.2.6 +23 -0  rpm/rpmio/rpmodbc.h
1.1.2.7 +0  -54 rpm/rpmio/todbc.c
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.9 -r2.199.2.10 librpmio.vers
  --- rpm/rpmio/librpmio.vers   18 Mar 2012 19:26:14 -  2.199.2.9
  +++ rpm/rpmio/librpmio.vers   20 Mar 2012 16:12:42 -  2.199.2.10
  @@ -212,6 +212,7 @@
   Mount;
   noLibio;
   _odbc_debug;
  +odbcBind;
   odbcColumns;
   odbcConnect;
   odbcDisconnect;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmodbc.c
  
  $ cvs diff -u -r1.1.2.6 -r1.1.2.7 rpmodbc.c
  --- rpm/rpmio/rpmodbc.c   19 Mar 2012 04:50:00 -  1.1.2.6
  +++ rpm/rpmio/rpmodbc.c   20 Mar 2012 16:12:42 -  1.1.2.7
  @@ -33,7 +33,7 @@
   
   /*==*/
   #if defined(WITH_UNIXODBC)
  -static int Xchkodbc(/*@unused@*/ ODBC_t odbc, const char * msg,
  +static int Xchkodbc(/*@unused@*/ ODBC_t odbc, int type, const char * msg,
   int error, int printit,
   const char * func, const char * fn, unsigned ln)
   {
  @@ -41,15 +41,41 @@
   
   /* XXX filter SQL_NO_DATA(100) return. */
   if (printit && !SQL_SUCCEEDED(rc) && rc != SQL_NO_DATA) {
  -#define odbc_strerror(_e)""  /* XXX odbc_strerror? */
  -rpmlog(RPMLOG_ERR, "%s:%s:%u: %s(%d): %s\n",
  -func, fn, ln, msg, rc, odbc_strerror(rc));
  + SQLINTEGER i = 0;
  + SQLRETURN ret;
  + void * hndl;
  +
  +fprintf(stderr, "error: %s:%s:%u: %s(%d):\n",
  +func, fn, ln, msg, rc);
  +
  + switch (type) {
  + case SQL_HANDLE_ENV:hndl = odbc->env;   break;
  + case SQL_HANDLE_DBC:hndl = odbc->dbc;   break;
  + case SQL_HANDLE_STMT:   hndl = odbc->stmt;  break;
  + case SQL_HANDLE_DESC:   hndl = odbc->desc;  break;
  + default:hndl = NULL;break;
  + }
  +
  + do {
  + SQLINTEGER  native;
  + SQLCHAR state[7];
  + SQLCHAR text[256];
  + SQLSMALLINT len;
  + ret = SQLGetDiagRec(type, hndl, ++i, state, &native, text,
  +sizeof(text), &len);
  + if (SQL_SUCCEEDED(ret))
  + fprintf(stderr, "\t%s:%ld:%ld:%s\n",
  + state, (long)i, (long)native, text);
  + } while (ret == SQL_SUCCESS);
   }
   
   return rc;
   }
  -#define CHECK(_odbc, _msg, _error)  \
  -Xchkodbc(_odbc, _msg, _error, _odbc_debug, __FUNCTION__, __FILE__, 
__LINE__)
  +
  +/* XXF FIXME: add logic to set printit */
  +#define CHECK(_o, _t, _m, _rc)  \
  +Xchkodbc(_o, _t, _m, _rc, _odbc_debug, __FUNCTION__, __FILE__, __LINE__)
  +
   #endif   /* WITH_UNIXODBC */
   
   /*==*/
  @@ -85,12 +111,12 @@
   #if defined(WITH_UNIXODBC)
   assert(odbc->env);
   if (odbc->dbc == NULL) {
  - xx = CHECK(odbc, "SQLAllocHandle(DBC)",
  + xx = CHECK(odbc, SQL_HANDLE_ENV, "SQLAllocHandle(DBC)",
SQLAllocHandle(SQL_HANDLE_DBC, odbc->env, &odbc->dbc));
   assert(odbc->dbc);
   }
   
  -rc = CHECK(odbc, "SQLConnect",
  +rc = CHECK(odbc, SQL_HANDLE_DBC, "SQLConnect",
SQLConnect(odbc->dbc,
(SQLCHAR *) db, SQL_NTS,
(SQLCHAR *) u->user, SQL_NTS,
  @@ -103,16 +129,16 @@
SQLUINTEGER getdata_support;
SQLUSMALLINT max_concur_act;
   
  - xx = CHECK(odbc, "SQLGetInfo(DBMS_NAME)",
  + xx = CHECK(odbc, SQL_HANDLE_DBC, "SQLGetInfo(DBMS_NAME)",
SQLGetInfo(odbc->dbc, SQL_DBMS_NAME, (SQLPOINTER)dbms_name,
sizeof(dbms_name), NULL));
  - xx = CHECK(odbc, "SQLGetInfo(DBMS_NAME)",
  + xx = CHECK(odbc, SQL_HANDLE_DBC, "SQLGetInfo(DBMS_NAME)",
SQLGetInfo(odbc->dbc, SQL_DBMS_VER, (SQ

[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers rpmodbc.c rpmodbc.h todbc...

2012-03-18 Thread Jeff Johnson
  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:   18-Mar-2012 20:26:15
  Branch: rpm-5_4  Handle: 2012031819261400

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers rpmodbc.c rpmodbc.h todbc.c

  Log:
- odbc: WIP.

  Summary:
RevisionChanges Path
2.199.2.9   +3  -1  rpm/rpmio/librpmio.vers
1.1.2.5 +194 -53rpm/rpmio/rpmodbc.c
1.1.2.5 +3  -3  rpm/rpmio/rpmodbc.h
1.1.2.4 +72 -20 rpm/rpmio/todbc.c
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.8 -r2.199.2.9 librpmio.vers
  --- rpm/rpmio/librpmio.vers   18 Mar 2012 14:02:14 -  2.199.2.8
  +++ rpm/rpmio/librpmio.vers   18 Mar 2012 19:26:14 -  2.199.2.9
  @@ -215,12 +215,14 @@
   odbcColumns;
   odbcConnect;
   odbcDisconnect;
  -odbcFetch;
  +odbcExecute;
  +odbcExecDirect;
   odbcListDataSources;
   odbcListDrivers;
   odbcNCols;
   odbcNew;
   odbcPrepare;
  +odbcPrint;
   odbcTables;
   Open;
   _Open;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmodbc.c
  
  $ cvs diff -u -r1.1.2.4 -r1.1.2.5 rpmodbc.c
  --- rpm/rpmio/rpmodbc.c   18 Mar 2012 15:47:06 -  1.1.2.4
  +++ rpm/rpmio/rpmodbc.c   18 Mar 2012 19:26:14 -  1.1.2.5
  @@ -20,23 +20,48 @@
   #include "debug.h"
   
   /*@unchecked@*/
  -int _odbc_debug = -1;
  +int _odbc_debug = 0;
  +
  +#define DBG(_t, _l) \
  +  if ((_t) || _odbc_debug) fprintf _l
   
   #define  SPEW(_t, _rc, _odbc)\
  -  { if ((_t) || _odbc_debug ) \
  +  { if ((_t) || _odbc_debug) \
fprintf(stderr, "<-- %s(%p) rc %d\n", __FUNCTION__, (_odbc), \
(_rc)); \
 }
   
   /*==*/
  +static int Xchkodbc(/*@unused@*/ ODBC_t odbc, const char * msg,
  +int error, int printit,
  +const char * func, const char * fn, unsigned ln)
  +{
  +int rc = error;
  +
  +/* XXX filter SQL_NO_DATA(100) return. */
  +if (printit && !SQL_SUCCEEDED(rc) && rc != SQL_NO_DATA) {
  +#define odbc_strerror(_e)""  /* XXX odbc_strerror? */
  +rpmlog(RPMLOG_ERR, "%s:%s:%u: %s(%d): %s\n",
  +func, fn, ln, msg, rc, odbc_strerror(rc));
  +}
  +
  +return rc;
  +}
  +#define CHECK(_odbc, _msg, _error)  \
  +Xchkodbc(_odbc, _msg, _error, _odbc_debug, __FUNCTION__, __FILE__, 
__LINE__)
  +
  +/*==*/
   
   int odbcConnect(ODBC_t odbc, const char * uri)
   {
   const char * db = NULL;
   urlinfo u = NULL;
   int rc = -1;
  +int xx;
   
  -fprintf(stderr, "--> %s(%p,%s)\n", __FUNCTION__, odbc, uri);
  +DBG(0, (stderr, "--> %s(%p,%s)\n", __FUNCTION__, odbc, uri));
  +
  +/*XXX FIXME: SQLConnect by DSN should be done here. */
   
   if (uri) {
const char * dbpath = NULL;
  @@ -51,22 +76,56 @@
   assert(u);
   assert(db);
   
  -fprintf(stderr, "\tdb: %s\n", db);
  -fprintf(stderr, "\t u: %s\n", u->user);
  -fprintf(stderr, "\tpw: %s\n", u->password);
  +DBG(0, (stderr, "\tdb: %s\n", db));
  +DBG(0, (stderr, "\t u: %s\n", u->user));
  +DBG(0, (stderr, "\tpw: %s\n", u->password));
   
   #if defined(WITH_UNIXODBC)
   assert(odbc->env);
   if (odbc->dbc == NULL) {
  - SQLAllocHandle(SQL_HANDLE_DBC, odbc->env, &odbc->dbc);
  + xx = CHECK(odbc, "SQLAllocHandle(DBC)",
  + SQLAllocHandle(SQL_HANDLE_DBC, odbc->env, &odbc->dbc));
   assert(odbc->dbc);
   }
   
  -/* XXX FIXME: odbc->u->user and odbc->u->password */
  -rc = SQLConnect(odbc->dbc,
  - (SQLCHAR *) db, SQL_NTS,
  - (SQLCHAR *) u->user, SQL_NTS,
  - (SQLCHAR *) u->password, SQL_NTS);
  +rc = CHECK(odbc, "SQLConnect",
  + SQLConnect(odbc->dbc,
  + (SQLCHAR *) db, SQL_NTS,
  + (SQLCHAR *) u->user, SQL_NTS,
  + (SQLCHAR *) u->password, SQL_NTS));
  +
  + /* XXX FIXME: SQLDriverConnect should print once?. */
  +if (rc == 0) {
  + SQLCHAR dbms_name[256];
  + SQLCHAR dbms_ver[256];
  + SQLUINTEGER getdata_support;
  + SQLUSMALLINT max_concur_act;
  +
  + xx = CHECK(odbc, "SQLGetInfo(DBMS_NAME)",
  + SQLGetInfo(odbc->dbc, SQL_DBMS_NAME, (SQLPOINTER)dbms_name,
  + sizeof(dbms_name), NULL));
  + xx = CHECK(odbc, "S

[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers poptIO.c rpmio.c rpmodbc....

2012-03-18 Thread Jeff Johnson
  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:   18-Mar-2012 15:02:14
  Branch: rpm-5_4  Handle: 2012031814021400

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers poptIO.c rpmio.c rpmodbc.c rpmodbc.h
todbc.c

  Log:
- odbc: shorter names please.

  Summary:
RevisionChanges Path
2.199.2.8   +11 -11 rpm/rpmio/librpmio.vers
1.94.2.3+1  -1  rpm/rpmio/poptIO.c
1.230.2.5   +2  -2  rpm/rpmio/rpmio.c
1.1.2.3 +28 -28 rpm/rpmio/rpmodbc.c
1.1.2.3 +24 -24 rpm/rpmio/rpmodbc.h
1.1.2.2 +98 -13 rpm/rpmio/todbc.c
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.7 -r2.199.2.8 librpmio.vers
  --- rpm/rpmio/librpmio.vers   17 Mar 2012 19:25:03 -  2.199.2.7
  +++ rpm/rpmio/librpmio.vers   18 Mar 2012 14:02:14 -  2.199.2.8
  @@ -211,6 +211,17 @@
   _Mknod;
   Mount;
   noLibio;
  +_odbc_debug;
  +odbcColumns;
  +odbcConnect;
  +odbcDisconnect;
  +odbcFetch;
  +odbcListDataSources;
  +odbcListDrivers;
  +odbcNCols;
  +odbcNew;
  +odbcPrepare;
  +odbcTables;
   Open;
   _Open;
   Opendir;
  @@ -553,17 +564,6 @@
   rpmnixNew;
   _rpmnss_init;
   rpmnssImplVecs;
  -_rpmodbc_debug;
  -rpmodbcColumns;
  -rpmodbcConnect;
  -rpmodbcDisconnect;
  -rpmodbcFetch;
  -rpmodbcListDataSources;
  -rpmodbcListDrivers;
  -rpmodbcNCols;
  -rpmodbcNew;
  -rpmodbcPrepare;
  -rpmodbcTables;
   _rpmperl_debug;
   rpmperlNew;
   rpmperlRun;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/poptIO.c
  
  $ cvs diff -u -r1.94.2.2 -r1.94.2.3 poptIO.c
  --- rpm/rpmio/poptIO.c17 Mar 2012 15:53:15 -  1.94.2.2
  +++ rpm/rpmio/poptIO.c18 Mar 2012 14:02:14 -  1.94.2.3
  @@ -664,7 +664,7 @@
N_("Debug Mongo DB connection"), NULL},
{ "nixdebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &_rpmnix_debug, 
-1,
N_("Debug embedded Nix interpreter"), NULL},
  - { "rpmodbcdebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, 
&_rpmodbc_debug, -1,
  + { "odbcdebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &_odbc_debug, -1,
N_("Debug embedded ODBC interface"), NULL},
{ "rpmperldebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, 
&_rpmperl_debug, -1,
N_("Debug embedded Perl interpreter"), NULL},
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmio.c
  
  $ cvs diff -u -r1.230.2.4 -r1.230.2.5 rpmio.c
  --- rpm/rpmio/rpmio.c 17 Mar 2012 15:53:15 -  1.230.2.4
  +++ rpm/rpmio/rpmio.c 18 Mar 2012 14:02:14 -  1.230.2.5
  @@ -3246,7 +3246,7 @@
   #ifdef   NOTYET
   extern rpmioPool _rpmnixPool;
   #endif
  -extern rpmioPool _rpmodbcPool;
  +extern rpmioPool _odbcPool;
   extern rpmioPool _rpmperlPool;
   extern rpmioPool _rpmpythonPool;
   extern rpmioPool _rpmrubyPool;
  @@ -3295,7 +3295,7 @@
   _rpmbagPool = rpmioFreePool(_rpmbagPool);
   _rpmcvsPool = rpmioFreePool(_rpmcvsPool);
   _rpmgitPool = rpmioFreePool(_rpmgitPool);
  -_rpmodbcPool = rpmioFreePool(_rpmodbcPool);
  +_odbcPool = rpmioFreePool(_odbcPool);
   _rpmsvnPool = rpmioFreePool(_rpmsvnPool);
   _rpmtpmPool = rpmioFreePool(_rpmtpmPool);
   
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmodbc.c
  
  $ cvs diff -u -r1.1.2.2 -r1.1.2.3 rpmodbc.c
  --- rpm/rpmio/rpmodbc.c   17 Mar 2012 19:25:03 -  1.1.2.2
  +++ rpm/rpmio/rpmodbc.c   18 Mar 2012 14:02:14 -  1.1.2.3
  @@ -19,17 +19,17 @@
   #include "debug.h"
   
   /*@unchecked@*/
  -int _rpmodbc_debug = -1;
  +int _odbc_debug = -1;
   
   #define  SPEW(_t, _rc, _odbc)\
  -  { if ((_t) || _rpmodbc_debug ) \
  +  { if ((_t) || _odbc_debug ) \
fprintf(stderr, "<-- %s(%p) rc %d\n", __FUNCTION__, (_odbc), \
(_rc)); \
 }
   
   /*==*/
   
  -int rpmodbcConnect(rpmodbc odbc,
  +int odbcConnect(ODBC_t odbc,
const char * db, const char * u, const char * pw)
   {
   int rc = -1;
  @@ -56,7 +56,7 @@
   return rc;
   }
   
  -int rpmodbcDisconnect(rpmodbc odbc)
  +int odbcDisconnect(ODBC_t odbc)
   {
 

[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers rpmgit.c rpmgit.h tgit.c

2012-03-09 Thread Jeff Johnson
  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:   09-Mar-2012 16:51:58
  Branch: rpm-5_4  Handle: 2012030915515700

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers rpmgit.c rpmgit.h tgit.c

  Log:
- rpmgit: WIP.

  Summary:
RevisionChanges Path
2.199.2.6   +12 -1  rpm/rpmio/librpmio.vers
2.1.2.8 +362 -8 rpm/rpmio/rpmgit.c
2.1.2.7 +37 -1  rpm/rpmio/rpmgit.h
1.1.2.4 +109 -5 rpm/rpmio/tgit.c
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.5 -r2.199.2.6 librpmio.vers
  --- rpm/rpmio/librpmio.vers   9 Mar 2012 01:21:45 -   2.199.2.5
  +++ rpm/rpmio/librpmio.vers   9 Mar 2012 15:51:57 -   2.199.2.6
  @@ -363,9 +363,20 @@
   rpmGetMacroEntries;
   rpmGetPath;
   _rpmgit_debug;
  -rpmgitConfigPrint;
  +rpmgitAddFile;
  +rpmgitCommit;
  +rpmgitConfig;
   rpmgitInfo;
  +rpmgitInit;
   rpmgitNew;
  +rpmgitPrintCommit;
  +rpmgitPrintHead;
  +rpmgitPrintIndex;
  +rpmgitPrintOid;
  +rpmgitPrintRepo;
  +rpmgitPrintSig;
  +rpmgitPrintTime;
  +rpmgitPrintTree;
   rpmgitRead;
   rpmgitWalk;
   rpmgitWrite;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmgit.c
  
  $ cvs diff -u -r2.1.2.7 -r2.1.2.8 rpmgit.c
  --- rpm/rpmio/rpmgit.c9 Mar 2012 01:21:45 -   2.1.2.7
  +++ rpm/rpmio/rpmgit.c9 Mar 2012 15:51:57 -   2.1.2.8
  @@ -20,7 +20,7 @@
   #include "debug.h"
   
   /*@unchecked@*/
  -int _rpmgit_debug = -1;
  +int _rpmgit_debug = 0;
   
   #define  SPEW(_t, _rc, _git) \
 { if ((_t) || _rpmgit_debug ) \
  @@ -87,14 +87,13 @@
   }
   
   #define _ENTRY(_v)  { GIT_IDXENTRY_##_v, #_v, }
  -
   /*@unchecked@*/ /*@observer@*/
   static KEY IDXEflags[] = {
   _ENTRY(UPDATE),
   _ENTRY(REMOVE),
   _ENTRY(UPTODATE),
   _ENTRY(ADDED),
  -_ENTRY(HASHED),  /* XXX not in DBENV->open() doco */
  +_ENTRY(HASHED),
   _ENTRY(UNHASHED),
   _ENTRY(WT_REMOVE),
   _ENTRY(CONFLICTED),
  @@ -105,6 +104,7 @@
   _ENTRY(SKIP_WORKTREE),
   _ENTRY(EXTENDED2),
   };
  +#undef   _ENTRY
   /*@unchecked@*/
   static size_t nIDXEflags = sizeof(IDXEflags) / sizeof(IDXEflags[0]);
   /*@observer@*/
  @@ -119,6 +119,29 @@
   }
   #define  _IDXFLAGS(_idxeflags)   fmtIDXEflags(_idxeflags)
   
  +#define _ENTRY(_v)  { GIT_REF_##_v, #_v, }
  +/*@unchecked@*/ /*@observer@*/
  +static KEY REFflags[] = {
  +_ENTRY(OID),
  +_ENTRY(SYMBOLIC),
  +_ENTRY(PACKED),
  +_ENTRY(HAS_PEEL),
  +};
  +#undef   _ENTRY
  +/*@unchecked@*/
  +static size_t nREFflags = sizeof(REFflags) / sizeof(REFflags[0]);
  +/*@observer@*/
  +static const char * fmtREFflags(uint32_t flags)
  + /*@*/
  +{
  +static char buf[BUFSIZ];
  +char * te = buf;
  +te = stpcpy(te, "\n\tflags: ");
  +(void) fmtBits(flags, REFflags, nREFflags, te);
  +return buf;
  +}
  +#define  _REFFLAGS(_refflags)fmtREFflags(_refflags)
  +
   #endif   /* defined(WITH_LIBGT2) */
   
   /*==*/
  @@ -126,6 +149,7 @@
   static int Xchkgit(/*@unused@*/ rpmgit git, const char * msg,
   int error, int printit,
   const char * func, const char * fn, unsigned ln)
  + /*@*/
   {
   int rc = error;
   
  @@ -140,35 +164,365 @@
   #define chkgit(_git, _msg, _error)  \
   Xchkgit(_git, _msg, _error, _rpmgit_debug, __FUNCTION__, __FILE__, 
__LINE__)
   
  +#if defined(WITH_LIBGIT2)
  +void rpmgitPrintOid(const char * msg, const void * _oidp, void * _fp)
  +{
  +FILE * fp = (_fp ? _fp : stderr);
  +const git_oid * oidp = _oidp;
  +char * t = git_oid_allocfmt(oidp);
  +git_oid_fmt(t, oidp);
  +if (msg) fprintf(fp, "%s:", msg);
  +fprintf(fp, " %s\n", t);
  +t = _free(t);
  +}
  +
  +void rpmgitPrintTime(const char * msg, time_t _Ctime, void * _fp)
  +{
  +FILE * fp = (_fp ? _fp : stderr);
  +static const char _fmt[] = "%c";
  +struct tm tm;
  +char _b[BUFSIZ];
  +size_t _nb = sizeof(_b);
  +size_t nw = strftime(_b, _nb-1, _fmt, localtime_r(&_Ctime, &tm));
  +(void)nw;
  +if (msg) fprintf(fp, "%s:", msg);
  +fprintf(fp, " %s\n", _b);
  +}
  +
  +void rpmgitPrintSig(const char * msg, const void * _S, void * _fp)
  +{
  +FILE * fp = (_fp ? _fp : stderr);
  +const git_signat

[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers rpmgit.c rpmgit.h

2012-03-08 Thread Jeff Johnson
  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:   09-Mar-2012 02:21:45
  Branch: rpm-5_4  Handle: 2012030901214500

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers rpmgit.c rpmgit.h

  Log:
- rpmgit: haul out a load of trash.

  Summary:
RevisionChanges Path
2.199.2.5   +1  -1  rpm/rpmio/librpmio.vers
2.1.2.7 +5  -3  rpm/rpmio/rpmgit.c
2.1.2.6 +16 -10 rpm/rpmio/rpmgit.h
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.4 -r2.199.2.5 librpmio.vers
  --- rpm/rpmio/librpmio.vers   7 Mar 2012 23:52:48 -   2.199.2.4
  +++ rpm/rpmio/librpmio.vers   9 Mar 2012 01:21:45 -   2.199.2.5
  @@ -363,7 +363,7 @@
   rpmGetMacroEntries;
   rpmGetPath;
   _rpmgit_debug;
  -rpmgitConfig;
  +rpmgitConfigPrint;
   rpmgitInfo;
   rpmgitNew;
   rpmgitRead;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmgit.c
  
  $ cvs diff -u -r2.1.2.6 -r2.1.2.7 rpmgit.c
  --- rpm/rpmio/rpmgit.c8 Mar 2012 22:18:26 -   2.1.2.6
  +++ rpm/rpmio/rpmgit.c9 Mar 2012 01:21:45 -   2.1.2.7
  @@ -142,7 +142,7 @@
   
   /*==*/
   
  -static int rpmgitConfigPrint(const char * var_name, const char * value,
  +static int rpmgitConfigCB(const char * var_name, const char * value,
void * _git)
   {
   rpmgit git = (rpmgit) _git;
  @@ -154,7 +154,7 @@
   return rc;
   }
   
  -int rpmgitConfig(rpmgit git)
  +int rpmgitConfigPrint(rpmgit git)
   {
   int rc = -1;
   #if defined(WITH_LIBGIT2)
  @@ -163,7 +163,7 @@
git_repository_config((git_config **)&git->cfg, git->R));
   
   rc = chkgit(git, "git_config_foreach",
  - git_config_foreach(git->cfg, rpmgitConfigPrint, git));
  + git_config_foreach(git->cfg, rpmgitConfigCB, git));
   #endif
   SPEW(0, rc, git);
   return rc;
  @@ -368,6 +368,8 @@
   git->I = NULL;
   git->R = NULL;
   
  +git->user_email = _free(git->user_email);
  +git->user_name = _free(git->user_name);
   git->fn = _free(git->fn);
   }
   
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmgit.h
  
  $ cvs diff -u -r2.1.2.5 -r2.1.2.6 rpmgit.h
  --- rpm/rpmio/rpmgit.h8 Mar 2012 22:18:26 -   2.1.2.5
  +++ rpm/rpmio/rpmgit.h9 Mar 2012 01:21:45 -   2.1.2.6
  @@ -21,19 +21,25 @@
   struct rpmgit_s {
   struct rpmioItem_s _item;/*!< usage mutex and pool identifier. */
   const char * fn;
  +
  +int core_bare;
  +int core_repositoryformatversion;
  +const char * user_name;
  +const char * user_email;
  +
   int major;
   int minor;
   int rev;
   
  -void * R;/* git_repository * */
  -void * I;/* git_index * */
  -void * T;/* git_tree * */
  -void * C;/* git_commit * */
  -void * H;/* git_reference * */
  -
  -void * cfg;  /* git_config * */
  -void * odb;  /* git_odb * */
  -void * walk; /* git_revwalk * */
  +void * R;/*!< git_repository * */
  +void * I;/*!< git_index * */
  +void * T;/*!< git_tree * */
  +void * C;/*!< git_commit * */
  +void * H;/*!< git_reference * */
  +
  +void * cfg;  /*!< git_config * */
  +void * odb;  /*!< git_odb * */
  +void * walk; /*!< git_revwalk * */
   
   #ifdef   NOTYET
   const void * Cauthor;
  @@ -99,7 +105,7 @@
/*@globals fileSystem, internalState @*/
/*@modifies fileSystem, internalState @*/;
   
  -int rpmgitConfig(rpmgit git);
  +int rpmgitConfigPrint(rpmgit git);
   int rpmgitInfo(rpmgit git);
   int rpmgitTree(rpmgit git);
   int rpmgitWalk(rpmgit git);
  @@ .
__
RPM Package Managerhttp://rpm5.org
CVS Sources Repositoryrpm-cvs@rpm5.org


[CVS] RPM: rpm-5_4: rpm/rpmio/ librpmio.vers rpmgit.c rpmgit.h rpmsvn....

2012-03-04 Thread Jeff Johnson
  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:   04-Mar-2012 16:46:22
  Branch: rpm-5_4  Handle: 2012030415462100

  Modified files:   (Branch: rpm-5_4)
rpm/rpmio   librpmio.vers rpmgit.c rpmgit.h rpmsvn.c rpmsvn.h
tgit.c

  Log:
- rpmsvn: ditto.
- rpmgit: exploratory work with -lgit2.

  Summary:
RevisionChanges Path
2.199.2.2   +5  -0  rpm/rpmio/librpmio.vers
2.1.2.3 +332 -5 rpm/rpmio/rpmgit.c
2.1.2.3 +22 -10 rpm/rpmio/rpmgit.h
2.1.2.3 +26 -2  rpm/rpmio/rpmsvn.c
2.1.2.3 +3  -9  rpm/rpmio/rpmsvn.h
1.1.2.2 +6  -0  rpm/rpmio/tgit.c
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  
  $ cvs diff -u -r2.199.2.1 -r2.199.2.2 librpmio.vers
  --- rpm/rpmio/librpmio.vers   3 Apr 2011 22:13:17 -   2.199.2.1
  +++ rpm/rpmio/librpmio.vers   4 Mar 2012 15:46:21 -   2.199.2.2
  @@ -363,7 +363,12 @@
   rpmGetMacroEntries;
   rpmGetPath;
   _rpmgit_debug;
  +rpmgitConfig;
  +rpmgitInfo;
   rpmgitNew;
  +rpmgitRead;
  +rpmgitWalk;
  +rpmgitWrite;
   rpmGlob;
   rpmGlobalMacroContext;
   _rpmhkpI;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmgit.c
  
  $ cvs diff -u -r2.1.2.2 -r2.1.2.3 rpmgit.c
  --- rpm/rpmio/rpmgit.c29 Feb 2012 14:02:33 -  2.1.2.2
  +++ rpm/rpmio/rpmgit.c4 Mar 2012 15:46:21 -   2.1.2.3
  @@ -8,6 +8,7 @@
   #include/* for *Pool methods */
   #include 
   #include 
  +#include 
   
   #if defined(HAVE_GIT2_H)
   #include 
  @@ -21,18 +22,342 @@
   /*@unchecked@*/
   int _rpmgit_debug = 0;
   
  +#define  SPEW(_t, _rc, _git) \
  +  { if ((_t) || _rpmgit_debug ) \
  + fprintf(stderr, "<-- %s(%p) rc %d\n", __FUNCTION__, (_git), \
  + (_rc)); \
  +  }
  +
  +/*==*/
  +/*@-redef@*/
  +typedef struct key_s {
  +uint32_t v;
  +/*@observer@*/
  +const char *n;
  +} KEY;
  +/*@=redef@*/
  +
  +/*@observer@*/
  +static const char * tblName(uint32_t v, KEY * tbl, size_t ntbl)
  + /*@*/
  +{
  +const char * n = NULL;
  +static char buf[32];
  +size_t i;
  +
  +for (i = 0; i < ntbl; i++) {
  + if (v != tbl[i].v)
  + continue;
  + n = tbl[i].n;
  + break;
  +}
  +if (n == NULL) {
  + (void) snprintf(buf, sizeof(buf), "0x%x", (unsigned)v);
  + n = buf;
  +}
  +return n;
  +}
  +
  +static const char * fmtBits(uint32_t flags, KEY tbl[], size_t ntbl, char *t)
  + /*@modifies t @*/
  +{
  +char pre = '<';
  +char * te = t;
  +int i;
  +
  +sprintf(t, "0x%x", (unsigned)flags);
  +te = t;
  +te += strlen(te);
  +for (i = 0; i < 32; i++) {
  + uint32_t mask = (1 << i);
  + const char * name;
  +
  + if (!(flags & mask))
  + continue;
  +
  + name = tblName(mask, tbl, ntbl);
  + *te++ = pre;
  + pre = ',';
  + te = stpcpy(te, name);
  +}
  +if (pre == ',') *te++ = '>';
  +*te = '\0';
  +return t;
  +}
  +
  +#define _ENTRY(_v)  { GIT_IDXENTRY_##_v, #_v, }
  +
  +/*@unchecked@*/ /*@observer@*/
  +static KEY IDXEflags[] = {
  +_ENTRY(UPDATE),
  +_ENTRY(REMOVE),
  +_ENTRY(UPTODATE),
  +_ENTRY(ADDED),
  +_ENTRY(HASHED),  /* XXX not in DBENV->open() doco */
  +_ENTRY(UNHASHED),
  +_ENTRY(WT_REMOVE),
  +_ENTRY(CONFLICTED),
  +_ENTRY(UNPACKED),
  +_ENTRY(NEW_SKIP_WORKTREE),
  +
  +_ENTRY(INTENT_TO_ADD),
  +_ENTRY(SKIP_WORKTREE),
  +_ENTRY(EXTENDED2),
  +};
  +/*@unchecked@*/
  +static size_t nIDXEflags = sizeof(IDXEflags) / sizeof(IDXEflags[0]);
  +/*@observer@*/
  +static const char * fmtIDXEflags(uint32_t flags)
  + /*@*/
  +{
  +static char buf[BUFSIZ];
  +char * te = buf;
  +te = stpcpy(te, "\n\tflags: ");
  +(void) fmtBits(flags, IDXEflags, nIDXEflags, te);
  +return buf;
  +}
  +#define  _IDXFLAGS(_idxeflags)   fmtIDXEflags(_idxeflags)
  +
  +/*==*/
  +
  +static int Xchkgit(/*@unused@*/ rpmgit git, const char * msg,
  +int error, int printit,
  +const char * func, const char * fn, unsigned ln)
  +{
  +int rc = error;
  +
  +if (printit && rc) {
  + /* XXX git_strerror? */
  +rpmlog(RPMLOG_ERR, "%s:%s:%u: %s(%d)\n",
  +