LibrePlanet discussion list archive (unofficial mirror)
 help / color / mirror / Atom feed
* How does the System Library Exception work, when the GPL-covered work is a Major Component?
@ 2022-06-01 18:47 Andrew Yu via libreplanet-discuss
  0 siblings, 0 replies; only message in thread
From: Andrew Yu via libreplanet-discuss @ 2022-06-01 18:47 UTC (permalink / raw)
  To: libreplanet-discuss; +Cc: Bruh OS


[-- Attachment #1.1: Type: text/plain, Size: 16551 bytes --]

Below was an email to licensing AT fsf DOT org, which may be of interest
for discussion.

Dear FSF Licensing Team,

I am drafting a computer architecture and operating system thereof with
some friends.  I would like to use a copyleft license for both the
architecture design and the operating system.

As the goals of this design and the "reference" operating system thereof
are unique and unprecedented, I would like to use strong copyleft.
I currently choose version 3 of the GNU Affero General Public License
(with or-later).  The reason for me to pick the AGPL instead of the
regular GPL is because I do not want to see people use my works to
prodive services that I and the wider community cannot freely host
ourselves.  I am aware that this is not an inherent solve for Service as
a Software Substitute, but I believe that this prevents cases where the
service prodivder produces significant modifications monopolizing a
field of services (be it SaaSS or not, it could be communications
services both cases are possible since in this case it's a general
operating system), as people could take their code and host it
themselves.

My operating system has a kernel that accepts system calls. This leads
to the first question:

    Does using system calls for a specific kernel count as linkage to
    the said kernel, or by other means require the calling program to be
    released under the (A)GPL, if the kernel is under the (A)GPL?

Linux is released under the GNU GPL, version 2, but many nonfree
programs and non-GPL version 2 programs run on it, notably the GNU core
utilities.  Is this somehow a GPL v2 violation?

If for some reason it is valid to write non-AGPL programs for an AGPL
kernel:

    If someone develops server software for my operating system, and the
    same or a different person uses said server to provide a service
    over a computer network while the server software itself is not
    AGPL, would they be conveying the kernel, and thus need to provide
    the source code of the kernel?

In "normal" programs under the (A)GPL, the definition of "Corresponding
Source" to my interpretation includes libraries that are not System
Libraries or generally available free tools.  However, I have seen many
GPL programs distributed in binary form which does not include its
libraries when distributed as source.  Is it dynamic linking that's
making a difference here?  Technically, without the library existing
elsewhere on the system the program is incomplete and the program itself
does not include the library, so is that why the programs do not need to
distribute the library's source with their source, or is it simply a GPL
violation that most people disregard?  And what about header files for
languages that have header files, since they're included in the Object
Code no matter how the library is linked?  Is the author and/or
distributor of thr GPL program supposed to distribute at least those
header files?

The operating system would also include a standard library, which would
under my interpretation fall under System Libraries.  These libraries
help the program in question to work with my kernel, which in turn is a
Major Component of my operating system.  With regard to how the System
Library exception works, does the System Library exception allow linking
a non-(A)GPL program with my standard library?

If the System Library exception indeed allows linking non-(A)GPL
programs to my standard library, is it possible to "circumvent" this
exception or otherwise forbid such linkage without forking the (A)GPL
(which I generally avoid)?

Some in #fsf on the Libera Chat Internet Relay Chat network suggest
using a section 7 exception to except the System Library exception.
However, as I read from section 7,

> "Additional permissions" are terms that supplement the terms of this
> License by making exceptions from one or more of its conditions.

This seems to only allow me to grant additional *permissions*.  For
example, "You may distribute this program without the usual requirement
to distribute the full text of the (A)GPL with it" or "You may link this
program ad a library to nonfree programs" (the latter being an
oversimplification of the LGPL).  However, these are additional
*permissions*.  I mean, normally the GPL permits distribution without
the source of System Libraries, and adding an exception on that would
mean now I'm not permitting distribution without the source of System
Libraries, which doesn't seem like an additional permission rather a
"further restriction".

A summary of what I want:

