%global _hardened_build 1 Name: bookkeeper Version: 4.2.1 Release: 1%{?dist} Summary: Apache BookKeeper sub-project of ZooKeeper Group: Development/Libraries License: ASL 2.0 URL: http://zookeeper.apache.org/bookkeeper/ # svn export http://svn.apache.org/repos/asf/zookeeper/bookkeeper/tags/release-4.2.1/ bookkeeper-4.2.1 # tar czf bookkeeper-4.2.1-src-svn.tar.gz bookkeeper-4.2.1 Source0: %{name}-%{version}-src-svn.tar.gz # bookkeeper require jline 0.9.94 Source1: %{name}-%{version}-depmap # thanks to Matthew Farrellee matt@redhat.com # Patch to avoid complication issue w/ RESUBSCRIBE_EXCEPTION Patch0: https://issues.apache.org/jira/secure/attachment/12577006/BOOKKEEPER-598.patch Patch1: bookkeeper-4.2.1-lib-add-PIE-and-RELRO.patch Patch2: bookkeeper-4.2.1-test-add-PIE-and-RELRO.patch # thanks to Björn Esser bjoern.esser@gmail.com # Fix build with boost >= 1.40.0 Patch3: bookkeeper-4.2.1-boost153.patch BuildRequires: java-devel BuildRequires: apache-commons-cli BuildRequires: apache-commons-collections BuildRequires: apache-commons-codec BuildRequires: apache-commons-configuration BuildRequires: apache-commons-io BuildRequires: derby BuildRequires: guava BuildRequires: jline BuildRequires: log4j # BuildRequires: mvn(org.apache.hadoop:hadoop-common) >= 0.23.1 # BuildRequires: mvn(org.apache.hadoop:hadoop-hdfs) BuildRequires: netty BuildRequires: protobuf-java BuildRequires: slf4j BuildRequires: zookeeper-java # bookkeeper-server runtime deps BuildRequires: apache-commons-lang BuildRequires: apache-commons-logging BuildRequires: hawtjni BuildRequires: jansi BuildRequires: jansi-native # hedwig-client cpp BuildRequires: autoconf BuildRequires: automake BuildRequires: boost-devel BuildRequires: libtool BuildRequires: log4cxx-devel BuildRequires: openssl-devel BuildRequires: protobuf-devel # test deps BuildRequires: junit # org.apache.zookeeper:zookeeper test-jar # BuildRequires: apache-rat-plugin BuildRequires: maven-local BuildRequires: maven-antrun-plugin BuildRequires: maven-assembly-plugin BuildRequires: maven-dependency-plugin BuildRequires: maven-remote-resources-plugin BuildRequires: maven-site-plugin BuildRequires: maven-surefire-plugin %description The Apache BookKeeper sub-project of ZooKeeper is made up of a distributed logging service called BookKeeper and a distributed publish/subscribe system built on top of BookKeeper called Hedwig. %package -n libhedwig Group: System Environment/Libraries Summary: Hedwig C client library %description -n libhedwig This package provides a C client interface to Hedwig server. %package -n libhedwig-devel Group: Development/Libraries Summary: Development files for the Hedwig C client library Requires: libhedwig%{?_isa} = %{version}-%{release} %description -n libhedwig-devel Development files for the Hedwig C client library. %package java Group: Development/Libraries Summary: BookKeeper/Hedwig Java libraries Requires: apache-commons-cli Requires: apache-commons-collections Requires: apache-commons-codec Requires: apache-commons-configuration Requires: apache-commons-io Requires: derby Requires: guava Requires: jline Requires: log4j #Requires: mvn(org.apache.hadoop:hadoop-common) >= 0.23.1 #Requires: mvn(org.apache.hadoop:hadoop-hdfs) Requires: netty Requires: protobuf-java Requires: slf4j Requires: zookeeper-java Requires: java Requires: jpackage-utils BuildArch: noarch %description java This package contains BookKeeper/Hedwig Java libraries. %package javadoc Group: Documentation Summary: Javadoc for %{name} BuildArch: noarch %description javadoc This package contains javadoc for %{name}. %prep %setup -q -n %{name}-%{version} %patch0 -p0 %patch1 -p0 %patch2 -p0 %if %{?fedora} > 18 %patch3 -p0 %endif %pom_remove_plugin org.codehaus.mojo:findbugs-maven-plugin %pom_remove_plugin org.codehaus.mojo:findbugs-maven-plugin bookkeeper-server %pom_remove_plugin org.codehaus.mojo:findbugs-maven-plugin hedwig-protocol %pom_remove_plugin org.codehaus.mojo:findbugs-maven-plugin hedwig-server %pom_remove_plugin org.apache.maven.plugins:maven-pmd-plugin # somersaults %pom_disable_module compat-deps # Requires org.apache.hadoop:hadoop-common hadoop-hdfs >= 0.23.1 %pom_disable_module bookkeeper-benchmark %pom_add_dep commons-collections:commons-collections bookkeeper-server # Unavailable test deps %pom_remove_dep org.apache.bookkeeper:bookkeeper-server-compat400 bookkeeper-server %pom_remove_dep org.apache.bookkeeper:bookkeeper-server-compat410 bookkeeper-server %pom_remove_plugin :maven-assembly-plugin hedwig-server %pom_remove_plugin :maven-dependency-plugin hedwig-server %pom_xpath_remove "pom:project/pom:dependencies/pom:dependency[pom:scope='test']" bookkeeper-server %pom_xpath_remove "pom:project/pom:dependencies/pom:dependency[pom:scope='test']" hedwig-client %pom_xpath_remove "pom:project/pom:dependencies/pom:dependency[pom:scope='test']" hedwig-protocol %pom_xpath_remove "pom:project/pom:dependencies/pom:dependency[pom:scope='test']" hedwig-server %build ( cd bookkeeper-server/ rm -r src/main/java/org/apache/bookkeeper/proto/DataFormats.java protoc --java_out=src/main/java src/main/proto/DataFormats.proto ) ( cd hedwig-protocol/ rm -r src/main/java/org/apache/hedwig/protocol/PubSubProtocol.java protoc --java_out=src/main/java src/main/protobuf/PubSubProtocol.proto ) # test skipped for unavailable test deps mvn-rpmbuild -Dmaven.test.skip=true -Dmaven.local.depmap.file="%{SOURCE1}" package javadoc:aggregate pushd hedwig-client/src/main/cpp rm -rf autom4te.cache libtoolize autoreconf -fi %configure --disable-static --disable-rpath # thanks to Björn Esser get rid of unused-shlib-dep sed -i -e 's! -shared ! -Wl,--as-needed\0!g' libtool # Remove rpath sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool %{__make} %{?_smp_mflags} popd %install pushd hedwig-client/src/main/cpp %{__make} install DESTDIR=%{buildroot} popd find %{buildroot} -name '*.la' -exec rm -f {} ';' mkdir -p %{buildroot}%{_mavenpomdir} install -pm 644 pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-%{name}.pom %add_maven_depmap JPP.%{name}-%{name}.pom mkdir -p %{buildroot}%{_javadir}/%{name} # bookkeeper-benchmark for m in hedwig-client \ hedwig-server \ hedwig-protocol \ bookkeeper-server; do install -m 644 ${m}/target/${m}-%{version}.jar %{buildroot}%{_javadir}/%{name}/${m}.jar install -pm 644 ${m}/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-${m}.pom %add_maven_depmap JPP.%{name}-${m}.pom %{name}/${m}.jar done mkdir -p %{buildroot}%{_javadocdir}/%{name} cp -pr target/site/apidocs/* %{buildroot}%{_javadocdir}/%{name}/ %post -n libhedwig -p /sbin/ldconfig %postun -n libhedwig -p /sbin/ldconfig %files -n libhedwig %{_libdir}/libhedwig*.so.* %doc LICENSE NOTICE %files -n libhedwig-devel %dir %{_includedir}/hedwig-*/hedwig %{_includedir}/hedwig-*/hedwig/*.h %{_libdir}/libhedwig*.so %{_libdir}/pkgconfig/hedwig-*.pc %doc LICENSE NOTICE %files java %dir %{_javadir}/%{name} %{_javadir}/%{name}/*.jar %{_mavenpomdir}/JPP.%{name}-*.pom %{_mavendepmapfragdir}/%{name} %doc CHANGES.txt LICENSE NOTICE README %files javadoc %{_javadocdir}/%{name} %doc LICENSE NOTICE %changelog * Thu Apr 04 2013 gil cattaneo 4.2.1-1 - initial rpm