Hacker News new | ask | show | jobs
by ilaksh 1225 days ago
But the first error is one that you seem to have made also: that there are different types of open source licenses. GPL or other copyleft licenses generally require you to disclose the code (or make a licensing deal in some cases). Things like the MIT license are much less restrictive.
5 comments

In this particular case, Voice.ai is also violating permissively licensed libraries. For example, libFLAC is included in VoiceAILib.dll:

    reference libFLAC 1.2.1 20070917
The license text: https://github.com/xiph/flac/blob/master/COPYING.Xiph

The license requires Voice.ai to include the license text somewhere in the distribution or documentation, yet they do not.

Okay but that's still quite different from the copyleft licenses and violations which was my point.
Actually, it isn't. It's the same underlying principle.

All software must be paid for, with the exception of countries which have an actual public domain. Some software is paid for with money, some with acknowledgments, and some with source code sharing. Sometimes the developer demands postcards, and sometimes they demand that you not use it for evil purposes. All of these are forms of payment.

If you don't pay for it, you don't have certain rights to it.

That's a very liberal use of the verb "pay". Payment is not the same thing as compensation, payment implies money changing hands.

"Licensing" does not have to involve any sort of payment (or even compensation). There are free software licenses with no compensation requirements at all, yet they are not covering public domain software.

> the first error is one that you seem to have made also

They don't seem to have made such an error though. Their comment was very general, and permissive licenses still have conditions like giving attribution.

Yeah, I guess probably "free software" was a more appropriate term
yes but when you do npm install myfavlibrary it is all the same :)
Only if you distribute the code. You can go take some copyleft code, modify to you liking but only run on you backend servers and that is perfectly fine. Copyright license only triggers on distribution.
This is not correct. The AGPL which is also a copyleft license "triggers" without distribution. This is possible because you as the copyright holder can decide the terms of the license you offer, and these terms do not need to be related to your exclusive rights as a copyright holder.
How does that work? How does a copyright license apply if there is no distribution? What legal mechanism allows that? You can include a TOS in the code, but that isn’t enforceable because there is no agreement forcing function like “click to agree” nor am i required to even read it. And TOS doesn’t have any laws protecting it like copyright.

Edit: Instead of voting me down point out the relevant US law that allows copyright law that applies after the distribution like a TOS to person who didn’t distribute the code.

You can't use copyrighted material without explicit permission from its authors / right holders, fair use aside. Programs are copyrighted material (since 1974 in the US IIRC). The AGPL license is what will give you the permission to use AGPL'd software, but under conditions you need to respect, to the extent permitted by law (in both ways: some uses are illegal, and some restrictions imposed by the licenses could be unenforceable).
> Suppose you develop and release a free program under the ordinary GNU GPL. If developer D modifies the program and releases it, the GPL requires him to distribute his version under the GPL too. Thus, if you get a copy of his version, you are free to incorporate some or all of his changes into your own version.

> But suppose the program is mainly useful on servers. When D modifies the program, he might very likely run it on his own server and never release copies. Then you would never get a copy of the source code of his version, so you would never have the chance to include his changes in your version. You may not like that outcome.

> Using the GNU Affero GPL avoids that outcome. If D runs his version on a server that everyone can use, you too can use it. Assuming he has followed the license requirement to let the server's users download the source code of his version, you can do so, and then you can incorporate his changes into your version. (If he hasn't followed it, you have your lawyer complain to him.)

Copyright law only covers distributed software. It is not a terms of service and cover usage. GNU site has a bunch of articles on what it covers and what it doesn't.

AGPL doesn't cover internal software if you don't expose it outside of the company.

https://www.gnu.org/licenses/why-affero-gpl.html

> AGPL doesn't cover internal software if you don't expose it outside of the company.

What about "internal" users of the company modified AGPL software (eg. employees)? I would be surprised if they are not entitled to having access to the source code under the very same AGPL terms (which gives them the right to distribute the software as well).

GPL and related licenses do allow personal use of modified software without publishing or distributing it, but company internal is not "personal" use: you are exposing some users to modified AGPL software.

