Explorar o código

YARN-207. YARN distribution build fails on Windows. Contributed by Chris Nauroth.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-trunk-win@1408422 13f79535-47bb-0310-9956-ffa450edef68
Suresh Srinivas %!s(int64=12) %!d(string=hai) anos
pai
achega
cb1777ff2e
Modificáronse 2 ficheiros con 16 adicións e 14 borrados
  1. 3 1
      hadoop-yarn-project/CHANGES.branch-trunk-win.txt
  2. 13 13
      hadoop-yarn-project/pom.xml

+ 3 - 1
hadoop-yarn-project/CHANGES.branch-trunk-win.txt

@@ -4,4 +4,6 @@ branch-trunk-win changes - unreleased
   (Chris Nauroth via suresh)
 
   YARN-176. Some YARN tests fail to find winutils. (Chris Nauroth via suresh)
-
+  
+  YARN-207. YARN distribution build fails on Windows. (Chris Nauroth via
+  suresh)

+ 13 - 13
hadoop-yarn-project/pom.xml

@@ -177,22 +177,22 @@
               <goal>run</goal>
             </goals>
             <configuration>
-              <!-- this is identical from hadoop-project-dist, eventually they must be unified -->
               <target if="tar">
-                <!-- Using Unix script to preserve symlinks -->
-                <echo file="${project.build.directory}/dist-maketar.sh">
+                <!-- This script preserves permissions and symlinks. -->
+                <!-- Python requires resetting indentation to far left. -->
+                <echo file="${project.build.directory}/dist-maketar.py">
+from os.path import join, normpath
+import tarfile
 
-                  which cygpath 2&gt; /dev/null
-                  if [ $? = 1 ]; then
-                    BUILD_DIR="${project.build.directory}"
-                  else
-                    BUILD_DIR=`cygpath --unix '${project.build.directory}'`
-                  fi
-                  cd $BUILD_DIR
-                  tar czf ${project.artifactId}-${project.version}.tar.gz ${project.artifactId}-${project.version}
+base_name = "${project.artifactId}" + "-" + "${project.version}"
+dir_name = normpath(join(r"${project.build.directory}", base_name))
+tar_name = dir_name + ".tar.gz"
+
+with tarfile.open(tar_name, "w:gz") as tar:
+  tar.add(dir_name, arcname=base_name)
                 </echo>
-                <exec executable="sh" dir="${project.build.directory}" failonerror="true">
-                  <arg line="./dist-maketar.sh"/>
+                <exec executable="python" dir="${project.build.directory}" failonerror="true">
+                  <arg value="dist-maketar.py" />
                 </exec>
               </target>
             </configuration>