On Sat, 08 Jul 2023 22:53:07 -0400 Richard Stallman <r...@gnu.org> wrote: > This issue is not about distinguishing emulators from interpreters, or > any such classification of programs. Because it is not about making > rules to apply to those classifications. It is not about rigid rules > at all.
> The issue here is: given a specific free program that can > (occssionally, or theoretically) be used to run some free software, > but in practice is nearly always used to run nonfree software, which > of these approaches should we choose about that program? WhichThe > issue is also how to stay consistent. Despite its attempt to block nonfree firmwares, linux-libre is a software that occasionally run only free software but that most of the times run nonfree software because not everybody uses RYF certified hardware or at least hardware that doesn't make linux-libre run nonfree software[1]. The difference with software like ScummVM, Qemu, Wine etc, is that linux-libre is using software that is already in the machine. But it's also possible for distributions to try to find that software from installations of nonfree distros in the same machine and break the expectations of users. So if we don't make classifications, and if we apply the same rules to all software, we will most likely end up pushing distributions to argue more and more with their users and contributors to try to justify these rules. If we don't apply the same rules to all software, then distributions will again have to justify themselves anyway as a rule would apply to software A and not to software B. That justification would typically be done in bugreports, mailing lists, etc when people try understand why some software is being removed or not removed. And anyway most/all the FSDG distributions are collaborative, so people need shared understanding of how to deal with cases like ScummVM or linux-libre anyway and be somewhat on the same page. So if we come up with something clear and not ambiguous, the cost of arguing goes down significantly: distributions would just need to point users and contributors to a very clear justification that speak for itself. That's also why I'm trying to advocate for things that are easy to deal with from the distribution point of view. What I'm advocating for is not ideal as there is still some corner cases[2] but the corner cases are less likely to popup, and we might avoid them completely. And doing nothing is not an option because if distributions practically speaking steer users too much toward nonfree software (for instance by packaging software that is only meant to run nonfree software), then it would normalize willingly running nonfree software within these distributions, and we want to avoid that. > All of these approaches are legitimate and ethical according to our > philosophy. But each can be more or less beneficial to the cause. > > 1. treat it like any other free program -- pay it no special > attention. > > 2. Urge free distros to reject it, becsuse in practice distributing > it to users only legitimizes the nonfree programs that depend on it. > > 3. Tell free distros to reject it, for that same reason. > > 4. Tell free distros they can redistribute it provided they remove all > information about finding the nonfree programs it can run. - (1) probably cannot work as it could normalize the steering of users toward nonfree software in practice. - With (2) and (3), if there are valid 100% free software use case, there will be a big cost in arguing, trying to find rules that can work at least within a distribution, etc. It also can has the potential of nasty collateral damage like preventing collaboration to enable these 100% free software use cases in FSDG compliant ways. - (4) looks fine but it could be more strong as we can remove programs that are not known to be able to run 100% free software, we can modify the packaging to limit the steering toward nonfree software, etc. > Right now we are thinking about the ScummVM case. I do NOT expect we > will want to treat all such cases alike. I expect that in thinking > about various cases, we will find reasons for treating various cases > in various ways. Yes but how would we differentiate between linux-libre and ScummVM in a robust way? Here we could state that ScummVM doesn't reuse nonfree software like linux-libre and that the software being reused by linux-libre is inside the hardware. But then people could also argue that reusing the firmwares of the OS shipped by the hardware is also fine, etc, and it could in turn normalize the reuse of nonfree software that is in another OS / distribution. And here I fear that this is too complex so if we manage to define something it will likely contains bugs, and we shift to another criteria it would have other bugs, and so on. And if we have too much complexity, it will probably enable workarounds and endless discussions anyway. So I think that here too something more simple is better. > > as i noted earlier, it depends how "generically" they are viewed > > - in the strictest sense, it would apply to every runtime and > > language interpreter, such as java, dotnet, python, > > gnu-smalltalk, etc - anything which can be characterized as a VM > > I don't think that "being a VM" is a pertinent factor anyway. > > even those which would be the safest to recommend, such as QEMU, > can run non-free software as well as anything Indeed. We need to treat "being a VM" as an implementation detail. For instance many other type of software can also run programs (interpreters, compatibility layers like Wine, etc). So if we need to classify software somehow we could insist on what features it implements instead (can run other programs). Though we would also need to foresee the impact of guidelines/rules that would apply to cases like that because it could have unintended consequences as well. For instance a web browser would be in the same category than ScummVM (programs that run other programs within them). So It makes it hard to predict all the consequences of some rule within a distribution. > That is too terse for me to follow. What _exactly_ is the stance > you are arguing against? And plesae state the facts that you're > basing your argument on, because I know very little about QEMU. I can't speak for bill-auger, but Qemu emulates full computers. So it can run nonfree OS as well as FSDG distributions. Qemu is often not used directly, but through graphical interfaces or other wrappers that simplify its usage. As I understand, all these simplified interfaces allow to run what you want inside Qemu, including nonfree OS. > The one thing I can is that (1) any platform for running software can > run nonfree software, and therefore (2) the fact that platform P can > run nonfree software is not pertinent to any judgments about P. Right. However one of the questions (that is divisive) being raised in this thread is if we start deciding by weighting the pertinence of the free and nonfree software use cases. If we base the criteria on the number of users to weight the use cases, then beside the difficulty to count users, we might have issues with software like linux-libre. Remains the perceived usefulness of use cases, but that is also subjective and that subjectivity can depend on the background of people, their interest, etc. So for all these reasons I'd like to have something simple that can easily be reasoned with by distributions contributors and users. So far the simplest criteria I found is to understand if we have at least 1 valid use case that works with 100% free software. That criteria enable to remove ScummVM while keeping browsers, Qemu, linux-libre, etc. And it probably has very minimal collateral damage, and if it does some, that damage would probably be worth the gain of not steering users too much toward nonfree software. And distributions can take steps to help preventing steering users toward nonfree software by modifying package description, hiding programs like ScummVM as dependencies of other packaged software, and even blocking the run of nonfree software when there is no collateral damage and that it's easy to maintain (Programs like ScummVM looks like a perfect fit here). References: ----------- [1] That nonfree software is run when people either use ATI / AMD / Nvidia GPUs or use nonfree boot software (like nonfree BIOS or UEFI). With nonfree BIOS / UEFI export some ACPI tables that contain both code (in form of bytecode) and data, and linux-libre runs that code. With ATI / AMD / Nvidia GPUs, linux-libre also runs nonfree code that either comes from the GPU or the BIOS/UEFI. That nonfree code is also bytecode and it's called AtomBIOS for ATI/AMD GPUs. That code is run to initialize the GPU. [2] One corner case would be if someone takes one of the GPU drivers mentioned above and package it as a standalone driver. In that case if we takes "can run 100% free software" as a criteria, linux-libre as a whole could be fine but that standalone driver is not fine anymore, even if they are almost the same. So there is still a question of granularity here but such cases are probably not that important as they might not popup at all. Denis.
pgpx03Yo9aDfu.pgp
Description: OpenPGP digital signature