He wants if he wants to talk about it if he wants question and answers I don't know what it will give what he will choose Yes, and tire freedom to manage his talk. Thanks. You didn't see Could you make me some tea? I Figure you should be an expert on that first, I'd like to mention Are you gesturing for Communicating something to me okay good because I didn't understand and People make gestures at me and they expect me to understand and usually I don't know their code so You know so I just make gestures back hoping they'll understand that I don't understand I'm happy to say That I have now installed a Completely free GNU slash Linux distribution on The computer I use It's called ututu For many years people have been asking me what distribution I was running and I was not very happy telling them because it was a distribution that Distributes non-free software in fact Nearly all the distributions of GNU slash Linux Include or come with some non-free software For many years when people ask me where to get a Copy of GNU slash Linux. There was nothing I could tell them There were places I could tell them we're an expert could Distinguish the free from the non-free and could install only the free software But there was no place I could tell a Non-expert here you can get a system and it will be free software and finally there is at ututu.org So Our sysadmins at the FSF were working on this Getting it set up for me and it finally seems to be set up and I'm doing my work on it and I'm happy to say I'm a user of ututu GNU Linux Yes, although I generally don't use the graphical user interface My work is all with text and it's much more efficient for me to use a text terminal but it has graphical interfaces, which are what a Non-wizard would use so when it's reasonably done. Please tell me So I'm here to talk though about version three of the GNU GPL From the beginning from the first version of the GNU general public license in 1989. We expected there would be revisions Version two was developed in 1991 I'm the main author of every version of the GNU GPL But I've always had help from a lawyer in the past. It was Jerry Cohen For this version it's ebb and mogul and who I first began working with in the mid 90s The reason the reasons for this revision are many because the changes are Local and and mostly small There is no big change in GNU GPL version three There can't be and must never be the basic idea will always be the same We've changed specific parts Where we are changing specific parts of the GNU GPL to respond to specific issues and Also explanations of all the changes in the rationale document which you can find in the site GPL v3 Fsf.org Along with the draft text itself that site Exists for the sake of comments It exists not only so that you can see what we're proposing to do But so that you can say what you think about it and in particular so that you can give us constructive suggestions So that we can make sure we get it completely right So please do go to the site and look at the rationale document What yes, it's probably done by now right So now it has to cool off If you could get some more water to heat up Appreciate it. Thanks. So There are several among the changes The most important for I would say concern Dealing with software patents Compatibility with other licenses the definition of Which parts of the source code and what constitutes the source code that must be included and Dealing with digital restrictions management. I Was just reading the Details of a new plot by IBM Microsoft Disney Actually, I'm not I can't remember for certain now if IBM was in it. It was Disney Microsoft Sony and Intel and maybe IBM was there, too it's called a SCS and it's the new digital restrictions management system for the future and it's designed to restrict the use of Movies and software It involves designing computers such that they are hard for people to take control of and modify anyone who is going to be allowed to make devices that that can work with High-definition TV would have to sign this I Believe and these requirements include not only designing the thing such that users can't control it and can't modify it But they even are promising to stop making analog outputs an Analog output is considered to be a security hole The future their idea of the computers of the future is there will be no analog output ever You will not be able to connect the computer to any monitor Accept one that's designed to receive encrypted video now These conspiracies To take control of our computers away from us are becoming more arrogant and blatant and shameless every year These companies know that they have too much power and They figure they're going to use it and they're going to impose on us Their picture of what the world should be like We have to try to resist this In every way we can Some people have suggested that people should buy this hardware and return it to the store And buy it and return it to the store They think that they said that that makes life too difficult for the stores Well, I'm looking at a different way of trying to resist These plans and that is to make it acceptable for them to corrupt free software You see what they want to do is Distribute to the public software which Theoretically is free and practically speaking is not They want to distribute GPL covered software to the public and say These binaries are under the GPL and yes We'll give you the sources if you ask and the sources are under the GPL and yes You can modify them You just won't be able to make any use of the modified version in our computer Because if you install it it won't actually run it or it won't actually do anything useful So after thinking about this I came to the conclusion that that is not really respecting the user's freedom to Change and share software and the purpose of the GNU GPL is to establish and guarantee that freedom so the GNU GPL version 3 is Designed to make sure you really get that freedom To prevent our software from being corrupted by treacherous computing or digital restrictions management But it does this in a very clever way At least I think it's clever It doesn't use the obvious method. It doesn't limit What technical jobs the software can do because that's another principle of free software People should be able to use the software and run it for any purpose and change it to do whatever they like So we have not said You can't change this software to do the jobs That you would do if you were trying to restrict people Instead we focused on a different aspect of DRM Which is stopping the users from controlling the software that runs in their machine Treacherous computing is designed such that if If you modify the software it won't be able to do the job and it's done by means of things like Check-summing the software and using the check and checking whether it has been signed and authorized and So if you modify the program and you install it it's Since it your version hasn't been signed by them your version isn't really authorized So either it won't run or it won't be able to open the files that you want to open or The network server will refuse to talk to it or in one way or another It will be blocked from really doing the job that the original version was set up to do So what we're doing in GPO version 3 is we say they're welcome to design free software to to do whatever it is they want and They're welcome to set up the machine such that it won't run a program unless it's been signed But they have to give you the signature key So that you can sign your own version. Oh, thanks When I guess I should wait a few more minutes So they have to give you the signature key so that you can authorize your version at least to run on your machine Now if each machine has a different signature key They only have to give your signature key to you your machine signature key They have to give it to you. They don't have to publish it. They don't have to give it to anybody else They could even promise you that they won't give it to anybody else, but they have to give it to you So this ensures that you really have practically speaking The freedom to modify the program put it into the machine and have it really run and It must be able to do the same jobs on the same data Which means it must be able to access the same files that the unmodified version would have accessed or Talked to the same network server that the unmodified version would have talked to so whatever is needed to get any particular version Whatever the program needs to be able to give the network server so that the network server will talk to it They have to give that to you. I can't hear you not at all because He said he said it won't stop Distributions from including signed binaries When the purpose is to prove this is my version of the binary and it wasn't changed by someone else that's a completely different scenario because They're not giving you a machine that refuses to run software unless it's been signed by them and Therefore there's no requirement on them so for instance if you want to distribute binaries or sources of your program and Sign them so that people can tell they're your authentic versions. You're still free to do that and They can still Get the corresponding public key and check your signature The reason that these requirements in the GPL don't apply to this case is because in this case The user checks if he wants to It's not a machine that's checking and refusing to run the software if it wasn't signed by you If you give them a machine that won't run the program unless the binary has been signed Then you have to give them the signature key But if you just sign the binaries or sources and say check this if you wish The requirements don't apply to that case because the requirements say that you must include whatever keys our codes are Necessary to authorize a modified binary so that it will function the way the original binary would if it isn't needed to make the modified binary function There's no requirement So that's one thing that we worked on quite a bit figuring out how to block the use block the corruption of our software for Digital restrictions management without limiting the technical features that can have So we instead of attacking the technical features of DRM We attacked the thing that makes DRM evil, which is the fact that it's been taken out of the user's control So we blocked we thwart DRM by insisting that the user must retain the control of his machine and As long as you respect that you can program the software to do whatever you like Now a second, what do you what are you talking about say speak up because I can't hear you No, not now because I'm not finished yet a Second major area was how to deal with software patents we decided that The implicit patent licenses that we were relying on in GPL version 2 We're not solid enough. So we put in an explicit grant of patent license on the part of whoever distributes the software and if if if She gives you a copy of the program. She is implicitly giving you a patent license for any patents She has or controls That you would need to infringe in order to run the software or use its output And in this we're following various other free software licenses that came out during the 90s But there is one controversial point about it. You see the mega corporations that have blanket cross licenses Often don't even know well actually actually I skipped a step The next thing is suppose somebody is distributing the program and He has a patence so he know he thinks the program Infringes some patent, but he has a patent license. So he's not going to be sued But you might get sued if you redistributed it. That's not fair So we put in a requirement that he if he knows he's relying on a patent license He has to do something to ensure that he's shielding you as well When you carry out the freedoms that the GPL gives you and this is a matter of honesty If he distributes the program to you and says this is under the GPL You're free to redistribute this and if at the same time he knows That if you redistributed it you'll get sued even though he can't get sued That's dishonest So we require him to do something to make sure you won't get sued either If he knowingly relies on a patent license on the other hand if he's just taking his chances He doesn't have to do anything special If he's in the same boat with us already that's the most we can ask but this is complicated because there There are mega corporations that have blanket cross licenses to mega corporations say We'll cross license all our patents and they don't even know what they have patent licenses for So this is why we put in the knowingly rely on part because we don't want to impose a requirement on say IBM To do something for other people when IBM doesn't even know that it has a patent license for a certain patent So we put in those words knowingly rely on and this apparently is rather controversial Exactly where that line should be drawn, but it's actually a pretty small change Another big change Comparatively big is that we have decided to make the GPL compatible with some additional free software licenses That are incompatible with GPL version two. It's a practical inconvenience this incompatibility and It's nice to get rid of it We can't get rid of all these incompatibilities because that would require eviscerating the GPL making it null effectively the GPL requires that users must get certain freedoms and We can't allow the addition of absolutely any requirement But instead we decided to to list a specific set of additional requirements That are okay So other licenses can add requirements of those kinds For instance, they can make specific requirements If you could heat up another Specific requirements about how to give notice of changes or which kinds of credits to preserve or Statements that You mustn't use our names for publicity and And also There are a couple of more interesting requirements that are also permitted in the other compatible licenses One of them is the a ferro GPL requirement That says if you run this for public access You must provide a command to download the sources So the a ferro GPL is the same as GNU GPL version 2 But it has one additional condition which says if you put a month if you put any version of this program on A public web server You've got to have a command that the user could use to download the source of your version So we were thinking of putting a requirement like that Into GPL version 3 together with a way That people could explicitly activate it But then I decided it Would be much simpler just to let this be a compatible license and people could put this compatible license on Files of their program if they want to it has the same result So GPL v3 will not make this requirement But it will be compatible with licenses that have this requirement and then there's another kind of requirement The GPL version 3 is compatible with and that is patent retaliation There are several free software licenses that have patent retaliation clauses where they say that if you sue for patent for software patent infringement Then you lose the right to use and distribute this program and The details vary they're very because different licenses work this out in different ways so we drew up a criterion for acceptable Software patent retaliation clauses and they are allowed now in GPL version 3 in Compatible licenses so a license can be compatible with GPL version 3 and Contain a software patent retaliation clause But only certain kinds of software patent retaliation clauses. There are two kinds that we've said are okay one kind is we're Retaliation only occurs against aggression You see if if party a Sues B for patent infringement the thing B is most likely to do if he can is countersue So if party B has a software patent Party B will look for a way to countersue so we've decided we want retaliation only against a not against B We want retaliation only against those who commit the aggression not against those who are themselves Retaliating so we found a way to make the distinction and This the second kind of software patent retaliation clause. That's okay is we're Hmm it retaliates only for lawsuits directed at the same code or code that was released with it that is Retaliation for software patent lawsuits that are targeted very close to the same program that we're talking about so This creates a somewhat complicated situation Because it means that a GPL covered program can have parts that are under these Compatible licenses which make certain kinds of other requirements To help make it clear to the user what the rules are for using any particular program We said all these licenses have to be collected and put in one file Which you can easily find And I think it says it has to have a certain name. I don't remember Actually that detail But the result is it'll be easy to look at a GPL v3 covered program and find out All and see all the other licenses and these other licenses will be limited. They can't be absolutely anything The they can give additional permissions any way they like But as forgiving for making additional requirements We have this list of five or six kinds that they can be and that's all that's allowed And I've told you just now what they are Then the other place where we're doing some work is in the definition of Complete conning source code and what has to be included in that which Some changes that are a bit subtle in the system library Clause the clause that says you can distribute a binary Which for a non-free system and it's been linked with some non-free system libraries This is a special exception. We've done some rewriting of this to try to modernize it more for the way those systems work now and And at the same time to limit it a bit more to avoid loopholes where They want to extend the emacs with a non-free extension So they write a special library in their system Which is the emacs extension library and then they distribute a binary of emacs linked with it And they say ah, this is a system library We're making sure that that can't be done What time is it and? Let's see. I was just remembering another change and it zoomed out of my mind So I guess I'll just ask for questions by the way the GPL version 3 Will be finalized either in October or early next year There's plenty of time to comment, but don't wait because we're going to make an another draft in July, I believe and If you want your comments to bring about changes in that draft Which would be really desirable if you've got good comments, please go to gplv 3 dot fsf.org and Give us your comments now Study the draft Look at the explanations and then see if you can see a scenario Where this text would not do the right thing and give us your feedback. So now questions I Don't know I a couple of weeks ago. I was told that there had been 500 comments But I'm not reading the comments directly the comments go to Discussion committees there are four discussion committees and what the discussion committees do is they? aggregate the comments to make issues each issue is basically some question we need to think about and they connect each issue with the comments that raise it and then they write up the issue and During May and June I will be studying those issues and looking for what to do about them But you I think you can see the existing comments on the site And the idea is that each comment will be connected with an issue and that eventually the issue will be will have a response Now in some cases the discussion committees will write the responses But in some cases, I'll actually look at making changes and I'll eventually write the response What you've said so far makes perfect sense But one of the great things about GPL version 2 is that it was quite simple for programmers to understand You could explain to somebody even somebody who was not really a specialist what this license meant and what? Requirements had imposed on somebody who wanted to that's only partly true. Okay, I think don't exaggerate Okay, there was a great deal of understanding. I'll grant you I'm Worried about this that there are so many different and overlapping requirements that it will be very difficult to explain to programmers I don't think it's more going to be I don't think it's going to be more difficult. It is longer It has to be we can't see a way to do these jobs that shorter, but I don't think it's harder to understand Remember GPL v2 Was not is not as you are now giving it credit for I wish it could have been But there are parts of it that we had to explain repeatedly. That's why we have a fact There are parts of it that are quite subtle in their interpretation Which we've clarified a lot of points I haven't been talking about that because those are not major issues. You can see those clarifications If you take a look I Don't think it will be harder to explain GPL v3 than GPL v2 But if you can point out a specific spot that you think is hard to understand Maybe we can make it easier to understand. So please give us that kind of comment, too Please speak louder because I can't hear you We have a lot of code with GPL to which doesn't have the or above clause. That was a mistake Yeah, okay. That was a mistake, but we have this code and Either those people will relicense it or they won't I see a problem here if then we'll have a lot of code which is GPL But we can't put it together and you think that's right and that's unfortunate That's why I say it was a mistake on their part to release it under GPL v2 only But there's nothing we can do about it We need to make these changes We're the GNU project will release code under GPL v3 or later We're going to do that And I hope that other people will come along, but it's up to them Is there a possibility to make a clause that you can link together GPL 2 and 3? No, no can't if we did that it would Well, you know, maybe some kind might I'll have to think about it We need to start releasing our code under GPL v3 or later and not under GPL v2 if we want to make this resistance to treacherous computing take effect but Please send me a message and I will see if there's some way that we could Extend compatibility and we'll think about whether it's a good idea See there the or the other actually though. It's hopeless and the reason is I Now realize it's it's impossible and the reason is even if GPL v3 allowed it GPL v2 doesn't So it really it's it's absolutely impossible the only way that code could ever be linked into GPL v3 covered programs is if that code says you can link this in GPL v3 covered programs And the way to do that is to release it other GPL v2 or v3 But I hope they'll actually say v2 or later or v3 or later. That's the way to permit it Yeah, about the requirement to distribute to distribute keys In order to defeat treacherous computing I'm assuming that let's say you release E-mics binaries that are signed by you just so people know that yeah, you approve them and I Build a device that will only run code that is signed by you Does does it force you to release the key? No, because I'm not if I have no connection with your device and if But if you distribute But on the other hand if you distributed a binary in that device Or for that device You would have to distribute my key what you couldn't do which means you'd have to make a different key Or and you'd have to provide that key to your customer. Yeah, or my other concern is let's say I'm big big corporation IBM whatever and you actually work as one of my employees on free software and You sign you tend to sign your binaries and suddenly I decide that I'm building a device that Will only trust your key. Ah, and I know that when you do that That's the point at which you had better pay attention the fact that you have employees Signing that that people are signing code. That's irrelevant It's when you decide to build a device that won't run things unless they're signed that they're restrict the requirements apply to you Yeah, but I'm not distributing the software. You are I'm only making a device that will only trust the original developers Signature That's a bad thing to do and it's intentional that you're being stopped from doing that Because when you do that you're restricting the user Yeah, but I'm if I'm not distributing the software I can still build a device and the software developer even if he works for that company would be forced to release his key Absolutely, or the company would have to not make products like that, which it shouldn't do those products are exactly the evil We are trying to stop. Yeah, no, I understand that part I'm just concerned about if for example I was doing free software and I work for a surgeon company and that company starts Making without me knowing it. They start making a device. They use as my key. They'll have to stop making that device They're not distributing the software. So they can't be made. Yes. Well, maybe they can maybe they you work for them So yes, they are the point is I mean it's by your own assumption. You're assuming that you work for them so yes, they are distributing the software and They better not make machines designed to restrict People from changing it, but I've got no power over them So if they do it, it means that I need to give up my own not the company's key my own key Because they have to stop. Yeah, maybe so or maybe they just have to not hire you or maybe they have to not make those devices Those devices are evil. Yeah, no, I understand that part. I'm concerned more not about this is a weird bizarre I think it doesn't matter what happens in such a weird scenario However, I do think it matters to make sure that we for successfully forbid Them from distributing those machines So what I'm going to take a look at I'm going to think about this scenario I I don't I'm not going to promise you anything But the problem I'm going to be addressing is to make sure they can't distribute such machines Those machines have got to be blocked. They should not be allowed I want to make sure that our license successfully deals with the first case you raised We're a developer is signing his binaries and Somebody else decides to make a device that will only run those binaries and suppose they're not related I want to make sure that gets blocked as well How would you do that? I'm not sure I'm gonna have to talk to a lawyer The point is that that kind of device is the threat that must not be able to exist Yeah, I agree on that What I agree on that part. I'm just I don't know how I'm going to solve the problem. Sorry I you know, maybe I'll find a solution But I don't expect I can it's too much to ask that I should find it for you now. Oh, sure I'm gonna have it may be a hard problem. It may take me a lot of work or I may fail The point is I'm gonna work on this problem because it's a it's a danger Yeah, my existence of devices designed to to you know, I want to make sure that this kind of system Can't work well enough to become common Yeah, the the main part of the comment I had was not about the company But just making sure the developers are never forced to release their key. This is I really don't care about that I want to make sure that the that the machines can't stop users from running modified versions That is far more important than any other of these questions. I don't know you I Don't know what you mean Don't mean the limits on what can be included in compatible licenses. Is that what you mean? Oh, because there are some patent retaliation clauses that we think retaliate too much and they're bad And we didn't want to encourage such by making that making the GPL Accept them for instance, there's some licenses that have a patent retaliation clause that says if You sue us us alone Then you lose their the right to To use the software. Well, what if we first sue you for patent infringement and then you counter sue us You see what this means is that those patent retaliation clauses Because they're too that because they're unfair They can be used to support aggression So we want it to be compatible only with clauses that That do not become supports for aggression with patents and in general if there's some other kind of patent retaliation Clause which we can convince ourselves would not be a support for aggression We could conceivably include that too But we looked at all the free software licenses that include patent retaliation clauses And we saw that there was none of them that we would want to include That we thought was legitimate That isn't already included that is we drew this line and it includes the ones that we should include and The others are all far away. There's nothing just on the other side of the line So I guess it's time to stop