Added tests inside ebuild, patch from upstream to fix gcc warnings.
authorPeter Volkov <pva@gentoo.org>
Tue, 11 Oct 2011 08:26:35 +0000 (08:26 +0000)
committerPeter Volkov <pva@gentoo.org>
Tue, 11 Oct 2011 08:26:35 +0000 (08:26 +0000)
Package-Manager: portage-2.1.10.25/cvs/Linux x86_64

dev-db/gigabase/ChangeLog
dev-db/gigabase/Manifest
dev-db/gigabase/files/gigabase-3.83-fix-dereferencing.patch [new file with mode: 0644]
dev-db/gigabase/gigabase-3.83-r1.ebuild [new file with mode: 0644]

index 0f090fdec341de8a176413683b3a665313fd8993..757bfc3b27ea3173fd856d98223747c2fcc87998 100644 (file)
@@ -1,6 +1,12 @@
 # ChangeLog for dev-db/gigabase
 # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-db/gigabase/ChangeLog,v 1.52 2011/10/02 09:17:21 pva Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-db/gigabase/ChangeLog,v 1.53 2011/10/11 08:26:34 pva Exp $
+
+*gigabase-3.83-r1 (11 Oct 2011)
+
+  11 Oct 2011; Peter Volkov <pva@gentoo.org> +gigabase-3.83-r1.ebuild,
+  +files/gigabase-3.83-fix-dereferencing.patch:
+  Added tests inside ebuild, patch from upstream to fix gcc warnings.
 
 *gigabase-3.83 (02 Oct 2011)
 
index 2ffde221a5e056feb54f656c44cb9808f66bad0e..6a82a83379a1f5cbe57e58e3c7a7648a4a0edea7 100644 (file)
@@ -1,6 +1,18 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA256
+
+AUX gigabase-3.83-fix-dereferencing.patch 6280 RMD160 da6c1457585a3d55ecfa1a74ea4e463d666e0546 SHA1 9d1251b71a903f92bf27257cd4aaff86ac2d37b5 SHA256 61661f56848410109773fae0556dcda0ad4b76ef06e476ac400ad2c5f4a69e78
 DIST gigabase-3.82.tar.gz 1746054 RMD160 91f4ec9318e64e861982cf3fb8031d27bc1e8e80 SHA1 b90a4b14f441fb80260bf7f2e332ef4a4e9e736f SHA256 b723692844d0e1ff9ade6bd645d87eb14042263b8811c946492eba5feaeacb40
 DIST gigabase-3.83.tar.gz 1746301 RMD160 8b1e97e86a4305ef9da359e83fdbd567b128e23c SHA1 96ad1758cf693e524ac8c6f38227dbafe100d985 SHA256 0d627fa41ce0b3336b08738bf00cfc41ef5ddc8eb91c11f6a621d0e6f2e65607
 EBUILD gigabase-3.82-r1.ebuild 1021 RMD160 3be2d427a47ac50bea0c099cc497372822a7bfa6 SHA1 21587f02cb73b5cd31b53217c3aed0547930ea41 SHA256 5d190043f72db971e34b0e1c1edb95e55c95dc7e977d6515e3947bf0e615c466
+EBUILD gigabase-3.83-r1.ebuild 1374 RMD160 e29df61e696b789cea36f18877cba1ee27ecff9d SHA1 b15620c1c78902dac2d9c7a8874a22b1c20b37ba SHA256 bef265f16d0a2dc3016631706806375a1d3679c127c15e977412518382f9fa88
 EBUILD gigabase-3.83.ebuild 1017 RMD160 014716b6356955eccfb3de045acc141097bb440b SHA1 bd1028bfecb87ca535268599385f8ddaab5266a9 SHA256 19524e7a00e5cfe2fbefb4167dd4b3eadc256d76773490a978e1693486e7c125
