Jump to content

Licensing agreements - ni.com vs lavag.org vs LabVIEW


Recommended Posts

Wow licensing is a PITA. I have been trying to learn some of the subtleties of this all and one seems to be the difference between owning the copyright of a piece of code and owning a license to a piece of code.

I believe with the NI.com agreement you are giving NI a lot of freedom with what you post (a lot of this is standard across the web and must be the same for lava otherwise if you upload some code and then someone downloads it then they have distributed it and without the license that would be illegal.). The difference is nowhere in there does it say you transfer ownership of the copyright of the code to NI so I don't think you are giving that up, you are just giving NI an unrestricted license which would allow them to use the code in LabVIEW.

I realise this still maybe undesirable but my understanding (I am not a lawyer as with everyone!) is different to the idea of transferring ownership as many suggest, but please correct me if I'm wrong.

Link to comment

I believe with the NI.com agreement...

My reading agrees with yours. Posting to NI.com gives NI an unrestricted license to do whatever they want with it. Further, I don't see why the authors of a work previously released under BSD can't upload it to NI.com and thus grant NI unrestricted use separate from BSD.

  • Like 1
Link to comment
Further, I don't see why the authors of a work previously released under BSD can't upload it to NI.com and thus grant NI unrestricted use separate from BSD.
I was under the impression that this was somehow limited by the BSD license in order to prevent things from being pulled back from being publicly shared, but the earlier argument in this thread about later versions being released under alternate licenses was persuasive. I am not a lawyer, so I don't know the rules here. And I can't ask NI lawyers about this because they will tell me that they cannot advise our customers in any way shape or form -- customers must read both license agreements and then act as they believe is legal and then they can be sued if they were wrong because that's the basis of the adversarial legal system. At no point is any lawyer on any side allowed to say what a license allows for anyone else in any text other than the text of the license itself -- that's a power only judges have. *head smack*

Have I mentioned I hate software licensing?

Most of the time AQ has his engineers head on. In this instance he has his corporate employee head on. No one else siad "I do think that you should hand the IP over to NI"
This is my engineer hat. I'm trying to figure out how to maximize utility within a framework of limitations, and as of right now, the only option that I see that satisfies all criteria is posting on ni.com. It simply requires that you believe that NI would act in its own best interests and would follow the terms laid out in its own EULA, which seems a pretty "well duh" sort of bet in my book.
Link to comment

It simply requires that you believe that NI would act in its own best interests and would follow the terms laid out in its own EULA, which seems a pretty "well duh" sort of bet in my book.

Of course. Rather than in the best interests of the author or even it's users (although NI is arguably better that most companies in this respect).

