LibrePlanet: Conference/2022/Transcripts/RMS-state-of-free-software

From LibrePlanet
Jump to: navigation, search

The state of the free software movement

Original event link:

The talk was given Apr 13, 2022 from 02:00 PM to 04:00 PM



... usually happen, but of course they're happening now. I'd like to thank all of you who have contributed, especially to GNU software, but also to other free software. Whether you call the program open source or free software, as long as it is free software, then it's a contribution and I appreciate it.

And the rest of you: If you are programmers, then you can contribute this way, and I ask you to, please, spend some of your time, if you want to spend it programming, please, spend some of it on developing free software, so that we get more of it and we can, especially if the free program does the job, which currently free software doesn't do. Those are the most important free programs to develop. Now, some people enjoy doing things because they're useless and yeah that's a part of hacking, but we are fighting for freedom. You can have as much fun developing a free program that will do a job there is no free software for, as you could have by doing retro-computing, and it will be a lot more useful.

There are some features we would like people to write and one of them, something that I really wish we had, is if some free spelling checker had a gender feature. So it would, when you check one word, it would tell you the word's gender. This would really help a lot in writing in the languages where you need to know the gender of each word. In English you usually don't need to know, but in French and Spanish it's extremely important, and in Hebrew it's even more important. If we could put that information into the spell checker dictionaries and every time you check one word in your text editor, it'll tell you that word's gender. This would be enormously useful in practice.


Now, you might also write a program from scratch. A program we don't have and that's tremendously useful. The program, in order to be a GNU package:

It should work well; it should be easy to use; it should be designed pretty well, obviously nobody has time to do that perfectly; it should come with enough explanation that people don't have trouble using it. Of course, it can follow, if you write the program first, then, then you can write the manual for it and it should do a substantial useful job or else be substantially fun. If you develop a program like that or if you started developing a program that you hope will ultimately, will eventually meet those, meet those desired criteria then, please, get in touch with the GNU project and talk with us about making it a GNU package. We would really like to have more.


And there are lots of other ways to help us, which you can find in so please take a look. Now, the free software movement is universal and morally should not exclude anyone, because even though there are crimes that should be punished, cutting someone off from contributing to free software punishes the world, not that person.

State of the Free Software Movement


So, I'd like to talk about the state of our movement. Things that are getting better and things that are getting worse. Well, one area where some things have got better. There're a few GNU packages, which have had big improvements in. GNU Emacs, we now have another package archive called NonGNU ELPA.

Emacs will show you the packages in that, but they're not part of Emacs in any sense. This is a way that we can show to users the availability of external packages, which don't have the paperwork and so on, to include in Emacs, but there is no real problem with them. So now we can make users aware of them, of the ones that seemed good enough to include.

GNU Health now has a hospital management facility, which should make it applicable to a lot more medical organization, so they can switch to free software and do everything in freedom.

And GNU Jami got a big upgrade, but I think it still needs a graphical interface for use on GNU/Linux that will resemble the other applications on GNU/Linux and follow the concepts that we need to. That's a place you can get involved in helping.


Now, what's getting worse. Well. The Libreboot-ed machines that we have are getting older and scarcer. Finding a way to support something new is difficult, because Intel and AMD are both designing their hardware to subjugate people. If they were basically haters of the public, it would be hard for them to do it much worse than they're doing. And Macintoshes are moving towards being jails, like the iMonsters. It's getting harder for users to install even their own programs to run them. And this, of course, should be illegal - it should be illegal to sell a computer that doesn't let users install software of their own from source code. And probably shouldn't allow the computer to stop you from installing binaries that you get from others either. Even though it's true you got to, in cases like that you're doing it at your own risk. But tying people down, strapping them into their chairs, so they can't do anything that hurts themselves makes things worse, not better.


There are other systems where you could find ways to trust people that don't depend on being under the power of a giant company. We've seen problems sometimes where supported old hardware gets de-supported, because, because it, somebody doesn't think it's important anymore, it's so old, how could that matter, but there are reasons. Reasons I just told you about, why old hardware sometimes remain very important. And people who aren't thinking about this issue may not realize that. For instance we had the, the last usable server machine was de-supported, because it was too old and they weren't hearing from enough people using it. It's the KGPE-D16, and if you care about that, be sure to keep the Coreboot developers informed.


And we have seen some aspects of Ubuntu stop supporting 32-bit systems, and that's going to have repercussions too. And so we got to find a solution for that or workaround for that. Ubuntu, of course, is a non-free distro and I wouldn't recommend that anyone use it. Some important packages are now distributed only through their basically non-freedom-respecting package system and not as Debian packages. So it is even harder than before to get any freedom out of an Ubuntu installation. But even if you don't actually try to use Ubuntu, there are other distros that depend in various ways on Ubuntu and they are affected by this too.


I've seen reports that in Brazil many organizations are trying to push people away from their websites and to using proprietary apps for proprietary smartphone operating systems instead. Now, this doesn't seem to be world-wide and I am a bit curious to find out if this another country where it's happening. But in any case an app is much worse for our prospects of freedom, than a website that sends non-free JavaScript code. Of course, neither is good to use, neither of them lets you keep your freedom, but it's much easier to figure out how to communicate with the site if you're talking about doing it with a web browser, than if you're talking about a non-free app. So, it's a change for the worse. It's a change from "an unjust program you shouldn't use" to "an unjust program you shouldn't use and that really shafts the community".


