Skip to content

Commit

Permalink
ZOOKEEPER-1604 remove rpm/deb/... packaging (cnauroth via phunt)
Browse files Browse the repository at this point in the history
git-svn-id: https://svn.apache.org/repos/asf/zookeeper/trunk@1733489 13f79535-47bb-0310-9956-ffa450edef68
  • Loading branch information
phunt committed Mar 3, 2016
1 parent 7b4fd66 commit 2ab0821
Show file tree
Hide file tree
Showing 22 changed files with 16 additions and 1,173 deletions.
53 changes: 16 additions & 37 deletions README_packaging.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,47 +20,26 @@ apt-get --install python-setuptools
Package build command
---------------------

Command to build Debian package: ant deb
Command to build RPM Package: ant rpm
The ZooKeeper project publishes releases as tarballs. For ZooKeeper packages
specific to your OS (such as rpm and deb), consider using Apache Bigtop:

rpm and deb packages are generated and placed in:
http://bigtop.apache.org/

build/zookeeper*.[rpm|deb]
build/contrib/**.[rpm|deb]
Command to build tarball package: ant tar

Default package file structure layout
zookeeper-<version>.tar.gz tarball file structure layout

/usr/bin - User executable
/usr/sbin - System executable
/usr/libexec - Configuration boot trap script
/usr/lib - Native libraries
/usr/share/doc/zookeeper - Documents
/usr/share/zookeeper - Project files
/usr/share/zookeeper/template/conf - Configuration template files
/etc/zookeeper - Configuration files
/etc/init.d/zookeeper - OS startup script
/bin - User executable
/sbin - System executable
/libexec - Configuration boot trap script
/lib - Library dependencies
/docs - Documents
/share/zookeeper - Project files

Source file structure layout
---------------------

src/packages/update-zookeeper-env.sh
- setup environment variables and symlink $PREFIX/etc/zookeeper to
/etc/zookeeper.
- This script is designed to run in post installation, and pre-remove
phase of ZooKeeper package.
- Run update-zookeeper-env.sh -h to get a list of supported parameters.

src/packages/template
- Standard configuration template

src/packages/deb
Meta data for creating Debian package

src/packages/deb/init.d
Daemon start/stop script for Debian flavor of Linux
Command to build tarball package with native components: ant package-native tar

src/packages/rpm
Meta data for creating RPM package
zookeeper-<version>-lib.tar.gz tarball file structure layout

src/packages/rpm/init.d
Daemon start/stop script for Redhat flavor of Linux
/bin - User executable
/lib - Native libraries
/include/zookeeper - Native library headers
174 changes: 0 additions & 174 deletions build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -171,17 +171,6 @@ xmlns:cs="antlib:com.puppycrawl.tools.checkstyle.ant">
<property name="cppunit.lib" value="/usr/lib"/>
<property name="cppunit.m4" value="/usr/share/aclocal"/>

<!-- packaging property set -->
<property name="package.release" value="1"/>
<property name="package.prefix" value="/usr"/>
<property name="package.conf.dir" value="/etc/zookeeper"/>
<property name="package.log.dir" value="/var/log/zookeeper"/>
<property name="package.pid.dir" value="/var/run/zookeeper"/>
<property name="package.var.dir" value="/var/lib/zookeeper"/>
<property name="package.share.dir" value="/share/zookeeper"/>
<property name="package.buildroot" value="/tmp/zookeeper_package_build_${user.name}"/>
<property name="package.build.dir" value="/tmp/zookeeper_package_build_${user.name}/BUILD"/>

<!-- artifact publishing property set -->
<property name="staging_repo_id" value="apache.staging.https"/>
<property name="wagon-http.version" value="2.4"/>
Expand Down Expand Up @@ -250,11 +239,6 @@ xmlns:cs="antlib:com.puppycrawl.tools.checkstyle.ant">
</fileset>
<path refid="java.classpath"/>
</path>
<path id="package.classpath">
<fileset dir="${ivy.package.lib}">
<include name="**/jdeb*.jar" />
</fileset>
</path>

<!-- ====================================================== -->
<!-- Generate and compile the Java files -->
Expand Down Expand Up @@ -836,12 +820,10 @@ xmlns:cs="antlib:com.puppycrawl.tools.checkstyle.ant">
<copy todir="${dist.dir}/share/zookeeper" includeEmptyDirs="false">
<fileset dir="${lib.dir}">
<exclude name="**/ivy*.jar" />
<exclude name="**/deb*.jar" />
</fileset>
<fileset dir="${ivy.lib}"/>
</copy>

<copy file="${basedir}/src/packages/update-zookeeper-env.sh" tofile="${dist.dir}/sbin/update-zookeeper-env.sh"/>
<subant target="package">
<!--Pass down the version in case its needed again and the target
distribution directory so contribs know where to install to.-->
Expand Down Expand Up @@ -925,16 +907,6 @@ xmlns:cs="antlib:com.puppycrawl.tools.checkstyle.ant">
<copy todir="${dist.dir}/src" includeEmptyDirs="true">
<fileset dir="src" excludes="**/*.template **/docs/build/**/* **/ivy*.jar"/>
</copy>

