• FreeAdvice has a new Terms of Service and Privacy Policy, effective May 25, 2018.
    By continuing to use this site, you are consenting to our Terms of Service and use of cookies.

Crediting Third Party Libraries which Might Not Be Actually Used

Accident - Bankruptcy - Criminal Law / DUI - Business - Consumer - Employment - Family - Immigration - Real Estate - Tax - Traffic - Wills   Please click a topic or scroll down for more.

tajmone

Junior Member
Greetings to all. This is my first post here, so I hope I’m doing it right.

I have a question regarding software licenses, so it might not be specific to any jurisdiction in particular because it applies to software products intended for distribution over the Internet, but I am particularly interested in the US law on this issue because the main platforms that would host such products are located in the USA.

I have purchased a license for a proprietary programming language, which is closed source but relies on various open source libraries/components for compiling the final binary files.

I have problems coming to grips with how this language advices its users regarding inclusion of copyright notice, credits and license terms of the various libraries. Basically, the user manual tells you that if you use 3D-Graphics functions in your program, then you must include the license file of the third party open source library that handles 3D graphics. And if you database functions, then you should include the copyright notice and license file of the database library and so on.

But beside the 3D graphics library, and a couple of other specific libraries, the user is provided a single file listing all the common libraries and their license terms — for example: various internet related libraries, compoments handling XML, or other standards, math libraries, and so on (the list is very long).

The problem is that it is unlikely that all these libraries are actually going to be used by every compiled binary file (ie: the final program created): the compiler includes only the libraries that your code needs. And because these libraries/components are “wrapped” into the language with arbitrary names, there is no way to know which libraries are actually being included in your binary project.

For example, the language offers some commands to do network-related operations. Within the language itself, all these commands/function are presented as part of the “newtork library”, but in reality different commands might rely on entirely different third party libraries and components (different authors, different licenses).

Unlike many programming languages, this language does not rely on include directives for using specific components. The compiler handles components inclusion automatically, based on the instructions contained in the source code.

Also, the compiler does not provide any means to check which libraries are actually included, so the developers suggest to include the full list of licenses to be on the safe side and not omitting to honor the terms of any libary.

The downside of this approach is that you end up claiming that your final software product uses libraries which are not actually used nor present in the product. I don’t feel very confortable with this, so I wanted to ear some opinions from people who work within the legal system.

I can imagine cases were such an approach would cause trouble and make customers of a software product unhappy: for example, if were to make a videogame and claim it uses a famous gaming engine I would be creating high expectations on potential customers — needless to say, if they were to discover that that engine is not used at all they would feel tricked.

Surely, in the specific case of this language there is no such malevolent intent. It’s just that it would have been too confusing to specify in the users guide which libaries would be included on a per-command/function basis.
Ideally, the compiler should print a report of all the thrid party components it included in the compilation process … but it doesn’t — and this is the reality I have to face.

So, I would like to know if the current approach (suggested in the language documentation) of including a full list of all the (potentially used) third party libraries licenses is an acceptable practice, or if it has some legal implications, if it infringes customers rights or the rights of the developers of those libraries.

Basically, if I take the path suggested by the documentation of this language, chances are that I’m claiming that my final software is using software libraries which probably aren’t being used. Does this harm the developers of this libraries? Does it harm the customers who buy my software?

On the other hand, what should I do? Not crediting and mentioning the copyright notice and license terms of an open source component is a breach of its license terms (and it harms its developers). Should I add at the beginning of the licenses list a phrase like “This software may be using the following third party components”? Doesn’t really sound right, even though it’s beyond my powers to ascertain which components are actually included.

I was thinking that if a similar approach was taken in the pharmaceutical industry, or the food industry, the consequences would be quite severe — I guess that mislabeling medicines is a serious issue.

I haven’t found answers to this question within the software developers circles. To most developers this seems like a no-harm-done situation, and because the language in question doesn’t provide me the means to do otherwise they usually see no blame.

But is it acceptable? Could I create a commercial product this way, or should by all means find ways to make sure that I credit only libraries which are being included into my product?

