6 ms·
Three Software Freedoms
- mjevans 10y agoHe has a valid point about restructuring the three freedoms that he did keep to make sense. However that 'zeroth freedom', which both the FSF and he initially forgot, is important as well. "The freedom to run the program as you wish, for any purpose" This is about licences that restricted possible uses of software. Just as you are free to drive your vehicle anywhere * , and transport anything * while using it, so to should you be free to use software the same way. ( * the point is no artificial additional restrictions, not literally wildcard) Multiple edits: I will never get used to the crazy custom syntax HN posts have. It isn't pure plain text (maybe with hyperlinks), a form of psudeocode tagging, or markdown like.
- hga 10y agoOne trick to get around the use of asterisk for italicizing test for footnotes, use a character like this one: † I keep a copy at the top of a file that I always have loaded in my Emacs.
- ht_th 10y agoI've created the program symbol2unicode¹ for that. You can enter ascii representations of a symbol, say ->, and you get the unicode symbol (→). It has a CLI interface and a web interface. I keep it always around in a terminal tab and made some Vim binding as well. ¹https://github.com/htdebeer/symbol2unicode https://github.com/htdebeer/symbol2unicode
- hga 10y agoCool! I don't play the Node.js game, but I'll see about polishing my 2 decades rusty Javascript web page experiences and see if I can't make this into a simple web page which I can keep a tab always loaded with, I pretty much only use Unicode characters for web comments and the like. Although if this makes it a lot easier ... and I suppose I should see if Emacs has such a feature. Anyway, thanks!
- ht_th 10y agoI've also a web interface at https://heerdebeer.org/Software/symbol2unicode/converter.html https://heerdebeer.org/Software/symbol2unicode/converter.htm...
- BostonEnginerd 10y ago"You are free to drive your vehicle anywhere for any purpose" seems to be going away: https://electrek.co/2016/10/19/teslas-new-self-driving-car-can-only-make-you-money-on-the-ride-sharing-tesla-network-not-uber-or-lyft/ https://electrek.co/2016/10/19/teslas-new-self-driving-car-c...
- _ph_ 10y agoIronically no. You still are free to drive your Tesla anywhere for any purpose. The limitation is only for the future self-driving feature.
- throwbsidbdk 10y agoIt is already gone for many cars. Some higher end cars will detect your location on various racing tracks and void your warranty. Cars equipped with OnStar cam be shutdown and located remotely. Famously, the Nissan skyline also voids your warranty if you use the launch control feature more than a handful of times. Seems pretty innocent so far, but this type of thing should be banned before it gets worse. Right now there's zero manufacturer incentive not to hide these kinds of things in the firmware.
- tscs37 10y agoThe OnStar is an obvious example. But how does voiding the warranty restrict your ability to drive where you want? It's the vendor simply saying "you're doing something we did not intend you to do with the product, so it's on you if you fuck up". How does that infringe on your freedom to drive where you want?
- PeterisP 10y agoThe car can be used anywhere, but the warranty (rightfully) is a different issue. Note also that the car can't "void your warranty" in any meaningful way, all it can do is record if certain actions occured; and that's orthogonal to the warranty issue. Driving on a racing track makes the warranty just as void (or not) if the car didn't record anything, it's a legal matter depending on the warranty conditions and your local law, all the car provides is some more information that can help establish what the facts are.
- tzs 10y agoI'm not sure that the FSF considers freedom 0 to be essential anymore. They describe it as follows: > The freedom to run the program means the freedom for any kind of person or organization to use it on any kind of computer system, for any kind of overall job and purpose, without being required to communicate about it with the developer or any other specific entity. In this freedom, it is the user's purpose that matters, not the developer's purpose; you as a user are free to run the program for your purposes, and if you distribute it to someone else, she is then free to run it for her purposes, but you are not entitled to impose your purposes on her. AGPL was accepted by the FSF as a free software license, yet it is quite problematic when it comes to freedom 0. Suppose I find a program that displays an interactive chess board in a window, and lets you play over chess games that you enter by pasting in the moves. I modify the program so that it includes a simple HTTP interface. Someone on the network can connect to that interface, and if the person sitting at the terminal is willing, the person on the network can play a game of chess with the person sitting at the terminal. If I'm already a playing a game, people who connect over the HTTP interface will be placed in a queue to wait for me to be available. If this program was under AGPL, I have to give my modified version to those who play chess with me over the network. To make that requirement be in accord with freedom 0, it is necessary to claim that I am not a "user" of the program and/or that I did not "run" the program. It's kind of hard to say I'm not a "user", since I am sitting at the damn terminal using the program. Same for "run". I typed the command that started the program running. (Note: I've seen people argue that the person coming in over the net is a "user" and that they "run" the program. Even if so, that is not relevant here, because AGPL is not trying to impose any requirements on them. It is trying to impose a requirement on me, and so is only whether or not I am a "user" and what I did was to "run" the program that is relevant as far as determine whether or not imposing a requirement on me violates my freedom 0).
- cyphar 10y agoBut you are "conveying" the software to the users, that's the whole point. AGPL just extends the meaning of the word conveying to also include users connecting over the network. As for it infringing on freedom 0, I don't understand how your logic wouldn't also apply for the GPL. I disagree that you cannot "use the software for any purpose" with the AGPL. You haven't given an example of you being restricted by it. If a user gave a copy of their program to another user they would have the exact same requirement (under the plain GPL). If you wanted to run a private copy of your modified program you just have to make it forbidden to connect to that interface. Also, there's no reason you cannot just provide a link to a git repo for your modified project. Which means that you don't even have to modify your program to distribute its source code to users.
- mlinksva 10y agoThe best thing about this is it doesn't hector readers about features of their individual consumption or production (e.g., licenses). The call to action at the end instead is: > The government can help us by making software companies distribute the source code. They can say it's "in the interest of national security". And they can sort out the patent system (there are various problems with how the patent system handles software which are out of the scope of this article). So when you chat to your MP please mention this.
- _ph_ 10y agoI fully agree with most points made. But there are some caveats: - there are quite a lot of commercial software packages around, which depend on constant paid programmers work to keep up to date. Without a guaranteed revenue stream, those would not exist. - if people are free to modify all software, liability questions can arise. I am mostly thinking about any kind of firmware, like the one controlling cars or any other software which has the potential to create expensive if not disastrous accidents when malfunctioning. There is some work needing to be done addressing those issues before we can have a completely free-software world (which I would like to have).
- stevepurkiss 10y agoYour caveats are age-old FUD! Many people are paid to work on Free Software, companies like RedHat re Linux and Acquia re Drupal are two examples. If by releasing your code suddenly means a whole bunch of people suddenly spring up and start maintaining it that's fantastic as it means your maintenance costs have disappeared and your users will be free and better off. If you can't find anything else for your staff to do of value, then your business deserves not to exist and you should set your workforce free to do something of value. As for the firmware argument, you are mixing free code and security. Proprietary software is far worse for this, examples include pacemakers which don't cope for pregnant women but can't be reprogrammed, and of course the recent Volkswagen incident. You should be able to see the code which runs anything - especially cars which have to make life and death decisions, and security can be provided by comparing checksums during installation and use. If you really would like to have a completely free software world then please learn more about it and stop the FUD spreading ;)
- _ph_ 10y agoSorry, my arguments were not meant as FUD, but as challenges to be solved. I like the idea of every piece of software being free, but those points need a solution to make that work. I am of course aware of Red Hat and its business model. It mostly works, because there needs to be a "standard" distribution for commercial Linux platforms. But there is expensive software sold to corporations where the open source model just wouldn't work. Software, which costs tens of thousands per seat, where there is almost one developer per user. This eco system would break apart. And for the second point, you misunderstood me. I would be very happy if every firmware would be open source, so everyone can see how the device works. But whether it is ok, that every user is free to change the installed software is a different question. If you brick your TV changing the firmware, that is up to the user. But safety-relevant software is another thing. At minimum, liability is affected, but for example for cars, they might need to be recertified before they can be used on public roads again.
- crististm 10y agoI like free software just as much as the next guy and I don't find it appealing to remove a freedom just for the sake of a blog post. I mean, why is it implicit that I can run a program but e.g. distributing it is not? Next time I get some free AI software I will find that I don't actually have the freedom to put it in my car/tractor/vacuum/etc because software license says so, not to mention the hardware locks that I would have to overcome. Edit: Example: BMW decides to release their AI software driving their car under a "free software" license. In this hypothetical situation, Audi would not be allowed to use BMW' software because the license restricts this. But now, because _using_ the software in any way you wish is no longer an explicit freedom, nobody could claim that BMW software is not __FREE__ I know of at least one GPL licensed project for audio editing and synthesis that has an explicit ban on using it in commercial applications.
- Symbiote 10y ago> I know of at least one GPL licensed project for audio editing and synthesis that has an explicit ban on using it in commercial applications. Then either it is not GPL licensed, or the restriction can be ignored (see section 7 of GPL v3). https://www.gnu.org/licenses/gpl-faq.en.html#NoMilitary https://www.gnu.org/licenses/gpl-faq.en.html#NoMilitary
- crististm 10y agoTook me a while to find it but here it is: https://www.linuxsampler.org/faq.html#commercial_products https://www.linuxsampler.org/faq.html#commercial_products http://svn.linuxsampler.org/cgi-bin/viewvc.cgi/linuxsampler/trunk/README?view=markup http://svn.linuxsampler.org/cgi-bin/viewvc.cgi/linuxsampler/... It's still not clear with me how they reconcile this restriction with GPL
- jimktrains2 10y agoThe GPL contains an optionally removable but there by default "or any later version" clause. This doesn't appear to remove that clause, and so the GPLv3 contains a "If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term." clause, so it can just be deleted?
- dkbrk 10y agoThe author makes a serious mistake in calling Freedom 0 "just silly". He doesn't seem to disagree with Freedom 0, just considers it obvious and trivial ("I mean of course I can use the program as I wish"). An example demonstrating that this freedom is not obvious, even to people who believe in "free software" is the "Hacktivismo Enchanced-Source Software License Agreement" [0]. To quote from the FSF [1]: > The Hacktivismo Enhanced-Source Software License Agreement (HESSLA) is a software source license that tries to put restrictions of ethical conduct on use and modification of the software. Because it restricts what jobs people can use the software for, and restricts in substantive ways what jobs modified versions of the program can do, it is not a free software license. The ironic result is that the community of people most likely to feel sympathy for the goals of the HESSLA cannot contribute to HESSLA-covered software without violating its principles. > The restrictions in the HESSLA prohibit specific activities that are inexcusable: violations of human rights, and introduction of features that spy on the user. People might ask why we do not declare an exception for these particular restrictions—why do we stick to the general policy of rejecting all restrictions on use and on the functionality of modified versions? > If we were ever going to make an exception to our principles of free software, here would be the place to do it. But it would be a mistake to do so: it would do harm to free software movement and would achieve nothing. Trying to stop those particular activities with a software license is either unnecessary or ineffective. [0]: http://www.hacktivismo.com/about/hessla.php http://www.hacktivismo.com/about/hessla.php [1]: https://www.gnu.org/licenses/hessla.html https://www.gnu.org/licenses/hessla.html
- xylon 10y agoI, the author, have added a clarification on why freedom 0 is unnecessary: Basically I value Free Software for two reasons: 1. I think it's irresponsible and dangerous for us to be doing all of our computing using technology we cannot understand or maintain. 2. I think community software development is great fun. Freedom 1, 2 and 3 are all needed for these things, but freedom 0 is not. If you want to do x, and the license on some software forbids x, then you use a different software. It's no different than if the software were simply unsuitable for x.
- joesmo 10y ago"Also Freedom 0 is just silly I mean of course I can use the program as I wish." Tell that to people spending time in jail for using a program in a way that was frowned upon by government. Clearly the author hasn't spent much time thinking about these topics.
- stevepurkiss 10y agoSadly no software license will stand up against corrupt governments, Freedom 0 is there to stop the creator of the software or derivatives thereof exerting control over the user.
- mordocai 10y agoThe biggest exception for freedom 0 i've seen is the license on the original JSON implementation http://www.json.org/license.html http://www.json.org/license.html. > The Software shall be used for Good, not Evil. The JSON license is not considered a free software license due to this violation of freedom 0(not to mention all the problems with definition including the fact that many things could rightly be considered neither in Good or Evil and the license actually explicitly says it must be used for Good).
- hueving 10y agoIIRC IBM got an exception from the author to use it for evil.
- zyx321 10y ago"IBM, its customers, partners, and minions." Which reveals what a farce the 'no evil' clause is, since IBM has in the past sold typewriters to the Nazis, and probably has no qualms to do business with more modern evils either.
- userbinator 10y agoThe freedom to study is normally taken away because the software vendor keeps the human-readable version of the code secret, only distributing the compiled program. This is an argument which I think could go away if more people knew reverse-engineering, and decompiler technology has also been constantly improving in the meantime. The freedom to study and availability of source code are related but not entirely the same thing; regardless of legality, people have been studying and modifying software for decades without source code. One great example of this is in security research, where plenty of vulnerabilities are discovered without needing to obtain source. In fact I'd argue that sometimes it's better to not use the source, since it could be somewhat misleading --- whereas the binary, the actual instructions that execute, is the truth. Thus, one can have all those freedoms without having source code. It was not possible for third-parties to provide security support, because Windows is proprietary software, lacking all of the freedoms. Look at the various unofficial patches available. They might not be legal, but they are definitely possible and made without access to the original source code. As the saying goes, "Source code? We don't need no stinkin' source code!" ;-)
- jimktrains2 10y agoSure, but in many languages, such as C++ _a lot_ of information can be checked and then thrown away at compile-time, leaving an artifact that might not be all that understandable, especially for new people.
- hueving 10y agoYou're likely not going to be able to make any very large modifications to a big project by doing this though.
- leni536 10y agoWhat about restrictions on reversing? Like [1] and [2]. [1] http://www.wolfram.com/legal/agreements/wolfram-mathematica.html http://www.wolfram.com/legal/agreements/wolfram-mathematica.... (Prohibited uses, b.) [2] http://maple.soft112.com/eula.html http://maple.soft112.com/eula.html (7.)
- hvidgaard 10y agoAm I the only one sitting here, thinking that I value the 4 freedoms, but thinking that software vendors does not owe that to us in any way? I use free software where it makes sense. I don't use it for my desktop, because it cannot do what I need it to do. I use it for my 3d printer because it can do what I need it to. I pay (at least indirectly through my MSDN subscription at my job) for Windows, and it it suddenly stops working that is it, and I'll have to figure out a different solution. I don't like that the ECU of my car is closed down, but trade secrets an all, I can understand. I would love to be able to at least look, not necessarily modify the software, I'm not qualified to do that and I don't want to void my warrenty. But this is a trade secret, of course it is not open for anyone to look at.
- crististm 10y agoI'm not sure about this. In the prisoners dilemma, you may be at a loss if you don't care about others. Likewise, you may be at a loss if you don't value enough these freedoms for others when building and giving 'things'.
- mikekchar 10y ago> Am I the only one sitting here, thinking that I value the 4 freedoms, but thinking that software vendors does not owe that to us in any way? A lot of people feel that there is an absolute sense of justice. What do the vendors owe us? From my point of view, whatever they owe us is a factor of the societal norms. My interpretation of the idea of free software is that software that is not free potentially harms society. The kinds of things that vendors/governments can do with the power they gain from denying software freedom to their users is detrimental to us all. In that way it behoves us to strive for software freedom. Do they owe us? No, I don't think so because it is not part of our cultural norm. It would be nice if it was, though.
- hvidgaard 10y agoWhen designing an algorithm, you pour hours upon hours into creation and testing. If the source is freely available, you basically hand this over to other people to copy. We would completely hamstring R&D in the private sector if we don't allow them to guard this secret. Now if govenerments actually posted money into basic R&D in collaboration with the private sector on the premises that the work will be public domain, this might not be a problem, but when they pay for it themself, it's foolish to belive they want to share in this market economy. I could see a model where all e.g. car manufactures collaborate on creating an ECU software company, they all pay to, but it requires ALL manufactures to participate, otherwise someone enter the party, without paying the entrance fee. It's a classic prisoners dilemma - if all play nicely, it's a net benefit for all of them, but if one doesn't it's a net loss for all. I would like a "Rights of ownership" define access to the source code, I just cannot see how.
- dvh 10y agoNo matter how I counted, I always end up with 5: use, study, share, modify, share modifications
- jupiter2 10y ago> I always end up with 5: use, study, share, modify, share modifications I wish the author had expanded the four freedoms (for clarity) instead of trying to condense it. I just don't think it effectively targets the different limitations that exist in software. The categories you listed above are so clear and concise that further explanation seems unnecessary: The 5 software freedoms in just 6 words. It does a great job of breaking down the areas where I have seen limitations imposed by other software packages over the last three decades. Even the first item - use - which at first glance may be the least troublesome, is riddled with limitations related to running on specific hardware, under certain conditions (non-commercial, certain networks, etc). Final thought: I wonder if this list could be further expanded with a 'No Software Patents' or similar item - as it relates to Software Freedom (maybe this is just redundant?).
- dvh 10y agoPatents are in use, if there are patents you can't use it (without some sort of licence for those patents)
- thescriptkiddie 10y agoThe author's dismissal of freedom 0 makes me a little uneasy. It is arguably the most important of the Four Essential Freedoms.
- kristianp 10y agoOk so this is the 'Information wants to be free' based list of freedoms. It's too narrow, only applying to OSS. I think we need a list of rights that does more than cover the OSS-ness of our software.e.g Privacy of personal information. 1. Use software without having to login to facebook or google to do it. e.g. Android apps. 2. Sign up using credentials (e.g. email or phone) that cannot be sold to other parties. Copyright 3. Be able to sell software without it getting freely redistributed contrary to the license. 4. Be able to reverse engineer commercial software. Open web 5. Discourage web pages that are only available through social networks, e.g. small businesses using facebook pages. 6. Somehow reduce peoples dependence on Facebook as their primary online news source.