Forced Licence Declarations from Contributors


#1

I realise there are people who won't appreciate me bringing this up here, but I'll just have to take it on the chin I suppose because this stuff really needs to be discussed, or at the very least, pointed out.

Here we have an open source platform that allows us, using open source software, to develop for that platform. It's the perfect combination as far as I'm concerned. But in that freedom there's also a weakness right now, because there's no mechanism in place to 'force' a licence declaration from the authors of contributions.

So what do I mean, exactly?

I mean that every contributor to the platform should be forced, as a matter of good practice, to declare the licence for their contribution. If none is declared, then the contribution should not be allowed into Axoloti's open source development environment. I could go on for hours about why these things need to be taken very seriously, but I think pretty much everyone knows the deal regards this stuff anyway.

Personally, when working with Axoloti, I look for BSD or GPL in every object I select in the object browser. If neither of those licences are declared, I don't even bother dragging the object onto the patch. There would be no point me doing so, cause I'm developing commercial products and therefore need a licence declaration for every object I use.

Makes sense, right?

So while it might come across as arrogant to bring this discussion up over an open source platform, it's important to understand that in order to protect that open source platform (and the people who use it), there needs to be respect shown towards the importance of declaring a licence for every contribution.


#2

You could drag the object, make it embedded as patch/object,edit the code ever so slightly (like, changing names of the variables or the parameters) and get away with it.
I mean, if someone didn't even bother to put a license on its object, i really doubt he will sue you or do anything law-related..

As for the good practices: sooner or later someone will tell you something like this: "axoloti is a different thing for everyone, especially for content creators, and we don't want to limit their creativity with strict rules to follow".
It would be nice to have some magna carta axolotum, but you can recognize that without law enforcement that's basically wastepaper.


#3

I know what you mean, and truth be told I find all the legal stuff as boring as most people would, but I'm one of the good guys, I would never make basic edits just to get around a licence agreement. But that's my point, I simply wish to know the licence of each object I use inside Axoloti's patching environment, so that I know whether the author is ok with it's use in a commercial capacity.

Being an open source environment, sure, most of the stuff is fine cause it's clearly licenced as either BSD or GPL, and I appreciate those who take the time to declare the licence type. But for those objects without a declaration, people would be very wise to tread carefully. Without a licence declaration for each contribution, the unfortunate fact of the matter is that unsuspecting people who come to the platform assuming they can just create and sell whatever they like, are in for a big shock, because they cannot do that with undeclared licences or licences that don't permit it.

Johannes made the big (and right) decision on how the Axoloti system itself is licenced, but I wish there was a mechanism in place, like an input box for example, which forces the selection of a licence before a contribution can be let into Axoloti's open source environment. There really should be no way for any type of contribution to make it's way into Axoloti's development environment unless a licence has been declared for that contribution.

On a lighter, more amusing note, I even spotted some objects with a licence called "Who Cares?"
He knows who he is, right Mark? :smile::wink:


#4

yeah, I think we should just insist that contribution to the community library means you sign up to (e.g.) BSD for your objects that you contribute - having different licences for one repo, is basically not reasonable/workable.