Before embarking on a long-term commercial developement project with this language I would like to come clear with this issue (regardless of the fact that everybody else is doing it).

Thanks.
 


quincy

Senior Member
Greetings to all. This is my first post here, so I hope I’m doing it right.

I have a question regarding software licenses, so it might not be specific to any jurisdiction in particular because it applies to software products intended for distribution over the Internet, but I am particularly interested in the US law on this issue because the main platforms that would host such products are located in the USA.

I have purchased a license for a proprietary programming language, which is closed source but relies on various open source libraries/components for compiling the final binary files.

I have problems coming to grips with how this language advices its users regarding inclusion of copyright notice, credits and license terms of the various libraries. Basically, the user manual tells you that if you use 3D-Graphics functions in your program, then you must include the license file of the third party open source library that handles 3D graphics. And if you database functions, then you should include the copyright notice and license file of the database library and so on.

But beside the 3D graphics library, and a couple of other specific libraries, the user is provided a single file listing all the common libraries and their license terms — for example: various internet related libraries, compoments handling XML, or other standards, math libraries, and so on (the list is very long).

The problem is that it is unlikely that all these libraries are actually going to be used by every compiled binary file (ie: the final program created): the compiler includes only the libraries that your code needs. And because these libraries/components are “wrapped” into the language with arbitrary names, there is no way to know which libraries are actually being included in your binary project.

For example, the language offers some commands to do network-related operations. Within the language itself, all these commands/function are presented as part of the “newtork library”, but in reality different commands might rely on entirely different third party libraries and components (different authors, different licenses).

Unlike many programming languages, this language does not rely on include directives for using specific components. The compiler handles components inclusion automatically, based on the instructions contained in the source code.

Also, the compiler does not provide any means to check which libraries are actually included, so the developers suggest to include the full list of licenses to be on the safe side and not omitting to honor the terms of any libary.

This is what you should do to be "on the safe side."

The downside of this approach is that you end up claiming that your final software product uses libraries which are not actually used nor present in the product. I don’t feel very confortable with this, so I wanted to ear some opinions from people who work within the legal system.

I can imagine cases were such an approach would cause trouble and make customers of a software product unhappy: for example, if were to make a videogame and claim it uses a famous gaming engine I would be creating high expectations on potential customers — needless to say, if they were to discover that that engine is not used at all they would feel tricked.

Surely, in the specific case of this language there is no such malevolent intent. It’s just that it would have been too confusing to specify in the users guide which libaries would be included on a per-command/function basis.
Ideally, the compiler should print a report of all the thrid party components it included in the compilation process … but it doesn’t — and this is the reality I have to face.

So, I would like to know if the current approach (suggested in the language documentation) of including a full list of all the (potentially used) third party libraries licenses is an acceptable practice, or if it has some legal implications, if it infringes customers rights or the rights of the developers of those libraries.

Basically, if I take the path suggested by the documentation of this language, chances are that I’m claiming that my final software is using software libraries which probably aren’t being used. Does this harm the developers of this libraries? Does it harm the customers who buy my software?

On the other hand, what should I do? Not crediting and mentioning the copyright notice and license terms of an open source component is a breach of its license terms (and it harms its developers). Should I add at the beginning of the licenses list a phrase like “This software may be using the following third party components”? Doesn’t really sound right, even though it’s beyond my powers to ascertain which components are actually included.

I was thinking that if a similar approach was taken in the pharmaceutical industry, or the food industry, the consequences would be quite severe — I guess that mislabeling medicines is a serious issue.

I haven’t found answers to this question within the software developers circles. To most developers this seems like a no-harm-done situation, and because the language in question doesn’t provide me the means to do otherwise they usually see no blame.

But is it acceptable? Could I create a commercial product this way, or should by all means find ways to make sure that I credit only libraries which are being included into my product?

Before embarking on a long-term commercial developement project with this language I would like to come clear with this issue (regardless of the fact that everybody else is doing it) ...

It is acceptable to do this.

As a note, your country name matters as it will be the laws of YOUR country under which you would be sued should your product give rise to a legal action.
 

Find the Right Lawyer for Your Legal Issue!

Fast, Free, and Confidential
Top