[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