<copy todir="${dist.dir}/${package.share.dir}/templates/conf">
<fileset dir="src/packages/templates/conf"/>
</copy>

<copy file="${basedir}/conf/zoo_sample.cfg" tofile="${dist.dir}/${package.share.dir}/templates/conf/zoo.cfg" />
<replace file="${dist.dir}/${package.share.dir}/templates/conf/zoo.cfg">
<replacetoken>/tmp/zookeeper</replacetoken>
<replacevalue>${VAR_DIR}/data</replacevalue>
</replace>

<chmod perm="ugo+x" type="file" parallel="false">
<fileset dir="${dist.dir}/bin"/>
Expand Down Expand Up @@ -1030,151 +1002,6 @@ xmlns:cs="antlib:com.puppycrawl.tools.checkstyle.ant">
</subant>
</target>

<target name="rpm" depends="package-native, tar" description="Make rpm package">
<!--The RPM spec file format disallows hyphen in the version. Replace with
underscore to support version tags like -alpha or -SNAPSHOT.-->
<loadresource property="rpm.version">
<propertyresource name="version" />
<filterchain>
<tokenfilter>
<replacestring from="-" to="_" />
</tokenfilter>
</filterchain>
</loadresource>
<subant target="rpm">
<!--Pass down the version in case its needed again and the target
distribution directory so contribs know where to install to.-->
<property name="version" value="${version}"/>
<property name="rpm.version" value="${rpm.version}"/>
<property name="dist.dir" value="${dist.dir}"/>
<fileset file="${contrib.dir}/build.xml"/>
<fileset file="${recipes.dir}/build.xml"/>
</subant>
<path id="c.lib">
<fileset dir="${build.dir}">
<include name="${final.name}-lib.tar.gz"/>
</fileset>
</path>
<property name="c.lib" refid="c.lib"/>
<mkdir dir="${package.buildroot}/BUILD" />
<mkdir dir="${package.buildroot}/RPMS" />
<mkdir dir="${package.buildroot}/SRPMS" />
<mkdir dir="${package.buildroot}/SOURCES" />
<mkdir dir="${package.buildroot}/SPECS" />
<copy todir="${package.buildroot}/SOURCES">
<fileset dir="${build.dir}">
<include name="${final.name}.tar.gz" />
</fileset>
<fileset file="${c.lib}" />
</copy>
<copy file="${src.dir}/packages/rpm/spec/zookeeper.spec" todir="${package.buildroot}/SPECS">
<filterchain>
<replacetokens>
<token key="final.name" value="${final.name}" />
<token key="version" value="${rpm.version}" />
<token key="package.release" value="${package.release}" />
<token key="package.build.dir" value="${package.build.dir}" />
<token key="package.prefix" value="${package.prefix}" />
<token key="package.conf.dir" value="${package.conf.dir}" />
<token key="package.log.dir" value="${package.log.dir}" />
<token key="package.pid.dir" value="${package.pid.dir}" />
<token key="package.var.dir" value="${package.var.dir}" />
<token key="c.lib" value="${c.lib}" />
</replacetokens>
</filterchain>
</copy>
<rpm specFile="zookeeper.spec" command="-ba --buildroot=${package.buildroot}/BUILD" topDir="${package.buildroot}" cleanBuildDir="true" failOnError="true"
/>
<copy todir="${build.dir}/" flatten="true">
<fileset dir="${package.buildroot}/RPMS">
<include name="**/${name}*.rpm" />
</fileset>
<fileset dir="${package.buildroot}/SRPMS">
<include name="**/${name}*.rpm" />
</fileset>
</copy>
<delete dir="${package.buildroot}" quiet="true" verbose="false"/>
</target>

<target name="deb" depends="ivy-retrieve-package, package-native, tar" description="Make deb package">
<subant target="deb">
<!--Pass down the version in case its needed again and the target
distribution directory so contribs know where to install to.-->
<property name="version" value="${version}"/>
<property name="dist.dir" value="${dist.dir}"/>
<fileset file="${contrib.dir}/build.xml"/>
<fileset file="${recipes.dir}/build.xml"/>
</subant>
<taskdef name="deb" classname="org.vafer.jdeb.ant.DebAntTask">
<classpath refid="java.classpath"/>
<classpath refid="package.classpath"/>
</taskdef>