Now. There is a proposed US law, called KOSA (Kids Online Safety Act), which would require mandatory age verification of users. Which means mandatory identification of users. Which is likely to be, to mean "via face recognition" and it would be in every commercial software application or electronic service that connects to the internet. Now, that's grammatically ambiguous. Does commercial modify only software application or does it also modify electronic service? It makes a difference, but either way it's a disaster. You know, things like e-mail services would have to identify their users apparently. They are electronic services that connected the internet. And only if it's possible that somebody under 16 might try to use the thing. Of course, that is almost always the case. There are only special situations where they couldn't possibly try. So, this bill - KOSA - which is supposedly for protecting children. That's one of the favorite excuses for new forms of surveillance and repression "to protect the children!". Whether it would actually protect anyone is dubious, but they hope that won't actually be checked. The other favorite excuse, although it's a little less likely to pop up these days, is terrorism.


Terrorism hasn't been such a big problem, as to make people so excited about it lately. So, it's not quite as tempting as an excuse where as "protecting children" turns out to be really important, but how they succeed in doing it is not obvious. So, but you could always propose a completely useless method that will repress everyone.


Now, another area where we have problems is that there are several languages, which come with a package library. Basically people post packages in them and that might be fine if they had a good criterion for the licensing of the libraries people upload into those sites, but they're not developed by free software activists and they don't have such a criterion. There are non-free packages in those libraries too. Now, some of them make it possible to find out whether a library is free. Some of them it's difficult. Sometimes, yeah, you could probably look at the source code and see what licenses are in it and then you could look up those licenses in and see if all those licenses are free. And that way you know whether the given library you were thinking of is free or not. But that's enough work to do if they don't help you. And the problem is they don't help you. At the very least, they should make it easy to say "show me only the free packages" and then "show me only the GPL-compatible packages", because I'm writing a GPL-covered program and I can't use the libraries that are not GPL-compatible and I certainly won't ever think of using a non-free library.


They are not interested in helping people move forward in freedom and so we need people to write front-ends for those package archives, which will show only the free licenses, freely licensed packages, and which can be asked to show only, to show which ones are GPL-compatible or show only those and this way they will be usable easily by the free software community. And if you like one of the languages that has this problem, please, show your appreciation for that language by reconciling its use with, with maintaining freedom.


Another area where things have been getting worse is containers. Containers are a way of packaging a program together with all the libraries it needs. The old way of doing this was you would make sure that your program said with versions of libraries it was compiled to work with, and in the source code you use something like autoconf, so that it could work with the various library versions and this way you could build the program for a wide variety of free operating systems and versions of them. Well, that's some work. So some new developers they release a free program. Not all of them release free programs, but some of them do release free programs using containers. And the container has one set of libraries in it. And how do you really know what's in there? It's not straight forward to verify that all the libraries in the container are free.

And a lot of people won't realize that they should even think about it. So the use of containers as they are implemented nowadays by people who are not free software activists and are not particularly concerned with this question, is an obstacle to verifying that you are installing free software.

Well, maybe some of these container systems could be improved or maybe another one could be designed to solve these problems. If a container packaging system were designed by people who care about freedom, they might find good ways to, to satisfy this goal, as well as others. So it's something you can possibly work on.


Now, I'd like to invite people. If there is a medium size improvement you have in mind to suggest for free software, please, tell the GNU project or tell me, because I'd like to look at it and if it seems like a reasonable thing to do I'd like to add it to so that we get the suggestions out there. We can make this something that we contribute to and look at and thus help people find medium-size projects that will really make our programs more convenient.

So what are we doing to bring people into the community and to encourage them to advance? Well, the Free Software Foundation has an idea called the freedom ladder. And the idea is that it's some beginning steps to introduce someone to free software, you know, to the ideas and to trying it. And one of the early steps is learning about the basics of the philosophy. One is installing a few free programs on whatever system person uses and then getting used to actually using some free software sometimes. And then beyond that it would be installing GNU/Linux on some computer and thus getting a first introduction to having a free system.

Now, these are the beginning steps, because where they bring you is participating in the free software community, but they don't start to tackle the hardest problems. The hardest problems are the systems that are deeply embedded in society. And this is a place where something I said in the TEDx talk, which was quite a few years ago now, is no longer true. It's "to reject some non-free programs takes stubbornness and determination". It's not so easy anymore. And the reason is that some non-free systems are embedded in society institutions will demand people use them. There were vaccination sites that would only let you make an appointment if you ran non-free JavaScript. Well, and they had no response to a telephone call. Well, I couldn't get vaccinated there. I found a place I could. So problem worked around, but that kind of problem is shameful and we should teach governments never to do that. But schools were doing that very often and peer-groups, you know, just groups of people who socialize, are doing it. Many talks now, academic or other such institutions, are transmitted over non-free software. Why? because I can't see them!


