3 ms·
Ignoring the problem of convincing legal team that linker license doesn't affect it's output, there is the problem of including the linker in prepackaged toolch
by Karliss 3y ago
Ignoring the problem of convincing legal team that linker license doesn't affect it's output, there is the problem of including the linker in prepackaged toolchains - like the ones part of Visual Studio, Xcode, Android studio or embedded toolchains provided by hardware vendors. In some of those cases you might still get away with AGPL, but it will require putting in some effort to comply with license since in those cases the linker itself is redistributed. It's no secret that Apple is avoiding GPL as much as they can, with many of commandline tools they provide either being BSD versions or very old GPL2 versions.
> AGPL would only restrict deploying a privately modified linker via a network service which isn't a realistic scenario for a basic dev tool.
Interacting with linker over network service may sound weird, but it's not that uncommon. For example Unity offers Cloud build service for their engine which means indirectly interacting with Android and iOS toolchains. All major cloud providers are making solutions where the development tools and libraries are tightly integrated with their cloud service in attempts to make it harder migrating your project away from them. Regular CI/CD service providers are including the most popular development tools in their default environment, both to simplify the development process and also so that they can better cache them thus saving network costs and speeding up builds compared to each customer downloading the toolchain manually. There was also a period where multiple companies where pushing a remote dev environment as a solution to minimize the hassle of having each developer setup things locally thus improving onboarding speed, ensuring everyone is working in the same environment and also simplifying work for company wide IT management.
In many of those cases there might be 2 or even 3 companies repackaging and redistributing between the original software (linker) author and final user (programmer).
Even in the land of open source things aren't that simple. Not sure if it's still a thing but there was a period when FreeBSD was trying to remove GPL from it's base packages.
- kevin_thibedeau 3y agoThird party CI builds aren't distributed to anyone. Even if the compiled binary was subject to GPL rules, the binary will almost never exit the CI server where it was built so copyleft protection won't be invoked. You can use modified GPL code to your heart's content in a corporate setting. As all your coworkers are part of one legal entity, private use within the organization is not distribution per the terms of GPL. You have to distribute a binary to someone who can make a claim under the terms of the license before copyleft is activated. Furthermore, you only ever have to disclose source to someone with possession of a derived binary.
- Karliss 3y agoI was talking about the case where linker is the software and user is the developer performing linking. And MOLD was previously AGPL licensed, meaning that having access to binary isn't required, it's sufficient to interact with the software over network for copyleft to activate. Let's imagine Google wanted to include Mold in Android sdk, and CI service company (like Travis or Github with their Actions) want to include Android SDK in their VM images. I would consider using of such CI service for building android app interacting with the linker software over network. Meaning everyone in the middle (Google and CI service) has to deal with license requirements.