Rather than argue about "legal" implications (NI have a team of lawyers, where as we don't) I suggest the legal issue is passed to the Software Freedom Law Center and let them advise as to what it means if BSD software is posted on the NI site.

The main issue for me, though, is that I don't believe NI cannot use software if it is under a licence (whatever it is), they just choose not to if they can get away with the author signing all their rights away to them (makes good business sense). Whether the NI site terms actually mean that or not, is a lawyers question. In my laymens reading it "looks" like it is just implicit distribution rights, so exactly the same problems as are being proffered here would apply even it it where posted there with or without a licence. Conversely, if it isn't an issue there, then it should also not be an issue on Lavag for the same reasons. (Most sites' TOCs are there just to protect the site owner from breach of copyrights should someone else upload copyrighted content and allow digital distribution). I'm reticent at that interpretation, however, since there is an obvious determination that software should be posted there instead of elsewhere and I can only think of one reason why that would be especially since other licenced software is distributed with LabVIEW under much more strict conditions than BSD..

Link to comment

I think the difference is the nature of what is included.

If LabVIEW contains BSD software as part of the LabVIEW environment then we include the attribution in the readme and I guess all is well, this is what many of the third party licenses that distribute with LabVIEW appear to be for.

What I suspect causes the issue here is that if we include libraries under a BSD license as source then that means that everyone that builds an application in LabVIEW using that must:

  1. Ensure they also have the required legal information distributed with the EXE.
  2. Ensure they are allowed to use software licensed under the BSD (this is probably NI's biggest concern, I can't talk for the decision makers but it is highly likely we have customers who cannot include BSD source code in their own applications).

It will certainly be interesting to see what the law centre say. To me it appears the difference to the developer is that putting it on ni.com does not guarantee attribution from NI in the read me. Other than that it appears the generic rights given are the same under either license, in the current state if the developer would rather see something that can be integrated into LabVIEW and lose the attribution from NI, or keep it under BSD only but be slightly more restrictive over who can use it. We can argue over whether LabVIEW should be able to distribute BSD software all day but it is a decision that has been taken by someone at NI, not anyone on this forum and so cannot be changed down this route.

Link to comment

So I want to open by thanking Stephen for being part of the catalyst for this thread, and sticking with it - you rock man!

It looks like we're back to square one - let me summarize (please correct me if I'm wrong): Stephen has been advised that he can use code that's been posted to ni.com, and nothing else. Irrespecitve of the subtleties of software licensing, there's nothing that the NI lawyers will tell him or us to make this happen.

Anyone from NI care to make a definitive statement representing NIC legally?

Link to comment

I think the difference is the nature of what is included.

If LabVIEW contains BSD software as part of the LabVIEW environment then we include the attribution in the readme and I guess all is well, this is what many of the third party licenses that distribute with LabVIEW appear to be for.

What I suspect causes the issue here is that if we include libraries under a BSD license as source then that means that everyone that builds an application in LabVIEW using that must:

  1. Ensure they also have the required legal information distributed with the EXE.
  2. Ensure they are allowed to use software licensed under the BSD (this is probably NI's biggest concern, I can't talk for the decision makers but it is highly likely we have customers who cannot include BSD source code in their own applications).

Indeed. But as all LabVIEW software must be distributed with either the IDE (for source) or the run-time engine (executables) this doesn't seem prohibitive. In fact the shared directory contains a copyright.txt that lists all the attributions.

In fact it states in the NI Forums TOCs that you must warrant

you are the sole owner of the Communications and/or such Communications constitute material in the public domain

So. Public domain stuff can be posted and, by implication, can be used by NI.

Just having re-read the NI TOCs and saw the liabilities disclaimer for user contributions which only disclaims NIs liability. Does this extend to the uploader/author via the other disclaimers in different sections? . This would be reason enough for me not to post software on there at all. On Lavag we are covered by the Creative Commons disclaimer (apparently :D ). There are so many ambiguities or "open to (lawyer) interpretation" aspects to the NI site. Lavag is simple and straight forward. You are much less likely to have a hoard of lawyers bearing down on you (and we all know the deepest pockets win regardless of right/wrong). By posting code here on Lavag, the interests are more aligned with "community" than business.

Edited by ShaunR
  • Like 1
Link to comment

Indeed. But as all LabVIEW software must be distributed with either the IDE (for source) or the run-time engine (executables) this doesn't seem prohibitive. In fact the shared directory contains a copyright.txt that lists all the attributions.

Does the RTE include BSD components though? If this is free of BSD components then any exe you create can be used by someone who is not allowed to use BSD components, however if you then have libraries that have BSD components you must then add this attribution and consider the restrictions for some companies. The RTE does not contain source code, only the dependencies for the EXE you create.

In fact it states in the NI Forums TOCs that you must warrant

So. Public domain stuff can be posted and, by implication, can be used by NI.

Yes but BSD is not public domain. BSD means you have given someone rights to use the work (as long as it is attributed) but you still own the copyright. Public domain means there is no copyright owner and everyone can do with it what they please. I did find a good site that talked through the differences here but sod's law I cannot find it again now.

Your last point is certainly something that you would need to consider. There is another section which states there are no warranties for anything on the website so I think that would cover it but this is again where a lawyer would help!

EDIT: I would like to point out I have no objection to BSD licensing or feel they should not be used in LabVIEW, I am just explaining things as I see them

Link to comment
Anyone from NI care to make a definitive statement representing NIC legally?
This topic came up when I was already working toward a post on this theme because of other licensing issues between NI and the community that have made me unhappy. I am still working on getting a more definitive statement of some sort, but it may be a few weeks.

Until then, everyone has to make their own decision about what they believe they can legally do in this situation, advised by their own lawyers, a situation which sucks, but there it is.

We can do nothing. I will continue working independent of the LAVA effort. Curiously, you could review the VIs that I am posting and let me know if I have deviated from your VIs in some interesting way that I could consider revisiting, although I cannot review your VIs to do the same.

Or drjdpowell could make a decision to post his VIs to ni.com. That's his legal decision. If he posts them, I believe that I am legally in the clear to look at them and possibly use them as subVIs of my own work (work of which JSON is just a small corner, but it would be nice if I could leverage these), as drjdpowell would be providing an indemnity shield for NI if he is in the wrong about posting VIs that have been previously released under the BSD.

I think that's where this conversation ends until we get comments from who can say, "Well, IAAL..."

Link to comment

Or drjdpowell could make a decision to post his VIs to ni.com.

Thats another can of worms. What about mine and Toms contributions in relation to NIs TOCs? I don't think just posting it there solves all NIs self inflicted problems.

Edited by ShaunR
Link to comment

Thats another can of worms. What about mine and Toms contributions in relation to NIs TOCs?

Crud. Didn't think of that... I was thinking that you had just offered suggestions that drjdpowell acted on... but now that I revisit the thread, you actually contributed code.

My statement stands -- everyone has to act as they believe they can and should.

Link to comment
Otherwise, so why the hell does LAVA exist?
Someone asked me to respond to this particular question.

The LAVA Code Repository is still critical because these are *reviewed* libraries that meet certain quality and maintenance requirements *now* as opposed to some unknown time in the future when/if VIs on ni.com get picked up by NI. Not all the libraries there will ever be desired to be picked up by LV, only the ones that seem to have broad appeal, but those few, it seems to me, should have some way to allow movement of these libraries from the CR into the primary distribution channel (i.e. LV Base) without creating licensing headaches for all involved. What that mechanism is, I have no idea.

Link to comment

Crud. Didn't think of that... I was thinking that you had just offered suggestions that drjdpowell acted on... but now that I revisit the thread, you actually contributed code.

My statement stands -- everyone has to act as they believe they can and should.

I could, presumably, post only the core part involving the JSON classes which I wrote, leaving out Shaun’s polymorphic accessors. Or I could get Ton and Shaun’s permission to post the whole thing (maybe; how does that work as only one person can actually post it on NI?).

Link to comment

So if I understand Stephen correctly one of the things witholding NI from forking the code from LAVAG (amongst others) is the BSD requirement to have the author in the license notes of a binary. I can understand the 'tight coupling' argument by Stephen (NI==LabVIEW). We could create a special version of the BSD that would remove the attribution requirement for binaries.

I like Ton’s idea. And not just for NI; having to compile a list of all licenses to make available in an executable is a pain, especially as no one will ever read them. While providing a license in source code is easy if the license is already on the FP, or BD, or documentation of the VI’s themselves.

Not all the libraries there will ever be desired to be picked up by LV, only the ones that seem to have broad appeal, but those few, it seems to me, should have some way to allow movement of these libraries from the CR into the primary distribution channel (i.e. LV Base) without creating licensing headaches for all involved. What that mechanism is, I have no idea.

What about a test case? In OpenG there is a Trim Whitespace function that duplicates the same function in LabVIEW. Due to the work of several programmers, OpenG’s version has considerably higher performance. I don’t believe there is any other difference in function, no “advanced” features or anything, and thus no reason why the OpenG version shouldn’t be adopted as standard. What would it take to do this?

— James

  • Like 1
Link to comment
What about a test case? In OpenG there is a Trim Whitespace function that duplicates the same function in LabVIEW. Due to the work of several programmers, OpenG’s version has considerably higher performance. I don’t believe there is any other difference in function, no “advanced” features or anything, and thus no reason why the OpenG version shouldn’t be adopted as standard. What would it take to do this?
That's a good test case.

Option A) All the authors involved would need to sign licensing agreements with each other giving all their rights to one person and then that person upload to ni.com. That one person then becomes the lightening rod for NI in the event that the others want to sue.