Now, when you. So in order to make a change, you got a start saying no. It's crucial to have a lot of people saying no, but that doesn't mean you have to say no every time the way I do. Why do I say no every time? It's because I never accepted to do that thing. And on each day I think "Should this be the first day I yield and start using such and such? No way! I find some way I can say no." I would be really ashamed if I, you know, started to say yes after saying no for so many years. But suppose you are in the habit of saying yes. Well, the first thing is to say no once. Just once. Now, on this occasion I will say no to using Zoom. You know, I really wanted to move away from using Zoom. So right now I'm going to say no. I'd love to talk with you people. I love to watch this, but not on Zoom. And even if you only do it once you're helping the movement, because it's an opportunity to explain to people why it's bad. Why you don't want to do it. And you don't have to try to tell them what to do. They will listen to you better if you don't. But if you show why it's important to you, and you show that you regret not participating, but it's because it's something you want to move away from in their means of doing it, not in the goal, you can influence them subtly.


Now, schools are really bad in this regard nowadays. And I saw a paper, well, about a year ago a Polish student got in touch with me and talked about all the things he had done to avoid running any non-free software in his last year college and I was amazed by how creative and clever and flexible he had been and you have to be willing to do that. Asked to try several different ways of not using whichever non-free program it is. And keep coming up with new ways. One method that may not be obvious is if the teacher wants you to watch some presentation over Zoom or Microsoft Teams or Google Meet, something like that, well, maybe there's a friend who will be willing to put a webcam watching a screen and transmit that to you though free software. And then you will see what is being presented for the class and it can transmit the audio too. OK, so, you're participating in the class, at least, at least you see what you need to see. And maybe the friend will e-mail you PDF files and hand-outs and so on.


It's not convenient, but it's also not tremendously hard. And if you're trying to be able to say "see, I have not yielded. I have resisted. I'm winning this fight for my freedom". Then things like this are worth trying. Now, of course, sometimes that won't work, sometimes you won't find something. There's one. If you have to use the non-free program, there is one last thing that occurred to me, which is to say in each class session "I am bitterly ashamed of the fact that I'm using Zoom for this class." Just that. Just a few seconds. But say it each time. The first time you say anything in class on any day in that particular class in any meeting of it. Say that "I am bitterly ashamed of using Zoom and I feel hurt that you make me do so." And over time the fact that this is really important to you will sink in. I don't know if anybody has tried this. It would be interesting to find out what the results are.


Now, you might have other suggestions. If you've got a new suggestion that Wojciech Kosior didn't write about. Well, inform the education group, because we would like to mention it as an idea.

Now, one way not use non free-software is to go through businesses or even friends or avoid doing it online. It is better to ask a travel agent to buy your flights, than to do it yourself using some online non-free software.

Now, some people who are very inclined to generalizing everything and simplifying everything to the max to make as many things equivalent as possible. They would say "it makes no difference", you know, "Who cares? Why should it matter whether you use a computer or the travel agent uses a computer?" Why does it matter? Because you're trying to keep away from non-free software yourself, freeing all of society, eliminating the non-free software, that's our ultimate goal, but that's a much bigger goal. Freeing yourself is good, even if you don't free everyone else in the process. The travel agent is using non-free software and has decided to do so. You don't, you, it's good if you freed yourself of non-free software, even if it's only you. So if you equate every possible way that anything unfortunate could happen and treat them all as equivalent, you make it impossible to make progress. You've got to change the whole world to make any progress, and of course that's very hard. So look at the differences between different things that are bad for somebody. And if a travel agent who doesn't care about running non-free software buys your flights for you, nobody's worse off. And you are closer to freedom. Part of, another part of your life has reached freedom. So it's good for you and not bad for the travel agent.


But what if you want to ask a friend to order a product for you? Well, that's something I do. I won't order from online stores, because I can't pay them. For one thing the payment services require running non-free JavaScript. The FSF is an exception. It has gone to extra care to be able to accept credit card payments without running non-free software to do it. But stores don't care. They do it the easy way, which sends you non-free JavaScript. So I can't order from any online store. So asked friends to order things for me if I can't find them in any physical store.


Now, it's not good for my friends that they use non-free software to do this, but those are the friends that do not care about the issue and they do that every day anyway. So that's why it's a step forward to ask a friend to do it for you if, when the friend doesn't care about the issue. On the other hand, if it's a friend who does care about the issue and is trying to quit, you really shouldn't ask her to do a bad thing instead of you. That's a person who might refuse also. So you should encourage your friend to refuse along with you.

Now, with some, some stores you can order by phone. I don't do that, because I don't want the company to know who I am. That is a different issue that applies to the same situation. Two wrong things that they do. One is you have to run non-free software if you are ordering online. And the other is to give them, to pay remotely you got to do it by credit card and that's, that's tracking people and I want to resist tracking too. Well, if my friend orders the product, instead of me and gets it sent to per address, well that's confusing big brother. They think it's my friend's purchase. They don't know it's actually for me.


Now this is a really serious problem for society that you can't order things remotely anonymously. But GNU Taler is part of the path to fixing that. GNU Taler will enable people to get, you know, you'll be able to get a Taler token from your bank or a whole bunch of Taler tokens and then you'll be able to use those to pay anonymously. And then if the store can send the thing you bought to a delivery box in your neighborhood, the store doesn't have to ever know who you are.


