Sophie

Sophie

distrib > Mageia > 5 > x86_64 > media > core-updates-src > by-pkgid > 42e423c037cf5bd607b25ae0ec2871e8 > files > 14

zookeeper-3.4.5-25.1.mga5.src.rpm

%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