(on retrospect, I kick myself we didn't think of that when we set up the library!)

given the factory objects are BSD, this seems to be a reasonable default.

but actually it doesn't really matter.. unless you were going to try to distribute binary patches
people have the right automatically to use your source code, as you have uploaded it to a public server.
(modification/replication and redistribution... I suppose is a different matter... but no ones is copying others objects , are they? :wink: )

frankly, filling in a text field, is not enough to bind anyone to any contract - you would have to explicitly get users to agree to it when they download the object, and also show them the license agreement - and then delete it if they didnt agree. -I highly suspect this is just not going to happen.
(you probably would also have to log which agreements they signed for which objects.... its a minefield, and potentially, you'd be asking users to sign a multiple licenses every time they sync'd the library!)

I really think we should strip the license field from the object (I suspect it was more for information only) and instead put in place an agreement that contribution/uploading to the axoloti-contrib library, is consent to a license.

which license would be the correct one? I think we need the most liberal, since we are NOT going to enforce it.

I propose, we make a declaration that all objects from (e.g.) 5th April 2017, will be considered to be BSD...
this will be made clear on this website (in the contributors section) , and a standard BSD license put in the top-level directory.
if anyone has an issue with agreeing to that licence, then we will remove their objects from the library.
(they are of course free to distribute their objects via their own GitHub library)

GPL is also another 'obvious' choice, since uses agree to this when they first install axoloti.

also, note, we have discussed a new approach to libraries for the future... which will actually mean this is a non-issue, it will become strictly the contributors choice/decision.
(it is however, useful to clear this up a bit, for the current contributions..)

thoughts?


#5

Thanks for a thorough, insightful and sensible reply, Mark!

Have to admit, before my Axoloti arrived, I just assumed everthing would be under the same licence that Johannes had specified for the factory objects. I was surprised (and a bit shocked) to see that wasn't the case when I finally got to browse the object library.

I totally agree, the best solution is to simply make it clear from the start, that if you contribute objects or anything else to Axoloti, then you do so under the right licence. That way, you automatically protect both the platform as a whole, and everyone who uses it.

I truly have the deepest respect for everyone who contributes to this wonderful platform, because presumably they do so in the spirit of open source software and hardware. But licences that limit any form of usage, sharing, and redistribution, have no place in such an environment. Unless a contributor had hidden motives, they should have no problem accepting that all contributions are to be released under the same BSD licence as the factory objects are.

If some refuse, then you lose nothing and gain safety, because all it means is that the licence of their contribution, was not suitible for an open environment in the first place.


#6

@axoman

Since you write about commercial licenses and so on; are you planning to sell Axoloti objects or what is your intention?

To be honest I dont see the big issue. I think everyone who uploads something to Axoloti com.lib. knows that everyone else will use it and manipulate it as they like. That is kind of given, when you work with open source. If anyone then want to make something commercial out of it I think it is there duty to make sure to protect their work, as any commercial company would. And we know it can be almost impossible to protect it, since changing a few things will remove any copyright. It is that simple.

I actually like Axoloti hell of a lot because of the open source and how it works. This is how a sustainable community would look anywhere in the world, maybe with a little bit of optimization here and there. But in general I dont like huge companies who are only out to get their hands deeps inside you pockets and rip every cent you have out of it. Sharing is caring. I like that :slight_smile:

Anyway, I have a fairly "loose" approach to this copyright stuff. I have released many tracks over the years and people put it everywhere on the internet with out my consent. And I dont really care at all. I look at it as promotion. The more people that hears my music the more people will book me or buy something from me.


#7

that is a fair point of course @jaffasplaffa. still @axoman has a point, why not do it the right way? it could be done so that it would be not more work for the contributors.

this copyright/license stuff might be boring and not so interesting to some, but you have to know about it and ultimately you have to care at some point. puredata for example could not be included into ios apps for years because one of the objects (expr~) had a license not compatible with the appstore. so they had to take that into account for libpd and only recently the license for expr~ was changed.

i opt for a gpl default on all externals/objects!


#8

Yeah I am up for that too. As soon as you add something to the community library you also agree that everything is open source. That is fine with me :slight_smile: This will maintain the "open sourceness" of the community :slight_smile:

I dont like restrictions, like a lot of companies do these days, to make you pay even more money. UAD has their million dollar dongle called a "DSP card". A lot of other companies actually enforces restrictions on stuff you have paid for, which is yours...... Like you can only use the software on one computer... Argh sorry. They are not getting my money anymore. To me that would be the same as a shoe store telling me that I can only wear one shoe at a time or that I can only wear them 3 days a week. Not buying it.... I paid for it and I'll do what I want with it or else I am not buying it.

So thanks to Johannes for this great open source community. This is for me the future and these kind of products I like to support.


#9

Just to point out something to those that don't understand. If you DON'T declare a license then the default position is not that the code is public domain, but is infact the opposite. You don't have rights to use that object. Note this rule will vary depending on country and legal system.

My view: While I used to advocate heavily for GPL and not even BSD would suffice, I finally found the right medication and now I only care that something is licensed with "anything".


#10

quick reminder, lets keep this topic focused on the licence on objects, its easy to stray into open source good/bad, whcih licenses are better... but take that to another topic please, id like to get to a resolution on this topic.

a few observations:

  • all users using axoloti agree to a GPL when they start the axoloti patcher
  • axoloti code/factory objects are covered by the liberal BSD license.
  • when you submit code to axoloti community library, is YOUR account, not the repo ownership, so you need to respect the GitHub T&C.
  • any user contributing code, has signed a GitHub agreement, see here , this says you cannot publish anything which infringes copyright.

personally, I don't think the license field on objects has any 'contractual meaning', so want to remove it.
(BSD/GPL/MIT all require that the user is given access to the license terms, we do not provide this)

current position?

if you are contributing code on a public GitHub, then you are saying you have permission to let others use that code, at least in source form.... so for using in a patch, private compiled , I cannot see any issue.

However, a GPL licence of any object used, would mean, no user could release a BINARY form UNLESS they also release ALL of their code, i.e. they could not have their own private code.

It is the responsibility of person producing/releasing the binary to comply to all licenses of code he/she uses... and the owner of the code right to pursue them. (axoloti has no part in this relationship)
(it is therefore these two parties that would have to decide if the license field carries enough 'legal weight' or as @mongrol said, would it fall to a 'default ownership' rule.)

what is axoloti's role?

difficult, its certainly not policing or restricting, if you want to produce code which you don't release open source, or its under GPL, as the author that is your decision, if you want to release under BSD thats cool too.
I think the key is, ensuring users using objects know who the owner is, and some idea of their licensing model

what do we do now?

I previously mentioned, in the future, we are moving to a model, where the 'ownership' of the code will be more apparent.
this model will replace the existing community library., but the existing library will be required still for a while for 'transition'

I think the question is, what do we do till then
a) leave as is... whilst its not 100% clear, it just means a 'commercial' interest will have to do the 'legwork' and see clarity from contributors they use.
b) get agreement by all contributors to move to BSD (in line with factory, and less restrictive), any contributor that feels they cannot agree to this, then we will willing remove their objects from the library.
(they can host their objects elsewhere, and include a link in their contributors post)