Option B) All the authors involved would need to sign a licensing agreement with National Instruments, similar to the one that another customer just went through, giving NI the right to use the VI as part of LV Base. It would likely include clauses requiring NI to actually use the VI in LV Base and not put it in some higher level module exclusively.

If you cannot contact all the authors of this VI, I'm not sure it is possible legally. Trim Whitespace is a prime example of a VI that cannot be BSD when it goes into the palettes... we can't require every user of LV to remember to thank the authors of that VI everytime they clean up a string.

Link to comment

That one person then becomes the lightening rod for NI in the event that the others want to sue.

Uh, wait, what? Can I be sued for stuff I post on NI.com? Sounds like an argument to not post anything on NI.com. Ties back to my previous point about the NI.com Terms of Use containing disclaimers to protect NI but not posters; do I need to add a legal disclaimer to every post and uploaded sample VI?

And if something is adopted into LabVIEW, it becomes NI’s responsibility, surely?

Trim Whitespace is a prime example of a VI that cannot be BSD when it goes into the palettes... we can't require every user of LV to remember to thank the authors of that VI everytime they clean up a string.

That’s why I like the “1 clause BSD”, dropping the binary requirement. The source code requirement is trivially satisfied by placing the license in the FP or BD or hidden away in the documentation.

Edit added later: found this link: The Amazing Disappearing BSD License

