zookeeper/zookeeper.spec

399 lines
13 KiB
RPMSpec
Raw Normal View History

2014-10-07 18:40:35 +00:00
%global commit 601207e1151b2691112c431fc3b4130a85ac93b5
%global shortcommit %(c=%{commit}; echo ${c:0:7})
2013-06-11 16:58:39 +00:00
%global _hardened_build 1
2013-06-11 16:58:39 +00:00
Name: zookeeper
2014-06-05 01:16:35 +00:00
Version: 3.4.6
Release: 1%{?dist}
2013-06-11 16:58:39 +00:00
Summary: A high-performance coordination service for distributed applications
#Group: Development/Libraries
2013-06-11 16:58:39 +00:00
License: ASL 2.0 and BSD
URL: http://zookeeper.apache.org/
2014-10-07 18:40:35 +00:00
Source0: https://github.com/apache/zookeeper/archive/%{commit}/%{name}-%{version}-%{shortcommit}.tar.gz
Source1: %{name}-ZooInspector-template.pom
Source2: %{name}.service
2014-06-05 01:16:35 +00:00
2014-10-07 18:40:35 +00:00
Patch1: %{name}-3.4.5-zktreeutil-gcc.patch
Patch2: %{name}-3.4.6-ivy-build.patch
#Patch2: %{name}-3.4.5-log4j.patch
#Patch2: %{name}-3.4.5-build-contrib.patch
#Patch5: %{name}-3.4.5-add-PIE-and-RELRO.patch
2013-06-11 16:58:39 +00:00
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
2014-06-05 01:16:35 +00:00
BuildRequires: ivy-local
2013-06-11 16:58:39 +00:00
BuildRequires: checkstyle
2014-01-27 21:40:13 +00:00
BuildRequires: jline1
2013-06-11 16:58:39 +00:00
BuildRequires: jtoaster
BuildRequires: junit
2014-10-07 18:40:35 +00:00
#BuildRequires: log4j12
BuildRequires: log4j
BuildRequires: json_simple
2014-06-05 01:16:35 +00:00
2013-06-11 16:58:39 +00:00
BuildRequires: mockito
BuildRequires: netty3
2013-06-11 16:58:39 +00:00
BuildRequires: slf4j
BuildRequires: xerces-j2
BuildRequires: xml-commons-apis
BuildRequires: systemd
2013-06-11 16:58:39 +00:00
%description
ZooKeeper is a centralized service for maintaining configuration information,
naming, providing distributed synchronization, and providing group services.
%package lib
Summary: Zookeeper C client library
#Group: System Environment/Libraries
2013-06-11 16:58:39 +00:00
%description lib
ZooKeeper C client library for communicating with ZooKeeper Server.
%package lib-devel
Summary: Development files for the %{name} library
#Group: Development/Libraries
2013-06-11 16:58:39 +00:00
Requires: %{name}-lib%{?_isa} = %{version}-%{release}
%description lib-devel
Development files for the ZooKeeper C client library.
%package lib-doc
Summary: Documentation for the %{name} library
#Group: Documentation
2013-06-11 16:58:39 +00:00
BuildArch: noarch
%description lib-doc
Documentation for the ZooKeeper C client library.
%package java
#Group: Development/Libraries
2013-06-11 16:58:39 +00:00
Summary: Zookeeper Java client library
2014-10-07 18:40:35 +00:00
2013-06-11 16:58:39 +00:00
Requires: checkstyle
2014-01-27 21:40:13 +00:00
Requires: jline1
2013-06-11 16:58:39 +00:00
Requires: jtoaster
Requires: junit
Requires: log4j
Requires: mockito
Requires: netty3
2013-06-11 16:58:39 +00:00
Requires: slf4j
Requires: java
Requires: jpackage-utils
BuildArch: noarch
%description java
This package provides a Java client interface to Zookeeper server.
%package javadoc
#Group: Documentation
2013-06-11 16:58:39 +00:00
Summary: Javadoc for %{name}
BuildArch: noarch
%description javadoc
This package contains javadoc for %{name}.
%package -n python-ZooKeeper
#Group: Development/Libraries
2013-06-11 16:58:39 +00:00
Summary: ZooKeeper python binding library
Requires: %{name}-lib%{?_isa} = %{version}-%{release}
Provides: zkpython%{?_isa} = %{version}-%{release}
%description -n python-ZooKeeper
ZooKeeper python binding library
%package server
#Group: System Environment/Daemons
Summary: ZooKeeper server
Requires: %{name}-java = %{version}-%{release}
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
Requires(pre): shadow-utils
BuildArch: noarch
%description server
ZooKeeper server
2013-06-11 16:58:39 +00:00
%prep
2014-10-07 18:40:35 +00:00
%setup -q -n %{name}-%{commit}
2013-06-11 16:58:39 +00:00
2014-10-07 18:40:35 +00:00
%patch1 -p0
%patch2 -p1
#%patch3 -p1
#%patch4 -p1
2014-06-05 01:16:35 +00:00
2014-10-07 18:40:35 +00:00
#
2013-06-11 16:58:39 +00:00
2014-10-07 18:40:35 +00:00
#cp -p %{SOURCE1} dist-maven/%{name}-%{version}-ZooInspector.pom
#sed -i "s|@version@|%{version}|" dist-maven/%{name}-%{version}-ZooInspector.pom
2013-06-11 16:58:39 +00:00
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
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
2013-06-11 16:58:39 +00:00
%build
2014-10-07 18:40:35 +00:00
%ant -Divy.mode=local \
-Dtarget.jdk=1.5 \
-Djavadoc.link.java=%{_javadocdir}/java \
-Dant.build.javac.source=1.5 \
-Dant.build.javac.target=1.5 \
-Ddist.dir=%{buildroot} \
package-native
#Compile zktreeutil
# TODO - determine why it's not part of the default build
pushd src/contrib/zktreeutil
rm -rf autom4te.cache
autoreconf -if
%configure
2013-06-11 16:58:39 +00:00
%{__make} %{?_smp_mflags}
2014-10-07 18:40:35 +00:00
popd
2013-06-11 16:58:39 +00:00
%check
2014-10-07 18:40:35 +00:00
%ant -Divy.mode=local \
test
2013-06-11 16:58:39 +00:00
%install
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
2014-10-07 18:40:35 +00:00
install -pm 644 build/contrib/ZooInspector/%{name}-%{version}-ZooInspector.jar %{buildroot}%{_javadir}/%{name}/%{name}-ZooInspector.jar
2013-06-11 16:58:39 +00:00
mkdir -p %{buildroot}%{_mavenpomdir}
2014-10-07 18:40:35 +00:00
install -pm 644 build/%{name}-%{version}/dist-maven/%{name}.pom %{buildroot}%{_mavenpomdir}/JPP.%{name}-%{name}.pom
####################################################
# we will need to do our pom cleanup here.
#%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
#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
####################################################
2013-06-11 16:58:39 +00:00
%add_maven_depmap JPP.%{name}-%{name}.pom %{name}/%{name}.jar
%add_maven_depmap org.apache.zookeeper:zookeeper::tests:%{version} %{name}/%{name}-tests.jar
2014-10-07 18:40:35 +00:00
install -pm 644 %{SOURCE1} %{buildroot}%{_mavenpomdir}/JPP.%{name}-%{name}-ZooInspector.pom
sed -i "s|@version@|%{version}|" %{buildroot}%{_mavenpomdir}/JPP.%{name}-%{name}-ZooInspector.pom
2013-06-11 16:58:39 +00:00
%add_maven_depmap JPP.%{name}-%{name}-ZooInspector.pom %{name}/%{name}-ZooInspector.jar
2014-10-07 18:40:35 +00:00
mkdir -p %{buildroot}%{_javadocdir}/%{name}
2013-06-11 16:58:39 +00:00
cp -pr build/docs/api/* %{buildroot}%{_javadocdir}/%{name}/
2014-10-07 18:40:35 +00:00
#pushd build/c
#%{__make} install DESTDIR=%{buildroot}
2013-06-11 16:58:39 +00:00
# cleanup
2014-10-07 18:40:35 +00:00
#rm -f docs/html/*.map
#popd
2013-06-11 16:58:39 +00:00
2014-10-07 18:40:35 +00:00
#pushd src/contrib/zktreeutil
#%{__make} install DESTDIR=%{buildroot}
#popd
2013-06-11 16:58:39 +00:00
2014-10-07 18:40:35 +00:00
pushd build/contrib/zkpython
2013-06-11 16:58:39 +00:00
%{__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
2014-10-07 18:40:35 +00:00
install -p -m 0644 %{SOURCE2} %{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
2013-06-11 16:58:39 +00:00
# TODO
# bin/zkCleanup.sh
# bin/zkCli.sh
# bin/zkEnv.sh
%post lib -p /sbin/ldconfig
%postun lib -p /sbin/ldconfig
%pre server
getent group zookeeper >/dev/null || groupadd -r zookeeper
getent passwd zookeeper >/dev/null || \
useradd -r -g zookeeper -d %{_sharedstatedir}/zookeeper -s /sbin/nologin \
-c "ZooKeeper service account" zookeeper
%post server
%systemd_post zookeeper.service
%preun server
%systemd_preun zookeeper.service
%postun server
%systemd_postun_with_restart zookeeper.service
2013-07-22 14:39:49 +00:00
%files
2013-06-11 16:58:39 +00:00
%{_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 lib
%{_libdir}/lib*.so.*
%doc src/c/LICENSE src/c/NOTICE.txt
%files lib-devel
%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
%dir %{_javadir}/%{name}
2013-06-11 16:58:39 +00:00
%{_javadir}/%{name}/%{name}.jar
%{_javadir}/%{name}/%{name}-tests.jar
2013-06-11 16:58:39 +00:00
%{_javadir}/%{name}/%{name}-ZooInspector.jar
%{_mavenpomdir}/JPP.%{name}-%{name}.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-ZooInspector.pom
%{_mavendepmapfragdir}/%{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%{python_version}.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) %{_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
2013-06-11 16:58:39 +00:00
%changelog
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.4.5-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.4.5-19
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
2014-05-23 03:03:19 +00:00
* Fri May 23 2014 Petr Machata <pmachata@redhat.com> - 3.4.5-18
- Rebuild for boost 1.55.0
2014-02-24 16:16:24 +00:00
* Mon Feb 24 2014 Timothy St. Clair <tstclair@redhat.com> - 3.4.5-17
- Update due to cascading dependencies around java-headless
* Fri Jan 31 2014 Timothy St. Clair <tstclair@redhat.com> - 3.4.5-16
- Update of tests.jar due to netty3 compat packaging conflicts
* Fri Jan 24 2014 Timothy St. Clair <tstclair@redhat.com> - 3.4.5-15
2014-01-27 21:40:13 +00:00
- Update jline and netty3 for f21 builds
2013-10-25 14:48:35 +00:00
* Fri Oct 25 2013 Timothy St. Clair <tstclair@redhat.com> - 3.4.5-14
- Update dependencies to jline1
* Wed Sep 18 2013 Timothy St. Clair <tstclair@redhat.com> - 3.4.5-13
- Fixed the atomic patch which actually caused recursive crashing on zookeeper_close
2013-07-30 13:00:51 +00:00
* Tue Jul 30 2013 Petr Machata <pmachata@redhat.com> - 3.4.5-12
- Rebuild for boost 1.54.0
2013-07-30 01:16:59 +00:00
* Tue Jul 30 2013 gil cattaneo <puntogil@libero.it> 3.4.5-11
2013-07-30 01:35:06 +00:00
- fix changelog entries
2013-07-30 01:16:59 +00:00
2013-07-22 16:23:28 +00:00
* Mon Jul 22 2013 Timothy St. Clair <tstclair@redhat.com> - 3.4.5-10
- update permissions to be in line with default policies
* Mon Jul 22 2013 gil cattaneo <puntogil@libero.it> 3.4.5-9
- removed not needed %%defattr (only required for rpm < 4.4)
- removed not needed Group fields (new package guideline)
- fix directory ownership in java sub package
2013-07-22 16:23:28 +00:00
* Mon Jul 22 2013 Timothy St. Clair <tstclair@redhat.com> - 3.4.5-8
2013-07-22 14:39:49 +00:00
- cleanup file ownership properties.
2013-07-30 01:35:06 +00:00
* Sat Jun 15 2013 Jeffrey C. Ollie <jeff@ocjtech.us> - 3.4.5-7
- add server subpackage
* Fri Jun 14 2013 Dan Horák <dan[at]danny.cz> - 3.4.5-6
- use fetch_and_add from GCC, fixes build on non-x86 arches
2013-06-11 16:58:39 +00:00
* Tue Jun 11 2013 gil cattaneo <puntogil@libero.it> 3.4.5-5
- fixed zookeeper.so non-standard-executable-perm thanks to Björn Esser
* Tue Jun 11 2013 gil cattaneo <puntogil@libero.it> 3.4.5-4
- enabled hardened-builds
- fixed fully versioned dependency in subpackages (lib-devel and python)
- fixed License tag
- moved large documentation in lib-doc subpackage
* Sat Apr 27 2013 gil cattaneo <puntogil@libero.it> 3.4.5-3
- built ZooInspector
- added additional poms files
* Tue Apr 23 2013 gil cattaneo <puntogil@libero.it> 3.4.5-2
- building/packaging of the zookeeper-test.jar thanks to Robert Rati
* Sun Dec 02 2012 gil cattaneo <puntogil@libero.it> 3.4.5-1
- update to 3.4.5
* Tue Oct 30 2012 gil cattaneo <puntogil@libero.it> 3.4.4-3
- fix missing hostname
* Fri Oct 12 2012 gil cattaneo <puntogil@libero.it> 3.4.4-2
- add ant-junit as BR
* Fri Oct 12 2012 gil cattaneo <puntogil@libero.it> 3.4.4-1
- update to 3.4.4
* Fri May 18 2012 gil cattaneo <puntogil@libero.it> 3.4.3-1
- initial rpm