You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by da...@apache.org on 2011/08/10 20:08:43 UTC
svn commit: r1156287 - in /pig/branches/branch-0.9: CHANGES.txt bin/pig
build.xml ivy.xml ivy/libraries.properties
Author: daijy
Date: Wed Aug 10 18:08:42 2011
New Revision: 1156287
URL: http://svn.apache.org/viewvc?rev=1156287&view=rev
Log:
PIG-1857: Create an package integration project
Modified:
pig/branches/branch-0.9/CHANGES.txt
pig/branches/branch-0.9/bin/pig
pig/branches/branch-0.9/build.xml
pig/branches/branch-0.9/ivy.xml
pig/branches/branch-0.9/ivy/libraries.properties
Modified: pig/branches/branch-0.9/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.9/CHANGES.txt?rev=1156287&r1=1156286&r2=1156287&view=diff
==============================================================================
--- pig/branches/branch-0.9/CHANGES.txt (original)
+++ pig/branches/branch-0.9/CHANGES.txt Wed Aug 10 18:08:42 2011
@@ -34,6 +34,8 @@ PIG-1876: Typed map for Pig (daijy)
IMPROVEMENTS
+PIG-1857: Create an package integration project (eyang via daijy)
+
PIG-2129: NOTICE file needs updates (gates via olgan)
PIG-536: the shell script 'pig' does not work if PIG_HOME has the word 'hadoop' in it's directory (miguno via olgan)
Modified: pig/branches/branch-0.9/bin/pig
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.9/bin/pig?rev=1156287&r1=1156286&r2=1156287&view=diff
==============================================================================
--- pig/branches/branch-0.9/bin/pig (original)
+++ pig/branches/branch-0.9/bin/pig Wed Aug 10 18:08:42 2011
@@ -56,20 +56,10 @@ done
# resolve links - $0 may be a softlink
this="${BASH_SOURCE-$0}"
-while [ -h "$this" ]; do
- ls=`ls -ld "$this"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '.*/.*' > /dev/null; then
- this="$link"
- else
- this=`dirname "$this"`/"$link"
- fi
-done
# convert relative path to absolute path
-bin=`dirname "$this"`
-script=`basename "$this"`
-bin=`unset CDPATH; cd "$bin"; pwd`
+bin=$(cd -P -- "$(dirname -- "$this")" && pwd -P)
+script="$(basename -- "$this")"
this="$bin/$script"
# the root of the Pig installation
@@ -86,9 +76,9 @@ then
PIG_CONF_DIR=$confdir
fi
fi
-
+
# Allow alternate conf dir location.
-PIG_CONF_DIR="${PIG_CONF_DIR:-$PIG_HOME/conf}"
+PIG_CONF_DIR="${PIG_CONF_DIR:-$PIG_HOME/etc/pig}"
if [ -f "${PIG_CONF_DIR}/pig-env.sh" ]; then
. "${PIG_CONF_DIR}/pig-env.sh"
@@ -117,6 +107,11 @@ fi
CLASSPATH="${PIG_CONF_DIR}"
CLASSPATH=${CLASSPATH}:$JAVA_HOME/lib/tools.jar
+# add user-specified CLASSPATH
+if [ "$PIG_CLASSPATH" != "" ]; then
+ CLASSPATH=${CLASSPATH}:${PIG_CLASSPATH}
+fi
+
# for developers, add Pig classes to CLASSPATH
if [ -d "$PIG_HOME/build/classes" ]; then
CLASSPATH=${CLASSPATH}:$PIG_HOME/build/classes
@@ -129,7 +124,7 @@ fi
IFS=
# for releases, add core pig to CLASSPATH
-for f in $PIG_HOME/pig-*-core.jar; do
+for f in $PIG_HOME/share/pig/pig-*-core.jar; do
CLASSPATH=${CLASSPATH}:$f;
done
@@ -138,7 +133,58 @@ for f in $PIG_HOME/build/pig-*-SNAPSHOT.
CLASSPATH=${CLASSPATH}:$f;
done
-# Set the version for Hadoop, default to 17
+# locate Hadoop
+# For Hadoop 0.20.203+
+#
+if [ -d "${PIG_HOME}/share/hadoop" ]; then
+ for f in ${PIG_HOME}/share/hadoop/hadoop*.jar; do
+ CLASSPATH=${CLASSPATH}:$f;
+ done
+ for f in ${PIG_HOME}/share/hadoop/lib/*.jar; do
+ CLASSPATH=${CLASSPATH}:$f;
+ done
+fi
+
+
+# For Hadoop 0.23.0+
+#
+#if [ -d "${PIG_HOME}/share/hadoop/common" ]; then
+# for f in ${PIG_HOME}/share/hadoop/common/hadoop*.jar; do
+# CLASSPATH=${CLASSPATH}:$f;
+# done
+#fi
+#
+#if [ -d "${PIG_HOME}/share/hadoop/hdfs" ]; then
+# for f in ${PIG_HOME}/share/hadoop/hdfs/hadoop*.jar; do
+# CLASSPATH=${CLASSPATH}:$f;
+# done
+#fi
+#
+#if [ -d "${PIG_HOME}/share/hadoop/mapreduce" ]; then
+# for f in ${PIG_HOME}/share/hadoop/mapreduce/hadoop*.jar; do
+# CLASSPATH=${CLASSPATH}:$f;
+# done
+#fi
+
+if [ -d "${PIG_HOME}/etc/hadoop" ]; then
+ CLASSPATH=${CLASSPATH}:${PIG_HOME}/etc/hadoop;
+fi
+
+# locate ZooKeeper
+if [ -d "${PIG_HOME}/share/zookeeper" ]; then
+ for f in ${PIG_HOME}/share/zookeeper/zookeeper-*.jar; do
+ CLASSPATH=${CLASSPATH}:$f
+ done
+fi
+
+# locate HBase
+if [ -d "${PIG_HOME}/share/hbase" ]; then
+ for f in ${PIG_HOME}/share/hbase/hbase-*.jar; do
+ CLASSPATH=${CLASSPATH}:$f
+ done
+fi
+
+# Set the version for Hadoop, default to 20
PIG_HADOOP_VERSION="${PIG_HADOOP_VERSION:-20}"
# add libs to CLASSPATH. There can be more than one version of the hadoop
# libraries in the lib dir, so don't blindly add them all. Only add the one
@@ -159,12 +205,7 @@ done
# if using HBase, likely want to include HBase config
HBASE_CONF_DIR=${HBASE_CONF_DIR:-/etc/hbase}
if [ -n "$HBASE_CONF_DIR" ] && [ -d "$HBASE_CONF_DIR" ]; then
- CLASSPATH=$HBASE_CONF_DIR:$CLASSPATH
-fi
-
-# add user-specified CLASSPATH last
-if [ "$PIG_CLASSPATH" != "" ]; then
- CLASSPATH=${CLASSPATH}:${PIG_CLASSPATH}
+ CLASSPATH=$HBASE_CONF_DIR:$CLASSPATH
fi
# default log directory & file
Modified: pig/branches/branch-0.9/build.xml
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.9/build.xml?rev=1156287&r1=1156286&r2=1156287&view=diff
==============================================================================
--- pig/branches/branch-0.9/build.xml (original)
+++ pig/branches/branch-0.9/build.xml Wed Aug 10 18:08:42 2011
@@ -200,6 +200,14 @@
<property name="jdiff.stable" value="0.8.1"/>
<property name="jdiff.stable.javadoc" value="http://hadoop.apache.org/${name}/docs/r${jdiff.stable}/api/"/>
+ <!-- Packaging properties -->
+ <property name="package.release" value="1"/>
+ <property name="package.prefix" value="/usr"/>
+ <property name="package.conf.dir" value="/etc/pig"/>
+ <property name="package.log.dir" value="/var/log/pig"/>
+ <property name="package.buildroot" value="/tmp/pig_package_build_${user.name}"/>
+ <property name="package.build.dir" value="/tmp/pig_package_build_${user.name}/BUILD"/>
+
<!-- ====================================================== -->
<!-- Stuff needed by all targets -->
<!-- ====================================================== -->
@@ -426,7 +434,7 @@
<!-- ================================================================== -->
<!-- Documentation -->
<!-- ================================================================== -->
- <target name="javadoc" depends="jar, ivy-javadoc" description="Create documentation">
+ <target name="javadoc" depends="jar-withouthadoop, ivy-javadoc" description="Create documentation">
<mkdir dir="${build.javadoc}" />
<javadoc overview="${src.dir}/overview.html" packagenames="org.apache.pig.*" destdir="${build.javadoc}" author="true" version="true" use="true" windowtitle="${Name} ${version} API" doctitle="${Name} ${version} API" bottom="Copyright &copy; ${year} The Apache Software Foundation">
<packageset dir="${src.dir}" />
@@ -757,78 +765,83 @@
<!-- ================================================================== -->
<target name="package" depends="docs, api-report" description="Create a Pig release">
<mkdir dir="${dist.dir}" />
- <mkdir dir="${dist.dir}/lib" />
- <mkdir dir="${dist.dir}/conf" />
- <mkdir dir="${dist.dir}/scripts" />
- <mkdir dir="${dist.dir}/docs" />
- <mkdir dir="${dist.dir}/docs/api" />
- <mkdir dir="${dist.dir}/docs/jdiff"/>
- <mkdir dir="${dist.dir}/license" />
+ <mkdir dir="${dist.dir}/etc/pig" />
+ <mkdir dir="${dist.dir}/share/pig/scripts" />
+ <mkdir dir="${dist.dir}/share/pig/templates/conf" />
+ <mkdir dir="${dist.dir}/share/doc/pig" />
+ <mkdir dir="${dist.dir}/share/doc/pig/api" />
+ <mkdir dir="${dist.dir}/share/doc/pig/jdiff"/>
+ <mkdir dir="${dist.dir}/share/doc/pig/license" />
- <copy todir="${dist.dir}/lib" includeEmptyDirs="false">
+ <copy todir="${dist.dir}/share/pig/lib" includeEmptyDirs="false">
<!--fileset dir="${ivy.lib.dir}"/-->
<fileset dir="${lib.dir}"/>
</copy>
- <copy file="${output.jarfile.backcompat}" tofile="${dist.dir}/${final.name}-core.jar" />
-
- <copy todir="${dist.dir}/" file="ivy.xml" />
-
- <copy todir="${dist.dir}/ivy">
- <fileset dir="ivy" />
- </copy>
+ <copy file="${output.jarfile.backcompat}" tofile="${dist.dir}/share/pig/${final.name}-core.jar" />
<copy todir="${dist.dir}/bin">
<fileset dir="bin" />
</copy>
- <copy todir="${dist.dir}/docs">
+ <copy todir="${dist.dir}/share/doc/pig">
<fileset dir="${build.docs}" />
</copy>
- <copy todir="${dist.dir}/conf" file="conf/pig.properties"/>
+ <copy todir="${dist.dir}/etc/pig" file="conf/pig.properties"/>
- <copy todir="${dist.dir}/src" includeEmptyDirs="true">
- <fileset dir="${src.dir}" />
- </copy>
-
- <copy todir="${dist.dir}/lib-src" includeEmptyDirs="true">
- <fileset dir="${src.lib.dir}" />
- </copy>
-
- <copy todir="${dist.dir}/test" includeEmptyDirs="true">
+ <copy todir="${dist.dir}/share/pig/test" includeEmptyDirs="true">
<fileset dir="${test.src.dir}" />
</copy>
- <copy todir="${dist.dir}/tutorial" includeEmptyDirs="true">
+ <copy todir="${dist.dir}/share/pig/tutorial" includeEmptyDirs="true">
<fileset dir="tutorial" />
</copy>
- <copy todir="${dist.dir}/contrib" includeEmptyDirs="true">
+ <copy todir="${dist.dir}/share/pig/contrib" includeEmptyDirs="true">
<fileset dir="contrib" />
</copy>
- <copy todir="${dist.dir}/" file="build.xml" />
-
- <copy todir="${dist.dir}">
+ <copy todir="${dist.dir}/share/doc/pig">
<fileset dir=".">
<include name="*.txt" />
</fileset>
</copy>
- <copy todir="${dist.dir}/license">
+ <copy todir="${dist.dir}/share/doc/pig/license">
<fileset dir="license" />
</copy>
+ <copy todir="${dist.dir}/share/pig/templates/conf">
+ <fileset dir="src/packages/templates/conf"/>
+ </copy>
+
<chmod perm="ugo+x" type="file">
<fileset dir="${dist.dir}/bin" />
</chmod>
+ <copy file="${basedir}/src/packages/update-pig-env.sh" tofile="${dist.dir}/sbin/update-pig-env.sh"/>
+
</target>
<!-- ================================================================== -->
- <!-- Make release tarball -->
+ <!-- Make release packages -->
<!-- ================================================================== -->
+ <target name="source" description="Source distribution">
+ <mkdir dir="${build.dir}"/>
+ <tar compression="gzip" longfile="gnu" destfile="${build.dir}/${name}-source-${version}.tar.gz">
+ <tarfileset dir="${basedir}" mode="644">
+ <exclude name="bin/*"/>
+ <exclude name="build/**"/>
+ <exclude name="pig.jar"/>
+ <exclude name="src-gen/**"/>
+ </tarfileset>
+ <tarfileset dir="${basedir}" mode="755">
+ <include name="bin/*"/>
+ </tarfileset>
+ </tar>
+ </target>
+
<target name="tar" depends="package" description="Create release tarball">
<tar compression="gzip" longfile="gnu" destfile="${build.dir}/${final.name}.tar.gz">
<tarfileset dir="${build.dir}" mode="664">
@@ -840,7 +853,94 @@
</tarfileset>
</tar>
</target>
+
+ <target name="rpm" depends="jar-withouthadoop, tar" description="Make rpm package">
+ <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" />
+ <include name="${final.name}-withouthadoop.jar" />
+ </fileset>
+ </copy>
+ <copy file="${src.dir}/packages/rpm/spec/pig.spec" todir="${package.buildroot}/SPECS">
+ <filterchain>
+ <replacetokens>
+ <token key="final.name" value="${final.name}" />
+ <token key="version" value="${pig.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}" />
+ </replacetokens>
+ </filterchain>
+ </copy>
+ <rpm specFile="pig.spec" command="-bb" 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="jar-withouthadoop, tar" description="Make deb package">
+ <taskdef name="deb"
+ classname="org.vafer.jdeb.ant.DebAntTask">
+ <classpath refid="classpath" />
+ </taskdef>
+ <mkdir dir="${package.build.dir}/pig.control" />
+ <copy todir="${package.build.dir}/pig.control">
+ <fileset dir="${src.dir}/packages/deb/pig.control">
+ <exclude name="control" />
+ </fileset>
+ </copy>
+ <copy file="${build.dir}/${final.name}-withouthadoop.jar" tofile="${build.dir}/${final.name}/share/pig/${final.name}-core.jar" overwrite="true" />
+ <copy file="${src.dir}/packages/deb/pig.control/control" todir="${package.build.dir}/pig.control">
+ <filterchain>
+ <replacetokens>
+ <token key="final.name" value="${final.name}" />
+ <token key="version" value="${pig.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}" />
+ </replacetokens>
+ </filterchain>
+ </copy>
+ <deb destfile="${package.buildroot}/${name}_${pig.version}-${package.release}_${os.arch}.deb" control="${package.build.dir}/pig.control">
+ <tarfileset dir="${build.dir}/${final.name}" filemode="644" prefix="/usr">
+ <exclude name="bin/*" />
+ <exclude name="conf" />
+ <exclude name="conf/*" />
+ <exclude name="etc/**" />
+ <include name="**" />
+ </tarfileset>
+ <tarfileset dir="${build.dir}/${final.name}" filemode="755" prefix="/usr">
+ <include name="bin/*" />
+ <include name="sbin/*" />
+ </tarfileset>
+ <tarfileset dir="${build.dir}/${final.name}/etc/pig" filemode="644" prefix="/etc/pig">
+ <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>
+
<!-- ================================================================== -->
<!-- Findbugs -->
<!-- ================================================================== -->
Modified: pig/branches/branch-0.9/ivy.xml
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.9/ivy.xml?rev=1156287&r1=1156286&r2=1156287&view=diff
==============================================================================
--- pig/branches/branch-0.9/ivy.xml (original)
+++ pig/branches/branch-0.9/ivy.xml Wed Aug 10 18:08:42 2011
@@ -126,5 +126,8 @@
<dependency org="hsqldb" name="hsqldb" rev="${hsqldb.version}"
conf="test->default" />
+ <dependency org="org.vafer" name="jdeb" rev="${jdeb.version}"
+ conf="compile->master">
+ </dependency>
</dependencies>
</ivy-module>
Modified: pig/branches/branch-0.9/ivy/libraries.properties
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.9/ivy/libraries.properties?rev=1156287&r1=1156286&r2=1156287&view=diff
==============================================================================
--- pig/branches/branch-0.9/ivy/libraries.properties (original)
+++ pig/branches/branch-0.9/ivy/libraries.properties Wed Aug 10 18:08:42 2011
@@ -16,7 +16,7 @@
#These are the versions of our dependencies (in alphabetical order)
apacheant.version=1.7.1
antlr.version=2.7.6
-pig.version=0.8.0
+pig.version=0.9.0
avro.version=1.4.1
commons-beanutils.version=1.7.0
@@ -33,6 +33,7 @@ hbase.version=0.90.0
hsqldb.version=1.8.0.10
jackson.version=1.6.0
javacc.version=4.2
+jdeb.version=0.8
jdiff.version=1.0.9
jetty-util.version=6.1.14
jline.version=0.9.94