JohnEarnest / chip8Archive

A repository of community-submitted Chip8 programs and their metadata
147 stars 23 forks source link

Licensing and linking? #22

Closed Timendus closed 3 years ago

Timendus commented 3 years ago

As stated in the readme:

Chip8 software, like most console homebrew, tends to exist in a murky gray area of copyright. In the interest of ensuring that others will be able to freely build upon and remix the works in this archive, everything in this repository is placed under the Creative Commons 0 "No Rights Reserved" license.

I completely agree with not leaving software in a legal gray area. However, I'm a big proponent of releasing software under a license that makes sure my software (and derivatives of it) stays open source. Like the GPL or CC-BY-SA.

Now, of course, there is absolutely no reason to assume that anyone in their right mind will try to make a commercial version of a Chip-8 program 😂 So I understand if some people think this is a non-discussion. But I feel a bit restricted by this archive having only a single licensing option. So I read this:

If you are considering contributing but are unhappy with CC0 licensing, feel free to contact me (John Earnest) and see if we can work something out.

So John, consider yourself contacted 😜 (I'm not sure how to contact you personally, and I'm guessing you don't mind me asking this in an issue). Can we add the license to the programs.json file or something?

Second, my code is already online and it has a slightly more complicated file/folder structure than most applications in this archive. Duplicating that here doesn't feel like it makes sense.

If this archive is (also) intended as an automated index for emulators to load programs from, it may be a good idea to change the whole "filenames are the key of the hash plus .ch8" idea to just adding the full URL of your binary to the program object. This makes your API more discoverable/intuitive to use and allows contributors to link to an external source (maybe require that it's Github though, for synchronised uptime 🙈). And maybe add optional URLs for source, documentation and web version of the program? Just thinking out loud here.

Would love to hear your thoughts!

JohnEarnest commented 3 years ago

Given the negligible risk of anyone profiting commercially from CHIP-8 software, I prefer letting people build on works in the public domain over attaching strings. There are legitimate reasons why derivative creative works might want to be free yet closed-source: a game obscuring parts of its own source-code to prevent giving away surprises or solutions to a puzzle, for example. If there are two licenses applied to games in the collection, there will likely be many more in the future, which raises the burden for anyone wishing to use the contents of the collection while complying with these requirements.

If you feel strongly about a GPL-flavored viral license for your software, I could simply provide a section in the readme for "third-party" games and links to their own repositiories. This would also address your concerns that your project structure is complex compared to other entries, while making it easier for people to find your repo. How's that?

While it's certainly possible to scrape the JSON from github pages and feed the results live into an emulator, I expect that most people will want to instead process or otherwise repackage the data in this repo to suit their needs. Keeping everything self-contained and as agnostic as possible to the specifics of GitHub means anyone can just download a zip of the archive and have a viable backup of the whole thing. Websites, including GitHub, have a way of disappearing over the decades.

Timendus commented 3 years ago

which raises the burden for anyone wishing to use the contents of the collection while complying with these requirements

Meh, that's life, right. You find something you like on the internet, be it an image or a poem or some code, that you want to turn into something new. Then the burden is indeed on you to figure out how to do that legally. If you find that keeping the solution to a puzzle hidden outweighs the benefits of releasing the source code (which I honestly can't imagine) then sure, don't make a derivative work of something based on a viral license. Choice is still yours.

But it's your archive, so if you don't feel that having a choice of license would be a benefit, then so be it.

If you feel strongly about a GPL-flavored viral license for your software, I could simply provide a section in the readme for "third-party" games and links to their own repositiories. This would also address your concerns that your project structure is complex compared to other entries, while making it easier for people to find your repo. How's that?

That sound alright to me.

I expect that most people will want to instead process or otherwise repackage the data in this repo to suit their needs

I agree, if you look at emulators for Chip-8 (especially those on mobile platforms) they pretty much always package a set of programs with the emulator. And in many cases what the thing can do is also limited to that packaged set, which is a shame. Would be nice if more emulators would allow you to load Chip-8 programs directly from this archive.

And I guess you could keep the hash key (for the self-contained download), and just add the URL to achieve the same result. I can imagine that you don't like the idea of linking to locations that are not under your control though 🙂