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