%define major 2 %define libname %mklibname %{name} %{major} %define develname %mklibname %{name} -d %global _hardened_build 1 Name: zookeeper Version: 3.4.5 %define subrel 1 Release: %mkrel 25 Summary: A high-performance coordination service for distributed applications Group: Development/Java License: ASL 2.0 and BSD URL: http://zookeeper.apache.org/ Source0: http://www.apache.org/dist/%{name}/stable/%{name}-%{version}.tar.gz #Source1: %%{name}-test-template.pom Source2: %{name}-ZooInspector-template.pom Source3: %{name}.service # remove non free clover references # configure ivy to use system libraries # disable rat-lib and jdiff support Patch0: %{name}-3.4.4-build.patch # https://issues.apache.org/jira/browse/ZOOKEEPER-1557 Patch1: https://issues.apache.org/jira/secure/attachment/12548109/ZOOKEEPER-1557.patch Patch2: %{name}-3.4.5-zktreeutil-gcc.patch Patch3: %{name}-3.4.5-disable-cygwin-detection.patch Patch4: %{name}-3.4.5-build-contrib.patch Patch5: %{name}-3.4.5-add-PIE-and-RELRO.patch #Patch6: %%{name}-3.4.5-atomic.patch # remove date/time from console output since journald will keep track of date/time Patch7: %{name}-3.4.5-log4j.patch Patch8: https://issues.apache.org/jira/secure/attachment/12570030/mt_adaptor.c.patch Patch9: %{name}-3.4.5-mga-find_liblog4j12_path.patch Patch10: CVE-2016-5017.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: boost-devel BuildRequires: cppunit-devel BuildRequires: dos2unix BuildRequires: doxygen BuildRequires: graphviz BuildRequires: java-devel BuildRequires: java-javadoc BuildRequires: jpackage-utils BuildRequires: libtool BuildRequires: libxml2-devel BuildRequires: log4cxx-devel BuildRequires: python-devel BuildRequires: ant BuildRequires: ant-junit BuildRequires: apache-ivy BuildRequires: checkstyle BuildRequires: jline1 BuildRequires: jtoaster BuildRequires: junit BuildRequires: log4j12 BuildRequires: mvn(org.slf4j:slf4j-log4j12) BuildRequires: mockito BuildRequires: netty3 BuildRequires: slf4j BuildRequires: xerces-j2 BuildRequires: xml-commons-apis # BuildRequires: rat-lib # BuildRequires: apache-rat-tasks # BuildRequires: apache-commons-collections # BuildRequires: apache-commons-lang # BuildRequires: jdiff BuildRequires: systemd %description ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. %package -n %{libname} Summary: Zookeeper C client library Group: System/Libraries %description -n %{libname} ZooKeeper C client library for communicating with ZooKeeper Server. %package -n %{develname} Summary: Development files for the %{name} library Group: Development/C++ Requires: %{libname} = %{version}-%{release} Provides: %{name}-devel = %{version}-%{release} %description -n %{develname} Development files for the ZooKeeper C client library. %package lib-doc Summary: Documentation for the %{name} library Group: Documentation BuildArch: noarch %description lib-doc Documentation for the ZooKeeper C client library. %package java Summary: Zookeeper Java client library Group: Development/Java BuildArch: noarch # Requires: felix-framework # Requires: felix-osgi-compendium Requires: checkstyle Requires: jline1 Requires: jtoaster Requires: junit Requires: log4j12 Requires: mockito Requires: netty3 Requires: slf4j Requires: java Requires: jpackage-utils %description java This package provides a Java client interface to Zookeeper server. %package javadoc Summary: Javadoc for %{name} Group: Documentation BuildArch: noarch %description javadoc This package contains javadoc for %{name}. %package -n python-ZooKeeper Summary: ZooKeeper python binding library Group: Development/Python Requires: %{libname} = %{version}-%{release} Provides: zkpython = %{version}-%{release} %description -n python-ZooKeeper ZooKeeper python binding library. %package server Summary: ZooKeeper server Group: System/Servers Requires: %{name}-java = %{version}-%{release} BuildArch: noarch Requires(post): systemd Requires(post): rpm-helper Requires(preun): systemd Requires(preun): rpm-helper Requires(postun): systemd Requires(pre): shadow-utils %description server ZooKeeper server. %prep %setup -q find -name "*.jar" -delete find -name "*.class" -delete find -name "*.cmd" -delete find -name "*.so*" -delete find -name "*.dll" -delete %patch0 -p1 %patch1 -p0 %pom_remove_dep org.vafer:jdeb dist-maven/%{name}-%{version}.pom # jdiff task deps %pom_remove_dep jdiff:jdiff dist-maven/%{name}-%{version}.pom %pom_remove_dep xerces:xerces dist-maven/%{name}-%{version}.pom # rat-lib task deps %pom_remove_dep org.apache.rat:apache-rat-tasks dist-maven/%{name}-%{version}.pom %pom_remove_dep commons-collections:commons-collections dist-maven/%{name}-%{version}.pom %pom_remove_dep commons-lang:commons-lang dist-maven/%{name}-%{version}.pom %patch2 -p0 %patch3 -p0 %patch4 -p1 %patch5 -p1 #patch6 -p1 %patch7 -p1 %patch8 -p0 %patch9 -p1 %patch10 -p1 sed -i "s|<version>0.9.94</version>|<version>1.0</version>|" dist-maven/%{name}-%{version}.pom sed -i "s|<version>3.2.2.Final</version>|<version>3.6.6.Final</version>|" dist-maven/%{name}-%{version}.pom sed -i "s|org.jboss.netty|io.netty|" dist-maven/%{name}-%{version}.pom sed -i "s|<packaging>pom</packaging>|<packaging>jar</packaging>|" dist-maven/%{name}-%{version}.pom sed -i "s|<groupId>checkstyle</groupId>|<groupId>com.puppycrawl.tools</groupId>|" dist-maven/%{name}-%{version}.pom sed -i "s|<artifactId>mockito-all</artifactId>|<artifactId>mockito-core</artifactId>|" dist-maven/%{name}-%{version}.pom cp -p %{SOURCE2} dist-maven/%{name}-%{version}-ZooInspector.pom sed -i "s|@version@|%{version}|" dist-maven/%{name}-%{version}-ZooInspector.pom iconv -f iso8859-1 -t utf-8 src/c/ChangeLog > src/c/ChangeLog.conv && mv -f src/c/ChangeLog.conv src/c/ChangeLog sed -i 's/\r//' src/c/ChangeLog # fix build problem on f18 sed -i 's|<exec executable="hostname" outputproperty="host.name"/>|<!--exec executable="hostname" outputproperty="host.name"/-->|' build.xml sed -i 's|<attribute name="Built-On" value="${host.name}" />|<attribute name="Built-On" value="${user.name}" />|' build.xml sed -i 's@^dataDir=.*$@dataDir=%{_sharedstatedir}/zookeeper/data\ndataLogDir=%{_sharedstatedir}/zookeeper/log@' conf/zoo_sample.cfg %build # ensure that source and target are 1.5 %ant -Dtarget.jdk=1.5 \ -Djavadoc.link.java=%{_javadocdir}/java \ -Dant.build.javac.source=1.5 \ -Dant.build.javac.target=1.5 \ build-generated jar test-jar javadoc javadoc-dev ( cd src/contrib %ant -Dversion=%{version} \ -Dcontribfilesetincludes="zooinspector/build.xml" \ -Dant.build.javac.source=1.5 \ -Dant.build.javac.target=1.5 \ -Dtarget.jdk=1.5 \ -DlastRevision=-1 \ -Divy.jar.exists=true \ -Divy.initialized=true \ -Ddest.dir=../../build/zookeeper ) pushd src/c rm -rf autom4te.cache autoreconf -fis %configure2_5x --disable-static --disable-rpath --with-syncapi # 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 %make doxygen-doc popd # Compile zktreeutil pushd src/contrib/zktreeutil rm -rf autom4te.cache autoreconf -vfi %configure2_5x %make popd %if 0 %check # Execute multi-threaded test suite mkdir -p build/lib for jar in jline log4j xerces-j2 xml-commons-apis; do \ ln -sf %{_javadir}/$jar.jar build/lib/$jar.jar; \ done pushd src/c %make zktest-mt ./zktest-mt popd %ifarch i386 # Run core Java test suite against zookeeper ant -Dversion=%{version} -DlastRevision=-1 test-core-java %endif %endif %install # install the java dependencies. mkdir -p %{buildroot}%{_javadir}/%{name} install -pm 644 build/%{name}-%{version}.jar %{buildroot}%{_javadir}/%{name}/%{name}.jar install -pm 644 build/%{name}-%{version}-test.jar %{buildroot}%{_javadir}/%{name}/%{name}-tests.jar install -pm 644 build/contrib/ZooInspector/%{name}-ZooInspector-%{version}.jar %{buildroot}%{_javadir}/%{name}/%{name}-ZooInspector.jar mkdir -p %{buildroot}%{_mavenpomdir} install -pm 644 dist-maven/%{name}-%{version}.pom %{buildroot}%{_mavenpomdir}/JPP.%{name}-%{name}.pom %add_maven_depmap JPP.%{name}-%{name}.pom %{name}/%{name}.jar %add_maven_depmap org.apache.zookeeper:zookeeper::tests:%{version} %{name}/%{name}-tests.jar install -pm 644 dist-maven/%{name}-%{version}-ZooInspector.pom %{buildroot}%{_mavenpomdir}/JPP.%{name}-%{name}-ZooInspector.pom %add_maven_depmap JPP.%{name}-%{name}-ZooInspector.pom %{name}/%{name}-ZooInspector.jar mkdir -p %{buildroot}%{_javadocdir}/%{name}/dev cp -pr build/docs/api/* %{buildroot}%{_javadocdir}/%{name}/ cp -pr build/docs/dev-api/* %{buildroot}%{_javadocdir}/%{name}/dev/ pushd src/c %makeinstall_std # cleanup rm -f docs/html/*.map popd pushd src/contrib/zktreeutil %makeinstall_std popd pushd src/contrib/zkpython %{__python} src/python/setup.py build --build-base=$PWD/build \ install --root=%{buildroot} ;\ chmod 0755 %{buildroot}%{python_sitearch}/zookeeper.so popd find %{buildroot} -name '*.la' -exec rm -f {} ';' mkdir -p %{buildroot}%{_unitdir} mkdir -p %{buildroot}%{_sysconfdir}/zookeeper mkdir -p %{buildroot}%{_localstatedir}/log/zookeeper mkdir -p %{buildroot}%{_sharedstatedir}/zookeeper mkdir -p %{buildroot}%{_sharedstatedir}/zookeeper/data mkdir -p %{buildroot}%{_sharedstatedir}/zookeeper/log install -p -m 0644 %{SOURCE3} %{buildroot}%{_unitdir} install -p -m 0640 conf/log4j.properties %{buildroot}%{_sysconfdir}/zookeeper install -p -m 0640 conf/zoo_sample.cfg %{buildroot}%{_sysconfdir}/zookeeper touch %{buildroot}%{_sysconfdir}/zookeeper/zoo.cfg touch %{buildroot}%{_sharedstatedir}/zookeeper/data/myid # TODO # bin/zkCleanup.sh # bin/zkCli.sh # bin/zkEnv.sh %pre server %_pre_useradd %{name} %{_sharedstatedir}/%{name} /sbin/nologin %postun server %_postun_userdel %{name} %post server %_tmpfilescreate %{name} %_post_service %{name} %preun server %_preun_service %{name} %files %{_bindir}/cli_mt %{_bindir}/cli_st %{_bindir}/load_gen %{_bindir}/zktreeutil %doc src/c/ChangeLog src/c/LICENSE src/c/NOTICE.txt src/c/README src/contrib/zktreeutil/README.txt %files -n %{libname} %{_libdir}/lib*.so.* %doc src/c/LICENSE src/c/NOTICE.txt %files -n %{develname} %dir %{_includedir}/%{name} %{_includedir}/%{name}/*.h %{_libdir}/*.so %doc src/c/LICENSE src/c/NOTICE.txt %files lib-doc %doc src/c/LICENSE src/c/NOTICE.txt src/c/docs/html/* %files java -f .mfiles %dir %{_javadir}/%{name} %doc CHANGES.txt LICENSE.txt NOTICE.txt README.txt %files javadoc %{_javadocdir}/%{name} %doc LICENSE.txt NOTICE.txt %files -n python-ZooKeeper %{python_sitearch}/ZooKeeper-?.?-py%{pyver}.egg-info %{python_sitearch}/zookeeper.so %doc LICENSE.txt NOTICE.txt src/contrib/zkpython/README %files server %attr(0755,root,root) %dir %{_sysconfdir}/zookeeper %attr(0644,root,root) %ghost %config(noreplace) %{_sysconfdir}/zookeeper/zoo.cfg %attr(0644,root,root) %config(noreplace) %{_sysconfdir}/zookeeper/zoo_sample.cfg %attr(0644,root,root) %config(noreplace) %{_sysconfdir}/zookeeper/log4j.properties %attr(0750,zookeeper,zookeeper) %dir %{_localstatedir}/log/zookeeper %attr(0755,root,root) %dir %{_sharedstatedir}/zookeeper %attr(0750,zookeeper,zookeeper) %dir %{_sharedstatedir}/zookeeper/data %attr(0640,zookeeper,zookeeper) %ghost %{_sharedstatedir}/zookeeper/data/myid %attr(0750,zookeeper,zookeeper) %dir %{_sharedstatedir}/zookeeper/log %{_unitdir}/zookeeper.service %doc src/c/ChangeLog src/c/LICENSE src/c/NOTICE.txt src/c/README src/contrib/zktreeutil/README.txt %changelog * Tue Sep 20 2016 daviddavid <daviddavid> 3.4.5-25.1.mga5 + Revision: 1054540 - add patch from debian to fix CVE-2016-5017 (mga#19419) * Fri Jan 02 2015 daviddavid <daviddavid> 3.4.5-25.mga5 + Revision: 808204 - switch to log4j12 (log4j-1.2.17) - add patch to fix the path of log4j-1.2.17.jar * zookeeper-3.4.5-mga-find_liblog4j12_path.patch - update BuildRequires and Requires - add missing BuildRequires on slf4j-log4j12 (fix build failure) - use .mfiles generated during build (fix build failure) - use appropriate post/pre/postun/preun macros for mageia - use %%makeinstall_std and %%configure2_5x macros for mageia - fix Group - fix provides on python-ZooKeeper package - add missing Requires on rpm-helper - fix a non-conffile-in-etc for zoo_sample.cfg file - add doc on -server subpackage * Wed Oct 15 2014 umeabot <umeabot> 3.4.5-24.mga5 + Revision: 743568 - Second Mageia 5 Mass Rebuild * Sat Sep 27 2014 tv <tv> 3.4.5-23.mga5 + Revision: 730759 - rebuild for missing pythoneggs deps * Tue Sep 16 2014 umeabot <umeabot> 3.4.5-22.mga5 + Revision: 690887 - Mageia 5 Mass Rebuild + pterjan <pterjan> - Rebuild for new Python * Tue May 20 2014 fwang <fwang> 3.4.5-20.mga5 + Revision: 624468 - add provides * Tue May 20 2014 fwang <fwang> 3.4.5-19.mga5 + Revision: 624154 - fix requires * Mon May 19 2014 dmorgan <dmorgan> 3.4.5-18.mga5 + Revision: 623964 - Rebuild against fixed java stack - Add java support * Thu Jan 09 2014 spuhler <spuhler> 3.4.5-1.mga4 + Revision: 565939 - upgrade to version 3.4.5 * Mon Feb 07 2011 spuhler <spuhler> 3.2.1-1.mga1 + Revision: 48375 - removed buildroot definition from .spec removed the if mdkversion lines - imported package zookeeper * Sat Oct 17 2009 Oden Eriksson <oeriksson@mandriva.com> 3.2.1-1mdv2010.0 + Revision: 458005 - import zookeeper * Sat Oct 17 2009 Oden Eriksson <oeriksson@mandriva.com> 3.2.1-1mdv2009.1 - 3.2.1 - the package was renamed to just zookeeper (someone should package the java bits...) * Sat May 03 2008 Oden Eriksson <oeriksson@mandriva.com> 2.1.0-1mdv2009.0 + Revision: 200092 - import zookeeper-c * Sat May 03 2008 Oden Eriksson <oeriksson@mandriva.com> 2.1.0-1mdv2009.0 - initial Mandriva package