(a) might seem like 'dodging' the issue - but personally, if I were planning to use someone else code GPL/MIT/BSD or not, I would ask them.... this is common courtesy, rather than a legal requirement and important in a small community - so I don't think its a real issue.
(e.g. Johannes contacted Mutable Instruments before putting some of the MI code in the firmware, similarly I recently contact Matthew on the Parasites code)

(b) might be difficult to be 100% , we can post in the forum, but its highly unlikely every contributor will respond, in fact Id think we will be lucky to get 50%... and we dont want to divert a huge effort into this. I dont think anyone wants johannes to have to drop other enhancements, and to start working on this... and Im not willing to put a huge amount of effort into this, as the future is clearer anyway.

finally, I apologise for this mess, if I had considered this when creating the community library, I could have made contribution require BSD agreement, and so avoided this debate :frowning:

thoughts?

(a) or (b) ?


#11

@jaffasplaffa
I share that same passion, and for me personally, Axoloti is the best opportunity I have to get projects off the ground, many of which I've been planning to do for years, but could never move forward due to the sheer complexity involved without the platform that is Axoloti. I know design, sound design, and marketing. But I don't know coding and the more inticate details of hardware. So that's where Axoloti helps me out, and makes things possible.

Since you asked, I'm using Axoloti for two reasons. One reason is that I prefer dedicated hardware and hands-on knob dwiddling to using a computer. Eventually, I plan to build a complete studio using Axoloti boards, this is something that will happen regardless of anything else. The other reason is my commercial plans. These are largely brought about by my frustration with the big manufacturers out there. I've completely lost my patience with them, because every product that gets released that would normally interest me, always has some incredibly lame restriction, to the point where I suspect it's deliberate because often it has cost them more in hardware (or development time in software) to implement the restriction, than it would cost if the restriction were not there!

The licence issue is something that needs to be considered very carefully, and enforced strictly.

