summaryrefslogtreecommitdiff
path: root/dev-util/duma
diff options
context:
space:
mode:
Diffstat (limited to 'dev-util/duma')
-rw-r--r--dev-util/duma/Manifest7
-rw-r--r--dev-util/duma/duma-2.5.13.ebuild86
-rw-r--r--dev-util/duma/duma-2.5.15-r2.ebuild93
-rw-r--r--dev-util/duma/files/duma-2.5.15-gcc6.patch22
-rw-r--r--dev-util/duma/metadata.xml16
5 files changed, 224 insertions, 0 deletions
diff --git a/dev-util/duma/Manifest b/dev-util/duma/Manifest
new file mode 100644
index 000000000000..1c964aaf7c13
--- /dev/null
+++ b/dev-util/duma/Manifest
@@ -0,0 +1,7 @@
+AUX duma-2.5.15-gcc6.patch 599 BLAKE2B 7fa6c2d42b9c1191e40854aae2bfee236b0c9f9e5360f8c59a32d9b4a89c1a5351812dadce8943848478751ce49db30d5374251a759fa5af9ce28420be64ddbe SHA512 9577e34e97b6f63654a8fa5b6ad26f54733cdd758a2a96b99c2771f9593436501b09ade40e8b20ff61da033e64c635a29b4884a6e4ea3b62fa9a4c12587cf947
+DIST duma-2.5.15-GNUmakefile.patch.bz2 4618 BLAKE2B 506127ce1f8f3d01d0443ab1240c585aa734bf3756ae632ccec8ff88f33fc0ffc5113705d5c3c31c14bf52a2cf3c82132669c2c14d24f0c6df17b8e802c8ef40 SHA512 6d83294897a60c6d0ebac388c8f791adc6a199b2c9838497bcfff39502262014c8437a331e08e3526568d3ef755a7dfdc2557771bdae89c58cd5f714eae70df2
+DIST duma_2_5_13.tar.gz 233157 BLAKE2B 233e9dda882ce380af65311adf21052fdf9d023c654aa50a156f79aafba25d1e2db116bffaa9b39232bf0d0c1ace248505ceaf24a1f7a3f24c4d2f34a7bf5ec0 SHA512 da0f46a697f95cbb17d0dbb3135df779ac347fd9e63c1578d2d732300d5288958d02b5a271e84292a8279c1ebc3dc153f896cbeca916cf18aba8e54788671288
+DIST duma_2_5_15.tar.gz 240479 BLAKE2B c79f47ba418e22a65a2ad2d4cbff796c2a620ec5f36743d543fe1260e61ec700c648033ac3c91e71be3f3e1129a1c12e9f83a91277244962cfbd494d9588d681 SHA512 0e2abdb08cfbaf9fd0a6be348c831a83ac4ee86d2297dcd1c4d625ddb4b2c1c73eef05e2b895e291d5b8076b1baea559c89d475f30e409210df4ab69b71b6345
+EBUILD duma-2.5.13.ebuild 2156 BLAKE2B e080af45afcce44b77019025b628f1779c7a2ead3971220eecd45bb948d1310fae8fd3937dd905b6d44b3f5dc6655506e168983fcb1e76ee429bd4f3aa211868 SHA512 e65d893ac599e030e229941c66f50a4a145a8dd13aa848f8a4aac1a66193fc76a54184e1f287f4bcf68aa965d970778dbe42427a9559cc377e70160d316ef729
+EBUILD duma-2.5.15-r2.ebuild 2242 BLAKE2B f995afe5c9881c45ccaf50ef1a5371bb5c8347578c5ad32e9e0d75b92c456bef23895145fba2a194a39151352f5cc028bb03ced90d1b04d8d80002d0a2517f89 SHA512 4691aeae4fb436653248344174b052eb26c41e7cc9c9eac35bb6b913a077b8513261764308286dd6e629e1c02f914083ae1f78db6337a78cd354a4a5d5048abf
+MISC metadata.xml 600 BLAKE2B ad3ed230f64bc5ead8d50bf7f8949e783ad95f90efbd5bbf8a8a39e6a4a7876d3a4371a5116096d53ba24866accdb6498c816f87da40885f9f7359921bcdeff0 SHA512 f849e5c61d27430f2c7de1f86ac9f12b8424571703e08661bccb0415743bf2e88aea981e72a5b1c287c949c6634e975c5e3f9882b9a29171389bed998c352f08
diff --git a/dev-util/duma/duma-2.5.13.ebuild b/dev-util/duma/duma-2.5.13.ebuild
new file mode 100644
index 000000000000..8b98e3cc5459
--- /dev/null
+++ b/dev-util/duma/duma-2.5.13.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=0
+
+inherit eutils flag-o-matic multilib toolchain-funcs versionator
+
+MY_P="${PN}_$(replace_all_version_separators '_')"
+
+DESCRIPTION="DUMA (Detect Unintended Memory Access) is a memory debugging library"
+HOMEPAGE="http://duma.sourceforge.net/"
+
+SRC_URI="mirror://sourceforge/duma/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="examples"
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ app-shells/bash"
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+ #DUMA_OPTIONS="-DDUMA_LIB_NO_LEAKDETECTION"
+ DUMA_OPTIONS="-DDUMA_USE_FRAMENO"
+ if [ -n "${DUMA_OPTIONS}" ]; then
+ ewarn ""
+ elog "Custom build options are ${DUMA_OPTIONS}."
+ else
+ ewarn ""
+ elog "Custom build options are not set!"
+ fi
+ elog "See the package Makefile for for more options (also installed"
+ elog "with package docs as Makefile.duma)."
+ ewarn ""
+}
+
+src_unpack(){
+ unpack ${A}
+ cd "${S}"
+ sed -i -e "s:(prefix)/lib:(prefix)/$(get_libdir):g" Makefile
+ sed -i -e "s:share/doc/duma:share/doc/${P}:g" Makefile
+}
+
+src_compile(){
+ replace-flags O? O0
+ append-flags -Wall -Wextra -U_FORTIFY_SOURCE
+ tc-export AR CC CXX LD RANLIB
+
+ use amd64 && export DUMA_ALIGNMENT=16
+
+ make CPPFLAGS="${DUMA_OPTIONS}" reconfig || die "make reconfig failed"
+ emake CFLAGS="${CFLAGS}" CC=$(tc-getCC) || die "make failed"
+}
+
+src_test() {
+ ewarn "Control-C now if you want to disable tests..."
+ epause 5
+
+ cd "${S}"
+ use amd64 && export DUMA_ALIGNMENT=16
+ make CFLAGS="${DUMA_OPTIONS} ${CFLAGS}" \
+ CC=$(tc-getCC) test || die "make test failed"
+
+ elog ""
+ ewarn "Check output above to verify all tests have passed. Both"
+ ewarn "static and dynamic confidence tests should say PASSED."
+ elog ""
+}
+
+src_install(){
+ # make install fails nicely here on the first file...
+ make DESTDIR="${D}" install || die "make install failed"
+ dodoc CHANGELOG TODO
+ # All the good comments on duma build options are in the Makefile
+ newdoc Makefile Makefile.duma
+
+ if use examples; then
+ insinto /usr/share/doc/${P}/examples
+ doins example[1-6].cpp
+ doins example_makes/ex6/Makefile
+ fi
+}
diff --git a/dev-util/duma/duma-2.5.15-r2.ebuild b/dev-util/duma/duma-2.5.15-r2.ebuild
new file mode 100644
index 000000000000..5f6cbd88a61c
--- /dev/null
+++ b/dev-util/duma/duma-2.5.15-r2.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit toolchain-funcs versionator
+
+MY_P=${PN}_$(replace_all_version_separators '_')
+
+DESCRIPTION="DUMA (Detect Unintended Memory Access) is a memory debugging library"
+HOMEPAGE="http://duma.sourceforge.net"
+SRC_URI="mirror://sourceforge/duma/${MY_P}.tar.gz
+ mirror://gentoo/${P}-GNUmakefile.patch.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="examples"
+
+S=${WORKDIR}/${MY_P}
+
+PATCHES=(
+ "${WORKDIR}"/${P}-GNUmakefile.patch
+ "${FILESDIR}"/${P}-gcc6.patch
+)
+
+src_configure() {
+ # other flags will break duma
+ export CFLAGS="-O0 -Wall -Wextra -U_FORTIFY_SOURCE"
+ tc-export AR CC CXX LD RANLIB
+
+ case "${CHOST}" in
+ *-linux-gnu)
+ OS=linux;;
+ *-solaris*)
+ OS=solaris;;
+ *-darwin*)
+ OS=osx;;
+ *-freebsd*)
+ OS=freebsd;;
+ *-netbsd*)
+ OS=netbsd;;
+ *-cygwin*)
+ OS=cygwin;;
+ **-irix**)
+ OS=irix;;
+ esac
+ export OS="${OS}"
+ elog "Detected OS is: ${OS}"
+
+ if use amd64 && ! [ -n "${DUMA_ALIGNMENT}" ]; then
+ export DUMA_ALIGNMENT=16
+ elog "Exported DUMA_ALIGNMENT=${DUMA_ALIGNMENT} for x86_64,"
+ fi
+
+}
+
+src_compile() {
+ # The below must be run first if distcc is enabled, otherwise
+ # the real build breaks on parallel makes.
+ emake reconfig
+ emake
+}
+
+src_test() {
+ emake test
+
+ elog "Please, see the output above to verify all tests have passed."
+ elog "Both static and dynamic confidence tests should say PASSED."
+}
+
+src_install(){
+ emake prefix="${D}/usr" libdir="${D}/usr/$(get_libdir)" \
+ docdir="${D}/usr/share/doc/${PF}" install
+
+ sed -i "s|LD_PRELOAD=./libduma|LD_PRELOAD=libduma|" "${D}"/usr/bin/duma \
+ || die "sed failed"
+
+ dodoc CHANGELOG TODO GNUmakefile
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}/examples
+ doins example[1-6].cpp example_makes/ex6/Makefile
+ fi
+}
+
+pkg_postinst() {
+ elog "See the GNUmakefile which will be also installed at"
+ elog "/usr/share/doc/${PF} for more options. You can now export"
+ elog "varibles to the build system easily, e.g.:"
+ elog "# export CPPFLAGS=\"-DFLAG\" (or by using append-cppflags)"
+ elog "# export DUMA_ALIGNMENT=${DUMA_ALIGNMENT} (Default is 16 for x86_64)"
+ elog "See more information about DUMA_ALIGNMENT from Readme.txt"
+}
diff --git a/dev-util/duma/files/duma-2.5.15-gcc6.patch b/dev-util/duma/files/duma-2.5.15-gcc6.patch
new file mode 100644
index 000000000000..7cffef2b4e2c
--- /dev/null
+++ b/dev-util/duma/files/duma-2.5.15-gcc6.patch
@@ -0,0 +1,22 @@
+--- duma_2_5_15/dumapp.cpp.old 2016-09-21 19:28:01.286332961 -0400
++++ duma_2_5_15/dumapp.cpp 2016-09-21 19:28:06.722907238 -0400
+@@ -190,7 +190,9 @@
+ * (11) = (a) ; ASW
+ */
+ void * DUMA_CDECL operator new( DUMA_SIZE_T size )
++#if __cplusplus < 201103L
+ throw(std::bad_alloc)
++#endif
+ {
+ return duma_new_operator(size, EFA_NEW_ELEM, true DUMA_PARAMS_UK);
+ }
+@@ -254,7 +256,9 @@
+ * (21) = (a) ; AAW
+ */
+ void * DUMA_CDECL operator new[]( DUMA_SIZE_T size )
++#if __cplusplus < 201103L
+ throw(std::bad_alloc)
++#endif
+ {
+ return duma_new_operator(size, EFA_NEW_ARRAY, true DUMA_PARAMS_UK);
+ }
diff --git a/dev-util/duma/metadata.xml b/dev-util/duma/metadata.xml
new file mode 100644
index 000000000000..8e3b12d940a2
--- /dev/null
+++ b/dev-util/duma/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>bircoph@gentoo.org</email>
+ <name>Andrew Savchenko</name>
+ </maintainer>
+ <longdescription>
+DUMA is an open-source library (under GNU General Public License) to
+detect buffer overruns and under-runs in C and C++ programs. This
+library is a fork of Buce Perens Electric Fence library and adds
+some new features to it.</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">duma</remote-id>
+ </upstream>
+</pkgmetadata>