RPM Community Forums

Mailing List Message of <rpm-cvs>

[CVS] RPM: rpm/ CHANGES configure.ac rpm/rpmio/ rpmdav.c rpmdav.h rpmi...

From: Mark Hatle <fray@rpm5.org>
Date: Fri 29 Jun 2007 - 22:23:07 CEST
Message-Id: <20070629202307.2C5D13484EC@rpm5.org>
  RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Mark Hatle
  Root:   /v/rpm/cvs                       Email:  fray@rpm5.org
  Module: rpm                              Date:   29-Jun-2007 22:23:07
  Branch: HEAD                             Handle: 2007062921230600

  Modified files:
    rpm                     CHANGES configure.ac
    rpm/rpmio               rpmdav.c rpmdav.h rpmio.c rpmrpc.c url.c

  Log:
    Allow neon to be disabled in the build.
    
    Obtained from: based on work from rpm.org by Michael Schroeder <mls@suse.de>

  Summary:
    Revision    Changes     Path
    1.1418      +2  -1      rpm/CHANGES
    2.154       +2  -2      rpm/configure.ac
    2.37        +62 -0      rpm/rpmio/rpmdav.c
    2.15        +6  -0      rpm/rpmio/rpmdav.h
    1.87        +22 -2      rpm/rpmio/rpmio.c
    2.52        +18 -0      rpm/rpmio/rpmrpc.c
    1.38        +2  -0      rpm/rpmio/url.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.1417 -r1.1418 CHANGES
  --- rpm/CHANGES	29 Jun 2007 13:39:12 -0000	1.1417
  +++ rpm/CHANGES	29 Jun 2007 20:23:06 -0000	1.1418
  @@ -1,4 +1,5 @@
   4.5 -> 5.0:
  +    - mgh: allow rpm to be built w/o neon
       - rse: remove unused rpmio/sexp/ sub-library
       - rse: add "errno" information to be more informative in error message when lstat(2) on verification fails.
       - rse: correctly restore SIGILL signal handler in machine detection code. 
  @@ -33,7 +34,7 @@
       - jbj: remove support for patch-2.1.
       - rse: allow actually used tar(1) and patch(1) tools to be set via %__tar and %__patch
       - rse: add support for patch(1)'s "-d" option to internal macro %patch
  -    - fray: allow -bb --short-circuit
  +    - mgh: allow -bb --short-circuit
       - rse: allow leading whitespaces on %setup and %patch lines in *.spec files
       - rse: resolve portability issue related to double definition of mergesort(3)
       - rse: fix building under UnixWare (blind port)
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/configure.ac
  ============================================================================
  $ cvs diff -u -r2.153 -r2.154 configure.ac
  --- rpm/configure.ac	28 Jun 2007 15:52:05 -0000	2.153
  +++ rpm/configure.ac	29 Jun 2007 20:23:06 -0000	2.154
  @@ -714,14 +714,14 @@
   RPM_CHECK_LIB(
       [Neon], [neon],
       [neon], [ne_session_create], [ne_session.h],
  -    [yes,external], [],
  +    [yes,external:none], [],
       [ AC_CHECK_LIB(neon, ne_get_response_header, [
             AC_DEFINE(HAVE_NEON_NE_GET_RESPONSE_HEADER, 1,
                       [Define to 1 if you have ne_get_response_header() in libneon.]) ])
         AC_CHECK_LIB(neon, ne_send_request_chunk, [
             AC_DEFINE(HAVE_NEON_NE_SEND_REQUEST_CHUNK, 1,
                       [Define to 1 if you have ne_send_request_chunk() in libneon.]) ])
  -    ], [ AC_MSG_ERROR([mandatory Neon library not found]) ])
  +    ], [ AC_MSG_WARN([No Neon library not found, using unsupported configuration]) ])
   
   dnl # File (magic)
   RPM_CHECK_LIB(
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmdav.c
  ============================================================================
  $ cvs diff -u -r2.36 -r2.37 rpmdav.c
  --- rpm/rpmio/rpmdav.c	21 Jun 2007 11:24:10 -0000	2.36
  +++ rpm/rpmio/rpmdav.c	29 Jun 2007 20:23:06 -0000	2.37
  @@ -9,6 +9,8 @@
   #include <pthread.h>
   #endif
   
  +#ifdef WITH_NEON
  +
   #include "ne_alloc.h"
   #include "ne_auth.h"
   #include "ne_basic.h"
  @@ -34,6 +36,8 @@
   	ne_propfind_set_private(_pfh, _create_item, NULL, NULL)
   #endif
   
  +#endif /* WITH_NEON */
  +
   #include <rpmio_internal.h>
   
   #define _RPMDAV_INTERNAL
  @@ -55,6 +59,8 @@
   /*@unchecked@*/
   static int httpTimeoutSecs = TIMEOUT_SECS;
   
  +#ifdef WITH_NEON
  +
   /* =============================================================== */
   int davFree(urlinfo u)
   	/*@globals internalState @*/
  @@ -1490,10 +1496,62 @@
   }
   #endif	/* NOTYET */
   
  +#endif /* WITH_NEON */
  +
   /* =============================================================== */
   /*@unchecked@*/
   int avmagicdir = 0x3607113;
   
  +#ifndef WITH_NEON
  +/*@-nullstate@*/        /* FIX: u->{ctrl,data}->url undef after XurlLink. */
  +FD_t httpOpen(const char * url, /*@unused@*/ int flags,
  +                /*@unused@*/ mode_t mode, /*@out@*/ urlinfo * uret)
  +        /*@globals internalState @*/
  +        /*@modifies *uret, internalState @*/
  +{
  +    urlinfo u = NULL;
  +    FD_t fd = NULL;
  +
  +#if 0   /* XXX makeTempFile() heartburn */
  +    assert(!(flags & O_RDWR));
  +#endif
  +    if (urlSplit(url, &u))
  +        goto exit;
  +
  +    if (u->ctrl == NULL)
  +        u->ctrl = fdNew("persist ctrl (httpOpen)");
  +    if (u->ctrl->nrefs > 2 && u->data == NULL)
  +        u->data = fdNew("persist data (httpOpen)");
  +
  +    if (u->ctrl->url == NULL)
  +        fd = fdLink(u->ctrl, "grab ctrl (httpOpen persist ctrl)");
  +    else if (u->data->url == NULL)
  +        fd = fdLink(u->data, "grab ctrl (httpOpen persist data)");
  +    else
  +        fd = fdNew("grab ctrl (httpOpen)");
  +
  +    if (fd) {
  +        fdSetIo(fd, ufdio);
  +        fd->ftpFileDoneNeeded = 0;
  +        fd->rd_timeoutsecs = httpTimeoutSecs;
  +        fd->contentLength = fd->bytesRemain = -1;
  +        fd->url = urlLink(u, "url (httpOpen)");
  +        fd = fdLink(fd, "grab data (httpOpen)");
  +        fd->urlType = URL_IS_HTTP;
  +    }
  +
  +exit:
  +/*@-boundswrite@*/
  +    if (uret)
  +        *uret = u;
  +/*@=boundswrite@*/
  +    /*@-refcounttrans@*/
  +    return fd;
  +    /*@=refcounttrans@*/
  +}
  +/*@=nullstate@*/
  +#endif
  +
   int avClosedir(/*@only@*/ DIR * dir)
   {
       AVDIR avdir = (AVDIR)dir;
  @@ -1614,6 +1672,8 @@
   }
   /*@=boundswrite@*/
   
  +#ifdef WITH_NEON
  +
   /* =============================================================== */
   /*@unchecked@*/
   int davmagicdir = 0x8440291;
  @@ -1782,3 +1842,5 @@
   /*@=kepttrans@*/
   }
   /*@=modfilesys@*/
  +
  +#endif /* WITH_NEON */
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmdav.h
  ============================================================================
  $ cvs diff -u -r2.14 -r2.15 rpmdav.h
  --- rpm/rpmio/rpmdav.h	21 Jun 2007 11:24:10 -0000	2.14
  +++ rpm/rpmio/rpmdav.h	29 Jun 2007 20:23:06 -0000	2.15
  @@ -123,6 +123,12 @@
           /*@globals internalState @*/
           /*@modifies *uret, internalState @*/;
   
  +/*@null@*/
  +FD_t httpOpen(const char * url, /*@unused@*/ int flags,
  +                /*@unused@*/ mode_t mode, /*@out@*/ urlinfo * uret)
  +        /*@globals internalState @*/
  +        /*@modifies *uret, internalState @*/;
  +
   /**
    */
   /*@-incondefs@*/
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmio.c
  ============================================================================
  $ cvs diff -u -r1.86 -r1.87 rpmio.c
  --- rpm/rpmio/rpmio.c	29 Jun 2007 13:11:50 -0000	1.86
  +++ rpm/rpmio/rpmio.c	29 Jun 2007 20:23:06 -0000	1.87
  @@ -401,7 +401,11 @@
   /*@-boundswrite@*/
       /* HACK: flimsy wiring for davRead */
       if (fd->req != NULL) {
  +#ifdef WITH_NEON
   	rc = davRead(fd, buf, (count > fd->bytesRemain ? fd->bytesRemain : count));
  +#else
  +	rc = -1;
  +#endif
   	/* XXX Chunked davRead EOF. */
   	if (rc == 0)
   	    fd->bytesRemain = 0;
  @@ -435,7 +439,11 @@
   /*@-boundsread@*/
       /* HACK: flimsy wiring for davWrite */
       if (fd->req != NULL)
  +#ifdef WITH_NEON
   	rc = davWrite(fd, buf, (count > fd->bytesRemain ? fd->bytesRemain : count));
  +#else
  +	rc = -1;
  +#endif
       else
   	rc = write(fdno, buf, (count > fd->bytesRemain ? fd->bytesRemain : count));
   /*@=boundsread@*/
  @@ -486,7 +494,11 @@
       /* HACK: flimsy wiring for davClose */
   /*@-branchstate@*/
       if (fd->req != NULL)
  +#ifdef WITH_NEON
   	rc = davClose(fd);
  +#else
  +	rc = -1;
  +#endif
       else
   	rc = ((fdno >= 0) ? close(fdno) : -2);
   /*@=branchstate@*/
  @@ -1751,7 +1763,7 @@
       return rc;
   }
   
  -#ifdef DEAD
  +#ifndef WITH_NEON
   static int httpResp(urlinfo u, FD_t ctrl, /*@out@*/ char ** str)
   	/*@globals fileSystem @*/
   	/*@modifies ctrl, *str, fileSystem @*/
  @@ -1902,7 +1914,7 @@
       return rc;
   /*@=usereleased@*/
   }
  -#endif
  +#endif /* WITH_NEON */
   
   /* XXX DYING: unused */
   void * ufdGetUrlinfo(FD_t fd)
  @@ -2264,7 +2276,11 @@
       case URL_IS_HTTPS:
       case URL_IS_HTTP:
       case URL_IS_HKP:
  +#ifdef WITH_NEON
   	fd = davOpen(url, flags, mode, &u);
  +#else
  +	fd = httpOpen(url, flags, mode, &u);
  +#endif
   	if (fd == NULL || u == NULL)
   	    break;
   
  @@ -2272,7 +2288,11 @@
   		?  ((flags & O_APPEND) ? "PUT" :
   		   ((flags & O_CREAT) ? "PUT" : "PUT"))
   		: "GET");
  +#ifdef WITH_NEON
   	u->openError = davReq(fd, cmd, path);
  +#else
  +	u->openError = httpReq(fd, cmd, path);
  +#endif
   	if (u->openError < 0) {
   	    /* XXX make sure that we can exit through ufdClose */
   	    fd = fdLink(fd, "error ctrl (ufdOpen HTTP)");
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmrpc.c
  ============================================================================
  $ cvs diff -u -r2.51 -r2.52 rpmrpc.c
  --- rpm/rpmio/rpmrpc.c	17 Jun 2007 14:49:02 -0000	2.51
  +++ rpm/rpmio/rpmrpc.c	29 Jun 2007 20:23:06 -0000	2.52
  @@ -80,7 +80,9 @@
   	/*@notreached@*/ break;
       case URL_IS_HTTPS:
       case URL_IS_HTTP:
  +#ifdef WITH_NEON
   	return davMkdir(path, mode);
  +#endif
   	/*@notreached@*/ break;
       case URL_IS_PATH:
   	path = lpath;
  @@ -140,7 +142,9 @@
   	/*@notreached@*/ break;
       case URL_IS_HTTPS:
       case URL_IS_HTTP:
  +#ifdef WITH_NEON
   	return davRmdir(path);
  +#endif
   	/*@notreached@*/ break;
       case URL_IS_PATH:
   	path = lpath;
  @@ -199,7 +203,9 @@
       switch (oldut) {
       case URL_IS_HTTPS:
       case URL_IS_HTTP:
  +#ifdef WITH_NEON
   	return davRename(oldpath, newpath);
  +#endif
   	/*@notreached@*/ break;
       case URL_IS_FTP:		/* XXX WRONG WRONG WRONG */
       case URL_IS_PATH:
  @@ -297,7 +303,9 @@
   	/*@notreached@*/ break;
       case URL_IS_HTTPS:
       case URL_IS_HTTP:
  +#ifdef WITH_NEON
   	return davUnlink(path);
  +#endif
   	/*@notreached@*/ break;
       case URL_IS_PATH:
   	path = lpath;
  @@ -1299,7 +1307,9 @@
   	/*@notreached@*/ break;
       case URL_IS_HTTPS:
       case URL_IS_HTTP:
  +#ifdef WITH_NEON
   	return davStat(path, st);
  +#endif
   	/*@notreached@*/ break;
       case URL_IS_PATH:
   	path = lpath;
  @@ -1329,7 +1339,9 @@
   	/*@notreached@*/ break;
       case URL_IS_HTTPS:
       case URL_IS_HTTP:
  +#ifdef WITH_NEON
   	return davLstat(path, st);
  +#endif
   	/*@notreached@*/ break;
       case URL_IS_PATH:
   	path = lpath;
  @@ -1730,7 +1742,9 @@
   	/*@notreached@*/ break;
       case URL_IS_HTTPS:	
       case URL_IS_HTTP:
  +#ifdef WITH_NEON
   	return davOpendir(path);
  +#endif
   	/*@notreached@*/ break;
       case URL_IS_PATH:
   	path = lpath;
  @@ -1756,8 +1770,10 @@
   	return NULL;
       if (ISAVMAGIC(dir))
   	return avReaddir(dir);
  +#ifdef WITH_NEON
       if (ISDAVMAGIC(dir))
   	return davReaddir(dir);
  +#endif
       return readdir(dir);
   }
   
  @@ -1769,8 +1785,10 @@
   	return 0;
       if (ISAVMAGIC(dir))
   	return avClosedir(dir);
  +#ifdef WITH_NEON
       if (ISDAVMAGIC(dir))
   	return davClosedir(dir);
  +#endif
       return closedir(dir);
   }
   
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/url.c
  ============================================================================
  $ cvs diff -u -r1.37 -r1.38 url.c
  --- rpm/rpmio/url.c	17 Jun 2007 14:49:02 -0000	1.37
  +++ rpm/rpmio/url.c	29 Jun 2007 20:23:06 -0000	1.38
  @@ -134,7 +134,9 @@
   			(u->scheme ? u->scheme : ""));
   	/*@=usereleased@*/
       }
  +#ifdef WITH_NEON
       xx = davFree(u);
  +#endif
       u->buf = _free(u->buf);
       u->url = _free(u->url);
       u->scheme = _free((void *)u->scheme);
  @@ .
Received on Fri Jun 29 22:23:07 2007
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.