- The operating system, including its kernel and standard library ("My
  Works") are Free Software;
- The License of My Works automatically grant patent licenses, such as
  section 10 of the (A)GPL;  (If the projct gets bigger, something like
  "you get the patent license only if you develop free software with the
  technology", i.e. what I might call "patentleft" would be nice but
  obviously the (A)GPL wouldn't allow that...)
- My Works are distributed with source under the The License (this part
  is basically weak copyleft);
- My Works, as libraries and the kernel that accepts system calls, may
  only be linked to programs under The License (strong copyleft);  (As
  an effect, no nonfree programs would be allowed on the system...)
- My Works, if used in any way, shape or form, over computer networks or
  similar technology in which it could be part of a service, has its
  source code provided by the service provider, similar to how the AGPL
  works.

(In the above list, The License refers to the license chosen that fully
or mostly satisfies the list's requirements.)

I understand that copyright law might not allow for all of that, but
what is the closest that I can get to, and how specifically does
copyright law (say the US's for example?) not permit these goals?

I am deeply confused with this situation and I ask for clarification.

Thanks and Best Wishes,
Andrew Yu <https://wew.andrewyu.org/>

(P.S.: My points on Free Hardware Designs might be interesting:
<https://fcm.andrewyu.org/hardware/>.)

IRC logs below.

<Andrew> suppose that there's an OS under the agpl
<Andrew> if someone hosts a web server on the OS, is that conveying the OS?
<DiffieHellman> Not unless the web server is under the AGPL.
<DiffieHellman> If the web server was a direct derivative work of the OS, then it would be covered.
<tpefreedom> Would there  be a point to an AGPL'd OS?
<Andrew> tpefreedom: That's why I'm asking
<yrk> Andrew: operating systems are not, typically speaking, every under a single umbrella license
<Andrew> The GPL's system library/etc exception makes it quite bad for operating systems that don't want to be used proprietarylu
<tpefreedom> Seems like most of the reasons for a network os would be SaaSS.
<yrk> Andrew: instead, they tend to be a collection of a great many individual programs, each with its own license
<Andrew> yrk: I'm licensing an operating system that I make
<Andrew> And everything in there is copyright me
<tpefreedom> Andrew, what's the OS?
<yrk> Andrew: that is why I wrote "typically". by the time OSes are functional, they tend to be a collection of a lot of independent pieces
<Andrew> tpefreedom: currently called BruhOS (lol), will change later, still in development-
<Andrew> yrk: Understood
<tpefreedom> Do you have the code posted on a forge?
<Andrew> Tha\'d also mean no nonfree programs could exist for my OS which is nice
<yrk> Andrew: all that said, I don't see a problem with using AGPLv3 for all of the parts of the OS. You can always add a section 7 exception which "switches off" the network interaction clause in section 13 if you need to
<Andrew> tpefreedom: Current stage is design on pencil and paper
<yrk> Andrew: and even if you do add such an exception, section 7 permits anyone to add it back in once they get the code
<Andrew> yrk: A stricter copyleft license is what I want...
<tpefreedom> ok
<Andrew> tpefreedom: I'l ltell you when the repo has actual useful stuff
<tpefreedom> thx
<Andrew> yrk: Yes, I know that, but what I want is "noone can use this operating system to host services without giving a copy of its source"
<yrk> Andrew: the limiting factor for that is the reach of copyright law, not the license
<Andrew> yrk: Can you elaborate on that?
<Andrew> Section 7 does not allow me removing the system library exception though
<yrk> Andrew: A/GPL (and most other freedom-respecting licenses) are based on copyright law; that is how they get their effect and their legal power
<yrk> Andrew: yes, section 7 allows you to remove anything you want
<yrk> Andrew: that is called an exception, and you can add as many exceptions to your work as you wish
<Andrew> I can remove limitations under section 7
<yrk> Andrew: in fact, LGPLv3 is a set of section 7 exceptions to GPLv3
<Andrew> gimma a sec
<yrk> (I'm currently writing a section-by-section analysis of GPLv3, so this is all rather fresh in my mind)
<Andrew> Okay, I'll try to explain why I think section 7 does not allow removing the system library exception
<Andrew> The exceptions allowed to add, as in section 7, grant additional permissions to distributers
<Andrew> For example you can say "you can redistribute this without a full copy of the license"
<Andrew> or "you can link this to nonfree programs" which is basically lgpl
<Andrew> But, the system libraries exception is not an exception under section 7p
<Andrew> s/7p/7/
<Andrew> In fact, it's not a restriction
<yrk> none of what is in the GPL is a restriction
<yrk> all the GPL has are terms and conditions
<Andrew> It allows linking incompatible (non gpl) programs to this system library when the covered work is a system library
<yrk> Andrew: not exactly
<Andrew> No, no; For example, "You can only redistribute if you offer source" is a limitation to "You can just distribute"
<yrk> Andrew: the system library exception, in both GPLv2 and GPLv3, are part of how the GPL define source code
<Andrew> It is not a restriction compared to no-license-all-rights-reserved
<yrk> Andrew: it isn't a restriction at all. please note that GPLv3 does indeed use the word "restriction" and it doesn't mean what you mean
<yrk> Andrew: so using the word "restriction" to describe something in GPLv3, but in a different way than GPLv3 uses it, is very confusing
<Andrew> I mean, for example, you can't put "You may not redisteibute this progrm" as a section 7 exception
<yrk> Andrew: GPLv3 starts (after the preamble) with "TERMS AND CONDITIONS" and not "RESTRICTIONS"
<Andrew> Uh, yeah I should rephrase
<Andrew> Please gimme a minute or two
<yrk> Andrew: section 7 would define "You may not redisteibute this progrm" as a (quote) "further restrictions". here we get the meaning of restriction that GPLv3 defines: something that goes beyond the conditions of the GPL
<Andrew> Yeah, further restriction is what I mean, gimem a sec
<Andrew> Without the system libraries exception, if the library is (A)GPL and is itself a part of the major component, a nonfree program cannot use the library that's part of the major component; With the system libraries exception, such use is allowed, is this correct?
<Andrew> If the above message is correct, in this case, "you may link a nonfree program to this GPL system library" ils a permission granted by the GPL, and a section 7 exception is not permitted to remove this permission granted by the gpl itself
<yrk> Andrew: I can see why you are thinking in that direction, but you are thinking about it the wrong way around
<Andrew> yrk: I really want to understand this, eager to hear why
<yrk> Andrew: I would strongly recommend writing in to licensing@fsf.org so that we can dig into this in a detailed back and forth. I think that there is a lot to untangle
<Andrew> yrk: Could you tell me your email? A PM would be okay, as I may want to CC you and licensing@'s reply is of interest
<yrk> Andrew: I'm one of the people behind licensing@fsf.org. changes are that I'll either be answering you, or helping the person answering you
<yrk> s/changes/chances/
<Andrew> Ohh, nice :D
<yrk> Andrew: I will try a stab at a short answer: 1) the system library definition is part of GPLv3's terms and conditions. 2) section 7 "additional permissions" allow you to "supplement the terms of this License by making exceptions from one or more of its conditions". 3) from (1) and (2) we get that you can make an exception to the system library defintion
<Andrew> I'll explain my concerns with this in the email
<Andrew> yrk: May I quote your IRC messages in the email?
<yrk> Andrew: instead, you are focusing on defining the system library defintion as an "exception" or "restriction". but note! read the system library defintion and you'll see that the GPL doesn't define it as being either of those
<yrk> Andrew: please do; that sounds fine. irc is public
<Andrew> Alright, thanks
<yrk> which is why I say that the GPL only has "terms and conditions", and section 7 allows you to make exceptions to some of them. and that's really all you need
<yrk> of course email will allow lengthy back and forth (without flooding this channel)
<yrk> another example, lgplv3 states "You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL." You could do the same, only for the system library text.
<yrk> finally (and apologies to the channel): important to note that under section 7, anyone can remove those exceptions before distributing your software and therefore revert it to A/GPLv3. to avoid that, you would have to effectively fork the GPL.
<Andrew> Ah yes, that is another concern; I generally want to avoid forking the GPL though
<Andrew> I'll explain in the email
<Andrew> Another issue, about \Test_User choosing their license
<Andrew> I'll paste the IRC logs to an url, gimme a sec
<Andrew> https://lib.andrewyu.org/public/haxl.txt
<Andrew> Abstract:
<Andrew> 16:16 <Andrew> \Test_User: *Please* use a copyleft license for your architecture and OS
<Andrew> 16:19 <\Test_User> I mean, I don't particularily want to block them from making proprietary versions of mine, bc that simply gives them a reason to ensure my version is never seen in use
<Andrew> 16:28 <Andrew> \Test_User: I really don't want to see yet another good technology be forkpatentfilled leaving free implementers always incrisk of patent infringement for obvious improvements
<Andrew> Very similar to my case
<Andrew> Though in this case he hasn't decided to copyleft it
<\Test_User> 16:29 <\Test_User> would need a way to ensure no patents infringe on my designs yes
<Andrew> Ah yes
<Andrew> While in my case (writing in email)  it's me having concerns that the GPL isn't strong rnough
<yrk> there are limitations to what a license based on copyright law can do. those limitations come from the reach of copyright law, and not from the license. you need to make sure that you know where the problem is coming from 
<Andrew> Yup - writing in the email
<Andrew> yrk: One question that I'd bring to IRC for now: The Linux is GPL v2, what allows nonfree programs to intentionally be compatible with Linux, as in use Linux syscalls?
<yrk> Andrew: mostly enforcement; nothing much to do with the GPL. they've made their own declaration of what they want to enforce. the copyright holder is the only entity who can do that, so they are taking advantage of that
<Andrew> Oh, so it's technically a GPL violation for nonfree programs to do things with Linux, right?
<Andrew> If that's true, then maybe I don't need an exception - this is complicated, writing into the email
<yrk> a lot of the stuff to do with the kernel Linux would be enforced if it was an FSF-held property
 * Andrew wonders how copyright is enforced if the copyright is owned by an indivudual who passed away
<Andrew> ... which differs from juristictions
<yrk> moreover, and to the chagrin of rule-minded programmers, licenses are not code, and judges are not machines. people interpret licenses, sometimes they get challenged, and sometimes they don't
<yrk> Andrew: copyright is a goverment-granted, exclusive property right. it passes to survivors like any other property right
 * Andrew looks things up
<yrk> for the recond, I think that copyright law is anachronistic and ill-conceived. but it is what we have right now...
<Andrew> true...

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

[-- Attachment #2: Type: text/plain, Size: 184 bytes --]

_______________________________________________
libreplanet-discuss mailing list
libreplanet-discuss@libreplanet.org
https://lists.libreplanet.org/mailman/listinfo/libreplanet-discuss

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-06-01 18:49 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-01 18:47 How does the System Library Exception work, when the GPL-covered work is a Major Component? Andrew Yu via libreplanet-discuss

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).