I haven't read AGPL in detail so I could very well be wrong: can you point to the exact clauses which allow this exception? (Or rather, exact language that does not forbid it)

Note that users (in case of AGPL) or recipients (in case of GPL) of the software might decide not to exercise their rights, which could be pretty common for employees.

To quote AGPLv3 from https://www.gnu.org/licenses/agpl-3.0.html:

  > 13. Remote Network Interaction; Use with the GNU General Public License.

  > Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph.
I don't see how this "protects" company from offering the software to all the "internal" users under AGPLv3, allowing them to distribute it along freely under the same license.
> AGPL doesn't cover internal software if you don't expose it outside of the company.

Yes indeed, you can use AGPL software internally without redistributing the source code, as you can with GPL software by the way (since AGPL is GPL + restrictions). The FSF actually considers a license that doesn't allow private use without distribution non-free, like the Watcom 1.0 license [1,2] (while the OSI does consider this license open source [3]).

Now, I think this is a property of the license, not the copyright laws which do allow authors to place such restrictions. That's why you can't freely use Windows or Photoshop privately.

Making the user click a "I agree" checkbox is one way of letting them know the terms and conditions, but not the only one.

[1] https://directory.fsf.org/wiki/License:Watcom-1.0

[2] https://www.gnu.org/licenses/license-list.html#Watcom

[3] https://opensource.org/licenses/Watcom-1.0

You are moving the goal post.

Originally you said "Only if you distribute the code."

If you run software on your server, and someone outside accesses the software via a web page, even if the software is still only running on your server and hasn't been distributed outside the company, if it's under the AGPL, the company must make available the source code.

> AGPL doesn't cover internal software if you don't expose it outside of the company.

Yes it does. AGPL is set up in a very strange way. The source code offering is a condition of modification. It has to be kept up to date at all times, even on software that can only be accessed internally.

Copyright grants the following fives rights: 1) reproduction, 2) adaptation, 3) publication, 4) performance, and 5) display. Distribution falls under 3 while creating a derived work falls under 2.
It's a very good point. The GPL is a license you can choose if you wish to do something that would otherwise breach copyright law. The loading and execution of copyrighted code wouldn't normally require a copyright license, so you can choose to disregard the GPL or any other license that will grant you extra powers.

For example both AGPL and GPL3 say

    You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.
GPL2 has a similar clause

To me, I get the feeling the drafters of the license believe that modifiying code, even privately, and not distributing it any further than your own laptop, requires acceptance of the license, thus modifying AGPL code would require acceptance of that license.

I'm not convinced that's correct, but maybe courts see it that way. After all I suspect if I modify a copy of close source software (to say bypass some security lock) that I obtain in accordance with copyright law, not making any copies (for the purpose of copyright law) of it, I would be in breach of copyright.

If that's the case, then if you don't modify an AGPL software and just run it, you don't need to agree to the license, but if you do modify it you are in breach of copyright law unless you agree to the license.

If you are running a server connected to the internet, and it exposes an open source function, it is essentially distributing the functions with every request.

Live application runtime bytes streamed vs bytes written to a disk is not a meaningful distinction.

No, the additional clause in the AGPL triggers *only* when a network service is directly accessible to 3rd parties.
So yes, it "triggers" (even) without distribution: the network service being directly accessible is a sufficient condition and the distribution not a necessary one (it is also a sufficient condition though).
Distribution is network protocol which they claim copyright over. It only covers outside distribution and can't cover standardized protocols and formats because they don't own the copyright on those. If postgres was AGPL, they can't claim that ANSI SQL triggers copyright because ANSI SQL is owned by INCITS.
I have hard time understanding your comment, and even your point actually.

Distribution is distribution: sharing the binary / source code of the thing.

Network protocols are not involved at all. Network connections between the software and the end-user are.

If a particular implementation of ANSI SQL was AGPL, and you modified and used this particular implementation and exposed it to the world, you would need to redistribute the code of this particular implementation.

But that does not change anything about ANSI SQL or about any other implementation of ANSI SQL.

Protocols aren't copyrightable.
This isn't entirely correct, the trigger is on modification of the source code, the network accessibility is a sub-condition of that trigger.