Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-9397

TarArchiver and ZipArchiver don't preserve file permissions

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • core
    • None

      This is definitely true for zips, and I think it's true for tars as well - when we're creating tarballs and zipfiles, we're not actually looking at the permissions/unix mode on the files and directories going into them. As a result, the tars/zips we've created have no useful permissions set. This is particularly annoying with the clone workspace SCM plugin, where files may need to be executable for the downstream to work properly.

          [JENKINS-9397] TarArchiver and ZipArchiver don't preserve file permissions

          Andrew Bayer created issue -
          Andrew Bayer made changes -
          Link New: This issue is blocking JENKINS-2572 [ JENKINS-2572 ]
          Andrew Bayer made changes -
          Link New: This issue is blocking JENKINS-8677 [ JENKINS-8677 ]
          Andrew Bayer made changes -
          Link New: This issue is blocking JENKINS-8140 [ JENKINS-8140 ]

          Code changed in jenkins
          User: Andrew Bayer
          Path:
          core/src/main/java/hudson/util/io/Archiver.java
          core/src/main/java/hudson/util/io/TarArchiver.java
          core/src/main/java/hudson/util/io/ZipArchiver.java
          http://jenkins-ci.org/commit/jenkins/00485b3188236f17b4962790945ae3218de98d09
          Log:
          [FIXED JENKINS-9397] Added convenience method to hudson.util.io.Archiver to get the Unix mode (if appropriate) for a file, and modified TarArchiver and ZipArchiver to utilise this to get and set the Unix mode for files whent they're being archived.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Andrew Bayer Path: core/src/main/java/hudson/util/io/Archiver.java core/src/main/java/hudson/util/io/TarArchiver.java core/src/main/java/hudson/util/io/ZipArchiver.java http://jenkins-ci.org/commit/jenkins/00485b3188236f17b4962790945ae3218de98d09 Log: [FIXED JENKINS-9397] Added convenience method to hudson.util.io.Archiver to get the Unix mode (if appropriate) for a file, and modified TarArchiver and ZipArchiver to utilise this to get and set the Unix mode for files whent they're being archived.
          SCM/JIRA link daemon made changes -
          Resolution New: Fixed [ 1 ]
          Status Original: Open [ 1 ] New: Resolved [ 5 ]

          Code changed in jenkins
          User: Kohsuke Kawaguchi
          Path:
          core/src/main/java/hudson/FilePath.java
          core/src/main/java/hudson/util/IOUtils.java
          core/src/main/java/hudson/util/io/Archiver.java
          core/src/main/java/hudson/util/io/TarArchiver.java
          core/src/main/java/hudson/util/io/ZipArchiver.java
          core/src/test/java/hudson/util/io/TarArchiverTest.java
          http://jenkins-ci.org/commit/jenkins/6577d788b91a19791b6684ddeccbc50c9c563a78
          Log:
          [FIXED JENKINS-9397] fixed a bug in the implementation, added tests.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Kohsuke Kawaguchi Path: core/src/main/java/hudson/FilePath.java core/src/main/java/hudson/util/IOUtils.java core/src/main/java/hudson/util/io/Archiver.java core/src/main/java/hudson/util/io/TarArchiver.java core/src/main/java/hudson/util/io/ZipArchiver.java core/src/test/java/hudson/util/io/TarArchiverTest.java http://jenkins-ci.org/commit/jenkins/6577d788b91a19791b6684ddeccbc50c9c563a78 Log: [FIXED JENKINS-9397] fixed a bug in the implementation, added tests.

          Code changed in jenkins
          User: Kohsuke Kawaguchi
          Path:
          changelog.html
          http://jenkins-ci.org/commit/jenkins/ad92ad461159ea3320da15f9d7030cdd12d83cee
          Log:
          JENKINS-9397 recording the change

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Kohsuke Kawaguchi Path: changelog.html http://jenkins-ci.org/commit/jenkins/ad92ad461159ea3320da15f9d7030cdd12d83cee Log: JENKINS-9397 recording the change

          dogfood added a comment -

          Integrated in jenkins_main_trunk #696
          [FIXED JENKINS-9397] Added convenience method to hudson.util.io.Archiver to get the Unix mode (if appropriate) for a file, and modified TarArchiver and ZipArchiver to utilise this to get and set the Unix mode for files whent they're being archived.
          [FIXED JENKINS-9397] fixed a bug in the implementation, added tests.
          JENKINS-9397 recording the change

          Kohsuke Kawaguchi : 00485b3188236f17b4962790945ae3218de98d09
          Files :

          • core/src/main/java/hudson/util/io/Archiver.java
          • core/src/main/java/hudson/util/io/ZipArchiver.java
          • core/src/main/java/hudson/util/io/TarArchiver.java

          Kohsuke Kawaguchi : 6577d788b91a19791b6684ddeccbc50c9c563a78
          Files :

          • core/src/test/java/hudson/util/io/TarArchiverTest.java
          • core/src/main/java/hudson/util/IOUtils.java
          • core/src/main/java/hudson/util/io/ZipArchiver.java
          • core/src/main/java/hudson/FilePath.java
          • core/src/main/java/hudson/util/io/Archiver.java
          • core/src/main/java/hudson/util/io/TarArchiver.java

          Kohsuke Kawaguchi : ad92ad461159ea3320da15f9d7030cdd12d83cee
          Files :

          • changelog.html

          dogfood added a comment - Integrated in jenkins_main_trunk #696 [FIXED JENKINS-9397] Added convenience method to hudson.util.io.Archiver to get the Unix mode (if appropriate) for a file, and modified TarArchiver and ZipArchiver to utilise this to get and set the Unix mode for files whent they're being archived. [FIXED JENKINS-9397] fixed a bug in the implementation, added tests. JENKINS-9397 recording the change Kohsuke Kawaguchi : 00485b3188236f17b4962790945ae3218de98d09 Files : core/src/main/java/hudson/util/io/Archiver.java core/src/main/java/hudson/util/io/ZipArchiver.java core/src/main/java/hudson/util/io/TarArchiver.java Kohsuke Kawaguchi : 6577d788b91a19791b6684ddeccbc50c9c563a78 Files : core/src/test/java/hudson/util/io/TarArchiverTest.java core/src/main/java/hudson/util/IOUtils.java core/src/main/java/hudson/util/io/ZipArchiver.java core/src/main/java/hudson/FilePath.java core/src/main/java/hudson/util/io/Archiver.java core/src/main/java/hudson/util/io/TarArchiver.java Kohsuke Kawaguchi : ad92ad461159ea3320da15f9d7030cdd12d83cee Files : changelog.html

          Owen Mehegan added a comment - - edited

          I don't think this is fixed. I upgraded to 1.410 of Jenkins and 0.3 of the Clone Workspace plugin, but executable permissions on my files are still stripped after they are cloned.

          I set up a super simple test of this:
          1. Build 1 creates a file, runs chmod a+x on it, runs 'ls -l' so I can verify the file's perms in the console log, then archives the workspace and calls Build 2.
          2. Build 2 uses the Clone Workspace SCM option and pulls in the archived files, then runs an 'ls -l' on them.

          Before:

          -rwxr-xr-x 1 br br 0 2011-05-03 22:59 owen_test

          After:

          -rw-r--r-- 1 br br 0 2011-05-03 22:59 owen_test

          Owen Mehegan added a comment - - edited I don't think this is fixed. I upgraded to 1.410 of Jenkins and 0.3 of the Clone Workspace plugin, but executable permissions on my files are still stripped after they are cloned. I set up a super simple test of this: 1. Build 1 creates a file, runs chmod a+x on it, runs 'ls -l' so I can verify the file's perms in the console log, then archives the workspace and calls Build 2. 2. Build 2 uses the Clone Workspace SCM option and pulls in the archived files, then runs an 'ls -l' on them. Before: -rwxr-xr-x 1 br br 0 2011-05-03 22:59 owen_test After: -rw-r--r-- 1 br br 0 2011-05-03 22:59 owen_test
          Owen Mehegan made changes -
          Resolution Original: Fixed [ 1 ]
          Status Original: Resolved [ 5 ] New: Reopened [ 4 ]

            abayer Andrew Bayer
            abayer Andrew Bayer
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: