On Sun, 18 Jun 2023 10:19:06 +0200 Liliana Marie Prikler wrote: > I've tracked the checksum to the header in which it was declared, and > it says > /* MD5 of (the beginning of) the described file.  > Optional. Set to NULL to ignore. */ > const char *md5; > (Comment reformatted to fit into a mail) Thanks a lot. That means that we could easily patch ScummVM to ignore checksums and at least fix this specific issue. It probably needs to be done for each game engine we care about though. > > > Even if no such toolchain exists for ScummVM, you need ScummVM as > > > a testbed to write one :) > > Assuming that some way around the checksums is found, the issue here > > is that no such toolchain exist yet, so testing it won't work right > > now. > > > > And assuming that draci-historie turn out to be a dead end, getting > > a free toolchain probably requires significant work in research, or > > in packaging. > > > > In contrast, many other VMs (qemu, java, gjs, etc), they already > > have valid use cases and/or it's trivial to make a free software > > hello world. > Didn't you say that a hello world for scummvm exists? I don't know. There is a template for AGI games but the license is strange too, and it also requires some software to build it, and I've no idea if it's compatible with QT AGI, and I've also no idea if QT AGI works, doesn't have nonfree dependencies, etc. So that makes things way more complicated because here it probably requires a lot of work to confirm that it's possible or not possible to develop programs that run inside ScummVM with free software. > My argument isn't that we ought to remove wine because it's quite > often used to run nonfree software. My argument is to apply the same > principles we use to justify not only wine, but also game engines, > where only the engine but none of the assets are free (some of which > are included in Guix). Ah OK, I slightly misunderstood because I didn't think about the other games with non-FSDG compliant assets, so I've no idea about these yet, especially because it would depend a lot on the details. For instance in some engines, it might be trivial to make them start / work a bit with FSDG compliant game data, or at least data that the user can easily make, and on some other it might not be possible without a lot of effort. Some engines might require code, other other only data, etc. I've also don't have their package description in mind. And in the FSDG there is also an exception for licenses like CC-BY-ND for non-functional data like game graphics, but I fear that the engines you're referring to are mainly meant to work with non-re-distributable data. > Indeed, we may not have access to the same tools as the game > developers did back then, but you can still run the games on any > machine of your choosing for any purpose, and if you don't mind > experimenting a little, you can also run modified versions. The same logic also applies to software under free licenses that lacks corresponding source code: users can experiment with it, modify the assembly code, and so on. But the amount of effort required to do that is huge compared to "the preferred form of modification" of that software (typically source code, commented assembly, with a build system that works and enable users to do some small change and rebuild the code, etc). Some firmwares are in this case, but they are considered nonfree until their source code is produced somehow (for instance by reconstructing it, and with some automatic reverse engineering tools, etc). Another issue here is that it is way easier to reason on software that exists and facts that are known or very likely to be true rather than hypothetical software that require unknown or big amount of work. Here it could turn out to be a huge amount of work just to manage to run free code inside ScummVM. That can also be compared to freeing firmwares under free licenses that lack source code where there is some work and research needed to make them useful for people wanting to use 100% free software. In contrast if I take gjs, this program is free software: > print("This software is released under the CC-0 License"); > print("hello world"); and it can run with 'gjs hello.js'. So weather or not gjs is reused by other programs as a dependency, as-is it's ultra useful as anybody can either write free software or software that isn't public (that's a valid use case too). And making sure of that is trivial. Denis.