Now, another good thing that Taler could do is take care of the age verification problem. Suppose there is some sort of service, which charges money or even a tiny amount of money and is only for people over 16, or people over 18, or whatever it is. Well, you could get from your bank a Taler token that says "The person using this token is over sixteen. This bank has verified that.", because your bank can verify that; it knows how old you are. So, then the site only needs to insist on an "16 or over" Taler token and your age is verified, but the site has no idea who you are. Unfortunately, that won't help if, if user identifying age tracking systems are legislated now. The code of Taler works, but it still being integrated with a bank, so people could actually start to use it with real businesses.


One area where we find a lot of threats is in the right to use encryption end-to-end. Well, there is a something called the Digital Markets directive in the European Union, which requires interoperable encryption. In other words various different services for communication would have to be able to use the same encryption method, so that they could talk with each other end-to-end encrypted. And this is being called by commercial services a disaster, but is it really? The services that offer encryption, end-to-end encryption to their users through their own proprietary encryption software can't be trusted anyway. Encryption, you know, you can never trust a non-free program. There's always somebody who's in a position to screw you over secretly. And it's very very hard for you to check. And that is true for any website that does encryption and sends you, sends software to your browser to do it - the encryption and the decryption. Because that software is totally under the control of the site.

The people who study the issue of encryption say "you should only be using free software to do that, because that way it can be studied carefully by experts to make sure it really works reliably and safely", but in addition when that program is free software it means that no one company is in a position to do something nasty. Security, as we understand it, needs to include security against the developer of any program and only free software can do that.


Well, that means you shouldn't be using encryption and decryption software provided to you in an app. Oh no, you have to use a free encryption and decryption program that is installed into your machine, so that all the various apps and sites can use it. And that way they can be interoperable. The solution for the interoperability is also the solution for your freedom. Let user install the encryption programs to use, and choose which one, and then we can choose free encryption programs, and they work interoperably with all the sites.


Now, of course, it is not trivial to make sure things really turn out this way. We are probably going to have to push for it, but properly understood. If you understand what secure end-to-end encryption means, then you realize that it's the friend of interoperability, it's the friend of using the same secure free encryption program for every service or, or communication program.


About a year ago, a service called "Copilot" appeared. If you add one letter to it, it becomes copy-a-lot. And that's exactly what it does, really. It is an easy way to copy various, various snippets of code without knowing where they come from. And it turns out that it is easy to copy substantial parts of free programs or non-free programs and infringe copyright and not even realize what's happening.


Now, the fact that it's easy to copy a lot of code, whether it's authorized or not, well, that is not new. Any text editor will let you copy a big hunk of code from one file and put it in another. The difference about copy-a-lot is that it will just do that for you, because it thinks that's what, because, you know, it uses machine learning and it shows you, what you, what it thinks you might want there. And it's so easy to copy that without knowing what you're doing and without checking the license. You know, what if you're copying code from a GPL-covered program into a program under a pushover weak license and you could submit that as a change and you've now mislicensed it and you caused a potential legal problem for the project you're contributing to?


And some kind of systematic solution is needed for this, but it's not that it copies. It's that it makes it, it encourages people to copy without asking "Where am I getting this?". For things like this the solution generally has to be to put in a step where it tells you where you're going to get something and what you need to know about it and asks you "Is this something that I can lawfully do? Is it something within the criteria of the project I'm trying to commit to?".


Now, this brings up the issue of copyright papers. Some of the GNU programs, we have four hundred or so GNU packages, and some of them are "copyright Free Software Foundation", which means the contributors signed papers to assign copyright to the FSF, because in some ways that's better. It means, you know, the FSF can chase after violations of the, of the GPL instead of you're having to do so yourself, but it's a bit, it's a little bit of work. We made it a lot easier; it is mostly done basically electronically and it doesn't take very long. And I'd like to thank contributors for signing these papers and helping us do this.

It serves in other purpose too. Once in a while, it's useful to change the license of a piece of free code. For instance suppose it turns out that it's really useful for a certain piece of code to go into some application, which is under, say, the Apache license, or, you know, the Expat or X11 license, Python license, you know, that piece of code would be very useful in other places. Well if all the contributors to that code have assigned to the FSF, the FSF can release that piece of code under the weak pushover license. And so it can be contributed to that particular package. We obviously wouldn't want to do this too often, but sometimes it's good for the community to do it.

And sometimes we want to put an exception permitting linking, say, for instance if you ever compiled anything with GCC, that's probably linked with a library called libgcc, which contains conceptually trivial things that just support some of the language constructs. You don't mention them by name in your program, but your program may need them. If you're doing C++ I think some method lookup routines will be in there. So in order to put some code into there we, we need to permit non-free programs to compile with GCC. GCC just, not that we think those non-free programs deserve any cooperation, but if you couldn't use GCC to compile them, GCC would not be very useful. So that's why I decided to do this back in 1989 or so.

So we may want to put some code into there. And that means we have to add an exception giving the permission to use it in a certain way. The code in libgcc is under the GPL, but you have a special permission to link it in with anything else.

