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 &amp;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