<mkdir dir="${package.build.dir}/zookeeper.control" />
<copy todir="${package.buildroot}/${package.prefix}">
<fileset dir="${build.dir}/${final.name}">
<include name="bin/**" />
<include name="conf/**" />
<include name="sbin/**" />
<include name="share/**" />
</fileset>
</copy>
<copy todir="${package.build.dir}/zookeeper.control">
<fileset dir="${src.dir}/packages/deb/zookeeper.control">
<exclude name="control" />
</fileset>
</copy>
<copy file="${src.dir}/packages/deb/zookeeper.control/control" todir="${package.build.dir}/zookeeper.control">
<filterchain>
<replacetokens>
<token key="final.name" value="${final.name}" />
<token key="version" value="${version}" />
<token key="package.release" value="${package.release}" />
<token key="package.build.dir" value="${package.build.dir}" />
<token key="package.prefix" value="${package.prefix}" />
<token key="package.conf.dir" value="${package.conf.dir}" />
<token key="package.log.dir" value="${package.log.dir}" />
<token key="package.pid.dir" value="${package.pid.dir}" />
<token key="package.var.dir" value="${package.var.dir}" />
</replacetokens>
</filterchain>
</copy>
<deb destfile="${package.buildroot}/${name}_${version}-${package.release}_${os.arch}.deb" control="${package.build.dir}/zookeeper.control">
<tarfileset dir="${build.dir}/${final.name}/share/zookeeper" filemode="644" prefix="${package.prefix}/share/zookeeper">
<include name="**" />
</tarfileset>
<tarfileset dir="${build.dir}/${final.name}/bin" filemode="755" prefix="${package.prefix}/bin">
<include name="zkCli.sh" />
</tarfileset>
<tarfileset dir="${build.dir}/${final.name}/sbin" filemode="755" prefix="${package.prefix}/sbin">
<include name="**.sh" />
</tarfileset>
<tarfileset dir="${build.dir}/${final.name}/libexec" filemode="755" prefix="${package.prefix}/libexec">
<include name="zkEnv.sh" />
</tarfileset>
<tarfileset dir="${build.dir}/c/build/${package.prefix}/include" prefix="${package.prefix}/include">
<include name="**" />
</tarfileset>
<tarfileset dir="${build.dir}/c/build/${package.prefix}/lib" filemode="755" prefix="${package.prefix}/lib">
<include name="**" />
</tarfileset>
<tarfileset dir="${build.dir}/${final.name}/conf" filemode="644" prefix="${package.conf.dir}">
<include name="**" />
</tarfileset>
<tarfileset dir="${build.dir}/${final.name}/src/packages/deb/init.d" filemode="755" prefix="/etc/init.d">
<include name="**" />
</tarfileset>
</deb>

<copy todir="${build.dir}/" flatten="true">
<fileset dir="${package.buildroot}">
<include name="**/${name}*.deb" />
</fileset>
</copy>
<delete dir="${package.buildroot}" quiet="true" verbose="false"/>

</target>

<!-- ====================================================== -->
<!-- mvn-deploy. Publishing jars to nexus -->
<!-- ====================================================== -->
Expand Down Expand Up @@ -1262,7 +1089,6 @@ xmlns:cs="antlib:com.puppycrawl.tools.checkstyle.ant">
<delete>
<fileset dir="${basedir}" includes="*.jar,*.tar.gz"/>
</delete>
<delete dir="${package.buildroot}" />
</target>

<target name="clean-contrib">
Expand Down
3 changes: 0 additions & 3 deletions ivy.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
<conf name="test"/>
<conf name="mvn-ant-task" visibility="private"/>
<conf name="optional"/> <!-- optional in generated pom -->
<conf name="package" extends="master"/>
<conf name="jdiff" visibility="private"/>
<conf name="releaseaudit" visibility="private" description="Artifacts required for releaseaudit target"/>
</configurations>
Expand All @@ -55,8 +54,6 @@
<artifact name="netty" type="jar" conf="default"/>
</dependency>

<dependency org="org.vafer" name="jdeb" rev="0.8" conf="package->master"/>

<dependency org="junit" name="junit" rev="4.12" conf="test->default"/>
<dependency org="org.mockito" name="mockito-all" rev="1.8.2"
conf="test->default"/>
Expand Down
15 changes: 0 additions & 15 deletions src/contrib/build-contrib.xml
Original file line number Diff line number Diff line change
Expand Up @@ -160,21 +160,6 @@
<echo message="contrib: ${name}"/>
</target>

<!-- ====================================================== -->
<!-- rpm a contrib's files -->
<!-- ====================================================== -->
<target name="rpm" depends="jar" unless="skip.contrib">
<echo message="contrib: ${name}"/>

</target>

<!-- ====================================================== -->
<!-- deb a contrib's files -->
<!-- ====================================================== -->
<target name="deb" depends="jar" unless="skip.contrib">
<echo message="contrib: ${name}"/>

</target>
<!-- ================================================================== -->
<!-- Clean. Delete the build files, and their directories -->
<!-- ================================================================== -->
Expand Down
18 changes: 0 additions & 18 deletions src/contrib/build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -67,22 +67,4 @@
<fileset refid="contribfileset" />
</subant>
</target>

<!-- ====================================================== -->
<!-- rpm all the contribs. -->
<!-- ====================================================== -->
<target name="rpm">
<subant target="rpm">
<fileset refid="contribfileset" />
</subant>
</target>

<!-- ====================================================== -->
<!-- deb all the contribs. -->
<!-- ====================================================== -->
<target name="deb">
<subant target="deb">
<fileset refid="contribfileset" />
</subant>
</target>
</project>
Loading

0 comments on commit 2ab0821

Please sign in to comment.