apache / apache/incubator-xtable

Multiple LICENSE files present in some jars

Open
#701 10 comments 0 reactions 0 assignees View on GitHub
documentation
Dominant language
Java
Stars
1.2k
Forks
212
Avg merge
4d 9h
Merged PRs (30d)
16

Description

### Search before asking

- [x] I had searched in the [issues](https://github.com/apache/incubator-xtable/issues?q=is%3Aissue) and found no similar issues.

### Please describe the bug 🐞

Some jars from those listed contain multiple LICENSE files, which are sometimes redundant and also create confusion.
```
xtable-api-0.3.0-incubating.jar
xtable-aws-0.3.0-incubating-bundled.jar
xtable-aws-0.3.0-incubating.jar
xtable-core_2.12-0.3.0-incubating.jar
xtable-hive-metastore-0.3.0-incubating-bundled.jar
xtable-hive-metastore-0.3.0-incubating.jar
xtable-hudi-support-extensions_2.12-0.3.0-incubating-bundled.jar
xtable-hudi-support-extensions_2.12-0.3.0-incubating.jar
xtable-hudi-support-utils-0.3.0-incubating.jar
```
I checked using the following command:
```
for i in `ls *jar`;do echo $i; jar tf $i | grep LICENSE; done
```

One common problem in most jars is that they have the following structure:
```
META-INF/LICENSE
META-INF/LICENSE-bundled
META-INF/licenses/
```
The LICENSE-bundled and licenses directory are clearly redundant for non-bundled jars and the opposite holds for bundled jars. In all cases there should be only one `LICENSE` file directly under META-INF directory.

The most problematic of all is `xtable-hive-metastore-0.3.0-incubating-bundled.jar` which contains lots of licenses in non-canonical places making it very hard to review. As before there should be only one main license file (i.e., META-INF/LICENSE) that lists all 3rd party code and necessary licenses should be only under (i.e., META-INF/licenses/ directory).

### Are you willing to submit PR?

- [ ] I am willing to submit a PR!
- [ ] I am willing to submit a PR but need help getting started!

### Code of Conduct

- [x] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by running the provided `jar tf ... | grep LICENSE` check against the listed XTable artifacts and trace the packaging configuration that produces them. Compare bundled and non-bundled jars with the requested META-INF/LICENSE and META-INF/licenses/ layout; done means each jar has one canonical main license and appropriate third-party license files.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
build-system
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.