comp.lang.ada
 help / color / mirror / Atom feed
From: Optikos <ZUERCHER_Andreas@outlook.com>
Subject: Re: Ada on Apple's new procesors
Date: Wed, 24 Jun 2020 17:33:58 -0700 (PDT)	[thread overview]
Message-ID: <3606ddce-953e-4284-b822-91ae286612c1o@googlegroups.com> (raw)
In-Reply-To: <lyo8p8ff2n.fsf@pushface.org>

On Wednesday, June 24, 2020 at 2:18:11 PM UTC-5, Simon Wright wrote:
> Optikos writes:
> 
> > Without paying a hefty proprietary-licensing fee to AdaCore, isn't
> > GNAT-LLVM distributed only under pure GPLv3 without the Runtime
> > Library Exception (RLE)?  Wouldn't that mean that GNAT-LLVM on MacOS
> > (and iOS) can be utilized by software distributed under GPL-compatible
> > licenses, lest that software violate terms of GPLv3?
> 
> GCC itself is distributed under pure GPLv3, and the RLE[1] is irrelevant
> to that distribution.
> 
> The gnat you are straining at is whether a compiler formed by merging
> GNAT-LLVM with GCC can be used in an "eligible compilation process". If
> so, the RLE will apply:
> 
>    "You have permission to propagate a work of Target Code formed by
>    combining the Runtime Library with Independent Modules, even if such
>    propagation would otherwise violate the terms of GPLv3, provided that
>    all Target Code was generated by Eligible Compilation Processes. You
>    may then convey such a combination under terms of your choice,
>    consistent with the licensing of the Independent Modules."
> 
> A "compilation process"
> 
>    "transforms code entirely represented in non-intermediate languages
>    designed for human-written code, and/or in Java Virtual Machine byte
>    code, into Target Code."
> 
> A compilation process is "eligible"
> 
>    "if it is done using GCC, alone or with other GPL-compatible
>    software, or if it is done without using any work based on GCC. For
>    example, using non-GPL-compatible Software to optimize any GCC
>    intermediate representations would not qualify as an Eligible
>    Compilation Process."
> 
> But!
> 
> (a) if you look at the LLVM license[2], you will see at the top that
> it's the Apache License v2.0 (with some irrelevant extensions);
> 
> (b) in [3] & [4], the Apache License v2.0 is listed as GPLv3-compatible.
> 
> So! what's the problem? GNAT-LLVM clearly provides an eligible
> compilation process.
> 
> [1] https://www.gnu.org/licenses/gcc-exception-3.1.en.html
> [2] https://releases.llvm.org/10.0.0/LICENSE.TXT
> [3]
> http://gplv3.fsf.org/wiki/index.php/Compatible_licenses#GPLv3-compatible_licenses
> [4] https://www.gnu.org/licenses/license-list.en.html#GPLCompatibleLicenses

Despite your focus exclusively on garden-variety unadorned LLVM itself, clearly the garden-variety unadorned LLVM is •not• the entirety of the back-end of OP's tool-chain to release a GNAT-LLVM-compiled app to Apple's Mac or iPhone or iPad app store(s), which is customary on nonjailbroken Apple devices.  When submitting an Universal 2 app to the App Store, the developer submits LLVM IR (bitcode only, not textual, AKAIK).  Reportedly,* Apple reserves the right to perform any closed-source proprietary transformations on that IR that it so pleases, including of course translating to machine code (but perhaps other proprietary closed-source optimizations too, such as peculiar to improved multiprocessor scheduling and/or battery-life).  Apple's Rosetta 2 is closed source, hence violating the RLE's exception grant, precluding the Compilation Process from achieving the desired Eligible Compilation Process.  Hence, the RLE's exception grant implodes, reverting the app to pure GPLv3, but since Apple's final steps of the Compilation Process are closed-source, the app is in violation of GPLv3 so GPLv3's license grant implodes, hence no right to copy the derivative-work executable whatsoever via the Apple App Store.

* The Apple Developer Agreement is reportedly protected by NDA.  Any observations about the Apple Developer Agreement are from public media postings on 3rd-party websites.  Btw, this NDA itself might be problematic for achieving GPLv3's terms, but that is left as an exercise for the interested reader.

In prior postings along this thread, I was actually trying to be politely circumspect and not be the messenger of the Draconian outcome above (that I knew already), but you directly challenged me for a revelatory analysis.  At some level, I am sorry to be the bearer of bad news, because I would love to cheer GNAT-LLVM onward.

