[packages/mcrouter] build shared library

glen glen at pld-linux.org
Thu Jul 30 15:05:42 CEST 2015


commit dad75ce7977c9bd68718060772ed4173b942265a
Author: Elan Ruusamäe <glen at delfi.ee>
Date:   Thu Jul 30 16:05:23 2015 +0300

    build shared library

 mcrouter.spec    | 62 ++++++++++++++++++++++++++++++++++++++++++-
 shared-lib.patch | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 142 insertions(+), 1 deletion(-)
---
diff --git a/mcrouter.spec b/mcrouter.spec
index 4ad48b9..09b673c 100644
--- a/mcrouter.spec
+++ b/mcrouter.spec
@@ -1,12 +1,13 @@
 Summary:	Memcached protocol router for scaling memcached deployments
 Name:		mcrouter
 Version:	0.1.0
-Release:	1
+Release:	1.1
 License:	BSD
 Group:		Daemons
 Source0:	https://github.com/facebook/mcrouter/archive/v%{version}/%{name}-%{version}.tar.gz
 # Source0-md5:	5cc3e44ee2ff027e8b4077494222610c
 Patch0:		am-subdir-objects.patch
+Patch1:		shared-lib.patch
 URL:		https://github.com/facebook/mcrouter
 BuildRequires:	autoconf >= 2.59
 BuildRequires:	automake
@@ -21,20 +22,57 @@ BuildRequires:	libstdc++-devel
 BuildRequires:	libtool
 BuildRequires:	openssl-devel
 BuildRequires:	ragel
+BuildRequires:	rpmbuild(macros) >= 1.583
 BuildRequires:	zlib-devel
+Requires:	%{name}-libs = %{version}-%{release}
 # needs folly, which builds on x86-64 only
 ExclusiveArch:	%{x8664}
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
+# it links to -lfolly, but still symbols seem missing. meh
+%define		skip_post_check_so	libmcroutercore.so.0.0.0 libmcrouter.so.0.0.0
+
 %description
 Mcrouter is a memcached protocol router for scaling memcached
 <http://memcached.org/> deployments. It's a core component of cache
 infrastructure at Facebook and Instagram where mcrouter handles almost
 5 billion requests per second at peak.
 
+%package libs
+Summary:	mcrouter shared libraries
+Group:		Libraries
+
+%description libs
+mcrouter shared libraries.
+
+%package devel
+Summary:	Header files for %{name} library
+Summary(pl.UTF-8):	Pliki nagłówkowe biblioteki %{name}
+Group:		Development/Libraries
+Requires:	%{name}-libs = %{version}-%{release}
+
+%description devel
+Header files for %{name} library.
+
+%description devel -l pl.UTF-8
+Pliki nagłówkowe biblioteki %{name}.
+
+%package static
+Summary:	Static %{name} library
+Summary(pl.UTF-8):	Statyczna biblioteka %{name}
+Group:		Development/Libraries
+Requires:	%{name}-devel = %{version}-%{release}
+
+%description static
+Static %{name} library.
+
+%description static -l pl.UTF-8
+Statyczna biblioteka %{name}.
+
 %prep
 %setup -q
 %patch0 -p1
+%patch1 -p1
 
 %build
 cd mcrouter
@@ -54,7 +92,29 @@ rm -rf $RPM_BUILD_ROOT
 %clean
 rm -rf $RPM_BUILD_ROOT
 
+%post	-p /sbin/ldconfig
+%postun	-p /sbin/ldconfig
+
 %files
 %defattr(644,root,root,755)
 %doc README.md LICENSE PATENTS
 %attr(755,root,root) %{_bindir}/mcrouter
