summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2009-07-28 01:07:34 +0000
committerRobin H. Johnson <robbat2@gentoo.org>2009-07-28 01:07:34 +0000
commitebba89cf08db51617736ac3d9100b9700a301606 (patch)
tree79847887b93e5bbff3ad4614504c9db47129a9e0 /net-misc/memcached
parentVersion bump (diff)
downloadgentoo-2-ebba89cf08db51617736ac3d9100b9700a301606.tar.gz
gentoo-2-ebba89cf08db51617736ac3d9100b9700a301606.tar.bz2
gentoo-2-ebba89cf08db51617736ac3d9100b9700a301606.zip
Bug #278780: Any user that passes -DNDEBUG on their own is asking for trouble with the testapp and -debug versions. Ensure that the object files are seperated, and ignore the user for two of the binaries.
(Portage version: 2.2_rc33/cvs/Linux x86_64)
Diffstat (limited to 'net-misc/memcached')
-rw-r--r--net-misc/memcached/ChangeLog11
-rw-r--r--net-misc/memcached/files/memcached-1.4.0-fix-as-needed-linking.patch47
-rw-r--r--net-misc/memcached/memcached-1.4.0-r1.ebuild68
3 files changed, 125 insertions, 1 deletions
diff --git a/net-misc/memcached/ChangeLog b/net-misc/memcached/ChangeLog
index 6c048dec6369..c631b01d2333 100644
--- a/net-misc/memcached/ChangeLog
+++ b/net-misc/memcached/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for net-misc/memcached
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/memcached/ChangeLog,v 1.94 2009/07/26 12:40:22 ranger Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-misc/memcached/ChangeLog,v 1.95 2009/07/28 01:07:27 robbat2 Exp $
+
+*memcached-1.4.0-r1 (28 Jul 2009)
+
+ 28 Jul 2009; Robin H. Johnson <robbat2@gentoo.org>
+ +memcached-1.4.0-r1.ebuild,
+ +files/memcached-1.4.0-fix-as-needed-linking.patch:
+ Bug #278780: Any user that passes -DNDEBUG on their own is asking for
+ trouble with the testapp and -debug versions. Ensure that the object files
+ are seperated, and ignore the user for two of the binaries.
26 Jul 2009; Brent Baude <ranger@gentoo.org> memcached-1.2.8.ebuild:
Marking memcached-1.2.8 ppc64 for bug 268158
diff --git a/net-misc/memcached/files/memcached-1.4.0-fix-as-needed-linking.patch b/net-misc/memcached/files/memcached-1.4.0-fix-as-needed-linking.patch
new file mode 100644
index 000000000000..d8a8ff295fc3
--- /dev/null
+++ b/net-misc/memcached/files/memcached-1.4.0-fix-as-needed-linking.patch
@@ -0,0 +1,47 @@
+Users that try to second-guess us and specify -DNDEBUG are just asking to cause
+problems. They cause breakage with the testapp and -debug versions.
+
+So let's ensure that testapp and -debug use per-object compile flags, and thus
+preventing flags leaking between stuff. The #undef at the top of testapp.c is
+redundant now, but not removed.
+
+Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
+X-Gentoo-Bug: 278780
+X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=278780
+
+diff -Nuar memcached-1.4.0/testapp.c memcached-1.4.0/testapp.c
+--- memcached-1.4.0/testapp.c 2009-07-09 09:43:42.000000000 -0700
++++ memcached-1.4.0/testapp.c 2009-07-27 16:41:14.468907751 -0700
+@@ -115,12 +115,16 @@
+ char old = *(p - 1);
+ *(p - 1) = 0;
+ cache_free(cache, p);
++#ifndef NDEBUG
+ assert(cache_error == -1);
++#endif
+ *(p - 1) = old;
+
+ p[sizeof(uint32_t)] = 0;
+ cache_free(cache, p);
++#ifndef NDEBUG
+ assert(cache_error == 1);
++#endif
+
+ /* restore signal handler */
+ sigaction(SIGABRT, &old_action, NULL);
+diff -Nuar memcached-1.4.0.orig/Makefile.am memcached-1.4.0/Makefile.am
+--- memcached-1.4.0.orig/Makefile.am 2009-07-09 09:43:42.000000000 -0700
++++ memcached-1.4.0/Makefile.am 2009-07-27 17:45:20.973106097 -0700
+@@ -27,8 +27,12 @@
+
+ memcached_debug_SOURCES = $(memcached_SOURCES)
+ memcached_CPPFLAGS = -DNDEBUG
++
+ memcached_debug_LDADD = @PROFILER_LDFLAGS@
+ memcached_debug_CFLAGS = @PROFILER_FLAGS@
++memcached_debug_CPPFLAGS = -UNDEBUG
++
++testapp_CPPFLAGS = -UNDEBUG
+
+ memcached_LDADD =
+ memcached_DEPENDENCIES =
diff --git a/net-misc/memcached/memcached-1.4.0-r1.ebuild b/net-misc/memcached/memcached-1.4.0-r1.ebuild
new file mode 100644
index 000000000000..d91ba126d3b8
--- /dev/null
+++ b/net-misc/memcached/memcached-1.4.0-r1.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/memcached/memcached-1.4.0-r1.ebuild,v 1.1 2009/07/28 01:07:27 robbat2 Exp $
+
+EAPI=2
+inherit eutils autotools flag-o-matic
+
+MY_PV="${PV/_rc/-rc}"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="High-performance, distributed memory object caching system"
+HOMEPAGE="http://code.google.com/p/memcached/"
+SRC_URI="http://memcached.googlecode.com/files/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd"
+IUSE="test slabs-reassign debug"
+
+RDEPEND=">=dev-libs/libevent-1.4
+ dev-lang/perl"
+DEPEND="${RDEPEND}
+ test? ( virtual/perl-Test-Harness >=dev-perl/Cache-Memcached-1.24 )"
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+ epatch "${FILESDIR}/${PN}-1.2.2-fbsd.patch"
+ epatch "${FILESDIR}/${PN}-1.3.3-gcc4-slab-fixup.patch"
+ epatch "${FILESDIR}/${PN}-1.4.0-fix-as-needed-linking.patch"
+ sed -i -e 's,-Werror,,g' configure.ac || die "sed failed"
+ eautoreconf
+ use slabs-reassign && append-flags -DALLOW_SLABS_REASSIGN
+}
+
+src_compile() {
+ # There is a heavy degree of per-object compile flags
+ # Users do NOT know better than upstream. Trying to compile the testapp and
+ # the -debug version with -DNDEBUG _WILL_ fail.
+ append-flags -UNDEBUG
+ emake testapp memcached-debug CFLAGS="${CFLAGS}" || die "emake of testapp and memcached-debug failed."
+ filter-flags -UNDEBUG
+ emake || die "emake failed."
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "emake install failed."
+ dobin scripts/memcached-tool
+ use debug && dobin memcached-debug
+
+ dodoc AUTHORS ChangeLog NEWS README TODO doc/{CONTRIBUTORS,*.txt}
+
+ newconfd "${FILESDIR}"/1.3.3/conf memcached
+ newinitd "${FILESDIR}"/1.3.3/init memcached
+}
+
+pkg_postinst() {
+ enewuser memcached -1 -1 /dev/null daemon
+
+ elog "With this version of Memcached Gentoo now supports multiple instances."
+ elog "To enable this you should create a symlink in /etc/init.d/ for each instance"
+ elog "to /etc/init.d/memcached and create the matching conf files in /etc/conf.d/"
+ elog "Please see Gentoo bug #122246 for more info"
+}
+
+src_test() {
+ emake -j1 test || die "Failed testing"
+}