diff options
Diffstat (limited to 'dev-libs/libmemcached')
-rw-r--r-- | dev-libs/libmemcached/Manifest | 6 | ||||
-rw-r--r-- | dev-libs/libmemcached/files/continuum-1.0.18.patch | 56 | ||||
-rw-r--r-- | dev-libs/libmemcached/files/debug-disable-enable-1.0.18.patch | 29 | ||||
-rw-r--r-- | dev-libs/libmemcached/files/libmemcached-1.0.18-gcc7.patch | 29 | ||||
-rw-r--r-- | dev-libs/libmemcached/libmemcached-1.0.18-r3.ebuild | 55 | ||||
-rw-r--r-- | dev-libs/libmemcached/metadata.xml | 23 |
6 files changed, 198 insertions, 0 deletions
diff --git a/dev-libs/libmemcached/Manifest b/dev-libs/libmemcached/Manifest new file mode 100644 index 000000000000..04bb4f50b1e7 --- /dev/null +++ b/dev-libs/libmemcached/Manifest @@ -0,0 +1,6 @@ +AUX continuum-1.0.18.patch 3086 BLAKE2B 4f5b004d0910be5a8f8bb9c568a2555c2b3f4ab71b52964622d66ef43a0ca2c7ee8e6e0e9128b7863a465bb887ac300a8cfc1f6efcdb740fdd88ed36cd465b75 SHA512 905c5f1dc22b665ef8910b6319b25e1d1e9dd80892c03c6c71de597599d8ce2972b35d92e6976ad8798d2f10927e3e884570246d5d8162e84dc3e1f963959012 +AUX debug-disable-enable-1.0.18.patch 1458 BLAKE2B ce806c34ab5525f8d493030ad870d9a7fb1b27d18159c6626d37c1540f0cb7aec6a9d45d17423dabebfde8fb68fdb6796cc88ff8fa109c9622958a2eef322ede SHA512 f4d731ce227e91324b88d155daaf35f2228a48e61d8e448c93f9d102c9939fa4c3b2a07b96741d442382cc5498358e9ae0471f766373654b21d849a96a42d813 +AUX libmemcached-1.0.18-gcc7.patch 846 BLAKE2B 6c82a0cec03e6992e975b30a6c2b00bf6630104b107ee1241fc9fc6be11054f3def0b2a3c9606762d193f7c729e3ef31865cdaab6b4294071a14bbb0a0aed212 SHA512 87667843bee44e1388f6088085a5d0c3a3a824f4830861024f5a19ab1747e96a74b8fae5870f848358a66258aeb18c9a6fa3a1d17bd03260b41f389e01e19c49 +DIST libmemcached-1.0.18.tar.gz 1039649 BLAKE2B e55acdc4c0cb2417f01b2980f7f71d9dfd685877361622422ee812f9e066ed2711549d457cf1b4a48a14c778e820b54abfe0c6274812c71fc7961e68167975e9 SHA512 2d95fea63b8b6dc7ded42c3a88a54aad74d5a1d417af1247144dae4a88c3b639a3aabc0c2b66661ff69a7609a314efaaae236e10971af9c428a4bca0a0101585 +EBUILD libmemcached-1.0.18-r3.ebuild 1610 BLAKE2B d2080c57255f7d6527f5799a97e729adba6cedfa7f91156b883b1af0a6a89febbafc941e9124acb67da777c1cb0c94e69574781f3b8ab4d4b0097947296b7c5d SHA512 33ba4f396c80db7eac9a15b5b866ed4db844eb94b02bad995a1d772990d6f3f8b4cc465f4bfbbfd409a43ea6fe04bb649b1c7a3ec95da343e0bbf17a861c1276 +MISC metadata.xml 826 BLAKE2B a77184515934e8eb06a2f7b42a4e4354c998192d617a1a4a3e0e6fdad88a189cdf809779106e3157f4b9f46675a6ae6961ef5280bdefaa1794b7c146b89fdeef SHA512 5bc0caef489fb8a9c6c038aa2a5620cd43d700104ab77407391eb0961f12392ac8535efd5fbe86c1e6be17cb89d766049fe1394461fa652bcdc1abd64afb9962 diff --git a/dev-libs/libmemcached/files/continuum-1.0.18.patch b/dev-libs/libmemcached/files/continuum-1.0.18.patch new file mode 100644 index 000000000000..296978044311 --- /dev/null +++ b/dev-libs/libmemcached/files/continuum-1.0.18.patch @@ -0,0 +1,56 @@ +diff --git libmemcached/memcached.cc libmemcached/memcached.cc +index 337f918..6e88c25 100644 +--- libmemcached/memcached.cc ++++ libmemcached/memcached.cc +@@ -285,6 +285,8 @@ void memcached_servers_reset(memcached_st *shell) + { + libmemcached_free(self, self->ketama.continuum); + self->ketama.continuum= NULL; ++ self->ketama.continuum_count= 0; ++ self->ketama.continuum_points_counter= 0; + + memcached_instance_list_free(memcached_instance_list(self), self->number_of_hosts); + memcached_instance_set(self, NULL, 0); +diff --git tests/libmemcached-1.0/all_tests.h tests/libmemcached-1.0/all_tests.h +index b4abe9d..f89f007 100644 +--- tests/libmemcached-1.0/all_tests.h ++++ tests/libmemcached-1.0/all_tests.h +@@ -452,6 +452,7 @@ collection_st collection[] ={ + {"hsieh_availability", 0, 0, hsieh_availability}, + {"murmur_availability", 0, 0, murmur_availability}, + {"memcached_server_add", (test_callback_fn*)memcached_servers_reset_SETUP, 0, memcached_server_add_TESTS}, ++ {"memcached_server_add(continuum)", (test_callback_fn*)memcached_servers_reset_CONTINUUM, 0, memcached_server_add_TESTS}, + {"memcached_server_add(MEMCACHED_DISTRIBUTION_CONSISTENT)", (test_callback_fn*)memcached_servers_reset_MEMCACHED_DISTRIBUTION_CONSISTENT_SETUP, 0, memcached_server_add_TESTS}, + {"memcached_server_add(MEMCACHED_DISTRIBUTION_CONSISTENT_WEIGHTED)", (test_callback_fn*)memcached_servers_reset_MEMCACHED_DISTRIBUTION_CONSISTENT_WEIGHTED_SETUP, 0, memcached_server_add_TESTS}, + {"block", 0, 0, tests}, +diff --git tests/libmemcached-1.0/setup_and_teardowns.cc tests/libmemcached-1.0/setup_and_teardowns.cc +index 4191c38..eb29128 100644 +--- tests/libmemcached-1.0/setup_and_teardowns.cc ++++ tests/libmemcached-1.0/setup_and_teardowns.cc +@@ -177,6 +177,16 @@ test_return_t memcached_servers_reset_SETUP(memcached_st *memc) + return TEST_SUCCESS; + } + ++test_return_t memcached_servers_reset_CONTINUUM(memcached_st *memc) ++{ ++ memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_DISTRIBUTION, MEMCACHED_DISTRIBUTION_CONSISTENT); ++ memcached_servers_reset(memc); ++ test_compare(0, memc->ketama.continuum_count); ++ // If memc->ketama.continuum_count is non-zero at this point, any call to ++ // memcached_server_add will cause a segfault. ++ return TEST_SUCCESS; ++} ++ + test_return_t memcached_servers_reset_MEMCACHED_DISTRIBUTION_CONSISTENT_SETUP(memcached_st *memc) + { + test_compare(TEST_SUCCESS, memcached_servers_reset_SETUP(memc)); +diff --git tests/libmemcached-1.0/setup_and_teardowns.h tests/libmemcached-1.0/setup_and_teardowns.h +index 7610c5a..59b56f6 100644 +--- tests/libmemcached-1.0/setup_and_teardowns.h ++++ tests/libmemcached-1.0/setup_and_teardowns.h +@@ -64,3 +64,4 @@ test_return_t pre_buffer(memcached_st*); + test_return_t memcached_servers_reset_MEMCACHED_DISTRIBUTION_CONSISTENT_SETUP(memcached_st *memc); + test_return_t memcached_servers_reset_MEMCACHED_DISTRIBUTION_CONSISTENT_WEIGHTED_SETUP(memcached_st *memc); + test_return_t memcached_servers_reset_SETUP(memcached_st *memc); ++test_return_t memcached_servers_reset_CONTINUUM(memcached_st *memc); + diff --git a/dev-libs/libmemcached/files/debug-disable-enable-1.0.18.patch b/dev-libs/libmemcached/files/debug-disable-enable-1.0.18.patch new file mode 100644 index 000000000000..ed87cbd7a1c1 --- /dev/null +++ b/dev-libs/libmemcached/files/debug-disable-enable-1.0.18.patch @@ -0,0 +1,29 @@ +Fixed a bug that caused configure to disobey the enable/disable debug flag. The debug flag will default to disabled if not specified. +diff -ru libmemcached-1.0.18-orig/m4/ax_debug.m4 libmemcached-1.0.18/m4/ax_debug.m4 +--- libmemcached-1.0.18-orig/m4/ax_debug.m4 2014-11-05 14:43:53.720284916 -0600 ++++ libmemcached-1.0.18/m4/ax_debug.m4 2014-11-19 14:23:19.512482198 -0600 +@@ -49,16 +49,18 @@ + [AC_PREREQ([2.63])dnl + AC_ARG_ENABLE([debug], + [AS_HELP_STRING([--enable-debug], +- [Add debug code/turns off optimizations (yes|no) @<:@default=no@:>@])], +- [ax_enable_debug=yes ++ [Add debug code/turns off optimizations (yes|no) @<:@default=no@:>@])]) ++ AS_IF([test "x$enable_debug" = "xyes"], [ ++ ax_enable_debug=yes + AC_DEFINE([DEBUG],[1],[Define to 1 to enable debugging code.]) + AX_CHECK_LIBRARY([MCHECK],[mcheck.h],[mcheck],[AX_APPEND_LINK_FLAGS([-lmcheck])]) + AX_ADD_AM_MACRO([--debug],[AM_YFLAGS]) +- AX_ADD_AM_MACRO([-D_GLIBCXX_DEBUG],[AM_CPPFLAGS])], +- [ax_enable_debug=no ++ AX_ADD_AM_MACRO([-D_GLIBCXX_DEBUG],[AM_CPPFLAGS]) ++ ], [ ++ ax_enable_debug=no + AC_SUBST([MCHECK]) +- AC_DEFINE([DEBUG],[0],[Define to 1 to enable debugging code.])]) +- ++ AC_DEFINE([DEBUG],[0],[Define to 1 to enable debugging code.]) ++ ]) + AC_MSG_CHECKING([for debug]) + AC_MSG_RESULT([$ax_enable_debug]) + AM_CONDITIONAL([DEBUG],[test "x${ax_enable_debug}" = "xyes"])]) diff --git a/dev-libs/libmemcached/files/libmemcached-1.0.18-gcc7.patch b/dev-libs/libmemcached/files/libmemcached-1.0.18-gcc7.patch new file mode 100644 index 000000000000..6bcb23136c4b --- /dev/null +++ b/dev-libs/libmemcached/files/libmemcached-1.0.18-gcc7.patch @@ -0,0 +1,29 @@ +gcc-7 fails the build as: + clients/memflush.cc: In function 'int main(int, char**)': + clients/memflush.cc:42:22: error: ISO C++ forbids comparison between pointer and integer [-fpermissive] + if (opt_servers == false) + ^~~~~ + +opt_servers is declated as 'static char *opt_servers= NULL;' +diff --git a/clients/memflush.cc b/clients/memflush.cc +index 8bd0dbf..7641b88 100644 +--- a/clients/memflush.cc ++++ b/clients/memflush.cc +@@ -39,7 +39,7 @@ int main(int argc, char *argv[]) + { + options_parse(argc, argv); + +- if (opt_servers == false) ++ if (!opt_servers) + { + char *temp; + +@@ -48,7 +48,7 @@ int main(int argc, char *argv[]) + opt_servers= strdup(temp); + } + +- if (opt_servers == false) ++ if (!opt_servers) + { + std::cerr << "No Servers provided" << std::endl; + exit(EXIT_FAILURE); diff --git a/dev-libs/libmemcached/libmemcached-1.0.18-r3.ebuild b/dev-libs/libmemcached/libmemcached-1.0.18-r3.ebuild new file mode 100644 index 000000000000..46765994581a --- /dev/null +++ b/dev-libs/libmemcached/libmemcached-1.0.18-r3.ebuild @@ -0,0 +1,55 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +WANT_AUTOMAKE=1.13 + +inherit autotools eutils multilib +RESTRICT="test" # https://bugs.gentoo.org/show_bug.cgi?id=498250 https://bugs.launchpad.net/gentoo/+bug/1278023 + +DESCRIPTION="a C client library to the memcached server" +HOMEPAGE="http://libmemcached.org/libMemcached.html" +SRC_URI="https://launchpad.net/${PN}/1.0/${PV}/+download/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 ~sh sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos" +IUSE="debug hsieh +libevent sasl static-libs" + +DEPEND="net-misc/memcached + sasl? ( dev-libs/cyrus-sasl ) + libevent? ( dev-libs/libevent )" +RDEPEND="${DEPEND}" + +src_prepare() { + epatch "${FILESDIR}/debug-disable-enable-1.0.18.patch" + epatch "${FILESDIR}/continuum-1.0.18.patch" + epatch "${FILESDIR}"/${P}-gcc7.patch + sed -i '6i CFLAGS = @CFLAGS@' Makefile.am + sed -e "/_APPEND_COMPILE_FLAGS_ERROR(\[-fmudflapth\?\])/d" -i m4/ax_harden_compiler_flags.m4 + eautoreconf +} + +src_configure() { + econf \ + --disable-dtrace \ + $(use_enable static-libs static) \ + $(use_enable sasl sasl) \ + $(use_enable debug debug) \ + $(use_enable debug assert) \ + $(use_enable hsieh hsieh_hash) \ + --libdir=/usr/$(get_libdir) \ + ${myconf} +} + +src_install() { + emake DESTDIR="${D}" install + + use static-libs || rm -f "${D}"/usr/$(get_libdir)/lib*.la + + dodoc AUTHORS ChangeLog README THANKS TODO + # remove manpage to avoid collision, see bug #299330 + rm -f "${D}"/usr/share/man/man1/memdump.* + newman man/memdump.1 memcached_memdump.1 +} diff --git a/dev-libs/libmemcached/metadata.xml b/dev-libs/libmemcached/metadata.xml new file mode 100644 index 000000000000..3bfda0a0415b --- /dev/null +++ b/dev-libs/libmemcached/metadata.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>robbat2@gentoo.org</email> + </maintainer> + <maintainer type="person"> + <email>prometheanfire@gentoo.org</email> + </maintainer> + <longdescription> + libmemcached is a C client library to the memcached server + (http://danga.com/memcached). It has been designed to be light on memory + usage, thread safe, and provide full access to server side methods. + </longdescription> + <use> + <flag name="hsieh">Use Hsieh hash algorithm.</flag> + <flag name="libevent">Use the libevent event loop interface.</flag> + <flag name="sasl">Use sasl auth for communications.</flag> + </use> + <upstream> + <remote-id type="launchpad">libmemcached</remote-id> + </upstream> +</pkgmetadata> |