Disclaimer 1:  This posting uses my aforementioned Wide legal theory of LLVM's IR is in fact an IR in RLE's terms, instead of the Narrow legal theory's LLVM textual IR being recategorized as mere assembly language.  Presumably under the Narrow legal theory, Simon Wright's analysis stands, because the RLE and GPLv3 do not regulate what Apple does downstream with assembly language.

Disclaimer 2:  I am not a lawyer who has passed a bar in any jurisdiction.  This posting is merely my personal notes to myself of my own understanding for my own future reference.  You and your legal counsel would need to perform your own analysis, using the legal system in your jurisdiction.

  parent reply	other threads:[~2020-06-25  0:33 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-22 22:53 Ada on Apple's new procesors Jerry
2020-06-23 10:42 ` Vadim Godunko
2020-06-23 10:43 ` Luke A. Guest
2020-06-23 16:16   ` Optikos
2020-06-23 17:52     ` Luke A. Guest
2020-06-23 20:25       ` Optikos
2020-06-23 23:07         ` Luke A. Guest
2020-06-24  1:02           ` Optikos
2020-06-24 10:48             ` Luke A. Guest
2020-06-24 15:12               ` Optikos
2020-06-24 15:38                 ` Luke A. Guest
2020-06-24 16:35                   ` Simon Wright
2020-06-24 17:58                     ` Luke A. Guest
2020-06-24 18:18                       ` Stephen Leake
2020-06-24 18:30                         ` Luke A. Guest
2020-06-24 18:37                         ` Wesley Pan
2020-06-24 18:55                         ` Optikos
2020-06-24 19:58                           ` Luke A. Guest
2020-06-24 19:06                     ` Optikos
2020-06-24 19:26                       ` Simon Wright
2020-06-24 20:03                         ` Luke A. Guest
2020-06-25 10:25                           ` Simon Wright
2020-06-25 10:49                             ` Luke A. Guest
2020-06-25 11:08                               ` Simon Wright
2020-06-24 20:02                       ` Luke A. Guest
2020-06-25  7:21           ` charlet
2020-06-25  9:55             ` Luke A. Guest
2020-06-25 10:14               ` charlet
2020-06-25 11:03                 ` Simon Wright
2020-06-25 11:25                   ` Luke A. Guest
2020-06-25 12:50                     ` Luke A. Guest
2020-06-29 10:33                       ` Luke A. Guest
2020-06-25 16:15                 ` Optikos
2020-06-30 11:16                   ` Fabien Chouteau
2020-06-30 12:28                     ` Optikos
2020-06-30 13:28                       ` Luke A. Guest
2020-06-30 13:26                     ` Luke A. Guest
2020-06-30 14:35                       ` charlet
2020-06-30 14:46                         ` Luke A. Guest
2020-06-30 14:59                           ` charlet
2020-06-30 15:15                             ` Luke A. Guest
2020-06-30 19:12                             ` Optikos
2020-06-30 20:15                               ` Simon Wright
2020-06-30 20:20                                 ` Dennis Lee Bieber
2020-06-30 20:20                                 ` Luke A. Guest
2020-06-30 22:07                                   ` Wesley Pan
2020-06-30 23:25                                     ` Luke A. Guest
2020-07-01  4:46                                 ` Optikos
2020-07-01  9:23                                   ` Fabien Chouteau
2020-07-01 11:03                                     ` Simon Wright
2020-07-01 12:55                                     ` Optikos
2020-07-03  0:51                                     ` Wesley Pan
2020-07-03 11:08                                     ` gautier_niouzes
2020-06-30 20:01                         ` Simon Wright
2020-06-30 20:23                           ` Luke A. Guest
2020-06-30 21:57                             ` Simon Wright
2020-06-30 23:27                               ` Luke A. Guest
2020-07-01 11:47                                 ` Simon Wright
2020-07-02  9:54                                   ` Simon Wright
2020-07-02 19:56                                     ` Optikos
2020-07-03 17:18                                     ` antispam
2020-07-03 18:31                                       ` Optikos
2020-06-24 19:18     ` Simon Wright
2020-06-24 20:06       ` Luke A. Guest
2020-06-24 20:09         ` Luke A. Guest
2020-06-25  0:33       ` Optikos [this message]
2021-02-09  4:51 ` Jerry
2021-02-09  7:07   ` Luke A. Guest
2021-02-09 12:24     ` Simon Wright
2021-02-09 18:21   ` Brian Drummond
2021-02-12 19:14     ` Andreas ZEURCHER
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox