Page 3 of 3

Posted: Tue Nov 10, 2009 8:54 pm
by Selezen
All works by David TW Hughes, also known as Selezen, advertised under the banner of Seldar Shipyards, heretofore referred to as The Products, are hereby protected under the Tionislan World Agency for Trade* Intellectual Property Law (Modified Electronic Media, Revision 439, Volume VII, Chapter II, Subsection a sub-paragraph iii, microdot alpha-three-seven).

Any and all use of The Product without express permission for each instance of execution will be classed as breach of copyright and fair use.

Standard recompense for breach of this agreement will be a fine of not less than £3000 per kilobyte of memory used. Should the memory usage increase to over 1Mb used, the copyright breacher will be required to pay damages of one (1) chicken tikka masala with keema naan (no rice) within 48 hours.

Should the copyright breaker still persist in this act for a further three occasions, the copyright holder will personally visit the abode of the individual and show them holiday photos on a mobile phone screen for a period of no less than seven (7) hours. This will be done on a day when the copyright holder's IBS is playing up and he has just eaten all the chicken tikka masala awarded for previous breaches of the agreement.

Harcopies of this agreement can be found in the recycle bin at the Agency for Trade office on Tionisla Coriolis 3.

:lol: :lol:

* check the initials...hee hee

Posted: Tue Nov 10, 2009 8:58 pm
by drew
Selezen wrote:
All works by David TW Hughes, also known as Selezen, advertised under the banner of Seldar Shipyards, heretofore referred to as The Products, are hereby protected under the Tionislan World Agency for Trade* Intellectual Property Law (Modified Electronic Media, Revision 439, Volume VII, Chapter II, Subsection a sub-paragraph iii, microdot alpha-three-seven).

Any and all use of The Product without express permission for each instance of execution will be classed as breach of copyright and fair use.

Standard recompense for breach of this agreement will be a fine of not less than £3000 per kilobyte of memory used. Should the memory usage increase to over 1Mb used, the copyright breacher will be required to pay damages of one (1) chicken tikka masala with keema naan (no rice) within 48 hours.

Should the copyright breaker still persist in this act for a further three occasions, the copyright holder will personally visit the abode of the individual and show them holiday photos on a mobile phone screen for a period of no less than seven (7) hours. This will be done on a day when the copyright holder's IBS is playing up and he has just eaten all the chicken tikka masala awarded for previous breaches of the agreement.

Harcopies of this agreement can be found in the recycle bin at the Agency for Trade office on Tionisla Coriolis 3.

:lol: :lol:

* check the initials...hee hee
Licensing for on my works is a derivative work of the above license, except the license must also be buried under soft peat for three month and recycled with firelighters.

Cheers,

Drew.

Posted: Tue Nov 10, 2009 10:00 pm
by ClymAngus
Chickens, that's all I'm going to say. Copyright Chickens. Touch one molecular bond of the pure gold that is my creative blistering mind scape of pure genius thought vomit. And they'll come for you......

THEY'LL COME FOR YOUR EYES! Beware the Cluck cluck buckarK of raw justice petulant mind thieves!

You can hear them, if you listen really carefully...... Scratching at your doors. That is the scratch of your impending DOOM!

Posted: Tue Nov 24, 2009 1:37 pm
by Griff
I'm a bit stuck on this licensing stuff. I'm going to try and make sure i put a license in my oxp's next time i update them or make a new one

Anyway, I'm completely clueless about what i have to do though, i've been having a quick browse at this page http://creativecommons.org/about/licenses and i quite fancy the Attribution Non-Commercial Share Alike
This license lets others remix, tweak, and build upon your work non-commercially, as long as they credit you and license their new creations under the identical terms. Others can download and redistribute your work just like the by-nc-nd license, but they can also translate, make remixes, and produce new stories based on your work. All new work based on yours will carry the same license, so any derivatives will also be non-commercial in nature.
That sounds quite nice for an oxp ship i think, plus the license insists that you still get credit for your original works so the glorious name of Griff will live on for enernity *evil laugh*
uh where was i, so, to recap, i have an oxp and a website with a summary of a license i'd like to release it under on it, what do i do now?