It's easy to assume that a basic licence agreement can protect, but that's not always the case. A perfect example of that is what @lokki pointed out. Axoloti is a young, growing platform/community, so it's important these things are cleaned-up and set in stone as soon as possible. To fix it, probably all that is needed is a licence confirmation that is clicked to agree on, each time a person uploads a contribution.

As @mongrol points out, no licence declaration means no licence. Effectively, you don't even have a licence to use it, nevermind anything more elaborate.

Now a person might say, ah, yeah, but I agreed to the Axoloti agreement. Sure they did, but that's not good enough on it's own. You have to ensure that a contributor specifically agrees to a licence agreement for every contribution they make, like an 'agreement button' that is clicked-on before a contribution is allowed in.

So I totally agree with your take on the free and open spirit of things, it's something I'm very passionate about, and all I'm saying is we need to protect that spirit, and unfortunately, we can't really do that if 'undeclared licences' are allowed to slip into an open source environment.

@lokki
That's a perfect example of why this stuff is so important, thanks for posting it!

@mongrol
Agreed, I think that's one of the biggest problems, cause often people don't understand how licences can be gotten around and how serious the consequences of using the wrong licence (or no licence) can be. I hate all the legal stuff, bores the crap out of me, but as long as the work is put in to make it safe from the start, then we have a much more care-free environment to work with.

Anyway, I think Mark's reply was very promising in that he said from the start, that in hindsight, he kicks himslef for not thinking about it when working on the library. That alone deserves some respect, because he could just as easily have made excuses. Thankfully he didn't, and it sounds like he and Johannes are discussing this behind the scenes and will make the necessary adjustments.


#12

yeah, i did discuss this with @johannes yesterday... but obviously, I dont want to put words into his mouth, by quoting him here... but my response, I believe is in roughly in line with his, but no doubt with my bias :slight_smile:

one issue is, its not enough for a contributor to agree something, the USER also has to agree, and you have to give them access to the license agreement - its not practical to get the user to agree to everyones licenses for every object they use, it would make the whole user experience horrible for 99% of users, to please 1% of users.

then there is the 'sticky' issue, of somehow noting that anyone agreed to something, currently you could commit an object to the community library, from outside the UI, and so circumvent any 'agreement button'

anyway, as I said, things are going to change... so the question is, do we need a 'stop gap' to cover the current library.

and again, whilst I agree its important - this only affects (afaik) released binaries, and in reality probably only those sold, this has so far not happened... so its a small use case, that does not affect most users, so I think in some ways, expecting 'extra legwork' for someone trying to do something commercially, is not necessarily that bad at this point in time until we have a better solution in place.


#13

Sorry Mark, I think we must be on a synced posting-clock or something :smile:

I can't comment on your question because I've never used Github or the contribution process for Axoloti (yet). I'm no expert on these matters anyway, but like I said initially, I think the biggest problem is the 'existence' of undeclared licences within the environment.

Honestly, I think the simplest way to sort it is to simply have the contributor click on the licence agreement each time they upload so that the licence is clearly declared on each object in the library. It's no more sweat for the contributor than them clicking a submit button anyway. But the difference is that they specifically agree for each contribution they make, and the licence is visible for each object.

UPDATE:
Just saw your new reply. You lost me there, cause if everyone agrees to the same licence whether using or contributing to Axoloti, I don't see the problem in requiring a contributor to click on an agree button when they submit something.

But as long as you're discussing it, that's better than nothing, and it's appreciated. At the moment I'm led to believe that I'm free to use any object in products I may want to sell. Maybe I am fee to do so, but personally I'm not prepared to accept that as good enough when it concerns commercial ventures. I'll just have to continue what I'm doing by avoiding objects with undeclared licences.

Either way, I look forward to seeing what yourself and Johannes come up with.


#14

Yeah we are in the same boat. I don't want to feed their absurd passion for control. I prefer to work with people who help each other out of interest, not out of money. And as you say, all these restrictions/limitation/yadadada.... Not my cup of tea.. And these days the newest scam form developers is this "rent plug ins" crap.. Sorry I aint swallowing that.

I am 100% for making everything that is uploaded to the community licensed the way it was suggested earlier in this post. I think it is ALOT for a synth user to have to think about this over and over.. I make custom objects in ALL patches i make. It would horrible to have to o back and do something about it...

