Hi, About the license it's still unclear if it's free or not as some people pointed on the gnu-linux-libre mailing[1] list that it's a bit similar to the open font license, but that is a license for fonts not code though. So I've looked at the other aspects (missing source code, etc). On Sat, 6 Aug 2022 17:24:52 +0200 Maxime Devos wrote: > As such, I agree they should not be distributed (unless the actual > sources are found, but even then there is (1.)), as per the first > sentence of ‘(guix)GNU Distribution’. For the lack of missing source code I've looked a bit more in depth about Drascula and the other games mentioned and here's what I found below. Drascula: --------- The file used by ScummVM is Packet.001. Apparently it's an ARJ archive: > $ file Packet.001 > Packet.001: ARJ archive data, v7, slash-switched, created 11 dec > 1980+18, original name: PACKET.ARJ, os: MS-DOS And binwalk can manage to extract the files from it: > $ binwalk -e Packet.001 There might be way better tools to do that but I don't know them. That extracted 1146 files. One of these files is DRASCULA.COM, and it's safe to assume that it should be a dos executable because many of these games were also released for DOS. There are other .COM files too. File also seems to think that DRASCULA.COM is a dos executable (file is not 100% reliable). > $ file DRASCULA.COM > DRASCULA.COM: DOS executable (COM), start instruction 0xeb3a9043 > 6f6d7069 I've no idea what most of the files are for but here's their extensions: > $ ls | sed 's#.*\.##' | sort -u > ALD > ALG > ALS > arj (that could be the header of the Packet.001 file) > BIN > CAL > CFG > COM > DEV > DRV > EPA > EXE [GSAVE* (GSAVE00, GSAVE01, .. GSAVE10)] > RCT > VOC So: - We lack the source code for DRASCULA.COM - If people re-make ARJ archives without any of the executables, and that the game still works, then still have issues about the other files that might contain code that lack corresponding source code. More on that below (in the part about draci-historie). Lure: ----- The files used by ScummVM are: Disk1.vga Disk2.vga Disk3.vga and Disk4.vga I don't know much more about the format. I've also found an executable without source code (Lure.exe) in one of the source pacakge, but Guix probably has a mechanism to take care of that to republishing modified source code without Lure.exe. queen: ------ The file used by ScummVM is queen.1c, but I don't know more. sky: ---- The following 3 files are used by ScummVM: - sky.cpt: Targa image data - Map - RLE 487 x 608 x 1 +353 +412 - 1-bit alpha - sky.dnr: DOS executable (COM), start instruction 0xe9130000 cfea0000 - sky.dsk: data File seems wrong with sky.cpt, and I've no idea if file is write with sky.dnr. There are also deeper issues: ------------------------------ - All these files are not built from source, so it's complicated to understand the provenance of what's inside. And so it's probably safer not to ship them (unless we build everything from source) because we're unsure that there is some corresponding source code inside. - Even if there was complete source code inside, we need to be able to modify that source code somehow, so doing that might require a lot of work to research or build the tools for that. - ScummVM might contain checksums (See the "4. Play the recompiled game" of the draci-historie build documentation [3]) but if someone manages to build a game for ScummVM, it could be added as a dependency of ScummVM and its checksum could be added inside ScummVM at compilation time. Also if: - There are no free programs for ScummVM (a hello world under a free license would could count as a free program) (we don't know if it's the case or not) - ScummVM needs to be patched to run modified games (this is very likely) - We don't know if it's possible to build a game for ScummVM with only free software (the game doesn't necessarily need to be public but free software tools would need to exist to build it). Then it would clearly steers users toward nonfree software. Though here we don't know if there are free programs or not but we also cannot tell users that scummVM is usefull with a specific free program or show them a use case that doesn't require nonfree software, so we might also have a problem with that. A way forward: -------------- A possibility here could be to remove ScummVM and the games that run in it. Another would be to find a 100% free program for ScummVM (that doesn't have nonfree dependencies for being modified or rebuilt) or to find a way to make your own program for ScummVM with 100% free software. I've looked a bit at another game (draci-historie[2]) that has some source code published. This game is not packaged nor redistributed by Guix but it looks way better than the other freedom wise and it can teach us how ScummVM games are made. Its probably not good enough as-is as its source code also also relies on a tarball that contains executable to build the game and I also didn't manage to build it with Guix yet (I've attached a file with my attempt) but maybe it's possible to get it to build and maybe we can build a 100% free software version of it. For the licenses the website has the following: > In 2006, I (Robert Špalek) released the source codes under the GNU > GPL2 license. > [...] > The game has been released under the GNU GPL license version 2, > hence you can download it for free including full source codes. The > new game engine is a part of ScummVM and its source codes are thus > also a part of it. The old game engine was written in Borland Pascal > and Turbo Assembler, and only runs on MS-DOS. It can be downloaded > below. Besides the game player you can also download the source codes > of the game scripts written in our proprietary game programming > language, and source images, sounds, and animations. So I'm unsure about the license of the executable, game data, etc. The interesting thing is that it has some draci-historie specific scripting language and a compiler for it. So we can safely assume that the other games most likely have a way to script things and that the games are complex enough to have scripts. And these scripts may need to be compiled here (I've no idea how scripts look like for the other games). A way forward would be to try to build this draci-historie game if we really want to have ScummVM games and to patch ScummVM to use the checksums from the newly built game. There is also an IDE (QT AGI Studio)[4] and some templates[5] for the AGI game engine supported by ScummVM, but all that require some work because (a) the IDE depends on QT4, and (b) the template license is a bit similar to the games license[6], and (c) if scummVM still has checksums, then users need to build their own version anyway (d) nobody knows if that can work with 100% free software unless people audit or package the software and try to see if it works. References: ----------- [1]This gnu-linux-libre mailing list is at nongnu.org. Despite its name, this mailing list is meant for discussions about all FSDG compliant distributions(even the ones without GNU or linux-libre like Replicant), about the list of software to exclude from FSDG distributions, about adding new distros in the list, etc. [2]https://www.ucw.cz/draci-historie/index-en.html [3]https://www.ucw.cz/draci-historie/src/doc/compiling-the-game.txt [4]https://agistudio.sourceforge.net/#requirements [5]https://github.com/nbudin/agikit-project-template [6]https://github.com/nbudin/agikit-project-template/blob/main/README-original.txt Denis.