Update version, modernize packaging, correct considereable portability

Tue, 28 Aug 2012 18:35:45 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 28 Aug 2012 18:35:45 +0200
changeset 576
b3a1e74cc78b
parent 575
6e491d7671a4
child 577
e3c6a8f912f4

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.

memcached/memcached.patch file | annotate | diff | comparison | revisions
memcached/memcached.spec file | annotate | diff | comparison | revisions
     1.1 --- a/memcached/memcached.patch	Tue Aug 28 18:35:40 2012 +0200
     1.2 +++ b/memcached/memcached.patch	Tue Aug 28 18:35:45 2012 +0200
     1.3 @@ -1,62 +1,27 @@
     1.4 -Index: libmemcached-0.48/Makefile.in
     1.5 ---- libmemcached-0.48/Makefile.in.orig	2011-03-16 04:40:31.000000000 +0100
     1.6 -+++ libmemcached-0.48/Makefile.in	2011-03-18 18:43:52.000000000 +0100
     1.7 -@@ -95,10 +95,7 @@
     1.8 - 	clients/memerror$(EXEEXT) clients/memflush$(EXEEXT) \
     1.9 - 	clients/memrm$(EXEEXT) clients/memstat$(EXEEXT) \
    1.10 - 	$(am__EXEEXT_1)
    1.11 --noinst_PROGRAMS = tests/atomsmasher$(EXEEXT) tests/hashplus$(EXEEXT) \
    1.12 --	tests/memplus$(EXEEXT) tests/startservers$(EXEEXT) \
    1.13 --	tests/testapp$(EXEEXT) tests/testhashkit$(EXEEXT) \
    1.14 --	tests/testplus$(EXEEXT) tests/testudp$(EXEEXT) $(am__EXEEXT_3)
    1.15 -+noinst_PROGRAMS = 
    1.16 - check_PROGRAMS = $(am__EXEEXT_2)
    1.17 - @BUILD_DOCS_TRUE@am__append_1 = test-docs
    1.18 - DIST_COMMON = README $(am__configure_deps) \
    1.19 -@@ -138,7 +135,7 @@
    1.20 - @DTRACE_NEEDS_OBJECTS_TRUE@am__append_13 = libmemcached/libmemcached_probes.o
    1.21 - @DTRACE_NEEDS_OBJECTS_TRUE@am__append_14 = libmemcached/libmemcached_probes.o
    1.22 - @HAVE_SASL_TRUE@am__append_15 = $(LIBSASL)
    1.23 --@BUILD_WIN32_WRAPPERS_FALSE@@HAVE_LIBEVENT_TRUE@am__append_16 = clients/memslap
    1.24 -+@BUILD_WIN32_WRAPPERS_FALSE@@HAVE_LIBEVENT_TRUE@am__append_16 =
    1.25 - @BUILD_BYTEORDER_TRUE@am__append_17 = libmemcached/libbyteorder.la
    1.26 - @INCLUDE_HSIEH_SRC_TRUE@am__append_18 = libhashkit/hsieh.c
    1.27 - @INCLUDE_MURMUR_SRC_TRUE@am__append_19 = libhashkit/murmur.c
    1.28 -@@ -409,7 +406,7 @@
    1.29 - libtest_libtest_la_LIBADD =
    1.30 - am_libtest_libtest_la_OBJECTS = libtest/test.lo
    1.31 - libtest_libtest_la_OBJECTS = $(am_libtest_libtest_la_OBJECTS)
    1.32 --@BUILD_WIN32_WRAPPERS_FALSE@@HAVE_LIBEVENT_TRUE@am__EXEEXT_1 = clients/memslap$(EXEEXT)
    1.33 -+@BUILD_WIN32_WRAPPERS_FALSE@@HAVE_LIBEVENT_TRUE@am__EXEEXT_1 =
    1.34 - @HAVE_LIBGTEST_TRUE@am__EXEEXT_2 = unittests/unittests$(EXEEXT)
    1.35 - @HAVE_LIBEVENT_TRUE@am__EXEEXT_3 = example/memcached_light$(EXEEXT)
    1.36 - PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
    1.37 -Index: libmemcached-0.48/configure
    1.38 ---- libmemcached-0.48/configure.orig	2011-03-16 04:40:33.000000000 +0100
    1.39 -+++ libmemcached-0.48/configure	2011-03-18 18:43:13.000000000 +0100
    1.40 -@@ -17719,8 +17719,8 @@
    1.41 - 
    1.42 - fi
    1.43 - 
    1.44 --      CC_WARNINGS="${BASE_WARNINGS} -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align ${CC_WARNINGS_FULL}"
    1.45 --      CXX_WARNINGS="${BASE_WARNINGS} -Woverloaded-virtual -Wnon-virtual-dtor -Wctor-dtor-privacy -Wno-long-long ${CXX_WARNINGS_FULL}"
    1.46 -+      CC_WARNINGS="${BASE_WARNINGS} ${CC_WARNINGS_FULL}"
    1.47 -+      CXX_WARNINGS="${BASE_WARNINGS} -Wnon-virtual-dtor -Wno-long-long ${CXX_WARNINGS_FULL}"
    1.48 - 
    1.49 -       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to use -Wmissing-declarations from C++" >&5
    1.50 - $as_echo_n "checking whether it is safe to use -Wmissing-declarations from C++... " >&6; }
    1.51 -Index: libmemcached-0.48/support/libmemcached.pc.in
    1.52 ---- libmemcached-0.48/support/libmemcached.pc.in.orig	2011-02-22 05:06:22.000000000 +0100
    1.53 -+++ libmemcached-0.48/support/libmemcached.pc.in	2011-03-18 18:43:13.000000000 +0100
    1.54 -@@ -8,3 +8,4 @@
    1.55 +Index: libmemcached-1.0.10/Makefile.in
    1.56 +--- libmemcached-1.0.10/Makefile.in.orig	2012-07-31 07:05:24.000000000 +0200
    1.57 ++++ libmemcached-1.0.10/Makefile.in	2012-08-01 18:22:44.000000000 +0200
    1.58 +@@ -868,7 +868,7 @@
    1.59 + @BUILD_MEMASLAP_TRUE@@BUILD_WIN32_WRAPPERS_FALSE@@HAVE_LIBEVENT_TRUE@am__EXEEXT_1 = clients/memaslap$(EXEEXT)
    1.60 + @HAVE_LIBEVENT_TRUE@am__EXEEXT_2 = example/memcached_light$(EXEEXT)
    1.61 + @HAVE_LIBEVENT_TRUE@am__EXEEXT_3 = memcached/memcached$(EXEEXT)
    1.62 +-PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
    1.63 ++PROGRAMS = $(bin_PROGRAMS)
    1.64 + am_clients_memaslap_OBJECTS = clients/memaslap.$(OBJEXT) \
    1.65 + 	clients/ms_conn.$(OBJEXT) clients/ms_setting.$(OBJEXT) \
    1.66 + 	clients/ms_sigsegv.$(OBJEXT) clients/ms_stats.$(OBJEXT) \
    1.67 +Index: libmemcached-1.0.10/support/libmemcached.pc.in
    1.68 +--- libmemcached-1.0.10/support/libmemcached.pc.in.orig	2012-07-31 07:04:00.000000000 +0200
    1.69 ++++ libmemcached-1.0.10/support/libmemcached.pc.in	2012-08-01 17:56:52.000000000 +0200
    1.70 +@@ -9,3 +9,4 @@
    1.71   Version: @VERSION@
    1.72 - Libs: @LTLIBSASL@ @LTLIBSASL2@ -L${libdir} -lmemcached
    1.73 + Libs: -L${libdir} -lmemcached -lmemcachedutil
    1.74   Cflags: -I${includedir}
    1.75  +Requires: libevent sasl
    1.76 -Index: memcached-1.4.6/configure
    1.77 ---- memcached-1.4.6/configure.orig	2010-04-03 23:26:12.000000000 +0200
    1.78 -+++ memcached-1.4.6/configure	2011-03-18 18:43:13.000000000 +0100
    1.79 -@@ -7914,7 +7914,6 @@
    1.80 +Index: memcached-1.4.14/configure
    1.81 +--- memcached-1.4.14/configure.orig	2012-07-30 22:56:58.000000000 +0200
    1.82 ++++ memcached-1.4.14/configure	2012-08-01 17:56:52.000000000 +0200
    1.83 +@@ -6261,7 +6261,6 @@
    1.84   elif test "$GCC" = "yes"
    1.85   then
    1.86     GCC_VERSION=`$CC -dumpversion`
    1.87 @@ -64,10 +29,22 @@
    1.88     case $GCC_VERSION in
    1.89       4.4.*)
    1.90       CFLAGS="$CFLAGS -fno-strict-aliasing"
    1.91 -Index: memcached-1.4.6/thread.c
    1.92 ---- memcached-1.4.6/thread.c.orig	2010-04-03 09:07:16.000000000 +0200
    1.93 -+++ memcached-1.4.6/thread.c	2011-03-18 18:43:13.000000000 +0100
    1.94 -@@ -602,6 +602,7 @@
    1.95 +Index: memcached-1.4.14/sasl_defs.c
    1.96 +--- memcached-1.4.14/sasl_defs.c.orig	2012-02-02 07:01:29.000000000 +0100
    1.97 ++++ memcached-1.4.14/sasl_defs.c	2012-08-01 17:56:52.000000000 +0200
    1.98 +@@ -148,7 +148,7 @@
    1.99 +    { SASL_CB_SERVER_USERDB_CHECKPASS, sasl_server_userdb_checkpass, NULL },
   1.100 + #endif
   1.101 + 
   1.102 +-   { SASL_CB_LOG, (sasl_callback_ft)sasl_log, NULL },
   1.103 ++   { SASL_CB_LOG, sasl_log, NULL },
   1.104 + 
   1.105 + #ifdef HAVE_SASL_CB_GETCONF
   1.106 +    { SASL_CB_GETCONF, sasl_getconf, NULL },
   1.107 +Index: memcached-1.4.14/thread.c
   1.108 +--- memcached-1.4.14/thread.c.orig	2012-07-30 22:28:21.000000000 +0200
   1.109 ++++ memcached-1.4.14/thread.c	2012-08-01 17:56:52.000000000 +0200
   1.110 +@@ -703,6 +703,7 @@
   1.111           perror("Can't allocate thread descriptors");
   1.112           exit(1);
   1.113       }
   1.114 @@ -75,14 +52,3 @@
   1.115   
   1.116       dispatcher_thread.base = main_base;
   1.117       dispatcher_thread.thread_id = pthread_self();
   1.118 -Index: libmemcache-1.4.0.rc2/src/buffer.c
   1.119 ---- libmemcache-1.4.0.rc2/src/buffer.c.orig	2009-11-25 18:36:18.468286813 +0100
   1.120 -+++ libmemcache-1.4.0.rc2/src/buffer.c	2009-11-25 18:36:20.700402681 +0100
   1.121 -@@ -36,6 +36,7 @@
   1.122 - #include <sys/uio.h>
   1.123 - #include <unistd.h>
   1.124 - #include <sys/errno.h>
   1.125 -+#include <errno.h>
   1.126 - 
   1.127 - #include "memcache/buffer.h"
   1.128 - 
     2.1 --- a/memcached/memcached.spec	Tue Aug 28 18:35:40 2012 +0200
     2.2 +++ b/memcached/memcached.spec	Tue Aug 28 18:35:45 2012 +0200
     2.3 @@ -22,8 +22,8 @@
     2.4  ##
     2.5  
     2.6  #   package versions
     2.7 -%define       V_memcached       1.4.6
     2.8 -%define       V_libmemcached    0.48
     2.9 +%define       V_memcached       1.4.14
    2.10 +%define       V_libmemcached    1.0.10
    2.11  %define       V_cache_memcached 1.28
    2.12  
    2.13  #   package information
    2.14 @@ -37,7 +37,7 @@
    2.15  Group:        System
    2.16  License:      GPL
    2.17  Version:      %{V_memcached}
    2.18 -Release:      20110914
    2.19 +Release:      20120800
    2.20  
    2.21  #   list of sources
    2.22  Source0:      http://memcached.googlecode.com/files/memcached-%{V_memcached}.tar.gz
    2.23 @@ -47,17 +47,13 @@
    2.24  Patch0:       memcached.patch
    2.25  
    2.26  #   build information
    2.27 -Prefix:       %{l_prefix}
    2.28 -BuildRoot:    %{l_buildroot}
    2.29 -BuildPreReq:  OpenPKG, openpkg >= 20060823, gcc, make, perl, perl-openpkg
    2.30 -PreReq:       OpenPKG, openpkg >= 20060823
    2.31 -BuildPreReq:  libevent, sasl
    2.32 -PreReq:       libevent, sasl
    2.33 -AutoReq:      no
    2.34 -AutoReqProv:  no
    2.35 +BuildPreReq:  OpenPKG, openpkg >= 20100101, gcc, make, perl, perl-openpkg
    2.36 +PreReq:       OpenPKG, openpkg >= 20100101
    2.37 +BuildPreReq:  libevent, sasl, libexecinfo
    2.38 +PreReq:       libevent, sasl, libexecinfo
    2.39  
    2.40  %description
    2.41 -    Memcached is a high-performance, distributed memory object caching
    2.42 +    Memcached is a high performance, distributed memory object caching
    2.43      system, generic in nature, but intended for use in speeding up
    2.44      dynamic web applications by alleviating database load. Additionally,
    2.45      this package contains Perl and C client APIs to memcached.
    2.46 @@ -85,6 +81,9 @@
    2.47      %setup -q -T -D -a 2
    2.48      %patch -p0
    2.49      %{l_shtool} subst \
    2.50 +        -e 's/b = \(__sync_sub_and_fetch(\&a, 2);\)/return \1/' \
    2.51 +        memcached-%{V_memcached}/configure
    2.52 +    %{l_shtool} subst \
    2.53          -e 's; *-Werror;;g' \
    2.54          memcached-%{V_memcached}/configure
    2.55      %{l_shtool} subst \
    2.56 @@ -114,11 +113,19 @@
    2.57  
    2.58      #   build C client API
    2.59      ( cd libmemcached-%{V_libmemcached}
    2.60 +      ( echo "ac_cv_func_malloc_0_nonnull=yes"
    2.61 +        echo "ac_cv_func_realloc_0_nonnull=yes"
    2.62 +        echo "ac_cv_env_CXXFLAGS_set=barf"
    2.63 +        echo "ac_cv_env_CFLAGS_set=barf"
    2.64 +        echo "ac_cv_header_priv_h=no"
    2.65 +        echo "ac_cv_header_umem_h=no"
    2.66 +      ) >config.cache
    2.67        CC="%{l_cc}" \
    2.68        CFLAGS="%{l_cflags -O}" \
    2.69        CPPFLAGS="%{l_cppflags}" \
    2.70        LDFLAGS="%{l_ldflags}" \
    2.71        ./configure \
    2.72 +          --cache-file=./config.cache \
    2.73            --prefix=%{l_prefix} \
    2.74            --mandir=%{l_prefix}/man \
    2.75            --without-memcached \
    2.76 @@ -136,9 +143,6 @@
    2.77      %{l_prefix}/bin/perl-openpkg -d Cache-Memcached-%{V_cache_memcached} configure build
    2.78  
    2.79  %install
    2.80 -    #   remove build cruft
    2.81 -    rm -rf $RPM_BUILD_ROOT
    2.82 -
    2.83      #   install daemon
    2.84      ( cd memcached-%{V_memcached}
    2.85        %{l_shtool} mkdir -f -p -m 775 \
    2.86 @@ -152,20 +156,30 @@
    2.87  
    2.88      #   install C client API
    2.89      ( cd libmemcached-%{V_libmemcached}
    2.90 -      %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT"
    2.91 +      %{l_make} %{l_mflags} install DESTDIR="$RPM_BUILD_ROOT"
    2.92 +    ) || exit $?
    2.93 +
    2.94 +    #   correct header names and references
    2.95 +    ( cd $RPM_BUILD_ROOT%{l_prefix}/include
    2.96 +      mv libmemcachedutil-[0-9]* libmemcachedutil
    2.97 +      mv libmemcachedprotocol-[0-9]* libmemcachedprotocol
    2.98 +      rm -rf libhashkit && mv libhashkit-[0-9]* libhashkit
    2.99 +      rm -rf libmemcached && mv libmemcached-[0-9]* libmemcached
   2.100 +      find .  -type f -print | xargs %{l_shtool} subst \
   2.101 +          -e 's;\(#include <lib[^\-][^\-]*\)-[0-9\.][0-9\.]*;\1;g'
   2.102      ) || exit $?
   2.103  
   2.104      #   install Perl client API
   2.105      %{l_prefix}/bin/perl-openpkg -d Cache-Memcached-%{V_cache_memcached} install
   2.106      %{l_prefix}/bin/perl-openpkg -F perl-openpkg-files fixate cleanup
   2.107  
   2.108 -    #   install daemon run-command script
   2.109 +    #   install daemon runcommand script
   2.110      %{l_shtool} mkdir -f -p -m 755 \
   2.111          $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
   2.112      %{l_shtool} install -c -m 755 %{l_value -s -a} \
   2.113          %{SOURCE rc.memcached} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
   2.114  
   2.115 -    #   install daemon run-command script
   2.116 +    #   create directory hierarchy for daemon
   2.117      %{l_shtool} mkdir -f -p -m 755 \
   2.118          $RPM_BUILD_ROOT%{l_prefix}/var/memcached
   2.119  
   2.120 @@ -177,7 +191,6 @@
   2.121  %files -f files
   2.122  
   2.123  %clean
   2.124 -    rm -rf $RPM_BUILD_ROOT
   2.125  
   2.126  %post
   2.127      #   after upgrade, restart service

mercurial