Well, if you design a copyright we can make that kind of change. There are some people who don't want to do that and so some, some projects started using something called a DCO, which is "declaration of code origin" and it's a cute idea, but it doesn't, it doesn't, it's very sloppy. So I decided to work on an improved DCO. Unfortunately, it will not enable us to re-license, but it will give a firmer footing for things like registering the copyright on the program. And so the idea of the DCO is to make it clear, who is assigning what, and make it so that each piece of code that is contributed is assigned for by its contributor, by its developer, sorry. Not by a third party who contributes it, but by whoever wrote it perself directly. The author of that code will sign for it. And this gives us a firmer footing in terms of copyright.

Questions and Answers


So, that, those are all the topics I wanted to cover today. And since I always tell some puns in these talks, I give you a couple of them. First, which human bond is formed over soup? It's brotherly love. I wish I could see people laughing. And when is it possible to convert a cracker into a soup? When it's a bisque.

RMS: So, now it's time for your questions. So, I guess I should look a BigBlueButton, right? To see the questions?

moderator: Yes, I will be pasting them in gradually.

RMS: And it is good to keep a couple of questions in the buffer to overlap operations.


Question: Can you comment recent Node-IPC incident?

RMS: Oh. Well, I do not know if this issue pertains to free software actually. I am not sure what Node-IPC is, though. Who runs Node-IPC? I do not know about it at all. Is it developed by party A and then run on servers by parties B, C, D etc.? Is that what happens?

moderator: I am not sure actually, but I think the main sort of gist of the question is on the topic of self-sabotaging projects.

RMS: I don't understand the term self-sabotage it is rather vague. And in general I don't try to judge these kinds of questions formulated in vague abstract ways. I think that's the wrong way to do, to judge. It will get you bad answers. So, it is very important to look at some concrete examples and judge them ethically. And once you judge several examples ethically you can start maybe to see a pattern. You can try to generalize from those examples. So I need to know about these instances of self-sabotage. How about if the people who are bringing this up, type in a description of one or two examples and when they're ready you can paste them in and in the meantime I will turn to the next question.


Question: Have you ever considered that copyright, trademark etc. law that allow monopolization of ideas?

RMS: By the way, that's incorrect. Copyright and trademark are not similar at all and I do not generalize about them. Period. Copyright is, it's not monopolization of ideas. Copyright in the US explicitly does not cover any idea. It covers details of expression of a work of authorship. So, please, don't ever say that an idea has been copyrighted. You would be confused and you would confuse the discussion that follows. But copyright covering works and monopolizing the use of the contents of those works is very similar to the enclosure laws. And so enclosure was, was basically theft and copyright is vicious in a similar way when it's used to stop people from sharing. Now, I am not against copyright. 100%. I think it's legitimate for there to be copyright and for it to cover commercial distribution and use of, of a work and to cover modification, publicly visible modification, of the work. However, non-commercial redistribution of exact copies should be allowed for any published work. Now, not for private personal data, but for published works, yes. And then some works, the works that exist to be used, not just looked at, thought about, contemplated, appreciated. You know, the works that are meant to be used by each person. Those need to be free. So, for instance software should be free, recipes should be free, patterns for sewing clothing should be free.


RMS: A clarification on, for the Node-IPC question. Node-IPC developer modified his program to make it remove the files of anyone from Russia if they run it. And it was, also was packaged in many programs. So, it sounds like Node-IPC - was this a sort of library that was included in other free programs? Before the answer comes, I presume it was. Well, I think that was really nasty, that change. Deleting people's files is really nasty and it's not as if, it's not as if this deletion was being done to a war criminal. You know, it was, could be anybody in Russia. Could be anybody in Belarus. And most people in Belarus hate Lukaschenko. They want him gone, but they are still being punished. So, that was not a good thing to do. It's not a good thing to broaden the condemnation and the hate.


Question: Would a clause into a future version of the GPL prevent the code for use of the code for training non-free AI systems much like the current version of the GPL prevent the code from being used in non-free programs?

RMS: Legally those are not similar. You see the GPL is based on copyright law and the things it regulates are things the copyright, copyright law says you need permission for. The GPL actually gives permission. The GPL on a program doesn't, and suppose you download a program and start to, you have a copy of it. Well the GPL doesn't do anything to you. You know, it doesn't deny you freedom to do anything. It's just the opposite. It gives you permission to do things, which, by default, are prohibited. And that's possible, because we're talking about copying of various sorts. Copying with or without modification. Compilation is a kind of, it's making a modified version. So, these are all things that require other permission legally under copyright law. So the GPL says "yeah, you have permission, anybody has permission under these conditions", which is much more permissive than copyright law itself. Well, you, I don't think you need any permission to run a program for a particular purpose, like training an AI. So, basically I don't think it is conceivable for a free license to restrict training the AI. And not only that. If the AI and the program making examples for it to look at, are communicating at arm's length. It might be hard to decide whether such a condition even applied. So I don't think we can solve the problems of AI system that way.


Question: Are there any plans to teach new speakers at the FSF to talk about not only technical issues, but as philosophical issues?