BTW to OpenG developers (JG if he’s reading): does OpenG not have some transfer of copyright to OpenG itself? It will be impossible to change licensing terms on OpenG once some of the authors die. I’d like to propose dropping the binary clause.

Edited by drjdpowell
Link to comment

Uh, wait, what? Can I be sued for stuff I post on NI.com? Sounds like an argument to not post anything on NI.com. Ties back to my previous point about the NI.com Terms of Use containing disclaimers to protect NI but not posters; do I need to add a legal disclaimer to every post and uploaded sample VI?

And if something is adopted into LabVIEW, it becomes NI’s responsibility, surely?

That’s why I like the “1 clause BSD”, dropping the binary requirement. The source code requirement is trivially satisfied by placing the license in the FP or BD or hidden away in the documentation.

BTW to OpenG developers (JG if he’s reading): does OpenG not have some transfer of copyright to OpenG itself? It will be impossible to change licensing terms on OpenG once some of the authors die. I’d like to propose dropping the binary clause.

The only solution that will satisfy NI is ownership and they seem completely intransigent on that point. It looks like*you* (meaning not NI) will have to jump through all the hoops just so they can use it and I'm getting to the point where I just think the risks and the hassle outweigh the benefits (not that I see much in the way of benefits to begin with :cool: ). There's too many unknowns at this point; all the risk is ours and NI are taking none :angry: . Everyone else is quite happy with the current state of the licencing, so I suggest we wait and see what happens with another piece of code (like you suggest-the trim whitespace or something similar) - find out exactly what the process is, what the Software Freedom Law Center advise and what the implications are. I'm in no rush to a) be a guinea pig and b) see it disappear until next august or even completely! (yes I know November is when the new features are defined but once again, that's NIs constraint not ours).

NI have a whole department of lawyers on payroll, get them to show by example how to get around NIs own policies (they wrote them) without the community bending over forwards and dropping their knickers. :D

Edited by ShaunR
Link to comment

Uh, wait, what? Can I be sued for stuff I post on NI.com? Sounds like an argument to not post anything on NI.com.

You can be sued for anything you post to LAVA also if you didn't have the legal right to post it.

It looks like*you* (meaning not NI) will have to jump through all the hoops

That's what the law requires... you're the copyright owner. You have to do something to allow NI to use it. There's nothing NI can do on its own to appropriate the rights -- and you wouldn't want there to be a way to do that.

We've made it as easy as possible to transfer those rights through the ni.com EULA. I'm still arguing for changes to that EULA that would clarify some aspects, but it's the only mechanism I have ever heard of for you to easily state unambiguously, "I don't mind if NI unconditionally uses this, sells this, and redistributes this." If you know of another mechanism, I'd love to hear it.

Link to comment

That's what the law requires... you're the copyright owner. You have to do something to allow NI to use it. There's nothing NI can do on its own to appropriate the rights -- and you wouldn't want there to be a way to do that.

Could NI legal not just mail us a simple form to sign?

  • Like 1
Link to comment

You can be sued for anything you post to LAVA also if you didn't have the legal right to post it.

That's what the law requires... you're the copyright owner. You have to do something to allow NI to use it. There's nothing NI can do on its own to appropriate the rights -- and you wouldn't want there to be a way to do that.

We've made it as easy as possible to transfer those rights through the ni.com EULA. I'm still arguing for changes to that EULA that would clarify some aspects, but it's the only mechanism I have ever heard of for you to easily state unambiguously, "I don't mind if NI unconditionally uses this, sells this, and redistributes this." If you know of another mechanism, I'd love to hear it.

I'm not sure that's true since rights assignment requires a real signature. What are you going to do about the OpenG toolkit stuff that the API uses?

There is a solution I think, however.

We release the next version as public domain (which OpenG allows us to do I think), then it can be posted on NI.com (as their EULA demands). Basically we give up our rights but to no-one.

Edited by ShaunR
Link to comment

The EULA does not require it to be public domain. It requires that you own the copyright or it is in the public domain I.e. you are not breaching copyright by posting it.

Well. The latter would be true if we released the next version as "Public Domain" and the former would be true even if we posted it there under a BSD licence. So where's the problem?

  • Like 1
Link to comment

Problem solved. :thumbup1:

There is already a Json library on NI.com written by an NI employee that AQ can use and can be included in LabVIEW. So we can now broaden the discussion away from the Json library here to a more general Lavag CR to NI compatibility without getting bogged down on a specific piece of software.

Although nice to know now, I've already built the parser I need. The serialization library will be complete within the next couple weeks.
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.