+
+%files libs
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libmcrouter.so.*.*.*
+%ghost %{_libdir}/libmcrouter.so.0
+%attr(755,root,root) %{_libdir}/libmcroutercore.so.*.*.*
+%ghost %{_libdir}/libmcroutercore.so.0
+
+%files devel
+%defattr(644,root,root,755)
+%{_libdir}/libmcrouter.la
+%{_libdir}/libmcrouter.so
+%{_libdir}/libmcroutercore.la
+%{_libdir}/libmcroutercore.so
+
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libmcrouter.a
+%{_libdir}/libmcroutercore.a
diff --git a/shared-lib.patch b/shared-lib.patch
new file mode 100644
index 0000000..4641d93
--- /dev/null
+++ b/shared-lib.patch
@@ -0,0 +1,81 @@
+--- b/mcrouter/Makefile.am
++++ mcrouter-0.1.0/mcrouter/Makefile.am	2015-07-30 15:32:15.698144074 +0300
+@@ -2,7 +2,7 @@
+ 
+ ACLOCAL_AMFLAGS = -I m4
+ 
+-noinst_LIBRARIES = libmcroutercore.a
++lib_LTLIBRARIES = libmcroutercore.la
+ bin_PROGRAMS = mcrouter
+ 
+ BUILT_SOURCES = \
+@@ -19,7 +19,7 @@
+   lib/mc/ascii_client.c \
+   lib/network/McAsciiParser-gen.cpp
+ 
+-libmcroutercore_a_SOURCES = \
++libmcroutercore_la_SOURCES = \
+   async.cpp \
+   async.h \
+   awriter.h \
+@@ -187,5 +187,6 @@
+ 
+-libmcroutercore_a_CPPFLAGS = -Ioss_include
++libmcroutercore_la_CPPFLAGS = -Ioss_include
++libmcroutercore_la_LIBADD = -lfolly
+ 
+-mcrouter_LDADD = libmcroutercore.a lib/libmcrouter.a
++mcrouter_LDADD = $(top_builddir)/libmcroutercore.la $(top_builddir)/lib/libmcrouter.la
+ mcrouter_CPPFLAGS = -Ioss_include
+--- b/mcrouter/lib/Makefile.am
++++ mcrouter-0.1.0/mcrouter/lib/Makefile.am	2015-07-30 15:05:52.049330939 +0300
+@@ -1,8 +1,8 @@
+ SUBDIRS = . config cycles fbi network test
+ 
+-noinst_LIBRARIES = libmcrouter.a
++lib_LTLIBRARIES = libmcrouter.la
+ 
+-libmcrouter_a_SOURCES = \
++libmcrouter_la_SOURCES = \
+   CacheClientStats.h \
+   Ch3HashFunc.h \
+   Crc32HashFunc.h \
+@@ -179,2 +179,3 @@
+-libmcrouter_a_CPPFLAGS = -I$(top_srcdir)/oss_include
+-libmcrouter_a_CFLAGS = -I$(top_srcdir)/oss_include
++libmcrouter_la_CPPFLAGS = -I$(top_srcdir)/oss_include
++libmcrouter_la_CFLAGS = -I$(top_srcdir)/oss_include
++libmcrouter_la_LIBADD = -lfolly
+--- a/mcrouter/routes/test/Makefile.am
++++ b/mcrouter/routes/test/Makefile.am
+@@ -11,4 +11,4 @@ mcrouter_routes_test_SOURCES = \
+   WarmUpRouteTest.cpp
+ 
+ mcrouter_routes_test_CPPFLAGS = -I$(top_srcdir)/oss_include
+-mcrouter_routes_test_LDADD = $(top_builddir)/libmcroutercore.a $(top_builddir)/lib/libmcrouter.a -lgtest -lfollybenchmark
++mcrouter_routes_test_LDADD = $(top_builddir)/libmcroutercore.la $(top_builddir)/lib/libmcrouter.la -lgtest -lfollybenchmark
+--- a/mcrouter/test/cpp_unit_tests/Makefile.am
++++ b/mcrouter/test/cpp_unit_tests/Makefile.am
+@@ -16,7 +16,7 @@ mcrouter_test_SOURCES = \
+   TokenBucketTest.cpp
+ 
+ mcrouter_test_CPPFLAGS = -I$(top_srcdir)/oss_include
+-mcrouter_test_LDADD = $(top_builddir)/libmcroutercore.a $(top_builddir)/lib/libmcrouter.a -lgtest -lgtestmain
++mcrouter_test_LDADD = $(top_builddir)/libmcroutercore.la $(top_builddir)/lib/libmcrouter.la -lgtest -lgtestmain
+ 
+ mcrouter_libmc_test_SOURCES = \
+   libmcrouter_test.cpp \
+@@ -26,4 +26,4 @@ mcrouter_libmc_test_SOURCES = \
+   MemcacheLocal.h
+ 
+ mcrouter_libmc_test_CPPFLAGS = -I$(top_srcdir)/oss_include
+-mcrouter_libmc_test_LDADD = $(top_builddir)/libmcroutercore.a $(top_builddir)/lib/libmcrouter.a -lgtest
++mcrouter_libmc_test_LDADD = $(top_builddir)/libmcroutercore.la $(top_builddir)/lib/libmcrouter.la -lgtest
+--- mcrouter-0.1.0/mcrouter/lib/network/Makefile.am~	2015-06-23 05:21:52.000000000 +0300
++++ mcrouter-0.1.0/mcrouter/lib/network/Makefile.am	2015-07-30 14:30:38.322797598 +0300
+@@ -8,4 +8,4 @@
+   test/MockMcServer.cpp
+ 
+ mock_mc_server_CPPFLAGS = -I$(top_srcdir)/oss_include
+-mock_mc_server_LDADD = $(top_builddir)/lib/libmcrouter.a
++mock_mc_server_LDADD = $(top_builddir)/lib/libmcrouter.la
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/mcrouter.git/commitdiff/dad75ce7977c9bd68718060772ed4173b942265a



More information about the pld-cvs-commit mailing list