From 6de784033389938c24c4099d02974df81f7977c2 Mon Sep 17 00:00:00 2001 From: Paul Nasrat Date: Mar 15 2007 14:22:31 +0000 Subject: Add noneon patch --- diff --git a/rpm-4.4.2-noneon.patch b/rpm-4.4.2-noneon.patch new file mode 100644 index 0000000..a3f4ee4 --- /dev/null +++ b/rpm-4.4.2-noneon.patch @@ -0,0 +1,299 @@ +Allow build without the neon library. Resurrects old httpOpen +code from rpm-4.1.1. +Building without neon means no webdav file uploads, though. + +Index: rpm-4.4.2/rpmio/rpmdav.c +=================================================================== +--- rpm-4.4.2.orig/rpmio/rpmdav.c ++++ rpm-4.4.2/rpmio/rpmdav.c +@@ -9,6 +9,8 @@ + #include + #endif + ++#ifdef WITH_NEON ++ + #include "ne_alloc.h" + #include "ne_auth.h" + #include "ne_basic.h" +@@ -27,6 +29,8 @@ + #include "ne_string.h" + #include "ne_utils.h" + ++#endif /* WITH_NEON */ ++ + #include + + #define _RPMDAV_INTERNAL +@@ -61,6 +65,8 @@ _free(/*@only@*/ /*@null@*/ /*@out@*/ co + return NULL; + } + ++#ifdef WITH_NEON ++ + /* =============================================================== */ + static int davFree(urlinfo u) + /*@globals internalState @*/ +@@ -1370,6 +1376,8 @@ fprintf(stderr, "*** davReadlink(%s) rc + } + #endif /* NOTYET */ + ++#endif /* WITH_NEON */ ++ + /* =============================================================== */ + /*@unchecked@*/ + int avmagicdir = 0x3607113; +@@ -1494,6 +1502,8 @@ fprintf(stderr, "*** avOpendir(%s)\n", p + } + /*@=boundswrite@*/ + ++#ifdef WITH_NEON ++ + /* =============================================================== */ + /*@unchecked@*/ + int davmagicdir = 0x8440291; +@@ -1661,4 +1671,6 @@ fprintf(stderr, "*** davOpendir(%s)\n", + return (DIR *) avdir; + /*@=kepttrans@*/ + } ++ ++#endif /* WITH_NEON */ + /*@=modfilesys@*/ +Index: rpm-4.4.2/rpmio/rpmio.c +=================================================================== +--- rpm-4.4.2.orig/rpmio/rpmio.c ++++ rpm-4.4.2/rpmio/rpmio.c +@@ -375,7 +375,11 @@ static ssize_t fdRead(void * cookie, /*@ + /*@-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; +@@ -408,9 +412,13 @@ static ssize_t fdWrite(void * cookie, co + fdstat_enter(fd, FDSTAT_WRITE); + /*@-boundsread@*/ + /* HACK: flimsy wiring for davWrite */ +- if (fd->req != NULL) ++ if (fd->req != NULL) { ++#ifdef WITH_NEON + rc = davWrite(fd, buf, (count > fd->bytesRemain ? fd->bytesRemain : count)); +- else ++#else ++ return -1; ++#endif ++ } else + rc = write(fdno, buf, (count > fd->bytesRemain ? fd->bytesRemain : count)); + /*@=boundsread@*/ + fdstat_exit(fd, FDSTAT_WRITE, rc); +@@ -459,9 +467,13 @@ static int fdClose( /*@only@*/ void * co + fdstat_enter(fd, FDSTAT_CLOSE); + /* HACK: flimsy wiring for davClose */ + /*@-branchstate@*/ +- if (fd->req != NULL) ++ if (fd->req != NULL) { ++#ifdef WITH_NEON + rc = davClose(fd); +- else ++#else ++ return -1; ++#endif ++ } else + rc = ((fdno >= 0) ? close(fdno) : -2); + /*@=branchstate@*/ + fdstat_exit(fd, FDSTAT_CLOSE, rc); +@@ -2182,6 +2194,56 @@ exit: + } + /*@=nullstate@*/ + ++#ifndef WITH_NEON ++/*@-nullstate@*/ /* FIX: u->{ctrl,data}->url undef after XurlLink. */ ++static /*@null@*/ 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 ++ + static /*@null@*/ FD_t ufdOpen(const char * url, int flags, mode_t mode) + /*@globals h_errno, fileSystem, internalState @*/ + /*@modifies fileSystem, internalState @*/ +@@ -2220,7 +2282,11 @@ fprintf(stderr, "*** ufdOpen(%s,0x%x,0%o + 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; + +@@ -2228,7 +2294,11 @@ fprintf(stderr, "*** ufdOpen(%s,0x%x,0%o + ? ((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)"); +Index: rpm-4.4.2/rpmio/rpmrpc.c +=================================================================== +--- rpm-4.4.2.orig/rpmio/rpmrpc.c ++++ rpm-4.4.2/rpmio/rpmrpc.c +@@ -93,7 +93,9 @@ int Mkdir (const char * path, mode_t mod + /*@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; +@@ -151,7 +153,9 @@ int Rmdir (const char * path) + /*@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; +@@ -182,7 +186,9 @@ int Rename (const char * oldpath, const + 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: +@@ -280,7 +286,9 @@ int Unlink(const char * path) { + /*@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; +@@ -1282,7 +1290,9 @@ fprintf(stderr, "*** Stat(%s,%p)\n", pat + /*@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; +@@ -1311,7 +1321,9 @@ fprintf(stderr, "*** Lstat(%s,%p)\n", pa + /*@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; +@@ -1489,7 +1501,9 @@ fprintf(stderr, "*** Opendir(%s)\n", pat + /*@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; +@@ -1515,8 +1529,10 @@ fprintf(stderr, "*** Readdir(%p)\n", (vo + return NULL; + if (ISAVMAGIC(dir)) + return avReaddir(dir); ++#ifdef WITH_NEON + if (ISDAVMAGIC(dir)) + return davReaddir(dir); ++#endif + return readdir(dir); + } + +@@ -1528,7 +1544,9 @@ fprintf(stderr, "*** Closedir(%p)\n", (v + return 0; + if (ISAVMAGIC(dir)) + return avClosedir(dir); ++#ifdef WITH_NEON + if (ISDAVMAGIC(dir)) + return davClosedir(dir); ++#endif + return closedir(dir); + } +Index: rpm-4.4.2/rpmio/url.c +=================================================================== +--- rpm-4.4.2.orig/rpmio/url.c ++++ rpm-4.4.2/rpmio/url.c +@@ -147,8 +147,10 @@ URLDBGREFS(0, (stderr, "--> url %p -- %d + /*@=usereleased@*/ + } + if (u->sess != NULL) { ++#ifdef WITH_NEON + /* HACK: neon include has prototype. */ + ne_session_destroy(u->sess); ++#endif + u->sess = NULL; + } + u->buf = _free(u->buf);