Licensing

Jack Claw was in development between 2006-2008 and was released in the Humble Frozenbyte Bundle for the community to play and build upon.
Burzmali
Posts: 5
Joined: Wed Apr 13, 2011 4:13 am

Licensing

Postby Burzmali » Wed Apr 13, 2011 4:15 am

Have you folks given much thought to what license this source code is to be released under (if any)?

User avatar
FB_Lauri
Posts: 903
Joined: Fri Mar 11, 2005 1:51 pm

Re: Licensing

Postby FB_Lauri » Wed Apr 13, 2011 4:46 am

We will sort out that with community, but there is a basic non-commercial license included with the source code.

So we hope to see a community to rise on the project with whom we can sort all this out. We are very open to anything what is gamer-friendly :D

Burzmali
Posts: 5
Joined: Wed Apr 13, 2011 4:13 am

Re: Licensing

Postby Burzmali » Wed Apr 13, 2011 7:00 am

Have you considered splitting the license in have and releasing the source code itself under a open source license like the GPL and retaining the assets under a CC-NC license of some kind? I ask because, while IANAL, I am fairly sure that the NC clause in your license prevents it from being capable with the GPL which cuts off a lot of libraries and tools that might be bolted on to port and improve the game.

Though as it stands, LGPL libraries should be okay, which means a port using SDL is currently an option.

User avatar
StevenT
Posts: 29
Joined: Wed Apr 13, 2011 7:23 pm

Re: Licensing

Postby StevenT » Wed Apr 13, 2011 11:07 pm

GPL would be a good choice for this project. It's what the Quake engine open source releases used, as did the games that went open source in Humble Bundle #1.

User avatar
fb_joel
Site Admin
Posts: 2482
Joined: Fri Feb 18, 2005 2:14 pm
Location: Finland

Re: Licensing

Postby fb_joel » Thu Apr 14, 2011 10:25 pm

Ah, we hadn't thought about the library-dependency thing. Yes it's possible that we'll release the code under full GPL. This is our first source code release so that's why we're a bit worried, and didn't want to go GPL at launch. We'll have to think about a bit, but yes it should be possible to do it like that. We already divided the source and art anyhow, so if we want to go full GPL then it's easy to update...
// Joel, Frozenbyte team

josebagar
Posts: 3
Joined: Wed Apr 13, 2011 3:45 pm

Re: Licensing

Postby josebagar » Fri Apr 15, 2011 1:40 am

Great to know!

We might be able to add your 3D engine into our game engine (BennuGD) then :)

Thanks.

User avatar
Mr. ShadowStealer
Posts: 435
Joined: Mon Feb 20, 2006 10:12 pm
Location: Finland
Contact:

Re: Licensing

Postby Mr. ShadowStealer » Fri Apr 15, 2011 7:58 pm

Heh. You said you are a bit worried because you made your first source code launch. Usually gaming companies are worried because they NEVER EVER want to do any kind of source code releases at all. :D
Not all of you have äää's and ööö's :P

yskyflyer
Posts: 3
Joined: Sat Apr 16, 2011 3:18 pm

Re: Licensing

Postby yskyflyer » Sat Apr 16, 2011 6:54 pm

Hi, IANAL, and these are my Options, I may not even know what I’m talking about or included mistakes.
I'm glad you chose to release the source code, thank you. However I was disappointed that you chose a GPL incomparable non “Open Source” (OSI) license; but I checked back and at least you never used the term “Open Source” but rather something along the lines of the source code is available so while honest it was misleading. I'm grateful that you are at least open the the idea of using the GPL. If chose not to use a GPL compatible license please make it abundantly clear that you have not chosen an OSI “Open Source” and that it is not FSF “Free Software” (and not DSFG).


Let me try to sway your opinion pro GPL 2+ or GPL 3+ (GPL)

Also if you use the GPL you must include additional permission under a special exception to link with your non-free dependencies otherwise the GPL binaries would be legally undistributable. Eventually those dependencies can be worked around or replaced and in the mean time you could but shouldn’t tag on extra restrictions with your extra permissions. If you use the exception it cannot be conveyed with other GPL code without that exception when you need that exception.

