[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2023-02-23 Thread Herve Boutemy (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17693030#comment-17693030
 ] 

Herve Boutemy commented on MASSEMBLY-941:
-

notice: ASF and GH Cis currently don't seem to have any *nix agents that use 
this 022 umask, but only the classical 002

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Assignee: Herve Boutemy
>Priority: Critical
> Fix For: 3.5.0
>
>
> Since MASSEMBLY-921 in 3.2.0, existing file permissions seem to be ignored 
> when creating a tarball assembly, and files stored in the assembly do not 
> have their original file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2023-02-23 Thread Herve Boutemy (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17693029#comment-17693029
 ] 

Herve Boutemy commented on MASSEMBLY-941:
-

{quote}Or just, encouraging more standard use of 0022 for everybody.{quote}

it's funny how this new 0022 is called "more standard", when until 2022, 002 
was the norm everywhere: 002 would be what I'd call the "more standard", and 
eventually 0022 could be called "better standard" by people now engaged into 
securing more aggressively

The fact is that some tests done by one Maven dev using his machines upgraded 
from Fedora 36 to Fedora 37 already shows failing reproducible IT for 
maven-assembly-plugin, associated to the switch from Fedora from classical 002 
to new 022 that seems to be partially applied (and sometimes, the results looks 
more randomly applied than only partially)

While I perfectly understand why people wanted this issue to be solved, to 
respect filesystem permissions, I fear what I'll see in terms of reproducible 
builds for people using these new setups... But that's life, I hope that after 
the hard time we have during the default umask change in the market, we'll get 
something reasonably reproducible in the future

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Assignee: Herve Boutemy
>Priority: Critical
> Fix For: 3.5.0
>
>
> Since MASSEMBLY-921 in 3.2.0, existing file permissions seem to be ignored 
> when creating a tarball assembly, and files stored in the assembly do not 
> have their original file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2023-02-05 Thread Christopher Tubbs (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17684482#comment-17684482
 ] 

Christopher Tubbs commented on MASSEMBLY-941:
-

One git-specific solution might be to detect that the plugin is running on 
files contained within a git repository, and instead of using the 
filesystem-detected permissions, just ignore those and use the git-metadata for 
the file, {{git ls-files -s path/to/file | cut -c 3-6}}. Or still detect the 
executable flag from the filesystem, but preserving it precisely, simplify it 
to either 644 or 755, knowing that's all the granularity that git could have 
preserved.

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Assignee: Herve Boutemy
>Priority: Critical
> Fix For: next-release
>
>
> Since MASSEMBLY-921 in 3.2.0, existing file permissions seem to be ignored 
> when creating a tarball assembly, and files stored in the assembly do not 
> have their original file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2023-02-05 Thread Christopher Tubbs (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17684479#comment-17684479
 ] 

Christopher Tubbs commented on MASSEMBLY-941:
-

{quote}
FYI, here is an example of different build results: by default, my local env 
has umask 002, but reference build was done with umask 022 => I had to add the 
umask requirement to rebuild with success the affected artifact 
https://github.com/jvm-repo-rebuild/reproducible-central/commit/626485c96d069fea2107a8162e8f388b358ebb67
{quote}

Thanks for the link, and the explanation. I think that helps clarify a lot of 
the questions I had about how users might be impacted by this. In my mind, I 
was thinking it would only matter if unpacking a source tarball (which could be 
set to preserve permissions and ignore umask), but your example shows that 
another use case is checking out a git branch with umask set. Unfortunately, 
git doesn't have an option to ignore umask and use the permissions stored in 
the repository. Besides that, it only stores either 644 or 755 and can't 
express anything else either.

Many users have suggested workarounds for git at 
https://stackoverflow.com/questions/11574271/git-change-default-umask-when-update-file

As for Windows, I don't even know how one deals with filesystems that can't 
understand executable flags... that's just so foreign to me. I don't think 
there's any good solution for Windows. I think you did the best you could for 
that... I think if projects needs to use Windows, they really need to configure 
the assembly descriptor with permissions for each file, explicitly.

{quote}
once this new maven-assembly-plugin will be released, such cases will happen 
more often: I had hoped to avoid this rebuild env prerequisite...
{quote}

Unfortunately, it doesn't seem to be avoidable. But, maybe pointing users to 
some of the suggestions on the StackOverflow link above for git users might 
help. Or just, encouraging more standard use of {{0022}} for everybody. I can't 
imagine too many cases where {{0002}} is preferable.

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Assignee: Herve Boutemy
>Priority: Critical
> Fix For: next-release
>
>
> Since MASSEMBLY-921 in 3.2.0, existing file permissions seem to be ignored 
> when creating a tarball assembly, and files stored in the assembly do not 
> have their original file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2023-02-05 Thread Herve Boutemy (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17684457#comment-17684457
 ] 

Herve Boutemy commented on MASSEMBLY-941:
-

just for reference, MASSEMBLY-921 flags were overridden to try to avoid 
depending on builder's umask configuration when cloning the source code, 
because usually some people use 002 and others 022 (I won't dig into more 
exotic cases...), and also avoid the consequences of one builder on Windows 
(that does not know about execution flag) while the other is on *nix

FYI, here is an example of different build results: by default, my local env 
has umask 002, but reference build was done with umask 022 => I had to add the 
umask requirement to rebuild with success the affected artifact 
https://github.com/jvm-repo-rebuild/reproducible-central/commit/626485c96d069fea2107a8162e8f388b358ebb67

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Assignee: Herve Boutemy
>Priority: Critical
> Fix For: next-release
>
>
> Since MASSEMBLY-921 in 3.2.0, existing file permissions seem to be ignored 
> when creating a tarball assembly, and files stored in the assembly do not 
> have their original file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2022-11-26 Thread Hudson (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17638844#comment-17638844
 ] 

Hudson commented on MASSEMBLY-941:
--

Build succeeded in Jenkins: Maven » Maven TLP » maven-assembly-plugin » master 
#37

See 
https://ci-maven.apache.org/job/Maven/job/maven-box/job/maven-assembly-plugin/job/master/37/

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Assignee: Herve Boutemy
>Priority: Critical
> Fix For: next-release
>
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2022-11-18 Thread Herve Boutemy (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17636072#comment-17636072
 ] 

Herve Boutemy commented on MASSEMBLY-941:
-

the CI failure has been replaced by an update in the IT to detect the 3 results 
that can happen based on the build environment: 
https://github.com/apache/maven-assembly-plugin/pull/96/files#diff-d86fc1c81521b5c46f82fc589730ee4ab5d8279caccdf8629ada1018cbc50a5e

just run the IT, and you should not see any failure because the IT has been 
updated to detect in which case you are running (without forcing you to 
configure your env to one precise case of the 3)

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Assignee: Herve Boutemy
>Priority: Critical
> Fix For: next-release
>
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2022-11-15 Thread Christopher Tubbs (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17634484#comment-17634484
 ] 

Christopher Tubbs commented on MASSEMBLY-941:
-

The referenced jobs that failed in Jenkins have been deleted, thus making it 
hard to review the IT failures. If you can point me to the source code for the 
failing tests, and/or provide instructions on how to run them locally, I can 
try to reproduce.

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Assignee: Herve Boutemy
>Priority: Critical
> Fix For: next-release
>
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2022-11-14 Thread Herve Boutemy (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17634095#comment-17634095
 ] 

Herve Boutemy commented on MASSEMBLY-941:
-

please review https://github.com/apache/maven-assembly-plugin/pull/96

the IT update shows how the unique result from the past (which required to 
configure executable flag in assembly descriptor) has now 3 different results 
based on the 3 build env options: Windows vs *nix with the 2 classical umasks

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Assignee: Herve Boutemy
>Priority: Critical
> Fix For: next-release
>
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2022-11-13 Thread Christopher Tubbs (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17633393#comment-17633393
 ] 

Christopher Tubbs commented on MASSEMBLY-941:
-

I still don't understand how this is a problem.

Your local machine probably shouldn't default to granting write permission to 
other members of your group, but let's assume you have a good reason to do that.
git ignores group permissions entirely when it stores file information. It only 
stores 644 and 755, from what I understand. So if you build a project with 
files that have other group/other permissions, then check those into git, 
whoever checks out the same commit and rebuilds, isn't going to see the same 
result. I think this is a useful behavior to mimic with the assembly plugin. It 
should only set 644 or 755, unless explicitly overridden with a specific mode 
in the descriptor.

But, I'm also having a hard time understanding how to reproduce this problem. 
Where are the permissions modes getting mangled? Is it during the archive? 
Wouldn't it be during the extraction of the archive? If it's during the 
extraction, you can use {{-p, --preserve-permissions, --same-permissions}} to 
preserve the mode in the archive when you use {{tar}} to extract, and then your 
umask settings shouldn't have an impact. If the umask in your local environment 
or in the CI environment, is causing problems with the reproducibility tests, I 
would suggest that the problem is buggy tests that don't take into account the 
umask during extract... it's not a problem with the behavior of the plugin for 
reproducibility.

As for the Windows case... I'm not sure how to address that... it really 
depends on the filesystem. As I understand it, NTFS and FAT don't really 
support POSIX file modes to begin with.

Regarding the suggestion [~hboutemy] made above, I do not think it is a good 
idea to force the group POSIX permissions from the user permissions. That would 
grant the group write permission on the user's files and directories by 
default. That's a bad idea, and there's a reason why most *nix systems have a 
default umask of at least 0022, and not something like 0002 or . If 
anything, the default group could be forced from the "other" permissions, so 
you only get 644 and 755 in the end.

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Assignee: Herve Boutemy
>Priority: Critical
> Fix For: next-release
>
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2022-11-13 Thread Herve Boutemy (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17633264#comment-17633264
 ] 

Herve Boutemy commented on MASSEMBLY-941:
-

I tested on a personal Windows machine: the execute flag is not taken into 
account at all, file is seen as 644 instead or 755

conclusion: people using filesystem detected executable flag and building on 
Windows get invalid archives

notice: this is not something introduced here, but a fact that was ignored in 
the past => probably something that deserves a separate Jira issue
on this issue, it only means I'll have to make the IT even more complex to 
support this Windows case

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Assignee: Herve Boutemy
>Priority: Critical
> Fix For: next-release
>
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2022-11-13 Thread Herve Boutemy (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17633247#comment-17633247
 ] 

Herve Boutemy commented on MASSEMBLY-941:
-

notice that we don't have any Windows builders = the other OS that would be 
interesting to check

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Assignee: Herve Boutemy
>Priority: Critical
> Fix For: next-release
>
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2022-11-13 Thread Herve Boutemy (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17633246#comment-17633246
 ] 

Herve Boutemy commented on MASSEMBLY-941:
-

as I feared, posix mode differs from machine to machine at group level: my 
local personal machine sets 664 and 775 when CI sets 644 and 755
personal machine is permissive at group level, when CI is conservative

We can probably detect and support both modes in the IT
for effective rebuilding, it means that this difference will have to be defined 
in the rebuild environment

any idea?
would you be ok if group posix permissions were forced from user permissions in 
the archiver in reproducible mode?

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Assignee: Herve Boutemy
>Priority: Critical
> Fix For: next-release
>
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2022-11-12 Thread Hudson (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17632652#comment-17632652
 ] 

Hudson commented on MASSEMBLY-941:
--

Build succeeded in Jenkins: Maven » Maven TLP » maven-assembly-plugin » master 
#35

See 
https://ci-maven.apache.org/job/Maven/job/maven-box/job/maven-assembly-plugin/job/master/35/

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Assignee: Herve Boutemy
>Priority: Critical
> Fix For: next-release
>
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2022-11-11 Thread Hudson (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17632498#comment-17632498
 ] 

Hudson commented on MASSEMBLY-941:
--

Build failed in Jenkins: Maven » Maven TLP » maven-assembly-plugin » master #34

See 
https://ci-maven.apache.org/job/Maven/job/maven-box/job/maven-assembly-plugin/job/master/34/

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Assignee: Herve Boutemy
>Priority: Critical
> Fix For: next-release
>
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2022-10-23 Thread Herve Boutemy (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17622846#comment-17622846
 ] 

Herve Boutemy commented on MASSEMBLY-941:
-

plexus-archiver PR created 
https://github.com/codehaus-plexus/plexus-archiver/pull/241

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Priority: Critical
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2022-10-17 Thread Christopher Tubbs (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17618726#comment-17618726
 ] 

Christopher Tubbs commented on MASSEMBLY-941:
-

[~hboutemy] It took me awhile, but I think I understand the example you gave. 
In that case, I think the problem was not the maven-assembly-plugin or mockito, 
but the problem was that jvm-repo-rebuild/reproducible-central had a strange 
environment. The fix in the referenced PR was reasonable, as it allowed the 
mockito team to explicitly declare the file permissions for the archive. That 
was reasonable in their case, because all their files had the same permissions. 
An alternative could have been for them to modify their build.gradle (or maybe 
something in the gradle wrapper properties?) to set the umask before starting 
the build.

However, explicitly setting all the files to the same mode is not desired in 
the general case.

I've been reading up on what git does with file permissions, and it seems like 
when they store files in the git history, they only store 644 or 755, but 
nothing else. I think it's okay to use this simplified model for when the mode 
isn't explicitly set in the assembly descriptor for a given file set. Git also 
has a configuration option to ignore file mode changes, if only the executable 
bit is different. This helps avoid checking in (storing) executable bits when 
the git worktree is checked out on a badly-behaving filesystem (with respect to 
executable bits, like FAT, for example). I'm not sure maven-assembly-plugin 
needs to get that complicated... but it would be nice if it preserved 
executable flags, so instead of archiving everything as 644, it also used 755, 
if the existing file being archived had its executable bit set. I think this 
simplified model would be suitable for most everybody.. . and if they need 
something more fine-grained, they can create a custom assembly descriptor that 
explicitly sets the file modes for the files they want to be different.


> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Priority: Critical
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2022-10-17 Thread Ralph Goers (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17618722#comment-17618722
 ] 

Ralph Goers commented on MASSEMBLY-941:
---

[~hboutemy] As I see it the problem is quite simple. Prior to 3.2.0 the 
assembly plug-in was copying the permissions of the files into the archive. 
Whatever the fix was broke compatibility with that and needs to be restored as 
the default. I have no desire to go through my Flume build and determine the 
proper permissions for every file when the files are already set with them.

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Priority: Critical
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2022-10-17 Thread Herve Boutemy (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17618677#comment-17618677
 ] 

Herve Boutemy commented on MASSEMBLY-941:
-

[~ctubbsii] umask issue is the following: particularly on group permissions, 
the effective value depends on the user configuration

more than explanations, here is an example with a Gradle build (because this 
issue is the same whatever the build tool): 
https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/org/mockito/mockito-core/mockito-core-4.5.1.diffoscope
 and https://github.com/mockito/mockito/pull/2642

this puts a prerequisite on the environment to rebuild

I probably did too much by simply not checking any on-disk permission: now I 
see that perhaps using owner permissions for group could match the intent

another aspect: if you only build on Unix, you probably do not care, but if you 
accept that people may build on Windows (= what we do on Maven), permissions 
extracted from Windows build probably don't match at all permissions taken from 
Unix

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Priority: Critical
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2022-10-16 Thread Christopher Tubbs (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17618358#comment-17618358
 ] 

Christopher Tubbs commented on MASSEMBLY-941:
-

I'm not sure I understand what the umask issue could be, either. What is stored 
in the archive should be whatever was observed. umask only comes into play when 
files are created when unpacking the tarball. It shouldn't affect the archival 
process. If you re-build / re-archive from an unpacked tarball where you 
unpacked it with {{--no-same-permissions}} applied, either by default 
(non-superusers) or explicitly, then you're starting from a different initial 
state, and I wouldn't expect the build to be reproducible in that case.

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Priority: Critical
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2022-10-16 Thread Ralph Goers (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17618328#comment-17618328
 ] 

Ralph Goers commented on MASSEMBLY-941:
---

FWIW - This also broke the Flume release candidate. I am having to revert until 
this issue is fixed.

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Priority: Critical
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2022-10-16 Thread Plamen Totev (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17618292#comment-17618292
 ] 

Plamen Totev commented on MASSEMBLY-941:


[~hboutemy]  do you recall the exact issue that causes with the 
reproducibility? It looks like the issue is with the executable flag. Maybe we 
can keep it and reset the others?

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Priority: Critical
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2022-10-04 Thread Herve Boutemy (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17612526#comment-17612526
 ] 

Herve Boutemy commented on MASSEMBLY-941:
-

second thoughts
> perhaps we could store in the archive the same permissions for group and 
> other than user?
read and execute permissions look ok
write permission not ok: I don't want other write, and I don't know what's best 
for group

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Priority: Critical
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2022-10-04 Thread Herve Boutemy (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17612522#comment-17612522
 ] 

Herve Boutemy commented on MASSEMBLY-941:
-

ok, now I start to remember the compromises I had to do both for UID/GID and 
file/dir permissions in tar archives in 
https://github.com/codehaus-plexus/plexus-archiver/pull/121

UID/GID seems ok, nobody complains

but file/dir permission is not ok: IIRC, the issue I got is variation based on 
user's umask on Unixes
= user/group/other
user permissions are ok, but group and other may differ based on umask

idea: instead of ignoring file permissions, perhaps we could store in the 
archive the same permissions for group and other than user?
WDYT?

[~plamenttv] we had a small discussion on these file permissions in 
https://github.com/codehaus-plexus/plexus-archiver/pull/121

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Priority: Critical
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2022-10-03 Thread Herve Boutemy (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17612461#comment-17612461
 ] 

Herve Boutemy commented on MASSEMBLY-941:
-

if the issue was introduced in MASSEMBLY-921, it was not intentional: as 
written in issue description, it was about order and timestamp, not permissions
perhaps there was some permissions changes included that I was not aware of

we'll need to find where the change was done

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Priority: Critical
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2022-09-15 Thread Christopher Tubbs (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17605585#comment-17605585
 ] 

Christopher Tubbs commented on MASSEMBLY-941:
-

I'm just going to ping this one once again, as I'm updating to the latest 
Apache parent POM (27), and maven-assembly-plugin is now upgraded to 3.4.1 with 
that, and this is still broken. So, we're still stuck on 3.1.1, the last 
version where file permissions were preserved correctly by this plugin.

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Priority: Critical
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2022-03-22 Thread Christopher Tubbs (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17510415#comment-17510415
 ] 

Christopher Tubbs commented on MASSEMBLY-941:
-

[~pzygielo] That does appear to be related, if not the direct cause. However, 
it makes no sense to do that, except to ensure that the builds on Unix/Linux 
work exactly produce the exact same content as when built on Windows. But, I 
don't know why anybody would have that as an expectation in the first place. In 
the case of Apache Accumulo, we cannot build on Windows at all because our 
build requires things like "make" and certain bash scripts we've written, so it 
makes no sense to erase POSIX permissions that are set in the git repository 
that we build from, in order to maintain a build that is equivalent to Windows, 
because we don't have a project that builds on Windows at all. All this does 
for us is break our previously working Unix/Linux builds.

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Priority: Critical
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2022-03-21 Thread Piotr Zygielo (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17509731#comment-17509731
 ] 

Piotr Zygielo commented on MASSEMBLY-941:
-

This seems to be documented/caused here: 
https://github.com/codehaus-plexus/plexus-archiver/blob/master/src/main/java/org/codehaus/plexus/archiver/AbstractArchiver.java#L1326

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Priority: Critical
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2021-05-18 Thread Clebert Suconic (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17346851#comment-17346851
 ] 

Clebert Suconic commented on MASSEMBLY-941:
---

ActiveMQ Artemis was also affected by this. We downgraded to 3.10

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Priority: Critical
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2021-05-12 Thread Christopher Tubbs (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17343428#comment-17343428
 ] 

Christopher Tubbs commented on MASSEMBLY-941:
-

Hi, just checking back to see if anybody has a fix for this. It seems to be a 
pretty important bug with the assembly plugin.

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Priority: Critical
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (MASSEMBLY-941) file permissions removed during assembly:single since 3.2.0

2020-08-28 Thread Christopher Tubbs (Jira)


[ 
https://issues.apache.org/jira/browse/MASSEMBLY-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17186635#comment-17186635
 ] 

Christopher Tubbs commented on MASSEMBLY-941:
-

I updated the description and title to make the issue more apparent.

Also, here is a minimal pom.xml to reproduce the issue (do {{ chmod +x pom.xml 
}} to reproduce):

{code:xml}

http://maven.apache.org/POM/4.0.0; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
https://maven.apache.org/xsd/maven-4.0.0.xsd;>
  4.0.0
  com.example
  example
  0.0.1-SNAPSHOT
  pom
  


2020-01-22T15:10:15Z
  
  
clean assembly:single

  
org.apache.maven.plugins
maven-assembly-plugin

3.3.0

  
org.apache.apache.resources
apache-source-release-assembly-descriptor
1.0.6
  


  
source-release-zip-tar
  
  posix

  

  

{code}

This appears to have been broken by the reproducibility features using the {{ 
project.build.outputTimestamp }} property. Removing that property fixes the 
issue. However, that property will be inherited from the Apache parent pom, and 
in any case, it should preserve file permissions even if reproducibility is 
used.

> file permissions removed during assembly:single since 3.2.0
> ---
>
> Key: MASSEMBLY-941
> URL: https://issues.apache.org/jira/browse/MASSEMBLY-941
> Project: Maven Assembly Plugin
>  Issue Type: Bug
>  Components: permissions
>Affects Versions: 3.2.0, 3.3.0
>Reporter: Christopher Tubbs
>Priority: Critical
>
> Since 3.2.0, existing file permissions seem to be ignored when creating a 
> tarball assembly, and files stored in the assembly do not have their original 
> file permissions preserved.
> Using version 3.1.1 of this plugin and earlier, when creating a tar.gz, 
> existing file permissions are normally preserved. This is now broken in 
> 3.2.0, unless the component descriptor explicitly sets the fileModes.
> This was discovered trying to prepare a release candidate for Apache Accumulo 
> using the apache-23.pom parent POM's predefined `source-release-tar` 
> descriptor using the `single` goal. We noticed that the resulting 
> source-release tarball had stripped all the executable permissions from our 
> scripts, instead of preserving them. This makes the resulting source release 
> more difficult to build from source.
> A source-release assembly, and any other assembly that does not specify the 
> file permissions explicitly, should preserve the existing file permissions, 
> just as it used to with 3.1.1 and earlier.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)