Skip to content

chore: refine how we handle licenses for binaries#4412

Merged
lidavidm merged 3 commits into
apache:mainfrom
lidavidm:gh-4411
Jun 24, 2026
Merged

chore: refine how we handle licenses for binaries#4412
lidavidm merged 3 commits into
apache:mainfrom
lidavidm:gh-4411

Conversation

@lidavidm

@lidavidm lidavidm commented Jun 18, 2026

Copy link
Copy Markdown
Member
  • Linux packages: checking the DEBs, it seems they don't bundle licenses.
  • Update Python licenses
  • R: checking e.g. https://apache.r-universe.dev/adbcpostgresql, the packages don't bundle licenses.
  • NPM: it appears the publishing process somehow materializes the license based on the license.hbs.
  • Java: JNI JAR already contains a customized LICENSE.txt with transitive dependencies.

Closes #4411.

@lidavidm

lidavidm commented Jun 18, 2026

Copy link
Copy Markdown
Member Author

@eitsupi I took a look at one of the R packages and it seems it doesn't bundle any license at all, is that expected? (this can wait until after your trip of course)

@lidavidm lidavidm marked this pull request as ready for review June 19, 2026 01:56
@lidavidm lidavidm requested a review from kou as a code owner June 19, 2026 01:56
@lidavidm lidavidm requested a review from zeroshade June 19, 2026 01:56
@eitsupi

eitsupi commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

I took a look at one of the R packages and it seems it doesn't bundle any license at all, is that expected?

This is entirely intentional, and the R packages are configured to ignore the markdown files during the build process.

R packages include a license declaration in their DESCRIPTION file, and it is prohibited to include a file containing the full LICENSE text.

License: Apache License (>= 2)

However, if we want to explicitly specify the dependencies included in the source code, we can place a file under the inst directory or include a file named LICENSE.note.
https://github.com/search?q=org%3Acran+path%3ALICENSE.note&type=code

For example, this would be the case for the arrow package.
https://github.com/apache/arrow/blob/2aaac072d521feef8fa424a483917b5709c2eb2a/r/inst/NOTICE.txt

@lidavidm

Copy link
Copy Markdown
Member Author

Ok. I believe we should be doing that, but we can figure it out as a next step. Thanks for the explanation!

@kou

kou commented Jun 22, 2026

Copy link
Copy Markdown
Member

Linux packages: checking the DEBs, it seems they don't bundle licenses.

Oh, sorry. We should use debian/copyright. apache/arrow has (incomplete...) one: https://github.com/apache/arrow/blob/main/dev/tasks/linux-packages/apache-arrow/debian/copyright

@lidavidm lidavidm requested a review from amoeba June 22, 2026 06:34
Comment thread ci/licenses/README.md
Comment on lines +38 to +59
cd go/adbc
go-licenses report ./... \
--ignore github.com/apache/arrow-adbc/go/adbc \
--ignore github.com/apache/arrow/go/v18 \
--template ../../ci/licenses/flightsql.tpl > ../../ci/licenses/flightsql.txt 2> /dev/null
```

You may have to manually fix up the license, since some packages do not
fill out their metadata correctly and things like READMEs may end up in
the license. Then check in the result.

There is not a separate file for the driver manager, as all of its
dependencies are vendored, and hence covered by the root LICENSE.txt.

After updating, copy the combined license files to the Python wheel
directories and commit the result:

```
cat LICENSE.txt ci/licenses/flightsql.txt > python/adbc_driver_flightsql/LICENSE.txt
cat LICENSE.txt ci/licenses/postgresql.txt > python/adbc_driver_postgresql/LICENSE.txt
cat LICENSE.txt ci/licenses/sqlite.txt > python/adbc_driver_sqlite/LICENSE.txt
```

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we make a script that does most of this? Or is it not really feasible due to having to manually fix up some of the licenses?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think there's not quite enough to really justify a full script, and I'd rather people understand what's going on here.

I should add it to the pre-release steps though...

lidavidm added 2 commits June 24, 2026 08:52
- [ ] Handle Linux packages
- [ ] Handle Python wheels
- [ ] Handle R packages
- [ ] Check NPM package binaries
- [ ] Check Java package binaries

Closes apache#4411.
@lidavidm

Copy link
Copy Markdown
Member Author

@lidavidm lidavidm merged commit 841e4df into apache:main Jun 24, 2026
79 of 80 checks passed
@lidavidm lidavidm deleted the gh-4411 branch June 24, 2026 00:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore: clean up LICENSE.txt

4 participants