But we all know that just because it is illegal, it doesnt mean that anyone will press charges.. No one will file a lawsuit over something which potentially have a value of..... 10 euro or lower...... There are legal rules and there is common sense. I follow common sense as my main guideline.. Laws/rules... The more laws there are the less they matter in my opinion... A bit like inflation and money... The more money there is the less value they have.. It is the same with rules... The more rules, the less they matter, cause no ones knows them and therefor no one cares about them... For example in Alabama it is illegal to sell peanuts at night time... On wednesdays.... this is serious stuff ..... Ixnay on the peanuts..... :wink:

How is Reaktor handling there community library regarding these things? There must be other companies that you can get inspiration from. :slight_smile:

Getting back to this later today. I am at work now :slight_smile:


#15

there is a real danger here of over simplifying. IF you are planning to to do anything as a commercial venture, Id recommend you study all of the licence agreements for any code, and yes, if any are unclear then you either need to reach an agreement with the author or not use. oh, and be sure of the provenance of all code, just because some random guy puts it on a public server and says its BSD/GPL ... doesnt mean it is :wink:
this statement is true of all software/code you use, axoloti or otherwise.

and of course, dont take any advice from any random dude on the internet :wink:


#16

@jaffasplaffa
You sound like a clone of me in a lot of ways, I totally hear you :grin:

And your post just brought about a thought, so maybe I can explain an aspect of the problem a little better because if it. So imagine this, you're looking through the object library, most specify BSD or GPL, there's some others in there, and there's some with nothing declared.

Right, so apparently, I don't need to concern myself with the licence of any of them because this is an open source platform so there are no restrictions, right? Ok then, so why are the GPL and BSD licenced stuff even bothering to state the licence type in the library? If it were true, that it really didn't matter because all contributors have agreed to the open source thing, then why bother mentioning the licence on any of the objects at all?

The only answer to that is because the authors of the objects have the ability to assign different licences to their objects. This alone indicates that it is acceptable to specify the licence from within the environment. And that's the thing, because due to this being allowed, there needs to be a solid rule that all contributors take the time to declare what licence they have chosen for their object.

It's incredibly lax not to do so, and I don't mean that in a rude way. I understand that contributors just want to pursue their passion and likely don't care about that stuff. Most take the time to declare the licence, some forget, and some might not think it important. But it is important, and the reason it's important is because others have declared their licences, which in turn, indicates a need for doing so in that environment.

In other words, if it were not important, then there would be no need to declare any licence for any object inside the object library. But fact is, they are declared for the most part, so we can't have it both ways.

If we accept that different licences are to be allowed inside the Axoloti environment, then surely, we must expect it to be a requirement to declare those licences.

If I could say it as short and sweet as possible, that would be it.

@thetechnobear
You're doing that clock-synced posting thing again, lol!

Yeah I hear you, I'll never use anything unless it's 100% safe to do so, no way. But check the sentence I highlighted in bold above, because I think that pretty much sums it up as best I can. Licencing can be messy, but it can be a nightmare if no licence at all has been declared in an environment where licences are usually declared.

Then ask yourself, do these licences need to be declared/shown from within Axoloti? If you decide that they do need to be declared/shown, well then you have the answer automatically as to whether contributors should be forced to declare a licence or not.

Hehehe :grin:


#17

I follow you. Then I get the thoughts that no one fores anyone to add anything to the library. Everything is based on free will and good spirit. If you want to share, you share it, if you don't want to share it don't share it. I think this matter is also important, the pre-step before things end up in the library.

But my thoughts are only user point of view. I don't have the developers perspective, as you have. And neither do I have any knowledge about licenses and so on, since I never really had to be bothered with it. I see there might be some issues. But it is not something I'd like to have to deal with too much. It takes time away form the fun stuff, patching and making music :slight_smile:


#18

We'll just have to see how it goes I suppose, and it's not as if I can't use the product unless things change. I can still use it in the way I planned, but it feels counter-productive having to concern myself with licences. It's a shame they didn't settle on GPL from the start.

Basically, GPL for everything :yum: