Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Including ioctl.h and ctree.h from non-GPL applications #380

Closed
AkihiroSuda opened this issue Jun 24, 2021 · 4 comments
Closed

Including ioctl.h and ctree.h from non-GPL applications #380

AkihiroSuda opened this issue Jun 24, 2021 · 4 comments
Labels
question Not a bug, clarifications, undocumented behaviour

Comments

@AkihiroSuda
Copy link

<btrfs/ioctl.h> and <btrfs/ctree.h> seem to be licensed under GPL2 without any exception note.

Would it be possible to relax the license of these headers so that they can be #include-d from non-GPL applications?

Moby/Docker and containerd (Apache License 2.0) are already importing these headers, and I'm curious there is already a licensing concern 🤔

@AkihiroSuda AkihiroSuda changed the title Importing ioctl.h and ctree.h from non-GPL applications Including ioctl.h and ctree.h from non-GPL applications Jun 24, 2021
@kdave
Copy link
Owner

kdave commented Jun 24, 2021

The files are shared with kernel (GPL2) and are have originated from there. Changing license of existing files is tedious and for 'ctree.h' that's been there since the beginning I think it's next to impossible. As both files are mostly definitions, I'm not sure if and what problem is there regarding licenses.

For licensinsg issues there's libbtrfsutil that's permissive but is written from scratch and does not provide raw definitions or ioctls, but rather a clean API. However it's not complete, so it depends on what the applications need.

@kdave kdave added the question Not a bug, clarifications, undocumented behaviour label Jun 24, 2021
@AkihiroSuda
Copy link
Author

Thanks for the quick answer!

@kdave
Copy link
Owner

kdave commented Jun 24, 2021

The files are from libbtrfs which is not a proper library and is deprecated and frozen. There are very few applications using it (to my knowledge but I apparently was not aware of Moby/containerd). In the long term we want to switch 'snapper' (#218), but it works with send stream and some other structures directly so at this point the conversion can be only partial.

We'd need to identify the specific ioctls or features that the two applications and either port it to libbtrfsutil od add the missing bits.

@kdave
Copy link
Owner

kdave commented Jun 24, 2021

You've closed it already, so in case you want to continue, please open new issues with specific requirements.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
question Not a bug, clarifications, undocumented behaviour
Projects
None yet
Development

No branches or pull requests

2 participants