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

Add a notice about data licensing to the README. #82

Merged
merged 3 commits into from
Jul 1, 2018

Conversation

pchote
Copy link
Member

@pchote pchote commented May 20, 2018

This PR adds a paragraph to the README clarifying recent IRC discussions about mod asset licensing. This also allows mods to customize the license text shown in the Windows installer (the GPL does not require this and modders may want to show additional terms for their data), and adds a link to the update instructions.

README.md Outdated
The `example` mod included in this repository provides the bare minimum structure to launch to the in-game main menu for the sole purpose of demonstrating the SDK. See [Getting Started](https://github.com/OpenRA/OpenRAModTemplate/wiki/Getting-Started) on the Wiki for instructions on how to adapt this template for your own projects. For common questions, please see the [FAQ](https://github.com/OpenRA/OpenRAModSDK/wiki/FAQ).
The `example` mod included in this repository provides the bare minimum structure to launch to the in-game main menu for the sole purpose of demonstrating the SDK. See [Getting Started](https://github.com/OpenRA/OpenRAModTemplate/wiki/Getting-Started) on the Wiki for instructions on how to adapt this template for your own projects. For common questions, please see the [FAQ](https://github.com/OpenRA/OpenRAModSDK/wiki/FAQ). See [Updating to a new SDK or Engine version](https://github.com/OpenRA/OpenRAModSDK/wiki/Updating-to-a-new-SDK-or-Engine-version) for a guide on updating your mod a newer OpenRA release.

The OpenRA engine is made available under the [GPL](https://github.com/OpenRA/OpenRA/blob/bleed/COPYING) license, and any executable code developed by a mod and loaded by the engine (i.e. custom mod DLLs) must be released under a compatible license. Your mod data files (artwork, sound files, etc) are not part of your mod's source code, so your are free to distribute these assets under different terms (e.g. allowing redistribution in unmodified form, but not for use in other works).
Copy link

Choose a reason for hiding this comment

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

You could include the OpenRAModSDK in The OpenRA engine is made available under.

Choose a reason for hiding this comment

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

Also specify GPLv3 explicitly IMO.

Choose a reason for hiding this comment

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

Where do yaml and campaign map/scripts go though?

Copy link
Member Author

@pchote pchote May 21, 2018

Choose a reason for hiding this comment

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

Map scripts are clear cut: they must be gpl (see paragraph 2).

Yaml/maps/etc are less clear: new files are not obligated by the engine to be gpl (they are input data, not linked or interpreted code), however by virtue of nobody ever licensing them otherwise, all these files in the default mods have inherited GPL (which is allowed for data). But, strictly speaking, its not clear whether those can even be licensed at all because the rule yaml were translated from the proprietary ini data which was never specifically licensed for modification.

I will update the wording to mention lua and the default mod yaml GPL.

Choose a reason for hiding this comment

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

I'd say to mention these explicitly in the readme as well.

Copy link

@ghost ghost May 21, 2018

Choose a reason for hiding this comment

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

IMO the usage of similar/identical names and values in the mods yaml files or anywhere else is a case of fair use. The yamls are rather a result of a transformation to use proprietary assets (licenced to the end user) within OpenRA than derivative work in form of a translation . Usage of basic ini data in gpl'ed yaml files complies to the basic principles of fair use IMO and the information used is publicly available too.

@pchote
Copy link
Member Author

pchote commented Jul 1, 2018

Updated. Ping @GraionDilach and @Lawando for feedback.

@GraionDilach
Copy link

Lua scripts are a headache in this regard, but even this statement is better than nothing at all.

@GraionDilach
Copy link

To expand on my previous sentence: lua scripts are part of the map which is an asset. Forcing the release of the actual lua script basically forces the project itself to be released. I don't really see the difference between a yaml and a lua in this regard much tbh - both are just crucial map/mod assets.

I don't argue on the OS-dll requirement afterall, since that is clearly part of the codebase. I still consider lua scripts as supplementary mod assets and not full-fledged code.

@pchote
Copy link
Member Author

pchote commented Jul 1, 2018

@GraionDilach we don't have a choice in this. I am bound by the license as much as anybody else, and I don't have the right to change it even though I agree it would make life easier here.

Forcing the release of the actual lua script basically forces the project itself to be released.

I don't follow. Again, the license is clear that it applies to executable code, but not the data in the project.

@GraionDilach
Copy link

GraionDilach commented Jul 1, 2018

The lua code itself makes no sense without the appropriate yamls. On the other hand, one can pretty much call the actual zipped map as the source release, since common tools can already unzip an ORA map to call that a day.

TBH it doesn't really matter in the longterm because those who would ignore the mod license/guidelines (asin the kind of people the classic WW gen2 call rippers) will always be able to, since OpenRA by nature cannot offer a solution against such people (any kind of scrambled format parser written for an OpenRA project would still be forced to release the format parser as part of GPLv3 and I can't nor won't argue on this one) and pursuing any kind of legal action would cause more harm than good anyway for all sides involved.

It ultimately just all comes down to the consumer's goodwill to see what happens with a released mod/project.

@pchote
Copy link
Member Author

pchote commented Jul 1, 2018

Are you trying to explain that modders releasing their map lua without similar rights attached to the yaml/bin files would be a violation of the GPL license? Because that would imply the same problem exists for our engine C# vs mod yaml/art/sound/etc case. I don't see how there is a difference between the (mod executable code / mod data) vs (map executable code / map data) cases.

@GraionDilach
Copy link

GraionDilach commented Jul 1, 2018

I don't even know by now myself - so let's just go with this.

Copy link

@ghost ghost left a comment

Choose a reason for hiding this comment

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

Windows licence dir/custom file works on my end. According to my understanding, lua code can both be considered as executable code as part of a codebase licenced under the terms of GPLv3 (gpl would apply) as it can be considered as part of an aggregate. As I don't know how map lua code interacts with the engine code, I can't really say what applies here but I tend to see it as a separate program which would mean that GPLv3 does not necessarily apply, see https://www.gnu.org/licenses/gpl-faq.en.html#MereAggregation).

If you consider map lua code as part of the engine code and not as a separate program then it would indeed mean that the code would need to be compatible with GPLv3. This is probably the safest way to deal with it.

I agree that data/artwork/other assets are not affected by this.

LGTM.

@pchote
Copy link
Member Author

pchote commented Jul 1, 2018

Our lua bindings fall under IfInterpreterIsGPL:

when the interpreter is extended to provide “bindings” to other facilities (often, but not necessarily, libraries), the interpreted program is effectively linked to the facilities it uses through these bindings. So if these facilities are released under the GPL, the interpreted program that uses them must be released in a GPL-compatible way.

The map scripts are using the facilities provided by the engine through the Lua API, so are bound by GPL.

@pchote pchote merged commit 496e688 into OpenRA:master Jul 1, 2018
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.

None yet

2 participants