From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS22989 209.51.188.0/24 X-Spam-Status: No, score=-3.5 required=3.0 tests=AWL,BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,SPF_HELO_PASS, SPF_PASS,T_SCC_BODY_TEXT_LINE shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 79D201F4D7 for ; Wed, 1 Jun 2022 18:49:08 +0000 (UTC) Authentication-Results: dcvr.yhbt.net; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=andrewyu.org header.i=@andrewyu.org header.b="w6UJEsRd"; dkim-atps=neutral Received: from localhost ([::1]:41748 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nwTP0-0001SQ-LU for e@80x24.org; Wed, 01 Jun 2022 14:49:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59762) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nwTNI-00082h-KI for libreplanet-discuss@libreplanet.org; Wed, 01 Jun 2022 14:47:21 -0400 Received: from andrewyu.org ([173.249.27.223]:35352) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nwTNF-0003pC-DP for libreplanet-discuss@libreplanet.org; Wed, 01 Jun 2022 14:47:20 -0400 Received: from localhost (andrewyu.org [173.249.27.223]) by andrewyu.org (Postfix) with ESMTPSA id 4B2FC580BCC; Wed, 1 Jun 2022 20:47:12 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=andrewyu.org; s=mail; t=1654109232; bh=4uisN8LuVv4HZhNhRMXCqVIvWaSh9UVT6n0dG5GNers=; h=Date:From:To:Cc:Subject:From; b=w6UJEsRdBjYQFM6dGZojmk2PSwqJGxjvjSWJP+LnZVAROSMrZDWvOuiex6SRm4j8U Dm905qwYaetAROe9RkInjEH3ea/aZmzhelQ/EIEnZVVO8O/0flz2cw/zrA+DKk2Ktq i6mhCqmCyUDGuyzS6nQT55r546tcHkO4ffxIewHsdmh0mzQW8rdkAjmDwhd172YKFZ j7Jy3f0xaEesCWmuC6eLyGDPSRzddQFWt4hgAAr2FLpE6Jqwg1fU3xH0oevuJmpb+9 RVkjeYdHuMm6tqy1Fc278v2kFmij7OA+26sGO9AQjICPdDQA1osmqVJQLXWHe2InAF wzkYUy1KZRavA== Date: Wed, 1 Jun 2022 20:47:10 +0200 To: libreplanet-discuss@libreplanet.org Cc: Bruh OS Subject: How does the System Library Exception work, when the GPL-covered work is a Major Component? Message-ID: <20220601184710.vbcyxzmknrctrmkp@andrewyu.org> MIME-Version: 1.0 Received-SPF: pass client-ip=173.249.27.223; envelope-from=andrew@andrewyu.org; helo=andrewyu.org X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: libreplanet-discuss@libreplanet.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Andrew Yu via libreplanet-discuss Reply-To: Andrew Yu Content-Type: multipart/mixed; boundary="===============0743639102275371285==" Errors-To: libreplanet-discuss-bounces+e=80x24.org@libreplanet.org Sender: "libreplanet-discuss" --===============0743639102275371285== Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="ofiafqsd6fij57zh" Content-Disposition: inline --ofiafqsd6fij57zh Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable 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 (P.S.: My points on Free Hardware Designs might be interesting: .) IRC logs below. suppose that there's an OS under the agpl if someone hosts a web server on the OS, is that conveying the OS? Not unless the web server is under the AGPL. If the web server was a direct derivative work of the OS, t= hen it would be covered. Would there be a point to an AGPL'd OS? tpefreedom: That's why I'm asking Andrew: operating systems are not, typically speaking, every under a = single umbrella license The GPL's system library/etc exception makes it quite bad for oper= ating systems that don't want to be used proprietarylu Seems like most of the reasons for a network os would be SaaSS. Andrew: instead, they tend to be a collection of a great many individ= ual programs, each with its own license yrk: I'm licensing an operating system that I make And everything in there is copyright me Andrew, what's the OS? Andrew: that is why I wrote "typically". by the time OSes are functio= nal, they tend to be a collection of a lot of independent pieces tpefreedom: currently called BruhOS (lol), will change later, stil= l in development- yrk: Understood Do you have the code posted on a forge? Tha\'d also mean no nonfree programs could exist for my OS which i= s nice Andrew: all that said, I don't see a problem with using AGPLv3 for al= l of the parts of the OS. You can always add a section 7 exception which "s= witches off" the network interaction clause in section 13 if you need to tpefreedom: Current stage is design on pencil and paper Andrew: and even if you do add such an exception, section 7 permits a= nyone to add it back in once they get the code yrk: A stricter copyleft license is what I want... ok tpefreedom: I'l ltell you when the repo has actual useful stuff thx yrk: Yes, I know that, but what I want is "noone can use this oper= ating system to host services without giving a copy of its source" Andrew: the limiting factor for that is the reach of copyright law, n= ot the license yrk: Can you elaborate on that? Section 7 does not allow me removing the system library exception = though 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 Andrew: yes, section 7 allows you to remove anything you want Andrew: that is called an exception, and you can add as many exceptio= ns to your work as you wish I can remove limitations under section 7 Andrew: in fact, LGPLv3 is a set of section 7 exceptions to GPLv3 gimma a sec (I'm currently writing a section-by-section analysis of GPLv3, so thi= s is all rather fresh in my mind) Okay, I'll try to explain why I think section 7 does not allow rem= oving the system library exception The exceptions allowed to add, as in section 7, grant additional p= ermissions to distributers For example you can say "you can redistribute this without a full = copy of the license" or "you can link this to nonfree programs" which is basically lgpl But, the system libraries exception is not an exception under sect= ion 7p s/7p/7/ In fact, it's not a restriction none of what is in the GPL is a restriction all the GPL has are terms and conditions It allows linking incompatible (non gpl) programs to this system l= ibrary when the covered work is a system library Andrew: not exactly No, no; For example, "You can only redistribute if you offer sourc= e" is a limitation to "You can just distribute" Andrew: the system library exception, in both GPLv2 and GPLv3, are pa= rt of how the GPL define source code It is not a restriction compared to no-license-all-rights-reserved Andrew: it isn't a restriction at all. please note that GPLv3 does in= deed use the word "restriction" and it doesn't mean what you mean Andrew: so using the word "restriction" to describe something in GPLv= 3, but in a different way than GPLv3 uses it, is very confusing I mean, for example, you can't put "You may not redisteibute this = progrm" as a section 7 exception Andrew: GPLv3 starts (after the preamble) with "TERMS AND CONDITIONS"= and not "RESTRICTIONS" Uh, yeah I should rephrase Please gimme a minute or two Andrew: section 7 would define "You may not redisteibute this progrm"= as a (quote) "further restrictions". here we get the meaning of restrictio= n that GPLv3 defines: something that goes beyond the conditions of the GPL Yeah, further restriction is what I mean, gimem a sec Without the system libraries exception, if the library is (A)GPL a= nd is itself a part of the major component, a nonfree program cannot use th= e library that's part of the major component; With the system libraries exc= eption, such use is allowed, is this correct? If the above message is correct, in this case, "you may link a non= free program to this GPL system library" ils a permission granted by the GP= L, and a section 7 exception is not permitted to remove this permission gra= nted by the gpl itself Andrew: I can see why you are thinking in that direction, but you are= thinking about it the wrong way around yrk: I really want to understand this, eager to hear why 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 yrk: Could you tell me your email? A PM would be okay, as I may wa= nt to CC you and licensing@'s reply is of interest Andrew: I'm one of the people behind licensing@fsf.org. changes are t= hat I'll either be answering you, or helping the person answering you s/changes/chances/ Ohh, nice :D Andrew: I will try a stab at a short answer: 1) the system library de= finition is part of GPLv3's terms and conditions. 2) section 7 "additional = permissions" allow you to "supplement the terms of this License by making e= xceptions from one or more of its conditions". 3) from (1) and (2) we get t= hat you can make an exception to the system library defintion I'll explain my concerns with this in the email yrk: May I quote your IRC messages in the email? Andrew: instead, you are focusing on defining the system library defi= ntion 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 Andrew: please do; that sounds fine. irc is public Alright, thanks 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 of course email will allow lengthy back and forth (without flooding t= his channel) another example, lgplv3 states "You may convey a covered work under s= ections 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. finally (and apologies to the channel): important to note that under = section 7, anyone can remove those exceptions before distributing your soft= ware and therefore revert it to A/GPLv3. to avoid that, you would have to e= ffectively fork the GPL. Ah yes, that is another concern; I generally want to avoid forking= the GPL though I'll explain in the email Another issue, about \Test_User choosing their license I'll paste the IRC logs to an url, gimme a sec https://lib.andrewyu.org/public/haxl.txt Abstract: 16:16 \Test_User: *Please* use a copyleft license for you= r architecture and OS 16:19 <\Test_User> I mean, I don't particularily want to block the= m from making proprietary versions of mine, bc that simply gives them a rea= son to ensure my version is never seen in use 16:28 \Test_User: I really don't want to see yet another = good technology be forkpatentfilled leaving free implementers always incris= k of patent infringement for obvious improvements Very similar to my case 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 infri= nge on my designs yes Ah yes While in my case (writing in email) it's me having concerns that = the GPL isn't strong rnough there are limitations to what a license based on copyright law can do= =2E those limitations come from the reach of copyright law, and not from th= e license. you need to make sure that you know where the problem is coming = =66rom=20 Yup - writing in the email 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? Andrew: mostly enforcement; nothing much to do with the GPL. they've = made their own declaration of what they want to enforce. the copyright hold= er is the only entity who can do that, so they are taking advantage of that Oh, so it's technically a GPL violation for nonfree programs to do= things with Linux, right? If that's true, then maybe I don't need an exception - this is com= plicated, writing into the email a lot of the stuff to do with the kernel Linux would be enforced if i= t was an FSF-held property * Andrew wonders how copyright is enforced if the copyright is owned by an= indivudual who passed away ... which differs from juristictions moreover, and to the chagrin of rule-minded programmers, licenses are= not code, and judges are not machines. people interpret licenses, sometime= s they get challenged, and sometimes they don't Andrew: copyright is a goverment-granted, exclusive property right. i= t passes to survivors like any other property right * Andrew looks things up for the recond, I think that copyright law is anachronistic and ill-c= onceived. but it is what we have right now... true... --ofiafqsd6fij57zh Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEyQan93TRTFzPiQkOAVALEYo3gSQFAmKXs+0ACgkQAVALEYo3 gSSGOg//b4UTIwY8HX4qa1ABz4YnKx00P3tCFo0Jv28FcC3BfOuSawg0AG8etKWb Bj1gXHHUyKWdNqSKJymIV2zk2C4mlAkufz+HP+uPE2IVmq0P05Ekzb4yeWPXce4m y6otntKUfx2I9kNBwAIFymGj7XXWWOgRvETrDG8EHdGMffQ0D8OOXXFP4imA8bJD 0wVMox+Ne/xO5yhi8nTnezTnLay/Pdg6rYr0kmrTDnXT4KOBHGTO/kNi1Ojk4ll2 YBNt8Jn5LUeRukkuhfPti9EY38zLgkOi7nQapj8CzMSGuFOwXvzkHNRQeggWbQ6A j2v/0yCDFhYr0xUJvxUK7bgYvOXtasoXC0UmYUAw2rV1Zso+woCGpUWzLuE+rY/i qzmBj5wMtHYQyR9cBj0PmNP7nQvYrGTL1XGTgC3GbzEHiKvLSQF5ViUAjjkDYLaT hvW3sDd4C18AsTBlUSB97+8f7u2GtkSJ8etcG3We4aYwHsszOIhnygXlV6gf6hxx Nf2gXq7Ub7sP9pAnLluI1rshra7gky744xdUpJr3gfke0CPifMQmNQGQUG5VCLOB PlDksXtqrns8c5ogXe+f4r5AERrt1PejnTRouwqv8EbWNRmuM02S+U/1JdEMYApZ Z6gmbyAVyU3kMfc7XVE8Lcd77gLRtRBceC4+8wdnbKhDdisEcaU= =hn44 -----END PGP SIGNATURE----- --ofiafqsd6fij57zh-- --===============0743639102275371285== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlicmVwbGFu ZXQtZGlzY3VzcyBtYWlsaW5nIGxpc3QKbGlicmVwbGFuZXQtZGlzY3Vzc0BsaWJyZXBsYW5ldC5v cmcKaHR0cHM6Ly9saXN0cy5saWJyZXBsYW5ldC5vcmcvbWFpbG1hbi9saXN0aW5mby9saWJyZXBs YW5ldC1kaXNjdXNzCg== --===============0743639102275371285==--