RMS: Well, I don't know if there is a plan for any sort of class, but if you want to learn to do that, you can learn. It's basically a matter of studying the ideas. Having a lot of discussions with people who are taking the idea seriously and raising questions to be thought about. And practicing speaking. Now, there's an, there is, or at least there was, an organization called "Toastmasters", which is dedicated to teaching people better public speaking. They have clubs. You join one of the clubs and every so often you give a talk and people critique you. I found it quite helpful. I already had had quite a bit of practice, so I was already pretty good, but I learned some things from them from participating in Toastmasters. And I also found it a lot of fun. So, if you want to become a speaker about the ideas of free software, you've got to start doing it, you know, find a group of friends, find some club near you, where they like it if people will give a talk from time to time, and try it, and make a recording, and have other free software activists look the recording and give you suggestions. And, of course, when you're giving suggestions and criticisms to those people make it gentle, because sometimes people are very scared of public speaking. Don't make the speaker regret having spoken, because you are trying to be helpful. So, this is actually very important, but I don't know if there's a way to organize it. I think that it's something that you need to do on your own, but if you'll become good at this, please, get in touch, so that we can hear you give a talk and if you're good we could put you in our speakers list.


Question: What do you think about free software communities' strategic capacity? That is the ability to make strategies against non-free software?

RMS: Well, that's very abstract. All I can say is it sounds like a good thing, but can we do it? I don't know. We don't have a large number of followers who will make, go to, go to considerable effort to carry out our strategy. If we could only convince more people to reject certain programs, because their bad for freedom, we would be a lot more powerful. But, as you, as you see around you, we don't have a lot of people who will carry out a strategy, which means the effectiveness of the strategy like that is not gonna be that high.


Question: What do you think about computer "gaming", so-called "gamers"? Would more free games be beneficial for the libre world?

RMS: Well, first of all, I don't think there's anything bad about playing a game. And, unless the game is not free, then it is bad for you if you play it. But typically these games are not solitary. You are playing with other people. And using a non-free program together with other people that's particularly bad, because it means that those people are pressuring each other to keep running that non-free program. Whenever a non-free program generates that kind of effect where, where each user is pressured by all the other users to continue doing something that's bad for you. That's something, that, that makes all of them ethically responsible for pressuring the others, which means you really should stop.

Now, more free games. Well, it's, it doesn't satisfy an urgent practical need, obviously. Another game might be fun. It might be interesting. It might even be beautiful conceivably. But it's not, it doesn't satisfy an immediate practical need. However, that doesn't, that doesn't mean it isn't, it can't be a good thing. Lots of artistic works are contribution to human culture. Even though none of them satisfies a practical need. But the crucial thing is: free ones might make it easier for some people to say let's move off this non-free thing and play a game that is free. So we can have the same pleasure, but without paying freedom as the price. And by the way, anyone who plays "Minecraft" could switch to "Minetest". Minetest is a free game similar to Minecraft.


Question: Can reverse-engineered code be rewritten? Under what conditions re-licensed into the GPL?

RMS: Well. Yes, reverse-engineering is done for two reasons. One: you want to figure, find out the methods that are used to do some difficult thing. The other is: you want to be compatible with it. You want to write code that will do that same job and be compatible with the other things people use. And. So, of course, when you do, that's something we need in order to write more free software. You want to have a free program to do some secret job? How do you know how to write it if you don't know what the job is to be done? Well, you can find that out by reverse-engineering some non-free program that does that job. And yes, it can be done lawfully, but you should find out what the rules are and it depends on where you are. However, the European Union has a directive, which says that it's lawful to reverse-engineer to make something that is interoperable. So, basically its okay to do it if you are careful. And you should talk with a lawyer for advice about how to take proper care.


Question: What do you think about permissive licenses?

RMS: Well, a couple of confusions followed. Most people think that there is a BSD license. There isn't. There are at least two different BSD licenses. And the difference is very important. The original BSD license is a serious problem, because it has an annoying advertising requirement, which is incompatible with the GPL. So, you should reject programs that are under the original BSD license. Fortunately, there are very few of them, ever since I convinced UC Berkeley to move all its programs to the revised BSD license, which doesn't have that annoying advertising clause. So, the revised BSD license is not a particular problem. It's GPL-compatible. It's a pushover license, that's true. But that's not, that doesn't do harm. It just fails to do good. So, by all means, you can use the code that's released under the revised BSD license. You can link it with GPL-covered code. And there is no reason you should hesitate to do those things.

And then the question also talked about the so-called MIT license, but that's a misnomer. It's actually two slightly different licenses. One of them is the X11 license. And the other is the Expat license. Now, those are two free programs. That use slightly different licenses. Which is why we gave them two different names.

Excuse me, I just couldn't resist chewing some cashews. Now, if you take paper money and you mix it with certain solids and heat it up. Eventually it becomes sort of mushy. And the cash starts to ooze. That's what I was eating.

So, please, don't talk about THE MIT license. For the details of all these things look in and it explains the significant differences. Of course, not being copylefted is a very important difference. Copyleft licenses, such as the GNU GPL, defend the freedom of all users of all versions of that code. The pushover licenses don't do that. People choose those pushover licenses, because either they've been convinced it's not nice to say no to anybody. Especially, not to a big company. How, how could you not be kind to a big company? I think it's easy. I think it's perfectly fine to tell a big company "If you want to redistribute my code, you better respect users freedom when you do." But that's one major difference, but there are other differences. The usual permissive licenses, the ones that are compatible with the GNU GPL, they generally don't do anything particularly bad. If they did, they wouldn't be compatible with the GPL. There are some other licenses, which do have slightly problematical requirements that are incompatible, such as the original BSD license. You'll see a large number of examples.


