# HG changeset patch # User Michael Schloh von Bennewitz # Date 1346171745 -7200 # Node ID b3a1e74cc78b1ac528f7bea11766b8d82744696d # Parent 6e491d7671a47143f44a5201cd0bc14edae91dc8 Update version, modernize packaging, correct considereable portability flaws, correct typical german english grammar errors, and worst of all correct detection of builtin GCC atomic primitives sync_sub_and_fetch by forcing the detecting function to return the return value which seems to cause GCC to fail for unknown reasons. diff -r 6e491d7671a4 -r b3a1e74cc78b memcached/memcached.patch --- a/memcached/memcached.patch Tue Aug 28 18:35:40 2012 +0200 +++ b/memcached/memcached.patch Tue Aug 28 18:35:45 2012 +0200 @@ -1,62 +1,27 @@ -Index: libmemcached-0.48/Makefile.in ---- libmemcached-0.48/Makefile.in.orig 2011-03-16 04:40:31.000000000 +0100 -+++ libmemcached-0.48/Makefile.in 2011-03-18 18:43:52.000000000 +0100 -@@ -95,10 +95,7 @@ - clients/memerror$(EXEEXT) clients/memflush$(EXEEXT) \ - clients/memrm$(EXEEXT) clients/memstat$(EXEEXT) \ - $(am__EXEEXT_1) --noinst_PROGRAMS = tests/atomsmasher$(EXEEXT) tests/hashplus$(EXEEXT) \ -- tests/memplus$(EXEEXT) tests/startservers$(EXEEXT) \ -- tests/testapp$(EXEEXT) tests/testhashkit$(EXEEXT) \ -- tests/testplus$(EXEEXT) tests/testudp$(EXEEXT) $(am__EXEEXT_3) -+noinst_PROGRAMS = - check_PROGRAMS = $(am__EXEEXT_2) - @BUILD_DOCS_TRUE@am__append_1 = test-docs - DIST_COMMON = README $(am__configure_deps) \ -@@ -138,7 +135,7 @@ - @DTRACE_NEEDS_OBJECTS_TRUE@am__append_13 = libmemcached/libmemcached_probes.o - @DTRACE_NEEDS_OBJECTS_TRUE@am__append_14 = libmemcached/libmemcached_probes.o - @HAVE_SASL_TRUE@am__append_15 = $(LIBSASL) --@BUILD_WIN32_WRAPPERS_FALSE@@HAVE_LIBEVENT_TRUE@am__append_16 = clients/memslap -+@BUILD_WIN32_WRAPPERS_FALSE@@HAVE_LIBEVENT_TRUE@am__append_16 = - @BUILD_BYTEORDER_TRUE@am__append_17 = libmemcached/libbyteorder.la - @INCLUDE_HSIEH_SRC_TRUE@am__append_18 = libhashkit/hsieh.c - @INCLUDE_MURMUR_SRC_TRUE@am__append_19 = libhashkit/murmur.c -@@ -409,7 +406,7 @@ - libtest_libtest_la_LIBADD = - am_libtest_libtest_la_OBJECTS = libtest/test.lo - libtest_libtest_la_OBJECTS = $(am_libtest_libtest_la_OBJECTS) --@BUILD_WIN32_WRAPPERS_FALSE@@HAVE_LIBEVENT_TRUE@am__EXEEXT_1 = clients/memslap$(EXEEXT) -+@BUILD_WIN32_WRAPPERS_FALSE@@HAVE_LIBEVENT_TRUE@am__EXEEXT_1 = - @HAVE_LIBGTEST_TRUE@am__EXEEXT_2 = unittests/unittests$(EXEEXT) - @HAVE_LIBEVENT_TRUE@am__EXEEXT_3 = example/memcached_light$(EXEEXT) - PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) -Index: libmemcached-0.48/configure ---- libmemcached-0.48/configure.orig 2011-03-16 04:40:33.000000000 +0100 -+++ libmemcached-0.48/configure 2011-03-18 18:43:13.000000000 +0100 -@@ -17719,8 +17719,8 @@ - - fi - -- CC_WARNINGS="${BASE_WARNINGS} -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align ${CC_WARNINGS_FULL}" -- CXX_WARNINGS="${BASE_WARNINGS} -Woverloaded-virtual -Wnon-virtual-dtor -Wctor-dtor-privacy -Wno-long-long ${CXX_WARNINGS_FULL}" -+ CC_WARNINGS="${BASE_WARNINGS} ${CC_WARNINGS_FULL}" -+ CXX_WARNINGS="${BASE_WARNINGS} -Wnon-virtual-dtor -Wno-long-long ${CXX_WARNINGS_FULL}" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to use -Wmissing-declarations from C++" >&5 - $as_echo_n "checking whether it is safe to use -Wmissing-declarations from C++... " >&6; } -Index: libmemcached-0.48/support/libmemcached.pc.in ---- libmemcached-0.48/support/libmemcached.pc.in.orig 2011-02-22 05:06:22.000000000 +0100 -+++ libmemcached-0.48/support/libmemcached.pc.in 2011-03-18 18:43:13.000000000 +0100 -@@ -8,3 +8,4 @@ +Index: libmemcached-1.0.10/Makefile.in +--- libmemcached-1.0.10/Makefile.in.orig 2012-07-31 07:05:24.000000000 +0200 ++++ libmemcached-1.0.10/Makefile.in 2012-08-01 18:22:44.000000000 +0200 +@@ -868,7 +868,7 @@ + @BUILD_MEMASLAP_TRUE@@BUILD_WIN32_WRAPPERS_FALSE@@HAVE_LIBEVENT_TRUE@am__EXEEXT_1 = clients/memaslap$(EXEEXT) + @HAVE_LIBEVENT_TRUE@am__EXEEXT_2 = example/memcached_light$(EXEEXT) + @HAVE_LIBEVENT_TRUE@am__EXEEXT_3 = memcached/memcached$(EXEEXT) +-PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) ++PROGRAMS = $(bin_PROGRAMS) + am_clients_memaslap_OBJECTS = clients/memaslap.$(OBJEXT) \ + clients/ms_conn.$(OBJEXT) clients/ms_setting.$(OBJEXT) \ + clients/ms_sigsegv.$(OBJEXT) clients/ms_stats.$(OBJEXT) \ +Index: libmemcached-1.0.10/support/libmemcached.pc.in +--- libmemcached-1.0.10/support/libmemcached.pc.in.orig 2012-07-31 07:04:00.000000000 +0200 ++++ libmemcached-1.0.10/support/libmemcached.pc.in 2012-08-01 17:56:52.000000000 +0200 +@@ -9,3 +9,4 @@ Version: @VERSION@ - Libs: @LTLIBSASL@ @LTLIBSASL2@ -L${libdir} -lmemcached + Libs: -L${libdir} -lmemcached -lmemcachedutil Cflags: -I${includedir} +Requires: libevent sasl -Index: memcached-1.4.6/configure ---- memcached-1.4.6/configure.orig 2010-04-03 23:26:12.000000000 +0200 -+++ memcached-1.4.6/configure 2011-03-18 18:43:13.000000000 +0100 -@@ -7914,7 +7914,6 @@ +Index: memcached-1.4.14/configure +--- memcached-1.4.14/configure.orig 2012-07-30 22:56:58.000000000 +0200 ++++ memcached-1.4.14/configure 2012-08-01 17:56:52.000000000 +0200 +@@ -6261,7 +6261,6 @@ elif test "$GCC" = "yes" then GCC_VERSION=`$CC -dumpversion` @@ -64,10 +29,22 @@ case $GCC_VERSION in 4.4.*) CFLAGS="$CFLAGS -fno-strict-aliasing" -Index: memcached-1.4.6/thread.c ---- memcached-1.4.6/thread.c.orig 2010-04-03 09:07:16.000000000 +0200 -+++ memcached-1.4.6/thread.c 2011-03-18 18:43:13.000000000 +0100 -@@ -602,6 +602,7 @@ +Index: memcached-1.4.14/sasl_defs.c +--- memcached-1.4.14/sasl_defs.c.orig 2012-02-02 07:01:29.000000000 +0100 ++++ memcached-1.4.14/sasl_defs.c 2012-08-01 17:56:52.000000000 +0200 +@@ -148,7 +148,7 @@ + { SASL_CB_SERVER_USERDB_CHECKPASS, sasl_server_userdb_checkpass, NULL }, + #endif + +- { SASL_CB_LOG, (sasl_callback_ft)sasl_log, NULL }, ++ { SASL_CB_LOG, sasl_log, NULL }, + + #ifdef HAVE_SASL_CB_GETCONF + { SASL_CB_GETCONF, sasl_getconf, NULL }, +Index: memcached-1.4.14/thread.c +--- memcached-1.4.14/thread.c.orig 2012-07-30 22:28:21.000000000 +0200 ++++ memcached-1.4.14/thread.c 2012-08-01 17:56:52.000000000 +0200 +@@ -703,6 +703,7 @@ perror("Can't allocate thread descriptors"); exit(1); } @@ -75,14 +52,3 @@ dispatcher_thread.base = main_base; dispatcher_thread.thread_id = pthread_self(); -Index: libmemcache-1.4.0.rc2/src/buffer.c ---- libmemcache-1.4.0.rc2/src/buffer.c.orig 2009-11-25 18:36:18.468286813 +0100 -+++ libmemcache-1.4.0.rc2/src/buffer.c 2009-11-25 18:36:20.700402681 +0100 -@@ -36,6 +36,7 @@ - #include - #include - #include -+#include - - #include "memcache/buffer.h" - diff -r 6e491d7671a4 -r b3a1e74cc78b memcached/memcached.spec --- a/memcached/memcached.spec Tue Aug 28 18:35:40 2012 +0200 +++ b/memcached/memcached.spec Tue Aug 28 18:35:45 2012 +0200 @@ -22,8 +22,8 @@ ## # package versions -%define V_memcached 1.4.6 -%define V_libmemcached 0.48 +%define V_memcached 1.4.14 +%define V_libmemcached 1.0.10 %define V_cache_memcached 1.28 # package information @@ -37,7 +37,7 @@ Group: System License: GPL Version: %{V_memcached} -Release: 20110914 +Release: 20120800 # list of sources Source0: http://memcached.googlecode.com/files/memcached-%{V_memcached}.tar.gz @@ -47,17 +47,13 @@ Patch0: memcached.patch # build information -Prefix: %{l_prefix} -BuildRoot: %{l_buildroot} -BuildPreReq: OpenPKG, openpkg >= 20060823, gcc, make, perl, perl-openpkg -PreReq: OpenPKG, openpkg >= 20060823 -BuildPreReq: libevent, sasl -PreReq: libevent, sasl -AutoReq: no -AutoReqProv: no +BuildPreReq: OpenPKG, openpkg >= 20100101, gcc, make, perl, perl-openpkg +PreReq: OpenPKG, openpkg >= 20100101 +BuildPreReq: libevent, sasl, libexecinfo +PreReq: libevent, sasl, libexecinfo %description - Memcached is a high-performance, distributed memory object caching + Memcached is a high performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load. Additionally, this package contains Perl and C client APIs to memcached. @@ -85,6 +81,9 @@ %setup -q -T -D -a 2 %patch -p0 %{l_shtool} subst \ + -e 's/b = \(__sync_sub_and_fetch(\&a, 2);\)/return \1/' \ + memcached-%{V_memcached}/configure + %{l_shtool} subst \ -e 's; *-Werror;;g' \ memcached-%{V_memcached}/configure %{l_shtool} subst \ @@ -114,11 +113,19 @@ # build C client API ( cd libmemcached-%{V_libmemcached} + ( echo "ac_cv_func_malloc_0_nonnull=yes" + echo "ac_cv_func_realloc_0_nonnull=yes" + echo "ac_cv_env_CXXFLAGS_set=barf" + echo "ac_cv_env_CFLAGS_set=barf" + echo "ac_cv_header_priv_h=no" + echo "ac_cv_header_umem_h=no" + ) >config.cache CC="%{l_cc}" \ CFLAGS="%{l_cflags -O}" \ CPPFLAGS="%{l_cppflags}" \ LDFLAGS="%{l_ldflags}" \ ./configure \ + --cache-file=./config.cache \ --prefix=%{l_prefix} \ --mandir=%{l_prefix}/man \ --without-memcached \ @@ -136,9 +143,6 @@ %{l_prefix}/bin/perl-openpkg -d Cache-Memcached-%{V_cache_memcached} configure build %install - # remove build cruft - rm -rf $RPM_BUILD_ROOT - # install daemon ( cd memcached-%{V_memcached} %{l_shtool} mkdir -f -p -m 775 \ @@ -152,20 +156,30 @@ # install C client API ( cd libmemcached-%{V_libmemcached} - %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT" + %{l_make} %{l_mflags} install DESTDIR="$RPM_BUILD_ROOT" + ) || exit $? + + # correct header names and references + ( cd $RPM_BUILD_ROOT%{l_prefix}/include + mv libmemcachedutil-[0-9]* libmemcachedutil + mv libmemcachedprotocol-[0-9]* libmemcachedprotocol + rm -rf libhashkit && mv libhashkit-[0-9]* libhashkit + rm -rf libmemcached && mv libmemcached-[0-9]* libmemcached + find . -type f -print | xargs %{l_shtool} subst \ + -e 's;\(#include