Add a server subpackage.

Signed-off-by: Timothy St. Clair <tstclair@redhat.com>
This commit is contained in:
Jeffrey C. Ollie 2013-06-26 12:19:26 -05:00 committed by Timothy St. Clair
parent ebc3b4d323
commit 94aec2748a
3 changed files with 102 additions and 9 deletions

View File

@ -0,0 +1,26 @@
--- a/conf/log4j.properties 2012-09-30 12:53:31.000000000 -0500
+++ b/conf/log4j.properties 2013-06-25 12:28:56.833948571 -0500
@@ -1,10 +1,11 @@
# Define some default values that can be overridden by system properties
-zookeeper.root.logger=INFO, CONSOLE
+zookeeper.root.logger=INFO, SYSTEMD
zookeeper.console.threshold=INFO
-zookeeper.log.dir=.
+zookeeper.systemd.threshold=INFO
+zookeeper.log.dir=/var/log/zookeeper
zookeeper.log.file=zookeeper.log
zookeeper.log.threshold=DEBUG
-zookeeper.tracelog.dir=.
+zookeeper.tracelog.dir=/var/log/zookeeper
zookeeper.tracelog.file=zookeeper_trace.log
#
@@ -56,3 +57,8 @@
log4j.appender.TRACEFILE.layout=org.apache.log4j.PatternLayout
### Notice we are including log4j's NDC here (%x)
log4j.appender.TRACEFILE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L][%x] - %m%n
+
+log4j.appender.SYSTEMD=org.apache.log4j.ConsoleAppender
+log4j.appender.SYSTEMD.Threshold=${zookeeper.systemd.threshold}
+log4j.appender.SYSTEMD.layout=org.apache.log4j.PatternLayout
+log4j.appender.SYSTEMD.layout.ConversionPattern=[myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n

View File

@ -1,14 +1,20 @@
[Unit]
Description=Zookeeper
Description=Apache ZooKeeper
After=network.target
ConditionPathExists=/etc/zookeeper/zoo.cfg
ConditionPathExists=/etc/zookeeper/log4j.properties
ConditionPathExists=/var/lib/zookeeper/data/myid
[Service]
Type=simple
Environment=JAVA_HOME=/usr/lib/jvm/jre-1.7.0
Environment=ZOO_LOG_DIR=/home/zookeeper
WorkingDirectory=/home/zookeeper/zookeeper-3.4.5
User=zookeeper
ExecStart=/home/zookeeper/zookeeper-3.4.5/bin/zkServer.sh start-foreground
SyslogIdentifier=zookeeper
WorkingDirectory=/var/lib/zookeeper
UMask=0027
Environment="CP=/etc/zookeeper:/usr/share/java/slf4j/slf4j-log4j12.jar:/usr/share/java/slf4j/slf4j-api.jar:/usr/share/java/netty.jar:/usr/share/java/log4j.jar:/usr/share/java/jline.jar:/usr/share/java/zookeeper/zookeeper.jar"
Environment="IPv6=-Djava.net.preferIPv4Stack=false -Djava.net.preferIPv6Addresses=true"
#Environment="JMX=-Dcom.sun.management.jmxremote"
ExecStart=/usr/lib/jvm/jre-1.7.0/bin/java -cp $CP $JMX $IPv6 org.apache.zookeeper.server.quorum.QuorumPeerMain /etc/zookeeper/zoo.cfg
[Install]
WantedBy=multi-user.service
WantedBy=multi-user.target

View File

@ -1,7 +1,7 @@
%global _hardened_build 1
Name: zookeeper
Version: 3.4.5
Release: 6%{?dist}
Release: 7%{?dist}
Summary: A high-performance coordination service for distributed applications
Group: Development/Libraries
License: ASL 2.0 and BSD
@ -21,6 +21,8 @@ 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
BuildRequires: autoconf
BuildRequires: automake
@ -57,6 +59,8 @@ BuildRequires: xml-commons-apis
# 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.
@ -122,6 +126,19 @@ 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
%prep
%setup -q
find -name "*.jar" -delete
@ -146,6 +163,7 @@ find -name "*.dll" -delete
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
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
@ -162,6 +180,8 @@ 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
%build
# ensure that source and target are 1.5
@ -258,15 +278,40 @@ 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
# bin/zkServer.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
%files
%{_bindir}/cli_mt
%{_bindir}/cli_st
@ -306,7 +351,23 @@ find %{buildroot} -name '*.la' -exec rm -f {} ';'
%{python_sitearch}/zookeeper.so
%doc LICENSE.txt NOTICE.txt src/contrib/zkpython/README
%files server
%attr(0750,zookeeper,zookeeper) %dir %{_sysconfdir}/zookeeper
%attr(0640,zookeeper,zookeeper) %ghost %config(noreplace) %{_sysconfdir}/zookeeper/zoo.cfg
%attr(0640,zookeeper,zookeeper) %{_sysconfdir}/zookeeper/zoo_sample.cfg
%attr(0640,zookeeper,zookeeper) %config(noreplace) %{_sysconfdir}/zookeeper/log4j.properties
%attr(0750,zookeeper,zookeeper) %dir %{_localstatedir}/log/zookeeper
%attr(0750,zookeeper,zookeeper) %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
%changelog
* Tue Jun 25 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
@ -339,4 +400,4 @@ find %{buildroot} -name '*.la' -exec rm -f {} ';'
- update to 3.4.4
* Fri May 18 2012 gil cattaneo <puntogil@libero.it> 3.4.3-1
- initial rpm
- initial rpm