The “JACK CLAW SOURCE CODE LICENSE” appears to be a Lax permissive license that prohibits Commercial (NC) distribution. I understand this may be a reaction to the Counterfeit Lugaru on Apple's App Store indecent however there are unintended consequences. The Lax permissive part means you give up all the protections of a well studied copyleft license like the GPL. Nothing in the license grants you the right to use derivative works (inc ports, fixes, changing dependencies etc). Derivatives reusing the same license don't grant you Commercial use of the program so you can't distribute it as part of the HIB. And the Non-COMMERCIAL part only applies to your code so someone could sell source code derivatives that use wrappers and isolated files and build install scrips, all without distributing any of your code, or distribute direct modifications to your files as a separate non commercial download. The GPL prevents this and if they try to sell/distribute it you get access to the source code and distribute your official version.

Lots of app stores are Hostile against the GPL so that works in your favor as only you can duel license your code if you get permission from all contributors/copyright owners, You could add that as another sepal exception to give FROZENBYTE the right to re license the code but developer agreements are discouraged.

Because your license is non-COMMERCIAL is not a “Free Software” license as defined by the FSF nor is it an “Open Source” license as defined by the OSI, nor is it DSFG compliant as defined by Debian (identical to OSI definition). This means several source repositories will refuse to host your code and classify it as non-free.
The only Creative Commons licensees that are DSFG are CC-by and CC-by-sa 3.0 (use 3 or latter)
the ND and NC licenses are not DSFG however they are easier to understand and more of a standard license that would be convent for zero cost non-free demo assets (when CC-by-sa is unavailable for financial reasons).

I would be grateful if you released enough art under CC-BY-SA 3.0+ so that the program was functional. Maybe an ugly rough sketch skeleton with ugly bitmap skin, Or if you don't want to create new content the existing essential skeleton with permission to make derivatives of the outlines of your bitmap assets. So maybe 3 Packs, a non free Paid Asset pack, a smaller non free free download demo asset pack, and a tiny DSFG CC-by-sa 3.0+ rough bare minimum essentials pack.

Also I've never seen this anywhere officially but what about some type of time release license for the assets you can't give away now. Such as in 5 years after the last update the code becomes GPL or some assets CC and until 5 years FROZENBYTE haves the right to sub-license, use and sole right to use commercially. This is something like id Software does with their game engine but not as a nonrecoverable duel license promise.

Maybe you give the code to a third party and X years after your last free update the code for that version at least is released. Under a GPL compatible license. OR V years People who paid for the program get access to the code and can redistribute modifications only to other people who own the program until X years where it becomes GPL.

I mean do you really plan on profiting on any of these 5 games 10 years from now let alone 95 / After you all die + 70

Also the comments above about statically linking to LGPL stuff

Sorry that this post is so long and I ranted a bit. I try not post political stuff but the Non-free license bothered me.

Also You probably know this already but I recommend everything in the source repository stay GPL compatible and DFSG, Also I read that you shouldn’t put anything other than uncompressed text files (ie no non text binary files such as bitmaps). It's may be too late to remove them from the Lugaru code, and that may have caused the confusion that led to the incident and it makes it harder to maintain DFSG forks and it makes the size of the repository very large.


*Sorry I just noticed this now so I didn’t look into it that carefully but you may have an illegal license violation with your use of cygwin1.dll in JackClaw_Editor_and_Assets.zip
As a quick alternative you can use MinGW.
I did not look at it that carefully so I'm not positive its a violation but it's a red flag.
I haven't accurately installed and inspected any of the programs yet.
Cygwin provides a GPL linking exception for OSI “Open Source” licensed code only. Other licensees require a buy-out license from redhat.

**A user has already posted the code to code.google.com unaware that the license is not OSI "Open Source" and as such is not edible to be hosted their.

I can elaborate more but I’ve already typed too much sorry.

