Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Why is sdl2/agg_platform_support.cpp GNU GPL - licensed? #10

Open
drassokhin opened this issue Aug 15, 2023 · 5 comments
Open

Why is sdl2/agg_platform_support.cpp GNU GPL - licensed? #10

drassokhin opened this issue Aug 15, 2023 · 5 comments

Comments

@drassokhin
Copy link

The README.md states the following:
"AGG 2.6, along with the official Sourceforge AGG project, is based off of AGG 2.4, which is dual licensed by either a Modified BSD License, or an Anti-Grain Geometry Public License. These licenses allow for free use in commercial software.

There exists an AGG 2.5 that was created with a GNU GPL License, with no other changes from 2.4. The AGG 2.5 version is not included here nor in the Sourceforge repositories.

There remains a separate license for the General Polygon Clipper (GPC) code, which is free only in non-commercial software. However, GPC is not an obligatory part of AGG and can be easily removed."

However, it looks like one source file in the repo is actually taken from AGG 2.5 and covered by the GNU GPL. agg-src/src/platform/sdl2/agg_platform_support.cpp contains the following header:
// Anti-Grain Geometry (AGG) - Version 2.5
// A high quality rendering engine for C++
// Copyright (C) 2002-2006 Maxim Shemanarev
// Copyright (C) 2004 Mauricio Piacentini (SDL Support)
// Contact: mcseem@antigrain.com
// mcseemagg@yahoo.com
// http://antigrain.com
//
// AGG is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.

Can that file be somehow converted to Modified BSD License / Anti-Grain Geometry Public License to make the licensing consistent and uniform across the entire repo (with the exception of the aforementioned General Polygon Clipper (GPC) code)?

@ghaerr
Copy link
Owner

ghaerr commented Aug 15, 2023

Hello @drassokhin,

Good point, let's look into possibly replacing that file. Do you happen to have a link to an AGG v2.4 version somewhere that has the same file contents, except licensed prior to the GPL conversion? That would save me time looking for it. I'm pretty sure I have an older official v2.4 version somewhere.

Thank you!

@drassokhin
Copy link
Author

Hello @ghaerr --

I have an old copy of agg-2.4; it does have the platform support for SDL, but does not have it for SDL2. It looks like the SDL2 code was added in v. 2.5.

@ghaerr
Copy link
Owner

ghaerr commented Aug 15, 2023

It looks like the SDL2 code was added in v. 2.5.

Oh, geez. A file's copyright can't be removed, but a file can be replaced with another version or deleted. For your own organization, perhaps you can start with replacing the file with the v2.4 version for SDL 1, and/or contribute your own changes to get it working for SDL2. If you don't need SDL2 support, that file could be deleted from your organization's repo, or replaced with the v2.4 version, which would make the licensing then consistent for your entire repo.

Thanks for pointing out the license irregularity with a single file in AGG 2.6. I will look further at my own sources to see whether my findings are the same as yours.

@drassokhin
Copy link
Author

drassokhin commented Aug 16, 2023

I have actually used the SDL and SDL2 platform support files as prototypes for my own SDL2 platform support implementation designed to compile into WASM with Emscripten. The existing SDL2 support implementation, if compiled with Emscripten to be run in a web browser, won't work, because the Emscripten event loop model is quite different from the 'traditional' loop in a stand-alone self-hosted SDL2-based application. Unfortunately, I am not allowed to contribute my work-related code to public repos :-(. BTW, I used to work with the author of AGG, Maxim Shemanarev, many years ago, and even was his supervisor at some point. Those were the days...

@ghaerr
Copy link
Owner

ghaerr commented Aug 17, 2023

I used to work with the author of AGG, Maxim Shemanarev, many years ago, and even was his supervisor at some point.

That's pretty nice, and his fantastic work lives on :)

I am traveling and don't have any access to my source code archives. I plan to check on AGG 2.4/2.5 issues related to agg-src/src/platform/sdl2/agg_platform_support.cpp on my return.

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

No branches or pull requests

2 participants