Fix QA issues (#167939)
authorAlin Năstac <mrness@gentoo.org>
Wed, 4 Apr 2007 09:06:12 +0000 (09:06 +0000)
committerAlin Năstac <mrness@gentoo.org>
Wed, 4 Apr 2007 09:06:12 +0000 (09:06 +0000)
Package-Manager: portage-2.1.2.2

net-libs/wvstreams/ChangeLog
net-libs/wvstreams/Manifest
net-libs/wvstreams/files/digest-wvstreams-4.3-r1 [moved from net-libs/wvstreams/files/digest-wvstreams-4.3 with 100% similarity]
net-libs/wvstreams/files/wvstreams-4.3-type-punned.patch [new file with mode: 0644]
net-libs/wvstreams/wvstreams-4.3-r1.ebuild [moved from net-libs/wvstreams/wvstreams-4.3.ebuild with 96% similarity]

index dcad19c1aae24730fc9bd448d561c1e6c274e6e9..2df9591a07ca4cd044751c630236eb3ac3094abf 100644 (file)
@@ -1,6 +1,13 @@
 # ChangeLog for net-libs/wvstreams
 # Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-libs/wvstreams/ChangeLog,v 1.100 2007/03/14 11:11:19 mrness Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-libs/wvstreams/ChangeLog,v 1.101 2007/04/04 09:06:12 mrness Exp $
+
+*wvstreams-4.3-r1 (04 Apr 2007)
+
+  04 Apr 2007; Alin Năstac <mrness@gentoo.org>
+  +files/wvstreams-4.3-type-punned.patch, -wvstreams-4.3.ebuild,
+  +wvstreams-4.3-r1.ebuild:
+  Fix QA issues (#167939).
 
   14 Mar 2007; Alin Năstac <mrness@gentoo.org>
   files/wvstreams-4.3-as-needed.patch:
index cb015c4dded6e74329fa2797fc592710426e6620..e91a67a369415531bf58bfd235c138a735b1a85d 100644 (file)
@@ -61,6 +61,10 @@ AUX wvstreams-4.3-sane-cflags.patch 1566 RMD160 609e48c40707946ef69187f643fa1e2f
 MD5 a31feb9828c520c7a2df8ba48534e2ab files/wvstreams-4.3-sane-cflags.patch 1566
 RMD160 609e48c40707946ef69187f643fa1e2f59584a67 files/wvstreams-4.3-sane-cflags.patch 1566
 SHA256 ef649c68e9334f06fa526c07bdf2aab88ee53db89f6917e5972677244db254f7 files/wvstreams-4.3-sane-cflags.patch 1566
+AUX wvstreams-4.3-type-punned.patch 5934 RMD160 a7b4505836d2a5c470516cd0f8ef59d4bf9aadde SHA1 d64d229e092e11b7c0aa0bd72e37d289f2d7feac SHA256 2bce0a22535d502fd555b3735c9457dc8584f609f65ae361f5fd30b1165c6bbf
+MD5 7f9d7c258f9089bb0e356ace096629ff files/wvstreams-4.3-type-punned.patch 5934
+RMD160 a7b4505836d2a5c470516cd0f8ef59d4bf9aadde files/wvstreams-4.3-type-punned.patch 5934
+SHA256 2bce0a22535d502fd555b3735c9457dc8584f609f65ae361f5fd30b1165c6bbf files/wvstreams-4.3-type-punned.patch 5934
 AUX wvstreams-4.3-uniconfd-ini.patch 796 RMD160 1ded678370f6abb9615b62bebe544566cedb055d SHA1 e97dc392b054370427874c51c70b1c4f764cf880 SHA256 e194c877f2d253eadb7c1784c695f4562675ea7c865ad07e629585180d6bbeee
 MD5 13f791bb5b4ae8fd7aef57387f4ff7be files/wvstreams-4.3-uniconfd-ini.patch 796
 RMD160 1ded678370f6abb9615b62bebe544566cedb055d files/wvstreams-4.3-uniconfd-ini.patch 796
@@ -83,14 +87,14 @@ EBUILD wvstreams-4.2.2.ebuild 2537 RMD160 93309344254038873a0c706117c850e280e01a
 MD5 bfef0ede67c42cb43776f76d6ec982e3 wvstreams-4.2.2.ebuild 2537
 RMD160 93309344254038873a0c706117c850e280e01ab0 wvstreams-4.2.2.ebuild 2537
 SHA256 01d7807c175eaa446084241b2e123ed87449a3289c62992686f0e37db77b22c3 wvstreams-4.2.2.ebuild 2537
-EBUILD wvstreams-4.3.ebuild 2428 RMD160 1df38d7e78513f7f9c0c3e31759a30a263305c70 SHA1 714c53f0ce5b75e1013e5e91622710f10e08def9 SHA256 b55462b31f24f96222c42d6375c4a4b5121d95b6762923d758e1f3bcc33b14b0
-MD5 849b876072d6d716c619cbab4fccf7a8 wvstreams-4.3.ebuild 2428
-RMD160 1df38d7e78513f7f9c0c3e31759a30a263305c70 wvstreams-4.3.ebuild 2428
-SHA256 b55462b31f24f96222c42d6375c4a4b5121d95b6762923d758e1f3bcc33b14b0 wvstreams-4.3.ebuild 2428
-MISC ChangeLog 16672 RMD160 bcdfe36f4a06699289e8a2623c08e18ddabaf605 SHA1 2a59453d1d088c25817b975632076ec1a8ec7acc SHA256 f324c0ce34024d32006fdbfafdec7c7a5da02156633f498faffacf0bdae369cc
-MD5 ea8e14313c6a3db1a4eae32407a893b3 ChangeLog 16672
-RMD160 bcdfe36f4a06699289e8a2623c08e18ddabaf605 ChangeLog 16672
-SHA256 f324c0ce34024d32006fdbfafdec7c7a5da02156633f498faffacf0bdae369cc ChangeLog 16672
+EBUILD wvstreams-4.3-r1.ebuild 2476 RMD160 25ac128f639ad3931b74c398bee55cc005a0eac1 SHA1 6ce5bb9c6bf3f7fcd615d86a7b07b34bd45931db SHA256 42e8ff62043e8f09c955076394535056bdbb998242db8e09932c446d91d36624
+MD5 0ccc485fde8c07200ff48db271fcb518 wvstreams-4.3-r1.ebuild 2476
+RMD160 25ac128f639ad3931b74c398bee55cc005a0eac1 wvstreams-4.3-r1.ebuild 2476
+SHA256 42e8ff62043e8f09c955076394535056bdbb998242db8e09932c446d91d36624 wvstreams-4.3-r1.ebuild 2476
+MISC ChangeLog 16874 RMD160 d23f07d54b33b8bd7e65e64973ea2551d2e803d9 SHA1 f3454fd8bca037912769f23f97dcb8550a698d87 SHA256 bb5d58b796265c450d6e7de45d31b207cca0a078852300862cdaef15bfc35b39
+MD5 f71180c46d3ab2f019aa1e3c09a5c919 ChangeLog 16874
+RMD160 d23f07d54b33b8bd7e65e64973ea2551d2e803d9 ChangeLog 16874
+SHA256 bb5d58b796265c450d6e7de45d31b207cca0a078852300862cdaef15bfc35b39 ChangeLog 16874
 MISC metadata.xml 313 RMD160 e543c31d8ddc948a387dcdcc8638a848c587177b SHA1 a40d5fd17e50dc9f983efc63e5cbb8b407b95c7a SHA256 1ec30d4508abc443f3e9c4829b0e7d7e5c588419344203476818a29f71b98a37
 MD5 227de7f678ad662524292836709de75f metadata.xml 313
 RMD160 e543c31d8ddc948a387dcdcc8638a848c587177b metadata.xml 313
@@ -104,13 +108,13 @@ SHA256 af8d2d360c3e497dcd8a2f2cc57ec947b2c99a440dff184197b350e60491f451 files/di
 MD5 ce2f63ffae6742f96ede8200eb39c3d1 files/digest-wvstreams-4.2.2-r3 250
 RMD160 ad134621ec5ac0b3b3884506e3abfbf770e34b52 files/digest-wvstreams-4.2.2-r3 250
 SHA256 af8d2d360c3e497dcd8a2f2cc57ec947b2c99a440dff184197b350e60491f451 files/digest-wvstreams-4.2.2-r3 250
-MD5 573eed9105c7a3828296d072fbc449eb files/digest-wvstreams-4.3 244
-RMD160 323f0e3ef47ac41b690134fc8b9a73f5ffbbd9ca files/digest-wvstreams-4.3 244
-SHA256 e3bb902f085262bd9e556d98911fdf2940e54befc15a71c88e4eb726df6a1692 files/digest-wvstreams-4.3 244
+MD5 573eed9105c7a3828296d072fbc449eb files/digest-wvstreams-4.3-r1 244
+RMD160 323f0e3ef47ac41b690134fc8b9a73f5ffbbd9ca files/digest-wvstreams-4.3-r1 244
+SHA256 e3bb902f085262bd9e556d98911fdf2940e54befc15a71c88e4eb726df6a1692 files/digest-wvstreams-4.3-r1 244
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.3 (GNU/Linux)
 
-iD8DBQFF99hjJnxX6mF440QRAhYSAJ90Z1TyYTGzwpYl7xVOgtrBUxArxACfTF1U
-tbFBNTvHBItR9ELsWO+KwoI=
-=bDGv
+iD8DBQFGE2qRJnxX6mF440QRAp4UAJ9O9AKUZaql2v0e29W9NHY0ekNcjQCdFbFj
+pe7a+DTzHff65ZwHp9NM1UM=
+=Ri6F
 -----END PGP SIGNATURE-----
diff --git a/net-libs/wvstreams/files/wvstreams-4.3-type-punned.patch b/net-libs/wvstreams/files/wvstreams-4.3-type-punned.patch
new file mode 100644 (file)
index 0000000..e99b413
--- /dev/null
@@ -0,0 +1,197 @@
+diff -Nru wvstreams-4.3.orig/urlget/wvhttppool.cc wvstreams-4.3/urlget/wvhttppool.cc
+--- wvstreams-4.3.orig/urlget/wvhttppool.cc    2007-02-07 21:05:29.000000000 +0200
++++ wvstreams-4.3/urlget/wvhttppool.cc 2007-04-04 11:42:06.000000000 +0300
+@@ -43,7 +43,12 @@
+     {
+         WvBufUrlStream *x = new WvBufUrlStream;
+         outstream = x;
+-        x->death_notify = (WvStream **)&outstream;
++        union {
++            WvBufUrlStream** ppbufurlstream;
++            WvStream**       ppstream;
++        } s;
++        s.ppbufurlstream = &outstream;
++        x->death_notify = s.ppstream;
+         x->url = url;
+         putstream = content_source;
+diff -Nru wvstreams-4.3.orig/utils/wvbdbhash.cc wvstreams-4.3/utils/wvbdbhash.cc
+--- wvstreams-4.3.orig/utils/wvbdbhash.cc      2007-02-07 21:06:12.000000000 +0200
++++ wvstreams-4.3/utils/wvbdbhash.cc   2007-04-04 11:37:44.000000000 +0300
+@@ -24,6 +24,11 @@
+ #include "wvlog.h"
++typedef union {
++      WvBdbHash::datum d;
++      DBT D;
++} DBTdatum;
++
+ int comparefunc(const DBT *a, const DBT *b)
+ {
+     if (a == NULL && b == NULL) return 0;
+@@ -102,14 +107,14 @@
+ void WvBdbHash::remove(const datum &key)
+ {
+     if (!isok()) return;
++
++    DBTdatum newkey, data;
++    newkey.d = key;
+     
+-    datum newkey, data;
+-    newkey = key;
+-    
+-    int ret = dbf->seq(dbf, (DBT *)&newkey, (DBT *)&data, R_CURSOR);
++    int ret = dbf->seq(dbf, &newkey.D, &data.D, R_CURSOR);
+     if (!ret)
+     {
+-      ret = dbf->del(dbf, (DBT *)&newkey, R_CURSOR);
++      ret = dbf->del(dbf, &newkey.D, R_CURSOR);
+     }
+     
+     if (ret == 1) seterr("Strange: seq found a key that del didn't recognize");
+@@ -119,30 +124,35 @@
+ WvBdbHash::datum WvBdbHash::find(const datum &key)
+ {
+-    datum ret = {0, 0};
+-    if (!isok()) return ret;
++    DBTdatum newkey, ret;
++    newkey.d = key;
++       ret.d.dptr = 0;
++       ret.d.dsize = 0;
++    if (!isok()) return ret.d;
+-    int r = dbf->get(dbf, (DBT *)&key, (DBT *)&ret, 0);
++    int r = dbf->get(dbf, &newkey.D, &ret.D, 0);
+     if (r == 1)
+     {
+         // not found - make sure we return an empty datum
+-        ret.dptr = NULL;
++        ret.d.dptr = NULL;
+     }
+     else if (r != 0)
+     {
+-        ret.dptr = NULL;
++        ret.d.dptr = NULL;
+         seterr(errno);
+     }
+-    return ret;
++    return ret.d;
+ }
+ bool WvBdbHash::exists(const datum &key)
+ {
++    DBTdatum newkey;
++    newkey.d = key;
++       DBT val;
+     if (!isok()) return false;
+-    datum ret = {0, 0};
+-    int r = dbf->get(dbf, (DBT *)&key, (DBT *)&ret, 0);
++    int r = dbf->get(dbf, &newkey.D, &val, 0);
+     // return true on success
+     if (r == 0) return true;
+@@ -165,11 +175,11 @@
+         }
+         // super-slow version
+-        datum key, value;
++        DBT key, value;
+         int r;
+-        while ((r = dbf->seq(dbf, (DBT *)&key, (DBT *)&value, R_FIRST)) == 0)
++        while ((r = dbf->seq(dbf, &key, &value, R_FIRST)) == 0)
+         {
+-            int r2 = dbf->del(dbf, (DBT *)&key, R_CURSOR);
++            int r2 = dbf->del(dbf, &key, R_CURSOR);
+             if (r2 == 1) seterr("Strange: seq found a key that del didn't recognize");
+             else if (r2 != 0) seterr(errno);
+         }
+@@ -193,54 +203,60 @@
+ {
+     if (!parent.isok()) return;
++    DBTdatum unionkey, uniondata;
++       unionkey.d = curkey;
++       uniondata.d = curdata;
++       
+     // check if this is the first next() after a rewind()
+-    bool first = !curkey.dptr;
+-    datum wanted = { 0, 0 };
++    bool first = !unionkey.d.dptr;
++    DBTdatum wanted;
++       wanted.d.dptr = 0;
++       wanted.d.dsize = 0;
+     if (first)
+     {
+         if (rewindto.dptr)
+       {
+-            curkey = rewindto;
++            unionkey.d = rewindto;
+             first = false;
+         }
+     }
+     else
+     {
+-        wanted.dsize = curkey.dsize;
+-        wanted.dptr = malloc(wanted.dsize);
+-        memcpy(wanted.dptr, curkey.dptr, wanted.dsize);
++        wanted.d.dsize = unionkey.d.dsize;
++        wanted.d.dptr = malloc(wanted.d.dsize);
++        memcpy(wanted.d.dptr, unionkey.d.dptr, wanted.d.dsize);
+     }
+     // always seek for the saved cursor we were just passed, to work around
+     // bugs in libdb1's seq with btrees.  (As a bonus, this gives us multiple
+     // iterators for free!)
+-    int r = parent.dbf->seq(parent.dbf, (DBT *)&curkey, (DBT *)&curdata,
++    int r = parent.dbf->seq(parent.dbf, &unionkey.D, &uniondata.D,
+                 first ? R_FIRST : R_CURSOR);
+     
+     if (r == 1)
+     {
+         // current key gone, and none higher left: done
+-      curkey.dptr = curdata.dptr = NULL;
++      unionkey.d.dptr = uniondata.d.dptr = NULL;
+     }
+     else if (r != 0)
+         parent.seterr(errno);
+     else if (!first)
+     {
+-      while (comparefunc((DBT *)&wanted, (DBT *)&curkey) >= 0)
++      while (comparefunc(&wanted.D, &unionkey.D) >= 0)
+       {
+           // found the exact key or earlier than requested: move forward one
+           // (yes, libbdb1 can return a key less than requested, despite
+           // the documentation's claims!)
+           // This algorithm definitely makes it so inserting the same key
+           // more than once doesn't work at all.
+-          r = parent.dbf->seq(parent.dbf, (DBT *)&curkey, (DBT *)&curdata,
++          r = parent.dbf->seq(parent.dbf, &unionkey.D, &uniondata.D,
+                                R_NEXT);
+             if (r == 1)
+           {
+               // nothing left?  Fine, we're done
+-              curkey.dptr = curdata.dptr = NULL;
++              unionkey.d.dptr = uniondata.d.dptr = NULL;
+               break;
+           }
+             else if (r != 0)
+@@ -252,8 +268,11 @@
+     // the very first key), as expected.  (Also, if rewindto is set it should
+     // be either filled in with the matching btree data or cleared.)  Unless,
+     // of course, the whole db is borked.
+-    assert(!parent.isok() || !rewindto.dptr || curkey.dptr != rewindto.dptr);
+-    free(wanted.dptr);
++    assert(!parent.isok() || !rewindto.dptr || unionkey.d.dptr != rewindto.dptr);
++    free(wanted.d.dptr);
++       
++       curkey = unionkey.d;
++       curdata = uniondata.d;
+ }
+ #endif /* WITH_BDB */
similarity index 96%
rename from net-libs/wvstreams/wvstreams-4.3.ebuild
rename to net-libs/wvstreams/wvstreams-4.3-r1.ebuild
index 9e920395680563a33b34ce1657895fc9accb2993..8cca8599dd8066e62a54aba26d02165c68e5fe00 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2007 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-libs/wvstreams/wvstreams-4.3.ebuild,v 1.1 2007/03/12 15:54:55 mrness Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-libs/wvstreams/wvstreams-4.3-r1.ebuild,v 1.1 2007/04/04 09:06:12 mrness Exp $
 
 WANT_AUTOCONF=2.59
 WANT_AUTOMAKE=none
@@ -40,6 +40,7 @@ src_unpack() {
        epatch "${FILESDIR}/${P}-as-needed.patch"
        epatch "${FILESDIR}/${P}-sane-cflags.patch"
        epatch "${FILESDIR}/${P}-64bit.patch"
+       epatch "${FILESDIR}/${P}-type-punned.patch"
 
        epatch "${FILESDIR}/${P}-external-xplc.patch"
        local XPLC_VER=`best_version dev-libs/xplc`