Posted: Tue Nov 24, 2009 3:07 pm
by Kaks
As long as your readme includes something like:
'boilerplate' wrote:

This OXP is released under the Creative Commons' Attribution Non-Commercial Share Alike licence.

In essence, this licence allows others to translate, make remixes, and produce new OXPs based on this OXP. All new work based on this will carry the same license, so any derivatives must also be non-commercial in nature.

See http://creativecommons.org/about/licenses for further details.
And this.licences inside js scripts are present & correct, that should be all that's needed.

Posted: Tue Nov 24, 2009 4:59 pm
by Wolfwood
Selezen wrote:
the copyright breacher will be required to pay damages of one (1) chicken tikka masala with keema naan (no rice) within 48 hours.
That's one yummy license! May I have one too?

Posted: Tue Nov 24, 2009 9:01 pm
by JensAyton
Kaks wrote:
As long as your readme includes something like:
The recommended boilerplate is:
This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
You can get this (or the equivalent for any other CC license) by clicking “Use this license for your own work” at the bottom of the deed, and then looking under “offline work”.

Re: Licensing OXPs – Discussion

Posted: Sun Feb 07, 2016 12:12 pm
by ocz
Wuch.... Don't you just hate the complexity of licensing?

I have another headache for you and a proposal, how to get rid of it fast.

Sometimes the behaviour of inner workings of oolite is needed for an OXP, but no js-interfaces have been implemented for them. There is a fast solution for simple cases: Just reimplement the needed Obj-C code as javascript in your OXP. The only problem is, that this code is licensed under the GPLv2. Most OXPs ain't. How can I simply embed oolite source into an OXP without needing to switch the OXP's license to GPL?

EDITED:
Here's an example and my take for a solution of the problem:
!!!The presented proposal can't by applied in the following form!!!
Please read cim's answer post concerning this question two posts below.

Code: Select all

this.cycleStationMarket = function(station, commodity, randomizeSeed) {
	
	if (!randomizeSeed) var randomizeSeed = Math.floor(clock.seconds/5);
			

//! Start of cycleStationMarket sub-algorithm.
//! This sub-algorithm is based on program code from the oolite sourcecode ver 1.82 (OOCommodities.m : generatePriceForGood & generateQuantityForGood) and therefore is subject of another license:
//! GNU General Public License v2
//! Copyright (C) 2004-2014 Giles C Williams and contributors
//! Rewritten and modified by ocz 
	var bias = this.economicBiasForGood(station.market[commodity],system.economy);
	
	var pBase = station.market[commodity].price_average;
	pEcon = pBase * station.market[commodity].price_economic * -1 * bias;
	pRandom = pBase * station.market[commodity].price_random
	 * (system.scrambledPseudoRandomNumber(randomizeSeed) - system.scrambledPseudoRandomNumber(randomizeSeed+1));
	pBase += pEcon + pRandom;
	if (pBase < 0.0) pBase = 0;

	var qBase = station.market[commodity].price_average;
	qEcon = qBase * station.market[commodity].quantity_economic * -1 * bias;
	qRandom = qBase * station.market[commodity].quantity_random
	 * (system.scrambledPseudoRandomNumber(randomizeSeed+2) - system.scrambledPseudoRandomNumber(randomizeSeed+3));
	qBase += qEcon + qRandom;
	if (qBase < 0.0) qBase = 0;
//! End of cycleStationMarket sub-algorithm.
	
	station.setMarketPrice(commodity, pBase);
	station.setMarketQuantity(commodity, qBase);
}			
Things to point out:
  • Everything around it could be subject to another License: cc0, MIT or cc by-nc-sa 4.0, to just name a few examples
  • A copy of the GPLv2 itself would be included in a disclaimer file in the OXP's root directory or a special license folder, which header would state that GPL code is/maybe embedded somewhere, but wouldn't state in which files and the GPL only is applicable on the marked code
  • There may be an entry in the readme file mentioning the presents of GPL code.
  • There won't be anything mentioned in the manifest file!