Question: Can my GNU Taler account be suspended or frozen?

RMS: No. Because it isn't really an account. They are coins that carry signatures to show they're valid. But they are not associated with you. You're the one happens to have them, but they're not in any way tagged as being yours. So, there's no way to deact-, to stop you from spending them.


Question: What do you think can be done by the free software community or the FSF to push hardware manufactures towards producing new libre hardware?

RMS: Well, first, could, what can we do to get them to stop putting in hardware backdoors to snoop on people or even sabotage them? Well, we would need to organize politically. We would need to have, to be so numerous. And, that, if we told the politician or, don't let companies do this sort of thing, because it threatens people's freedom and security. That they would listen. That the politician would listen. We need to be so numerous that if we wrote to Intel or AMD or I think also, I can't remember its name. But if we wrote to one of those processor-making companies saying "don't put this nasty stuff in", the company would start to get scared. This is a long distance away, but we can start growing the Free Software Foundation right now. Simply join. Become a member. The more members we have, the more we, shall we, the more people we show we stand for.


Question: I am not a programmer at all, but I would like to support the development of free software. What's the best way to contribute to that these days?

RMS: Well, you could donate to a project that's doing stuff you like and that is looking for donations. That's if you want to donate money, but you can also donate your time. Now, obviously if you're not a programmer, you're not gonna spend your time writing code, but there are other things projects can use. Especially, for instance, if you are good at writing English text. Write documentation to explain how to use programs. If you want to become an expert on user interfaces, you could give user interface advice to free programs. That would be useful.


Question: So, what do you think about cryptocurrency and blockchain technologies as, as free software? Can it replace banking systems and other third party?

RMS: I don't think so. And there are things I don't like about cryptocurrencies. The ones that are practical today. One is: I don't think it's good that the payee is anonymous, because that makes it easy to hide wealth and evade taxes and that is a tremendous global problem. You may have followed the news about scandals. As data from banks are leaked. Various banks. There is one in Switzerland recently. Before that there was Panama. I think there was some Caribbean island. And we find out people who, rich people are buying property in anonymous, secret ways, so it doesn't get taxed and the essentially they get away with stealing it. And some effort is being made to make that harder now, because Russian billionaires were discovered to be doing this, of course, but it's not just them. It's billionaires from any country that want to impoverish the rest of society. So, what we really need to do is change the legal systems that make it possible to own property and not tell the government who really owns it.

But, aside from that, cryptocurrencies are not anonymous enough. With Bitcoin, you know, you don't have to say who the wallet belongs to, but all the transactions can be tracked. And, so, often they, someone can figure out, 'cause that information is all public, someone can figure out who is the actual owner of that wallet.

Now, with Taler. Only the payer is anonymous. The payee has to identify itself for each transaction. And so Taler can't be used to hide wealth. However, Taler is, Taler is a, really anonymous for the payer. There is no way, the developers are quite confident, there's no way to figure out from Taler itself, who made the payment. Now, if you're talking to a website, you've got to check the rest of the system for purchasing to make sure it really is anonymous. Maybe you'll have to make the purchase through Tor. And, of course, the site should not send any JavaScript, because JavaScript is a way to get more information.


Question: What do you think of free software written in non-free languages?

RMS: Well, it is three different things. Obviously, if there is no free compiler for the language, then that's a problem for every program written in that language and you generally shouldn't use that language. You shouldn't be using the non-free compiler. So, that's another reason to avoid the programs written in that language. You can't compile them, in the free world, at least. Now, there is three suggested possible causes of a non-free language. One is if it's patented. Well, if the patent holder is really trying to stop all free compilers from being written, that is extremely anti-social behavior. Well, what if the only existing compiler is free? We have been in that situation. When I started developing the GNU system, C had only non-free compilers. So, I wrote a free compiler. And it's a centralized under a compiler that is very hard to build. Well, it's hard for me to comment about a situation I don't fully understand, but maybe you can modify it to be easier to build. But basically a program that's written in a language we don't have a free compiler for. We call it trapped. There was a time when there was no free compiler for Java. And that was a big problem. And we urged people not to write their code in Java, but we also urged people to work on a free compiler for Java. And now Java is not trapped and most programs written in Java are not trapped.


RMS: So, I forgot to put it in my list of topics to cover, but we're about to take a step forward in documentation. I have written a manual for GNU C. And the FSF is going to publish it in not too terribly long. Now, why do I say it is a manual for GNU C? It does not try to describe the C standard, because that would be tremendously complicated and tremendously hard to use. It's not just that there are a lot of details in the C standard. It's extremely, its written in terms of abstractions. Instead of telling you what the program means it tells you what the program is permitted to mean. So, you need to think at a second-order level to make sense of the C standard. Well, the purpose of this manual is to enable people to learn C and also to enable them to look up the details of what C constructs mean. It starts with an introduction that, I think, ought to be clear to people who know programming in some other language. And C is, inevitably, full of wrinkles and more complex rules, but I tried to express them in ways that make it easier to understand C programming. And part of what enabled me to do that is forgetting about the standard.