Citations & References
“Free Software” (FSF Richard Stallman's Ideological)
http://www.gnu.org/philosophy/free-sw.html
“Free software” does not mean “noncommercial.” A free program must be available for commercial use, commercial development, and commercial distribution.
“Open Source” (OSI, DSFG Linus Torvalds's Practicality)
http://opensource.org/docs/osd
http://www.debian.org/doc/debian-policy/ch-archive.html
1. Free Redistribution
6. No Discrimination Against Fields of Endeavor

http://en.wikipedia.org/wiki/Permissive ... re_licence
non-Free source-available shared source http://en.wikipedia.org/wiki/Shared_source
http://www.gnu.org/philosophy/categories.html
http://www.gnu.org/licenses/license-list.html
http://blog.wolfire.com/2010/05/Open-so ... s-freeware
http://blog.wolfire.com/2011/02/Counter ... developing
http://www.mozilla.org/foundation/trade ... olicy.html
http://www.gnu.org/licenses/gpl-faq.html#GPLWrapper
http://www.gnu.org/licenses/gpl-faq.html#BitTorrent
http://www.gnu.org/licenses/gpl-faq.htm ... atibleLibs
http://www.gnu.org/licenses/gpl-faq.html#FSWithNFLibs
http://cygwin.com/licensing.html
http://www.redhat.com/services/custom/cygwin/
Cygwin License Buy-out
In order to maintain proprietary status for applications developed with Cygwin, customers must buy-out the Cygwin license from Red Hat. This is most often employed in conjunction with Cygwin developer support.
http://en.wikipedia.org/wiki/MinGW#Comp ... ith_Cygwin
http://arstechnica.com/microsoft/news/2 ... ld-too.ars
http://www.google.com/search?q=app+store+gpl
viewtopic.php?f=19&t=3325#p13723
http://code.google.com/p/jack-claw/
http://code.google.com/p/support/wiki/F ... an_be_used?
If for some reason, your project cannot use one of the ones listed, there is an option in the license selector to allow the use other OSI approved licenses. Simply select “Other Open Source” and indicate in your LICENSING, COPYING or similar file which license you are using.

Update 0 (first post)
Update 1 code.google.com requires OSI “Open Source”

User avatar
fb_joel
Site Admin
Posts: 2482
Joined: Fri Feb 18, 2005 2:14 pm
Location: Finland

Re: Licensing

Postby fb_joel » Sun Apr 17, 2011 1:36 am

Thanks. Yes we've said that we have "released the source code", but I've never said that we would've open sourced it and I think we've avoided saying that successfully. There's no single-line way of saying that nicely, so we just didn't want to confuse people (I think many casual people nowadays think "open source == source code" and could get confused by some "we've released source code but it's not open source" sentences. Sorry for the confusion (I guess there was no way to avoid some).

The current license is a custom license, inspired by the Descent source code license. The Lugaru incident was one reason why we wanted to play it a bit safer at first.

Do let me know about the cygwin1.dll issue, that sounds a bit worrisome.

For Jack Claw we don't really have that many requirements (e.g. very little plans of our own) so GPL could be a way to go. I will have to research your post more thoroughly in the coming days, lots of stuff to take in.
// Joel, Frozenbyte team

yskyflyer
Posts: 3
Joined: Sat Apr 16, 2011 3:18 pm

Re: Licensing

Postby yskyflyer » Sun Apr 17, 2011 2:59 am

More info About Cygwin™ Per your request
Some of this is a re-post sorry.
You distributed JackClaw_source_v5.zip
It contains cygwin1.dll
It also Contains cpp.exe and that depends on cygwin1.dll
I don't know what cpp.exe is or does
I don't know what else depends on cygwin1.dll

Code: Select all

C:\Users\MyName>tasklist /m /fi "imagename eq cpp.exe"

Image Name                     PID Modules
========================= ======== ============================================
cpp.exe                       4656 ntdll.dll, kernel32.dll, ADVAPI32.DLL,
                                   RPCRT4.dll, cygwin1.dll, Secur32.dll

C:\Users\MyName>



http://cygwin.com/licensing.html
Cygwin is GPL 2
Cygwin™ Open Source Licensing Exception

If you link against Cygwin it must be OSI "Open Source"
If you distribute the Cygwin™ DLL you must provide sources for the Cygwin™ DLL (or an offer per the GPl requirement)

Even if you only mirror/distribute a prebuilt GPL binary you still need to distribute the source.
<Looking for link with good explanation>
The GPL3 has a special exception for bitorrent because technically it violates the GPL2, nobody cares
http://www.gnu.org/licenses/gpl-faq.html#BitTorrent

http://www.gnu.org/licenses/gcc-exception-faq.html
http://en.wikipedia.org/wiki/MinGW#Comp ... ith_Cygwin
http://mingw.org/
http://cygwin.com/licensing.html
http://www.redhat.com/services/custom/cygwin/
Cygwin License Buy-out
In order to maintain proprietary status for applications developed with Cygwin, customers must buy-out the Cygwin license from Red Hat. This is most often employed in conjunction with Cygwin developer support.

http://en.wikipedia.org/wiki/MinGW#Comp ... ith_Cygwin

Cygwin aims to provide a complete POSIX layer
MinGW or Minimalist GNU for Windows tires to be a small and as native as possible.

When you distribute a program that uses Cygwin you distribute a Cygwin library that requires GPL compliance with an OSI linking exception.
If you use MinGW it does not link against it's own libraries and is rather only a tool. Binaries compiled with MinGW link against native "system libraries". The headers should be Public Domain

http://mingw.org/
MinGW provides a complete Open Source programming tool set which is suitable for the development of native MS-Windows applications, and which do not depend on any 3rd-party C-Runtime DLLs. (It does depend on a number of DLLs provided by Microsoft themselves, as components of the operating system; most notable among these is MSVCRT.DLL, the Microsoft C runtime library. Additionally, threaded applications must ship with a freely distributable thread support DLL, provided as part of MinGW itself).

Again sorry for the long post, I assume for a lot of these issues its a “nobody cares” kind of thing

Update 0 (first post to answer questions quickly)

Burzmali
Posts: 5
Joined: Wed Apr 13, 2011 4:13 am

Re: Licensing

Postby Burzmali » Mon Apr 18, 2011 12:44 am

fb_joel wrote:Thanks. Yes we've said that we have "released the source code", but I've never said that we would've open sourced it and I think we've avoided saying that successfully. There's no single-line way of saying that nicely, so we just didn't want to confuse people (I think many casual people nowadays think "open source == source code" and could get confused by some "we've released source code but it's not open source" sentences. Sorry for the confusion (I guess there was no way to avoid some).

The current license is a custom license, inspired by the Descent source code license. The Lugaru incident was one reason why we wanted to play it a bit safer at first.

Do let me know about the cygwin1.dll issue, that sounds a bit worrisome.

For Jack Claw we don't really have that many requirements (e.g. very little plans of our own) so GPL could be a way to go. I will have to research your post more thoroughly in the coming days, lots of stuff to take in.

As a side note to this, since you have made the source available, you could get hit with the same problem as Lugaru. Those folks knew they weren't following the GPL, they were engaging in good old fashioned thuggery and trying to use the GPL to confuse things. A week from now "Rack Craw" could show up in an app store somewhere and you'd still have to fight to get it removed.

Thomas Biskup has been grappling with the thought of the source to ADOM for a long time and recently recapped his position here: http://www.adom.de/blog/2011/04/14/the-genie-and-the-bottle/#more-76

Thieves aside, the GPL is probably the one that would make it hardest for anyone to profit from your work. The GPL is incompatible with most app stores and anyone that did try to release a product based on the code would have to release source, making it simple for someone to repackage it. The catch in all of this is the artwork and models. To my understanding, it would be possible for someone to recreate their own art and models and tweak the existing code into a "loader" of some kind. In that case, even if the software was GPL, they could make a profit selling their "modules" that on the cut down GPL "loader".

So, unless someone is going to break the license, the only real way anyone but FB can make decent money on Jack Claw is by investing a ton into remaking a lot of art and hoping that people will buy modules for a game they've never played.

yskyflyer
Posts: 3
Joined: Sat Apr 16, 2011 3:18 pm

Re: Licensing

Postby yskyflyer » Mon Apr 18, 2011 9:57 am

Here is what I found out

You are currently distributing cpp.exe and cygwin1.dll in JackClaw_Editor_and_Assets.zip
cygwin1.dll Is the Cygwin runtime environment that provides a Linux API layer
cpp.exe is The GNU C preprocessor (cpp)
GNU CPP version 2.95.2-5 19991024 (cygwin experimental) (80386, BSD syntax)

CPP is part of GCC the GNU Compiler Collection, formerly the "GNU C Compiler"
http://gcc.gnu.org/

Code: Select all


C:\JackClaw_Editor_and_Assets\claw_binary>cpp.exe -v
GNU CPP version 2.95.2-5 19991024 (cygwin experimental) (80386, BSD syntax)
#include "..." search starts here:
End of search list.
The following default directories have been omitted from the search path:
 /usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-5/../../../../include/g++-3
 /usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-5/../../../../include
 /usr/include
 /usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-5/include
 /usr/include
End of omitted list.


C:\MinGW\bin>cpp.exe --version
cpp.exe (GCC) 4.5.2
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


C:\cygwin\bin>cpp-3.exe --version
cpp-3 (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


cygwin Updated
C:\>tasklist /m /fi "imagename eq cpp-3.exe"

Image Name                     PID Modules
========================= ======== ============================================
cpp-3.exe                     7556 ntdll.dll, kernel32.dll, cygwin1.dll,
                                   ADVAPI32.DLL, RPCRT4.dll, cygintl-8.dll,
                                   cygiconv-2.dll, cyggcc_s-1.dll,
                                   Secur32.dll, user32.dll, GDI32.dll,
                                   IMM32.DLL, MSCTF.dll, msvcrt.dll, LPK.DLL,
                                   USP10.dll, apphelp.dll

                           
                           
MinGW Updated
C:\>tasklist /m /fi "imagename eq cpp.exe"

Image Name                     PID Modules
========================= ======== ============================================
cpp.exe                       2648 ntdll.dll, kernel32.dll, msvcrt.dll,
                                   USER32.dll, GDI32.dll, ADVAPI32.dll,
                                   RPCRT4.dll, IMM32.DLL, MSCTF.dll, LPK.DLL,
                                   USP10.dll, apphelp.dll

C:\>

JackClaw_Editor_and_Assets
C:\>tasklist /m /fi "imagename eq cpp.exe"

Image Name                     PID Modules
========================= ======== ============================================
cpp.exe                       4656 ntdll.dll, kernel32.dll, ADVAPI32.DLL,
                                   RPCRT4.dll, cygwin1.dll, Secur32.dll

C:\>


If you distribute GCC you need to fallow the GPL and distribute the exact source code for all the code used to build it.

If you only distribute programs built with GCC you can use the GCC Runtime Library Exception
The Cygwin runtime is GPL with and OSI linking exception
The MinGW runtime is public domain

http://www.gnu.org/licenses/gcc-exception-faq.html

http://www.gnu.org/licenses/gpl-faq.htm ... JustBinary

Code: Select all

I downloaded just the binary from the net. If I distribute copies, do I have to get the source and distribute that too?
Yes. The general rule is, if you distribute binaries, you must distribute the complete corresponding source code too. The exception for the case where you received a written offer for source code is quite limited.


Cygwin is normally used for the programs in it's distribution and to compile programs for yourself. While you can distribute programs built against it you then need to distribute the exact source for your version of Cygwin.

Instead of using the Cygwin port Of GCC you can use the MinGW port of GCC
The difference is that the MinGW is a native windows port with Public Domain run time and headers
Cygwin tries to mimic Linux as much as possible and has a GPL run time with OSI linking exception

MinGW
http://www.mingw.org/license
The MinGW runtime is public domain.
The Compilers and utilities are GPL

However I don't know why/if you need to distribute GCC CPP

If you happen to find the source code for your version of cpp.exe
GNU CPP version 2.95.2-5 19991024 (cygwin experimental) (80386, BSD syntax)
and your version of cygwin1.dll that's great Otherwise you could have your users downland mingw themselves.

I'm having trouble finding the windows MinGW GCC cpp.exe binary source pair myself.
Cygwin has a tic box to download the source with the binary.
C:\cygwin\bin\cpp-3.exe
C:\cygwin\usr\src
Both use small installer a program to downland and install the other programs
C:\MinGW\bin\mingw-get.exe
C:\cygwin\setup.exe

As long as your copy cpp.exe and cygwin1.dll are vanilla (you didn’t compile it yourself) and nothing else links against cygwin1.dll you would still be violating the GPL but hopefully nobody will actually care.

If you do decide to compile it yourself you would have the corresponding source and you can just share that. Cygwin has snapshots with the dill and source here http://cygwin.com/snapshots/

User avatar
FB_Lauri
Posts: 903
Joined: Fri Mar 11, 2005 1:51 pm

Re: Licensing

Postby FB_Lauri » Tue Apr 19, 2011 4:06 pm

Thanks for the posts, very good and detailed stuff. We will of course sort out the cygwin situation and all other issues which might arise.

Our plan is not to make money with Jack Claw, but neither we want any other instances to just copy it and start making money with it, hence we want to discuss best possible license for the game or it's parts. The current self-written license is just to get things started :)

fb_jpk2
Posts: 6
Joined: Sat Apr 16, 2011 1:21 pm

Re: Licensing

Postby fb_jpk2 » Thu Apr 21, 2011 8:22 pm

About the cygwin dll: Its existence in the package seems more like a simple unfortunate "slip-up" and it was not really indended to be there. The Jack Claw code does NOT rely on it in any way - neither does the code link to it. So the cygwin .dll file should not really be a part of the package (nor should the cpp.exe that actually uses it). I would assume these to be removed from the package in any future update (or alternatively there should be a source download location / licensing documentation provided for them).

As far as I know, the cpp.exe and cygwin1.dll in the package are unmodified (and some rather old versions). At least Frozenbyte has done absolutely no modifications to them. Basically, you should be able to get the source code for them from the cygwin and gcc sites (though the versions in question are so old, that it may be much easier and more sensible to find some latest version source code instead). So in that sense, the source code for those should already be publicly available, even though it was not distributed in the Jack Claw package. So, I think the problem mostly remains with the lack of the GPL licensing documentation that should have been in the package or the inability to currently provide the exact source package or download location with it. (Though I guess people could still use the version number in the executables to find the corresponding sources.)

These issues of course need to be properly dealt with, and the apparent solution is to a) remove those unnecessary files from the package as they are not really necessary... or... b) provide the licensing documentation and the exact location for the source download for those binaries, in which case it should comply to GPL just nicely.

Because the other code / binaries do not link to the cygwin dll or the cpp executable, thus, the GPL license does not really apply to those. But clearly the distinction between the different binaries / different sources and the related licenses should have been made clear.

As far as Jack Claw goes, the development of its scripts benefits from availability of some C preprocessor - but such is not strictly required. Basically any preprocessor will do (gcc or Microsoft's C preprocessor or basically any other you can find).

The preprocessor command just needs to be configured to one of the batch files found in the data/misc folder). A preprocessor program isn't really even required by the engine/game, it just makes things easier as macros can be used while developing the script files (the engine itself just the reads the preprocessed versions of the script files for the final non-development usage). For development convenience, all the engine does, is that it launches the batch file in data/misc folder, whenever it finds a script file that has no corresponding up-to-date pre-processed version. If the script has been flagged for no preprocess, then not even the batch file is required. (Basically the editor and all the other automated tools always generate script code that does not require pre-processing, so the core engine and editor don't rely on preprocessing. Its only the "human generated" scripts that tend to heavily rely on macros and pre-processing.) :)


Return to “Jack Claw Feedback & Development”

Who is online

Users browsing this forum: No registered users and 1 guest