-MISC ChangeLog 7072 RMD160 36d7bc98ea73c904157a9da9203e41810b553403 SHA1 91a8fa23e6b077c731696c977a87d4c9f4f603d2 SHA256 017accedbe7ebd931216dce86eea67596b85d38b4ba97ad82b893ea525fad83e
+MISC ChangeLog 7295 RMD160 0dcbbcefe02f2ca3d6e595685ee8217d9a90e50a SHA1 ffeca8c33186f5ccb4647b822963e470617a5b51 SHA256 2e69864c76410afd743cb4950fb0a0e5923dd86379ac152f32a3063f4e0ddfee
 MISC metadata.xml 1511 RMD160 62d891fdbb000ff76cbb22819a230c15f51b9aa0 SHA1 87352ec8b7b60ce7a88e3b3a721469fed9501268 SHA256 ec18a208eef76e2c08ec402b718bc68a444ec5413eb1d08b5e7dfc9fbc5ea04b
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.17 (GNU/Linux)
+
+iF4EAREIAAYFAk6T/VEACgkQGrk+8vGYmwc5HAD/d76t0VoWNoKlvme7f+XKjPqS
+JBe6HWiL4nweyykHxIQA/3IryLP3ncVAuHxsKcNxTxTck/J6q1TH9LUbIBiyR6sp
+=28ja
+-----END PGP SIGNATURE-----
diff --git a/dev-db/gigabase/files/gigabase-3.83-fix-dereferencing.patch b/dev-db/gigabase/files/gigabase-3.83-fix-dereferencing.patch
new file mode 100644 (file)
index 0000000..b96f47b
--- /dev/null
@@ -0,0 +1,188 @@
+Index: session.cpp
+===================================================================
+--- session.cpp        (revision 15)
++++ session.cpp        (revision 16)
+@@ -131,7 +131,7 @@
+         throw CursorException("Cursor is not opened");
+     }
+     fillBuffer(sizeof(oid_t));
+-    oid_t currOid = *(oid_t*)&sockBuf[bufPos];
++    oid_t currOid = *(oid_t*)(sockBuf + bufPos);
+     bufPos += sizeof(oid_t);
+     if (currObj != NULL) { 
+         delete[] currObj;
+@@ -139,7 +139,7 @@
+     }
+     if (currOid != 0) { 
+         fillBuffer(sizeof(int));
+-        size_t size = *(int*)&sockBuf[bufPos];
++        size_t size = *(int*)(sockBuf + bufPos);
+         if (size <= SOCKET_BUFFER_SIZE) { 
+             fillBuffer(size);
+             if (record != NULL) { 
+Index: database.cpp
+===================================================================
+--- database.cpp       (revision 15)
++++ database.cpp       (revision 16)
+@@ -739,40 +739,55 @@
+         return;
+       case dbvmInvokeMethodBool:
+-        execute(expr->ref.base, iattr, sattr);
+-        expr->ref.field->method->invoke(sattr.base, &sattr.bvalue);
+-        sattr.bvalue = *(bool*)&sattr.bvalue;
+-        iattr.free(sattr);
+-        return;
++      { 
++          bool val;
++          execute(expr->ref.base, iattr, sattr);
++          expr->ref.field->method->invoke(sattr.base, &val);
++          sattr.bvalue = val;
++          iattr.free(sattr);
++          return;
++      }
+       case dbvmInvokeMethodInt1:
+-        execute(expr->ref.base, iattr, sattr);
+-        expr->ref.field->method->invoke(sattr.base, &sattr.ivalue);
+-        sattr.ivalue = *(int1*)&sattr.ivalue;
+-        iattr.free(sattr);
+-        return;
++      {
++          int1 val;
++          execute(expr->ref.base, iattr, sattr);
++          expr->ref.field->method->invoke(sattr.base, &val);
++          sattr.ivalue = val;
++          iattr.free(sattr);
++          return;
++      }
+       case dbvmInvokeMethodInt2:
+-        execute(expr->ref.base, iattr, sattr);
+-        expr->ref.field->method->invoke(sattr.base, &sattr.ivalue);
+-        sattr.ivalue = *(int2*)&sattr.ivalue;
+-        iattr.free(sattr);
+-        return;
++      {
++          int2 val;
++          execute(expr->ref.base, iattr, sattr);
++          expr->ref.field->method->invoke(sattr.base, &val);
++          sattr.ivalue = val;
++          iattr.free(sattr);
++          return;
++      }
+       case dbvmInvokeMethodInt4:
+-        execute(expr->ref.base, iattr, sattr);
+-        expr->ref.field->method->invoke(sattr.base, &sattr.ivalue);
+-        sattr.ivalue = *(int4*)&sattr.ivalue;
+-        iattr.free(sattr);
+-        return;
++      {
++          int4 val;
++          execute(expr->ref.base, iattr, sattr);
++          expr->ref.field->method->invoke(sattr.base, &val);
++          sattr.ivalue = val;
++          iattr.free(sattr);
++          return;
++      }
+       case dbvmInvokeMethodInt8:
+         execute(expr->ref.base, iattr, sattr);
+         expr->ref.field->method->invoke(sattr.base, &sattr.ivalue);
+         iattr.free(sattr);
+         return;
+       case dbvmInvokeMethodReal4:
+-        execute(expr->ref.base, iattr, sattr);
+-        expr->ref.field->method->invoke(sattr.base, &sattr.fvalue);
+-        sattr.fvalue = *(real4*)&sattr.fvalue;
+-        iattr.free(sattr);
+-        return;
++      {
++          real4 val;
++          execute(expr->ref.base, iattr, sattr);
++          expr->ref.field->method->invoke(sattr.base, &val);
++          sattr.fvalue = val;
++          iattr.free(sattr);
++          return;
++      }
+       case dbvmInvokeMethodReal8:
+         execute(expr->ref.base, iattr, sattr);
+         expr->ref.field->method->invoke(sattr.base, &sattr.fvalue);
+@@ -792,28 +807,43 @@
+         return;
+  
+       case dbvmInvokeSelfMethodBool:
+-        expr->ref.field->method->invoke(iattr.record, &sattr.bvalue);
+-        sattr.bvalue = *(bool*)&sattr.bvalue;
+-        return;
++      {
++          bool val;
++          expr->ref.field->method->invoke(iattr.record, &val);
++          sattr.bvalue = val;
++          return;
++      }
+       case dbvmInvokeSelfMethodInt1:
+-        expr->ref.field->method->invoke(iattr.record, &sattr.ivalue);
+-        sattr.ivalue = *(int1*)&sattr.ivalue;
+-        return;
++      {
++          int1 val;
++          expr->ref.field->method->invoke(iattr.record, &val);
++          sattr.ivalue = val;
++          return;
++      }
+       case dbvmInvokeSelfMethodInt2:
+-        expr->ref.field->method->invoke(iattr.record, &sattr.ivalue);
+-        sattr.ivalue = *(int2*)&sattr.ivalue;
+-        return;
++      {
++          int2 val;
++          expr->ref.field->method->invoke(iattr.record, &val);
++          sattr.ivalue = val;
++          return;
++      }
+       case dbvmInvokeSelfMethodInt4:
+-        expr->ref.field->method->invoke(iattr.record, &sattr.ivalue);
+-        sattr.ivalue = *(int4*)&sattr.ivalue;
+-        return;
++      {
++          int4 val;
++          expr->ref.field->method->invoke(iattr.record, &val);
++          sattr.ivalue = val;
++          return;
++      }
+       case dbvmInvokeSelfMethodInt8:
+         expr->ref.field->method->invoke(iattr.record, &sattr.ivalue);
+         return;
+       case dbvmInvokeSelfMethodReal4:
+-        expr->ref.field->method->invoke(iattr.record, &sattr.fvalue);
+-        sattr.fvalue = *(real4*)&sattr.fvalue;
+-        return;
++      {
++          real4 val;
++          expr->ref.field->method->invoke(iattr.record, &val);
++          sattr.fvalue = *(real4*)&sattr.fvalue;
++          return;
++      }
+       case dbvmInvokeSelfMethodReal8:
+         expr->ref.field->method->invoke(iattr.record, &sattr.fvalue);
+         return;
+Index: server.cpp
+===================================================================
+--- server.cpp (revision 15)
++++ server.cpp (revision 16)
+@@ -2097,7 +2097,7 @@
+                 bufUsed = 0;
+             }
+             oid_t oid = cursor.getOid();
+-            *(oid_t*)&buf[bufUsed] = oid;
++            *(oid_t*)(buf + bufUsed) = oid;
+             bufUsed += sizeof(oid_t);
+             dbRecord* record = db->getRow(tie, oid);
+             size_t size = record->size;
+@@ -2129,7 +2129,7 @@
+             bufUsed = 0;
+         }
+     }
+-    *(oid_t*)&buf[bufUsed] = 0;
++    *(oid_t*)(buf + bufUsed) = 0;
+     return session->sock->write(buf, bufUsed + sizeof(oid_t));
+ }
diff --git a/dev-db/gigabase/gigabase-3.83-r1.ebuild b/dev-db/gigabase/gigabase-3.83-r1.ebuild
new file mode 100644 (file)
index 0000000..33ad0aa
--- /dev/null
@@ -0,0 +1,62 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-db/gigabase/gigabase-3.83-r1.ebuild,v 1.1 2011/10/11 08:26:35 pva Exp $
+
+EAPI="4"
+inherit eutils multilib
+
+DESCRIPTION="OO-DBMS with interfaces for C/C++/Java/PHP/Perl"
+HOMEPAGE="http://www.garret.ru/~knizhnik/gigabase.html"
+SRC_URI="mirror://sourceforge/gigabase/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+DEPEND="doc? ( app-doc/doxygen )"
+RDEPEND=""
+
+S=${WORKDIR}/gigabase
+
+src_prepare() {
+       epatch "${FILESDIR}/${P}-fix-dereferencing.patch"
+}
+
+src_configure() {
+       mf="${S}/Makefile"
+
+       econf
+       sed -r -i -e 's/subsql([^\.]|$)/subsql-gdb\1/' ${mf} || die
+}
+
+src_compile() {
+       emake
+       use doc && { doxygen doxygen.cfg || die; }
+}
+
+src_test() {
+       pwd
+       cd ${S}
+       local TESTS
+       local -i failcnt=0
+       TESTS="testddl testidx testidx2 testiref testleak testperf testperf2 testspat testtl testsync testtimeseries"
+
+       for t in ${TESTS}; do
+               ./${t} || { ewarn "$t fails"; failcnt+=1; }
+       done
+       [[ $failcnt != 0 ]] && die "See warnings above for tests that failed"
+}
+
+src_install() {
+       einstall
+
+       dodoc CHANGES
+       use doc && dohtml GigaBASE.htm
+       use doc && dohtml -r docs/html/*
+}
+
+pkg_postinst() {
+       elog "The subsql binary has been renamed to subsql-gdb,"
+       elog "to avoid a name clash with the FastDB version of subsql"
+}