diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2009-07-28 01:07:34 +0000 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2009-07-28 01:07:34 +0000 |
commit | ebba89cf08db51617736ac3d9100b9700a301606 (patch) | |
tree | 79847887b93e5bbff3ad4614504c9db47129a9e0 /net-misc/memcached | |
parent | Version bump (diff) | |
download | gentoo-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/ChangeLog | 11 | ||||
-rw-r--r-- | net-misc/memcached/files/memcached-1.4.0-fix-as-needed-linking.patch | 47 | ||||
-rw-r--r-- | net-misc/memcached/memcached-1.4.0-r1.ebuild | 68 |
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" +} |