Is this acceptable? Is it even possible with the GPLv2? EDIT: Nope. Read cim's answer below.
All I need is a word of god and/or modifications how to make this applicable.

Re: Licensing OXPs – Discussion

Posted: Sun Feb 07, 2016 5:13 pm
by spara
I can see your concern, but I'm having really hard time seeing any problem here. You're replicating an Oolite core function to be used in an OXP for Oolite. Oolite's meant to be modded after all.

As a side note, unless you're doing something really funky, you'll want to var pEcon, pRandom, qEcon and qRandom.

Re: Licensing OXPs – Discussion

Posted: Sun Feb 07, 2016 8:02 pm
by cim
(In this specific case, of course, as the author of that particular bit of Obj-C code I'm highly unlikely to be suing OXP authors who produce JS implementations of the same algorithm having read the Oolite source, and I'm happy for you to use JS reimplementations of it in any CC-BY-SA or CC-BY-NC-SA OXP without further note - but you need to be much more careful with GPL code in general)



If you want to be absolutely certain, what sometimes happens in these cases is person A will analyse the original code and write a specification for what it does - but not how it does it. Person B will then implement some new code to that specification without ever looking at the original. ("Clean room implementation" is the phrase to search if you want more details)

In this particular case, the behaviour of everything in that function is documented at [wiki]trade-goods.plist[/wiki] already, and there's a post from me somewhere on the forums explaining how economicBiasForGood works and why.



As regards the re-use of code under other licenses, the problem with your solution here is that if you incorporate GPL code into your program, the entire program must then be licensed GPL (intentionally so, to prevent people including GPL modules in closed-source apps). This doesn't stop you, as the copyright holder for the rest of the work, licensing that additionally under something else. So, what you'd need to do is:
- license for OXP in Readme and manifest is marked as GPL (the manifest really should only include licenses which can apply to the whole OXP, to avoid leaving traps for people trusting that field). In the Readme note that except where otherwise stated in the code, reuse under (say) CC-BY-NC-SA is also allowed.
- reverse the sense of the comment: state that this section of code is not redistributable under CC-BY-NC-SA due to its source, and must be removed and reimplemented to distribute under that license. (It would be nice to list the locations of these sections in the Readme as well, but that's not strictly necessary)
- make sure you don't also incorporate any code anywhere which you can't use as GPL - e.g. anything taken from other CC-BY-NC-SA or CC-BY-SA 3 OXPs, because you don't have permission to redistribute that as GPL, but don't have permission to not do so either.

Some licenses do allow that sort of integration and note approach - MIT, or BSD, for example - but the GPL doesn't.
In the specific case of CC-BY-SA-4 it allows you to relicense works under that license one-way to GPL3, so what you can do there is:
- take the GPL 2 or later code in Oolite
- take the option to use it under GPL 3
- take the CC-BY-SA-4 code in another OXP
- take the option to use it under GPL 3
- license your entire OXP under GPL 3.
but that's a particularly unusual case.



You could also:
1) Ask in the Scripting Requests thread - generally if it's trivial to reimplement in JS it's probably also pretty easy to expose the functionality to JS
2) Submit a patch to the core code which provides the JS implementation (if you can read ObjC you can probably write it too, and the Javascript interface is easy to add stuff too by copy and paste - that's what most of my first patches to the core were)

Re: Licensing OXPs – Discussion

Posted: Sun Feb 07, 2016 10:18 pm
by ocz
Thx for the fast answers. I go with cim's generous offer to publish the code under cc by-nc-sa 4.0 at first, as I update an OXP, that I'm not the original author of.
Luckily it has been published under cc by 3.0 and therefore should be updatable to cc by 4.0 and cc by-nc-sa 4.0. From there on like cim suggested-> GPLv3 +Disclaimer: Everything relicensable under cc by-nc-sa 4.0, except marked (original GPL) code. (Quite an Aufhebens, isn't it?) (Aufhebens->Umstände->bothersome fuss)

I'll think about doing that, to create an example OXP for these cases. (But only if it makes sense in this OXPs case.) But now it's late.

Gn8.