Now, GCC follows the C standard. It will, it will be "conforming" if you specify certain options, which you don't actually have to specify. But by only describing what GCC does and not all the other possible things some other compiler might do without violating the standard, it makes the manual much simpler and clearer. So, I hope that once this manual has settled down people will adapt it into, to cover other languages that are more or less of the same category. For instance, I think it wouldn't be terribly hard to modify the GNU C manual to get a Java manual.


Question: In what areas do you think the free software community could have a role in limiting the damage done to the planet?

RMS: Well, I know one way where it's directly relevant. Planned obsolescence. It causes a lot of waste. And in particular it produces lots of e-waste for manufacturing the new devices to be sold to people who have just suffered planned obsolescence, uses a lot of energy and a lot of material resources. So, free software is exactly the thing to help people keep using the same device for longer.

Now, this is not a very direct connection. It is a consequence of being in a community where individuals have more control over what they do. And that is very important itself. But it also enables people to be less wasteful. They're not under, you know, businesses will direct you into wasteful consumption, because it's profitable for them. And if they have less influence over you, you can stay away from the wasteful consumption.

Buffer is empty.


Question: What do you think about it, about general documentation of the GNU system?

RMS: Something that should explain to the total novice how to use the system.

And they mentioned the Debian Reference manual. I don't know what the Debian Reference manual is. I have used, the system I am using, which is Trisquel. Is derived indirectly from Debian. But I am not sure what "Debian Reference manual" means. Could someone explain? Maybe it could be modified so as to serve as a Trisquel Reference manual. The thing is, the GNU system contains lots of programs. Debian is a variant of the GNU system. And since it uses Linux as the kernel we call it GNU/Linux.

OK, so there is a reference manual for Debian. That is for one particular variant of GNU/Linux. But maybe those others that are fairly similar could use the same one, but it partly is a matter of whether you try to document use of the command line or use of a graphical interface. The command line, if you're using Bash as the shell, is pretty similar, regardless of what distro it is. We already have a Bash manual and we have a manual for some commands. For using the command line.

However, these manuals could be improved by focusing on user categories, for instance the Bash manual could be improved. Because currently it groups features under the conceptual level of which they operate, like shell programming constructs, you know, built-ins. But those are a matter of how something is implemented. We really want group features in terms of what you're thinking about when you want to use one. So, a kind of thing you be doing, then describe in that and in the chapter for that all the shell features that are pertinent to that. I think that would make a manual that is easier to read. That's how I would write it if I were writing it now. But those changes can be fitted in.

Anyway, documenting graphical interfaces is a different kind of problem and the reason is they're not coherent. The desktop I use is called MATE. And I see windows having multiple different styles. I don't know why. These are programs written by different projects. If they were all coherent, which is one of the things that the Macintosh pioneered and most others have not been able to follow, you know, having a consistent user interface concept going through everything, that would be really good.


Question: Are there too many instances of adopting technology for you non-free just to be a participant in today's society?

RMS: Well, I don't know. I'm not completely sure what that means "be a participant". Does that mean running non-free JavaScript, so you could make an appointment with some organization? Well, that's usually a matter of a very practical reason, rather than to be a participant. I'm not quite sure what "to be, just to be a participant" means. Does that mean using an, you know, some particular anti-social medium platform, because lots of people do? You know, I can guess it. When something is very abstract like this, I can guess at what it might mean, but I don't know what it does mean.


Question: Is it a good idea to centralize copyright power of so many free software projects over a single entity even if it's the FSF?

RMS: Well, we know that the FSF is in a much better position to go after violators than most individuals are. So, it's a good thing, but also aside from the copyright themselves, there is the issue of upgrading the license. Unless you believe that your license perfect and will never need changing. It's crucial to have a license upgrade path. You know, we had GPL version 2, which was used for something like, around 13 years. And then I concluded that there were enough things that needed to be changed. That we had to make a version 3. And there's a list in there's a page, which lists the reasons. There're many things that needed changing. So, it's vital that there be an upgrade path. But if you're accepting changes from lots of people, if you, if you don't do anything to centralize the copyright, then you end up with say five hundred contributors and how are you going to get them to agree to upgrade to another version of the GPL? Say 20 years later. How are you gonna even find them? Will they still be alive? We have to go find their heirs to get permission? How in the world could you find them? So, if you are not, if you're glad that you're not working with GPL version 1, then you've got to be glad that we made an upgrade path.


Question: With regard to avoid the use of proprietary video conference software, do you think there's merit in reverse-engineering a free software client with interoperability for Zoom, Teams etc.?

RMS: Oh, absolutely. That would be a big advance. How hard it is I don't know. In general reverse-engineering is not the easiest thing in the world to do. So, by all means do it if you can. And do, you know, talk with the lawyer first. It makes a difference which country you're in. There might be a particular country, which is the best place to do it.



RMS: So, I think it's time to, to finish up. So, I'd like to thank people once again for joining my talk. And to wish all of you happy hacking.

moderator: Thank you RMS and thank you everyone and happy hacking.

RMS: And, please, volunteer for the GNU project. Please, join the Free Software Foundation.