TootSweet

joined 2 years ago
[–] TootSweet@lemmy.world 1 point 19 hours ago* (last edited 19 hours ago)

Everybody go change your grub.cfg to change every entry title to read "I'm over 18 and I want to run Ubuntu" or "I'm over 18 and I want to run Arch".

Then add an "I'm under 18" entry that does the "halt" Grub command.

[–] TootSweet@lemmy.world 0 points 1 month ago

This is exactly the kind of thing I'm looking for, thanks!

submitted 1 month ago* (last edited 1 month ago) by TootSweet@lemmy.world to c/freesoftware@lemmy.zip
 

So, I'm writing a piece of software (in Go). Specifically, a domain-specific language (DSL) for making 3D models. (Roughly speaking, what I'm going for is that what I'm building is to Blender as OpenSCAD is to FreeCAD. You write code in a language I'm designing and it uses that code to build and spit out, for instance, 3d game assets with textures, normal maps, rigging, animations, etc.)

I intend to publish it under a FOSS license once it reaches roughly an "alpha" stage. (Once it's actually usable to create generate meshes and export them as files of a couple of different popular 3d file formats.)

I intend at some point to support both interpreting and transpilation of my DSL into Go. As in, you can write code and execute it with something like modelgen run program.mg, or you can transpile it into Go and run it with modelgen transpile program.mg program.go ; go run program.go. (Yes, I get this is pretty ridiculously ambitious, but at least it's good to have a star to set my bearing to.) One potential feature of the transpilation approach is that a game developer could write some code in my DSL for generating models on the fly, transpile it to Go, and then build that Go code directly into the binary of a game they write in Go for purposes of generating models on the fly at runtime. (Based on, say, a list of parameters that the game provides at runtime. "The biome here is cold, so let's generate some humanoid figures with lighter skin to soak up limited light and stockier, stubbier purportions who might appear better able to conserve their body heat. And maybe we generate some wolves with really thick fur that blends into the snowy environment well. Oh, but the biome over there is a hot desert, so let's have some humanoid figures with darker skin to better handle harmful solar radiation.") Making that work properly would also involve building somewhere between "a lot of" and "all of" of my DSL's standard library into their application.

As to the license, first off, I think copyleft is a fucking awesome idea and I want to leverage it to make sure that my DSL is never used to subjugate users or developers, and to promote a cooperative means of development. Given that I have such warm fuzzies for copyleft, my main contenders are: AGPLv3, GPLv3, and LGPLv3.

I've heard Stallman talks in which he indicated that the reason the LGPL was developed in the first place was "strategic", which leads me to believe that less stringent copyleft provisions in service to greater adoption can indeed ultimately serve the cause of increasing users' freedom. (Stallman isn't exactly the most "practical" and "flexible" sort of guy in a lot of regards, so for him to recognize this face makes it seem important.) So I suppose one argument for using the LGPL is to allow other developers to publish software using my project in a way that allows them to keep their code proprietary, even if users who receive a copy of their software still have the right to demand a copy of the source code of all components of my DSL's codebase (including any potential changes/improvements to my DSL's codebase) that might have been included.

Does using the GPL or AGPL, however, mean that if they either statically or dynamically link my code into their program, their whole program becomes a derivative work covered by the (A)GPL? And if so, is that a good thing or a bad thing?

I definitely would love to see a future in which some big/popular game includes a good portion of my AGPL software in the server side of their MMO and players who connect to the official servers are able to demand the source code of the entire server codebase, enabling the game to be modified and improved, and enabling continued playability even after the developer of the game has EOL'd it and shut down official servers. Or if I use the GPL and a game company sells a game with a bunch of my code in it, I'd love for users to discover they have the right to the source code of the whole game and not just the part that is from what I wrote. But honestly, I'm not sure if that's quite how it works.

I guess the main argument to prefer AGPL over GPL is just that it afforts users more freedom and more rights to assert their freedoms than the GPL does. But one major downside I can see is that developers may well see that "A" on the front and completely disregard using my code in their code as an option, making their software entirely proprietary.

Beyond that, I don't want to see any future version of my DSL become proprietary. If some day a very small number of people own the copyright on my code and they conspired to change the license to something proprietary (like, say, Redis did for a while), I think that'd be a bit of a travesty. Which is why I intend for the copyright on contributions from others to be owned by the contributors. A diverse mishmash of different copyright owners for different tiny slivers of the codebase makes it somewhere between "a lot harder" and "impossible" to change the license later. And that's a feature, not a bug. (See also "Ulysses pact".) And if I want to make it harder to change the license in the future, that kindof implies that it behooves me to choose the right license now before it's difficult to change my mind later.

So, I'm hoping some folks here have had the same choice to make at some point in the past, or at least have been involved in such decisions in the past, and might have some insight that might help me choose what's best. I do think probably AGPL would best let me sleep at night, but something like LGPL might well in practice much better preserve the freedoms of downstream users in a more concrete way. I'm not sure!

Thanks in advance for any input whatsoever!

 

This is a California state court case that could drastically change the landscape for Free and Open Source Software moving forward. And particularly that FOSS that is covered by Copylefted licenses like the GPL family of licenses.

The premise of the case is that by selling smart TVs with only the compiled version of GPL'd (and likely forked) code projects such as the Linux kernel, BusyBox, selinux, ffmpeg, etc, Vizio is blatantly violating the "Source Code Provision" of the GPL which requires that they provide along with this compiled code, also the source code or failing that a written offer of source code to any recipients of these compiled versions of these GPL'd applications and libraries.

(Now, of course, anyone can get the source code of the Linux kernel or BusyBox or any of the other applications at issue. But in the process, Vizio and their manufacturers have written kernel drivers for the hardware specifically on the TVs (which are derivative works of the Linux Kernel and therefore covered by the GPL), and probably made modifications to several of the other codebases in order to make them do novel things specifically for the smart TVs in question. Beyond that, the GPL requires Vizio to provide any programs/scripts/signing-keys/etc to compile and install the source code (or a, say, consumer-modified version of the source code) onto the TVs. It's the Vizio-specific/chip-manufacturer-specific modifications/derivative works and compiling/installing code that's most important.)

The "Software Freedom Conservancy v. Vizio Inc." case is seeking to force Vizio to comply with the GPL. Assuming the SFC is successful and the courts rule in their favor, the eventual result is expected to be a fully FOSS OS "distribution" (of, basically, GNU/Linux) that end users can install on their Vizio TVs in place of the factory-installed OS. This FOSS OS distribution, of course, would allow users to remove ads and other antifeatures from the TVs in question. And over time, it's highly probable that this FOSS OS smart TV distribution would expand to other models and brands of TVs. Roughly speaking, the goal of this lawsuit is to be able to create an "OpenWRT but for smart TVs."

But this case could definitely affect the industry not just for smart TVs. Smart phones, game consoles, automobiles, robot vacuum cleaners, sex toys. So many consumer electronics devices run on, for instance, the Linux or Android kernel (both of which are covered by the GPL). And a lot of these devices also include many other programs and libraries covered by the GPL. There's potential for lots of different "OpenWRT but for " sort of distributions. And if SFC v. Vizio succeeds, it could greatly increase the likelihood of all of these coming to fruition.

Vizio has been stalling for strategic reasons. But there's a court date set for 2025-09-22. My understanding is that there will be options to watch a live stream of it via Zoom for Business. (Yes, it's proprietary, unfortunately.) You can even apply for a grant to travel to California to attend the hearing in person (though I think that's kinda mostly for bloggers and journalists and such). Also, a lot of court documents about the case are linked on the page I linked in this post.

Ok. Time for a bit of legal nerd stuff. (IANAL, not legal advice, etc.) Previous GPL enforcement cases have been copyright cases brought by the copyright holders. This case is novel in that it's a contract case. There's a legal concept of a "third-party beneficiary" to a contract. If Alice and Bob make a contract that requires Alice to pay Charlie $100, then Charlie is a third-party beneficiary and thus can bring a suit for enforcement against Alice. In this case, copyright holders of GPL'd code made a contract (the GPL) with Vizio that requires Vizio to make sure anyone they distribute compiled GPL'd code to can get the source code (and compiling/installing scripts etc), so anyone Vizio sells a TV to is a third-party beneficiary and therefore can bring a suit against Vizio to get the court to force Vizio to hold up their obligations under the GPL. At least that's the legal theory under which SFC is bringing the suit.

If you want more info about this, this YouTube video is a panel of SFC folks doing a Q&A specifically about the Vizio case. It'll have some interesting tidbits of info.

I'm hopeful, and the courts have been sympathetic to the SFC's arguments so far. I'm crossing my fingers for sure.