Skip to content

Commit f42194b

Browse files
authored
MASSEMBLY-941 keep file permission in Reproducible mode (#96)
[MASSEMBLY-941] keep file permission in Reproducible mode
1 parent 1336ea7 commit f42194b

File tree

6 files changed

+103
-10
lines changed

6 files changed

+103
-10
lines changed

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ under the License.
3030
</parent>
3131

3232
<artifactId>maven-assembly-plugin</artifactId>
33-
<version>3.4.3-SNAPSHOT</version>
33+
<version>3.5.0-SNAPSHOT</version>
3434
<packaging>maven-plugin</packaging>
3535

3636
<name>Apache Maven Assembly Plugin</name>
@@ -175,7 +175,7 @@ under the License.
175175
<dependency>
176176
<groupId>org.codehaus.plexus</groupId>
177177
<artifactId>plexus-archiver</artifactId>
178-
<version>4.4.0</version>
178+
<version>4.6.0</version>
179179
</dependency>
180180
<dependency>
181181
<groupId>org.apache.maven</groupId>

src/it/projects/reproducible/src/assemble/src.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,17 @@ under the License.
3131
<fileSets>
3232
<fileSet>
3333
<outputDirectory></outputDirectory>
34-
<directory>src</directory>
34+
<directory>src/main/resources</directory>
3535
<filtered>true</filtered>
3636
<lineEnding>lf</lineEnding>
3737
</fileSet>
3838
</fileSets>
39-
<files>
39+
<!--files>
4040
<file>
4141
<source>src/main/resources/executable.txt</source>
4242
<fileMode>0755</fileMode>
4343
<filtered>true</filtered>
4444
<lineEnding>lf</lineEnding>
4545
</file>
46-
</files>
46+
</files-->
4747
</assembly>

src/it/projects/reproducible/verify.groovy

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,31 @@
1818
* under the License.
1919
*/
2020

21-
//import java.util.zip.*;
22-
import org.apache.commons.compress.archivers.zip.*;
21+
//import java.util.zip.*
22+
import org.apache.commons.compress.archivers.zip.*
2323

2424
File deployDir = new File( basedir, 'target/repo/org/apache/maven/its/reproducible/1.0' )
2525

2626
assert deployDir.exists()
2727

28-
assert new File( deployDir, 'reproducible-1.0-src.zip.sha1' ).text == '5ce34fc133d47cbc9c81195877dbe10b9ec7d864'
29-
assert new File( deployDir, 'reproducible-1.0-src.tar.sha1' ).text == '0b9dc1da069705a93b4954a198c18bd248822bf8'
30-
assert new File( deployDir, 'reproducible-1.0-src.jar.sha1' ).text == '289cb3ecd418b8099deefb930dc7aa39c06888cb'
28+
ZipFile zip = new ZipFile( new File( deployDir, "reproducible-1.0-src.zip" ) )
29+
StringBuilder sb = new StringBuilder()
30+
for( ZipArchiveEntry entry : zip.getEntries() )
31+
{
32+
sb.append( String.format("%o %s\n", entry.getUnixMode(), entry.getName() ) )
33+
}
34+
for( String type : [ "zip", "jar", "tar" ] )
35+
{
36+
String name = "reproducible-1.0-src." + type + ".sha1"
37+
sb.append( String.format("%s %s\n", new File( deployDir, name ).text, name ) )
38+
}
39+
40+
effective = sb.toString()
41+
42+
// 3 different reference results:
43+
// 1. Windows does not support executable flag
44+
// 2. on *nix, based on system configuration, group flag differs
45+
reference = "zip-content-" + ( effective.contains( "644 executable" ) ? "win" : effective.contains( "0775" ) ? "775" : "755" ) + ".txt"
46+
content = new File( basedir, reference ).text.replace( "\r\n", "\n" )
47+
48+
assert content == effective
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
40755 dir-A/
2+
40755 dir-C/
3+
40755 dir-b/
4+
40755 dir-b/B2/
5+
40755 dir-b/B4/
6+
40755 dir-b/b1/
7+
40755 dir-b/b3/
8+
40755 dir-d/
9+
100644 Uppercase.txt
10+
100644 dir-A/A2.txt
11+
100644 dir-A/A4.txt
12+
100644 dir-A/a1.txt
13+
100644 dir-A/a3.txt
14+
100644 dir-C/C.txt
15+
100644 dir-b/B2/B2.txt
16+
100644 dir-b/B4/B4.txt
17+
100644 dir-b/b.txt
18+
100644 dir-b/b1/b1.txt
19+
100644 dir-b/b3/b3.txt
20+
100644 dir-d/d.txt
21+
100755 executable.txt
22+
100644 lowercase.txt
23+
97d0ea3b4a87cd3ea78edd1c3c25914d69ea97f3 reproducible-1.0-src.zip.sha1
24+
a0c4cf1ed244e60221e12367f50ff676066b8e65 reproducible-1.0-src.jar.sha1
25+
bf93dd529253157352b87097d9d23eba8c9ca61a reproducible-1.0-src.tar.sha1
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
40775 dir-A/
2+
40775 dir-C/
3+
40775 dir-b/
4+
40775 dir-b/B2/
5+
40775 dir-b/B4/
6+
40775 dir-b/b1/
7+
40775 dir-b/b3/
8+
40775 dir-d/
9+
100664 Uppercase.txt
10+
100664 dir-A/A2.txt
11+
100664 dir-A/A4.txt
12+
100664 dir-A/a1.txt
13+
100664 dir-A/a3.txt
14+
100664 dir-C/C.txt
15+
100664 dir-b/B2/B2.txt
16+
100664 dir-b/B4/B4.txt
17+
100664 dir-b/b.txt
18+
100664 dir-b/b1/b1.txt
19+
100664 dir-b/b3/b3.txt
20+
100664 dir-d/d.txt
21+
100775 executable.txt
22+
100664 lowercase.txt
23+
50116502c6107740c2a35ef296b5abda08c5dec7 reproducible-1.0-src.zip.sha1
24+
cc7e3a984179f63d6b37bc86c61e9cc461c62288 reproducible-1.0-src.jar.sha1
25+
3efc10ec9c3099ba061e58d5b2a935ba643da237 reproducible-1.0-src.tar.sha1
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
40755 dir-A/
2+
40755 dir-C/
3+
40755 dir-b/
4+
40755 dir-b/B2/
5+
40755 dir-b/B4/
6+
40755 dir-b/b1/
7+
40755 dir-b/b3/
8+
40755 dir-d/
9+
100644 Uppercase.txt
10+
100644 dir-A/A2.txt
11+
100644 dir-A/A4.txt
12+
100644 dir-A/a1.txt
13+
100644 dir-A/a3.txt
14+
100644 dir-C/C.txt
15+
100644 dir-b/B2/B2.txt
16+
100644 dir-b/B4/B4.txt
17+
100644 dir-b/b.txt
18+
100644 dir-b/b1/b1.txt
19+
100644 dir-b/b3/b3.txt
20+
100644 dir-d/d.txt
21+
100644 executable.txt
22+
100644 lowercase.txt
23+
cb1dc226d702733bfa405b7090b74ab7e77bf39e reproducible-1.0-src.zip.sha1
24+
3b31d88a36985f526fb3fe6ba5987387e4887f23 reproducible-1.0-src.jar.sha1
25+
b85f960069d6a444f928a87761b63fde60ea687d reproducible-1.0-src.tar.sha1

0 commit comments

Comments
 (0)