chore: refine how we handle licenses for binaries#4412
Conversation
|
@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) |
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. arrow-adbc/r/adbcpostgresql/DESCRIPTION Line 15 in 698f216 However, if we want to explicitly specify the dependencies included in the source code, we can place a file under the For example, this would be the case for the arrow package. |
|
Ok. I believe we should be doing that, but we can figure it out as a next step. Thanks for the explanation! |
Oh, sorry. We should use |
| 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 | ||
| ``` |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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...
- [ ] Handle Linux packages - [ ] Handle Python wheels - [ ] Handle R packages - [ ] Check NPM package binaries - [ ] Check Java package binaries Closes apache#4411.
Closes #4411.