mabrarov commented on code in PR #148: URL: https://github.com/apache/maven-assembly-plugin/pull/148#discussion_r1254863967
########## src/it/projects/bugs/massembly-791/pom.xml: ########## @@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> +<project xmlns="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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.maven.plugin.assembly.test</groupId> + <artifactId>it-project-parent</artifactId> + <version>1</version> + </parent> + + <groupId>org.apache.maven.its</groupId> + <artifactId>massembly-791</artifactId> + <packaging>pom</packaging> + <version>1.0</version> + + <properties> + <project.build.outputTimestamp>2023-06-07T10:18:31Z</project.build.outputTimestamp> Review Comment: Current implementation of Plexus Archiver (used by Maven Assembly Plugin) - `org.codehaus.plexus.archiver.AbstractArchiver` class - applies its default umask (which is `022`) only when `configureReproducibleBuild` method is called. Current version of Maven Assembly Plugin invokes that method only when `project.build.outputTimestamp` maven property is specified. It means that `0` as value of `overrideUmask` configuration option changes behavior of Maven Assembly Plugin only when `project.build.outputTimestamp` maven property is specified. It's sad (complicated for the users of Maven Assembly Plugin) behavior, but it's an issue of Plexus Archiver, which should not apply its default umask to file/directory permissions for the case when both conditions are met: 1. User explicitly specifies `fileMode`/`directoryMode` in assembly descriptor. 1. Assembly format (like `tar`, `zip` and `jar`) supports configuration of file/directory permissions independent of OS. This is the reason `overrideUmask` configuration option of Maven Assembly Plugin is introduced: 1. It helps to workaround bug in Plexus Archiver (the case my team has) - user of Maven Assembly Plugin can specify `0` as `overrideUmask` configuration option to explicitly override umask which is (sometimes) implicitly used by Plexus Archiver. 1. It provides additional flexibility for the users of Maven Assembly Plugin (but they need to realize that not every assembly format - like `dir` - supports setting same permissions as defined in assembly descriptor or source file/directory has in an OS independent way). -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@maven.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org