Skip to content

Switch blktap licensing to GPLv2 - #442

Open
AnthoineB wants to merge 7 commits into
xapi-project:masterfrom
xcp-ng:GPLv2
Open

Switch blktap licensing to GPLv2#442
AnthoineB wants to merge 7 commits into
xapi-project:masterfrom
xcp-ng:GPLv2

Conversation

@AnthoineB

@AnthoineB AnthoineB commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

The Vates storage team would like to add support of VDI above 2TB.
To allow this we'd like to support Qcow2 format in the blktap component.
To help the development of this feature, we would like to import Qcow2 code from the Qemu implementation.

Since Qemu's code is licensed under GPLv2, we would like to also switch the global blktap license to GPLv2 to avoid license incompatibility.

Therefore, I am contacting all external contributors to get their approval on their commits to make this switch.
Only one contributor didn't answer (see update below).
In the meantime, this PR is open to review.

There are 2 parts in the PR:

  1. Rewrite of BSD code coming from other components that we can convert (atomicio.c, list.h, aio_genevents.c, autogen.sh)
  2. Conversion of our code base in GPLv2 by partially revert 3480fc8

Update:
I add 2 patches on the PR:

  1. Remove code from Anthony Messerli as he didn't give his approval
  2. Switch license text to SPDX as suggested in the comments.

@nraynaud

Copy link
Copy Markdown
Contributor

I approve.

@TSnake41

TSnake41 commented Jul 2, 2026

Copy link
Copy Markdown

Could we use SPDX license identifiers instead (https://spdx.dev/learn/handling-license-info/) ?

@MarkSymsCtx

Copy link
Copy Markdown
Contributor

Most of this appears to file header changes, which are not strictly necessary as the BSD license is compatible with the GPL and projects containing GPL code can safely contain files which are BSD licensed (the reverse of course not being true). Only the files which absolutely have to be GPL, i.e. the qcow2 management pieces that you will be adding, need to have GPL headers. The overall project license file should be updated to state that it is GPL2 with some BSD content.

guzu
guzu previously approved these changes Sep 2, 2026
@AnthoineB

Copy link
Copy Markdown
Contributor Author

Most of this appears to file header changes, which are not strictly necessary as the BSD license is compatible with the GPL and projects containing GPL code can safely contain files which are BSD licensed (the reverse of course not being true). Only the files which absolutely have to be GPL, i.e. the qcow2 management pieces that you will be adding, need to have GPL headers. The overall project license file should be updated to state that it is GPL2 with some BSD content.

Version 3 of GPLv2 blanch pushed.

  • I removed 4 commits that were reverting files to previous version holding GPLv2 license.
  • I modified 2 commits:
    1. I don't change the headers of every files anymore and I add a comment in README.md about the dual-license.
    2. I change the SPDX to BSD-3-Clause.
  • And I added 3 commits:
    1. The first one adds spdk headers in the list of other license files in LICENSE.
    2. The second one adds the copyright and license header to the xattr.c file.
    3. The third one updates the copyright, date and license of XenSource Inc. to Citrix Systems, Inc. to align with other files.

What do you think @MarkSymsCtx ?

@AnthoineB
AnthoineB requested a review from guzu September 2, 2026 18:34
guzu
guzu previously approved these changes Sep 3, 2026

@guzu guzu left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Beside the conflict with atomicio, which will ultimately be removed by this PR, it looks ok to me.

guzu and others added 7 commits September 3, 2026 13:52
atomicio() is still available in VHD.

Signed-off-by: Emmanuel Varagnat <emmanuel.varagnat@vates.tech>
The kernel detection function is use once in libaio setup.

The consequence of this change is we don't support kernel older than 2.6.22.

Remove code from Anthony Messerli as he didn't give his approval
to switch his code to GPLv2.

Signed-off-by: Anthoine Bourgeois <anthoine.bourgeois@vates.tech>
Signed-off-by: Anthoine Bourgeois <anthoine.bourgeois@vates.tech>
Signed-off-by: Anthoine Bourgeois <anthoine.bourgeois@vates.tech>
Please see the LICENSE file for BSD license and COPYING file
for GPLv2 license.

Signed-off-by: Anthoine Bourgeois <anthoine.bourgeois@vates.tech>
I also update dates of the copyright to the latest year found
in the history.

Signed-off-by: Anthoine Bourgeois <anthoine.bourgeois@vates.tech>
Signed-off-by: Anthoine Bourgeois <anthoine.bourgeois@vates.tech>
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.

5 participants