slachiewicz opened a new issue, #12778:
URL: https://github.com/apache/maven/issues/12778
The binary distribution tar for the 3.9.x line contains `lib/jansi-native/`
twice as a directory entry. It is the only duplicated path in the archive; no
file entry is duplicated.
```
$ tar tvzf apache-maven-3.9.16-bin.tar.gz | grep -n 'jansi-native/$'
31:drwxr-xr-x 0 root root 0 May 13 23:36
apache-maven-3.9.16/lib/jansi-native/
53:drwxr-xr-x 0 root root 0 May 13 23:36
apache-maven-3.9.16/lib/jansi-native/
```
Two fileSets in `apache-maven/src/main/assembly/component.xml` both
materialise that directory:
- the native-library fileSet,
`target/dependency/org/fusesource/jansi/internal/native` → `lib/jansi-native`,
whose `<include>**</include>` matches directories as well as files;
- the `src/lib` → `lib` fileSet, which carries
`apache-maven/src/lib/jansi-native/README.txt`.
The `**` include arrived with MNG-7254 (8c66edc); before that the fileSet
did not exist.
### Where it shows up
Consumers that unpack the distribution and reject duplicate archive paths
cannot read it. provisio 2.0.0 added such a check, and apache/maven-mvnd#1694
fails on it:
```
java.io.IOException: Duplicate archive output path lib/jansi-native in
~/.m2/repository/org/apache/maven/apache-maven/3.9.16/apache-maven-3.9.16-bin.tar.gz
```
That blocks mvnd's `mvnd-1.x` branch from moving to provisio 2.0.0 at all,
since every released 3.9.x and 3.8.x artifact carries the duplicate.
### Scope
Present in 3.8.8, 3.9.9 and 3.9.16 — the earliest and latest I checked on
those lines. Not present in 3.10.0-rc-1 or 4.0.0-rc-6: both have zero duplicate
entries.
3.10.x is already correct, but by accident. The JLine migration (70d934d)
replaced `<include>**</include>` with explicit `**/*.so`, `**/*.jnilib`,
`**/*.dll` patterns, which match only files, so the fileSet no longer
contributes a directory entry.
### Fix
Apply the same include list on 3.9.x. It is lossless: every native file
jansi 2.4.3 ships under `internal/native` is a `.so` (9), `.jnilib` (3) or
`.dll` (3), so nothing currently packaged stops being packaged.
Older released artifacts keep the duplicate; nothing can be done about
those. The fix only makes future 3.9.x releases readable by strict consumers.
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]