Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Licensing should absolutely be considered. In fact copyleft is one of the main reasons I'd go with Linux over BSD anytime.

If I am going to invest my precious free time into software development, I want to guarantee to my users that my software will always remain free, (as in freedom).

There's also a community aspect to the BSDs that I strongly don't align with, which is the sort of 'practical, above the fray' mentality that seems to disregard all political/real-world happenings around privacy, encryption, patents, censorship etc. and instead focus purely on the code. To the point of praising any piece of closed-source that has a bit of BSD in it.

While this is perfectly valid short-term, I do think that a movement that goes beyond code and has some ideological foundations is needed.



We must have differing definitions of freedom, because I regard the GPL as a severe curtailing of options and equate it with being forced to adopt a narrow, ideological worldview. If anything, this leads to fewer freedoms on use by directly creating more obligations for the user, and if my code is to be of utility for anyone, freedom of use is paramount.

What’s more, and most ironically, copyleft perpetuates the fundamental atrocity of intellectual property law, by hacking it, and therefore intrinsically depending on it; in contrast, the BSD and MIT licenses are mostly a liability waiver under an assertion of attribution, ultimately creations more of necessity than ideology.

I struggle to accept the separate and somewhat animistic notion of code itself being free, having never successfully anthropomorphised a program.


Perhaps you'd like to read Against Intellectual Property by the attorney Stephan Kinsella.

https://mises.org/library/against-intellectual-property-0


Thanks, interesting read. Not a writer with whose principles I necessarily agree with 100% but certainly reaching towards a similar view.


> We must have differing definitions of freedom, because I regard the GPL as a severe curtailing of options and equate it with being forced to adopt a narrow, ideological worldview. If anything, this leads to fewer freedoms on use by directly creating more obligations for the user, and if my code is to be of utility for anyone, freedom of use is paramount.

Please, if you extend my work, let me know what you change, so that I can grow as a developer, aswell as giving the benefits of your work back to my userbase. Obviously you are free to maintain your project on your own and use another licensing for different modules. In fact I believe that these licensing models have strenghten the unix community, but this is a highly personal assumption.

Nonetheless, you are always free to choose your own licensing for your project. Related GPL work, unchanged though, just needs to be ackowledged, right? So you dont have to license your code at all and just throw it at your users - The benefits of possible improvements via GPL unused.

As a user I highly appreciate the GPL, because it promises (not forcing anyone, free licensing, right?) me to inspect the source code shipped with a binary (if any).

To support the minority (original author) against the majority (everyone else) there are implications to them, but desribing it as a narrow ideological worldview forced upon the userbase sounds unreasonably harsh


We probably do have different definitions of freedom. My definition is along the lines of yours ends where mine starts, whereas yours sounds more like 'absolute freedom'.

You're right to an extent, the GPL does place certain obligations on the users, in particular to maintain (at least) the level of freedom they themselves were given, which naturally limits what one can do to an extent.

P.S. Yes, it all depends on copyright law, BSD does too, otherwise public domain would suffice.


GPL gives freedom to the end user of the software, while (for example) MIT gives freedom to the programmer.

People who think GPL is less free than MIT missed the point of freedom GPL is about.


Without the programmer crafting a program using e.g. a library, there is no software and no end user. You cannot separate the end user from the programmer. And to repeat myself: requiring to make the source available for any GPL software in a project is absolutely a reasonable request. Requiring to relicense other parts of the software, isn't.


>You cannot separate the end user from the programmer.

Bullshit.

The only thing GPL requires you to do is to extend the same freedoms granted to you to the user.

>Requiring to relicense other parts of the software, isn't.

You can absolutely use GPL software without relicensing everything else - split the part that requires use of GPL and extend the freedoms to your users.


Obviously, if the GPL software is a complete application, then that works. See Emacs, see GCC, see Linux.

But not in the space of libraries, where I can't use anything GPLed without relicensing my software.


Thats wrong. You can put all your work under any permissible license and use any GPL library. The same is true for anyone who get the work from you. No need to re-license anything.

Large programs often use multiple different software licenses without having to relicensing everything to be the same. They just have to be compatible.


Why not relicense your software then?


There are many domains where the GPL is not applicable, gaming for one, requires the source to be secret, or else you'll allow anyone to build and release the game easily and thus not recuperating costs of production. This is why most lua libraries are MIT, as something that is heavily used in games, using anything other than is not applicable. It is also the reason rms created the lgpl, as a copyleft library that wont relicense software that depends on it.


> gaming for one, requires the source to be secret, or else you'll allow anyone to build and release the game easily and thus not recuperating costs of production.

The engine is not the game, it's missing all the assets (3D models, textures, audio, scripts, etc). The assets don't need to be GPL-licensed.

Most games use one of the few popular game engines: Unreal Engine, Source or Unity, which while not being open-source, are available to anyone and make it possible for anyone to build and release games with them. That doesn't stop them from making money.


The code and logic of games can be open source (look at Dwarf Fortress or ports of Doom) while the assets are still closed source. The bigger fear I always see is that someone will steal the code and run it without paying. In reality, this almost never happens. People don't care enough to run their own version of the game, or any other software.


Because the license was chosen with a clear reason. And if that license was not GPL (otherwise the discussion would be moot), this is not an option.


You keep saying that requiring other parts of the software to be relicensed isn't reasonable.

It's obviously a matter of opinion, but if your program depends on my code, my code is obviously a part of your program, thus it does not seem unreasonable that you pass the same freedoms to your own users as I gave to you when you were starting and my library saved you time and perhaps made sure that your program was on time and budget.


What is reasonable is indeed a matter of opinion, where not conflicting with laws. You have to accept then though, that what you consider a reasonable demand, might be unreasonable to others, if not offensive.

And please, stop abusing the term "freedom". If the FSF would be honest, they would pitch the GPL without misleading terms. It is amusing, that Linux is one of the most prominent GPL software used, but the FSF managed to antagonize its maintainer.


The question of freedom comes when a user then comes to your software and then wants to:

- Use the program for any purpose, - Freely examine the source code, - Make improvements and distribute them to others (in the spirit of being a good neighbor).

These things sound very sensible, don't they? Do you disagree that they should be called "freedoms"?

And those are the freedoms GPL helps protect.


>And please, stop abusing the term "freedom".

GPL uses freedom correctly, it's just not freedom to the programmer, but to the end user. No dishonesty, no misleading and no abuse.


No it abuses the concept, because while it claims to assert freedoms, at the same time it tries to takes away others. And the representation of this by the FSF is deceptive. They managed to antagonize Linus Torwalds entirely this way. A person, who should be their strongest supporter.


Every freedom takes away another's freedom to abuse it.


I have this dream where Linus Torvalds would just release his work under MIT/BSD/ISC/public domain...


And then, suddenly, Linux stops receving the myriad device driver contributions that it does now.


Even if he did, I don't think the BSDs would change to linux. Plus I imagine many of the contributors contribute because of the license, which would anger them.


Freedom isn't that well defined of a concept. Fo example I may say I have the freedom to not be blasted by your loud music, whereas you might say you have the freedom to play it.

Both can be true to a certain extent and both are freedoms. It's just that the context and amount matters.

If a judge decides that you're indeed infringing on my freedoms by blasting the music this loud, your own freedom will be restricted.

The GPL does restrict the freedom to restrict the guarantees it provides.


Right, but it tries to restrict the freedom of software authors to select the license they wish. It does try to restrict the freedom of the programmer to license the part of the software the programmer created.


That's not true.

When you are the sole author of the program, you clearly can choose whatever license you wish.

As long as you don't mooch off the efforts of others.


Freedom is well defined, the freedom you speak of, requires a ruling body to exhert force. By implementing laws freedom itself is modified. Given that the FSF is not the ruling body of software, they should not have a say on what freedom entails. (which is why when speaking of licenses its best to refer as copyfree copyleft and so on.) IMO As a language that is used by all, its best to refer to freedom as copyfree. because that is the most loose definition and the least based on coercion.


Funny that GPL does violate your definition of freedom. Because it doesn't end where my freedom starts. It tries to impose a new license of my software linked to the GPL software. And it imposes obligations to the user beyond what the user was given.


you're free to do anything with gpl software that you would be free to do in the absence of the gpl. consequently it in no way limits any freedom; the freedom has been limited by applicable law.

if this is a problem you need to take it up with the relevant legislators in your area. complaining that the fsf or another publisher only returns most of your freedom isn't exactly fair. they have returned most of your freedom but retained the amount that would allow you to restrict someone else's freedom. you only want off them the freedom to restrict someone else's freedom, so it's hypocritical; if there is some benefit to this freedom, then they have fairly exercised it and you lost out.

(i find the fsf's argument that dynamic linking is illegal in the absence of a licence a long bow to draw tho.)


You do not have the freedom to just take "my" code and do whatever. The moment you include my GPL'd code, you're stepping onto my ground and thus need to abide by some rules I set out for those that do.

You're still free to not use my code, but not to do as you wish if you do, because at that moment you're stepping onto my own freedom.


I haven't claimed that I am free to do what I wish to do, nor do I ask for that. The point is, that the GPL contradicts what you stated before "yours ends where mine starts". GPL tries to exactly cross that line.


The "your end where mine starts" means precisely that your ability to do whatever ends when you decide to use my code, because that is where my freedom to impose certain requirements on your usage of my code starts.

There's nothing the GPL tries to cross, that's exactly what that quote means in general society as well.

For example, you're free to wear the same shoes you do outside in your own house, but if you're coming into my own house, I have the freedom to require you not to do that.


Yes you have. Telling me to wear different shoes once I visited your house is something different. So if you think that is a reasonable request, then I have to tell you that I will refrain from visiting your house. And advise others to be very considerate about visiting your house.


What makes telling you to wear different shoes any different? I am just asking you to abide by my rules if you're going to make use of my resources.

The GPL does the same.

And yes, you're free to refrain from visiting my house if you disagree with what I am asking of you, same as you're free to not use GPL code and therefore not abide by its requirements.

The only thing you are not free to do is come to my house and ignore my rules, likewise use GPL code and ignore the GPL. That's it.


  > What makes telling you to wear different shoes any different? I am just
  > asking you to abide by my rules if you're going to make use of my resources.
  >
  > The GPL does the same.
Couldn't agree with you more, but Microsoft and other proprietary software makers have the same right (to dictate what people can do with their software). For some reason, GNU believes (as RMS has stated in various talks) that not sharing software is immoral.

Now, is not sharing software immoral because (1) it can be copied at no cost, or (2) because you can't morally tell people what to do with the bits once they have a copy of it ?

(1) is nonsense because creating the software has a cost, and anyway, just because something was free to you doesn't mean you can't charge others for it.

(2) is contradicted by the GPL if it tells you what you can do with the bits after you have them.

You can make the argument that free software results in higher quality software, but it's wrong to make a case for it morally as GNU does.


GPL never says you can't charge for software.

As for immorality, you can read the justifications here starting from item 4 (Voices from the Revolution): https://www.drdobbs.com/the-ethics-of-free-software/18441458...


Thanks for the link - that's an interesting read which I'll have to work through more thoroughly later.

  > GPL never says you can't charge for software.
My point is not that the GPL is contradicting itself, but that the GNU philosophy contradicts the GPL.

There is a quote in item 4 at that link you shared, which says:

  > I think that to try to own knowledge, to try to 
  > control whether people are allowed to use it, or 
  > to try to stop other people from sharing it, is 
  > sabotage.
Putting a paywall up is a method of control. I think I represented GNU's position fairly.


And where's the contradiction? GPL software is always open, the knowledge is out there, and people can use and share it.

The only thing you're not allowed to do is do a change and "close" it.

It's like you're begrudging freedom fighters their actions because they are violating the feudal rights of their historical oppressors.


I don't mind abiding to your rules when I come to your house and while I stay in your house. I find it bizarre that you think that you can impose rules onto me after I left your house and even ask me to impose the rules onto others.


How do you feel about NDAs or official secrets?


What about them? I have no fundamental problem with them. The only reason I would sign an NDA is, when I am doing paid work.


But aren't these examples of having to follow someone else's rules after you've left their house?


So what? It is part of the deal, and as I wrote, I would sign an NDA only for a good reason, that is usually a paid job. Also, the NDA concerns only the specific task and not other things I am doing at that time or later.


If you're using my GPL code, you never 'left my house'. In fact, you're still inside.


"Licensing should absolutely be considered", I agree but for all the opposite reasons. I release all my code under MIT/BSD as I do not want anyone, at all, for any reason, to not be able to use my code, for good or for bad as defined by me. I also prefer the BSD community as it lacks the hubris of "a greater mission" that the GPL fosters leading to this notion of good and bad.

Plurality of thought, use and outcomes are a good thing.


Just wanted to point out that the GPL isn't really about 'good'/'bad' morality choices, in fact one of the pillars of copyleft is that it does not make such subjective choices.

If that wasn't the case, companies like IBM wouldn't be able to use GPL'd software, as they famously weren't able with Crockford's "don't do evil" license.

The GPL is really about guarantees.

You rely on guarantees every day to be able to go about your day. People like me just wish to extend certain guarantees, (not warranty), to the software we write.


I honestly cannot fathom the idea of using my time maintaining or developing something that would be used commercially while the user has absolutely no copyleft obligations! well, guess you have to develop your libs then!


Even with lets say BSD-licensed code, the code you publish and maintain stays free. There is only the possiblitly that some entity maintains their private fork of your code and distributes that. But that doesn't change the state of the freedom of the code you publish. Also, it is extremely unlikely, that a company does significant changes to a well-maintained code and doesn't push them back upstream, as this reduces their maintenance effort.

Yet, if you want to completely rule out the possiblity of that "propriatary fork", one could amend the license so that the distributor has to include the sources. This is a legitimate request. If one says: "but that is what the GPL does", that is not correct. The blog posted by the parent poster clearly lists a lot of problems with the variations of the GPL license. The LGPL license too much assumes you are using C, and the GPL of course requires you to relicense your own code just to be able to use a GPL-ed library.


GPL does exactly that, prevents the distribution of proprietary forks.

And yes, the GPL does require you to release all your code if you want to use a GPL'd library. It's not "just" a library. The library is presumably needed for your program to function. If yes, there's noting wrong with the author of that library requiring you pass on the same guarantees with your software that you were given by them when you decided to use their library, which they spent their precious time building.


If you had read my post carefully, I was explicitly stating that the GPL does that. But it doesn't exactly that. As I wrote, it imposes a lot of unrelated restrictions to the code usage. And yes, for myself I consider it an unacceptable demand, that I change the license of code unrelated to the library I am using, just because that library wants to impose that. My code might even be more free than the GPL code I would be using, but that doesn't matter to the GPL.

And for that, in the literal sense, in most use cases, GPL is unacceptable for me and consequentely I keep a wide distance to GPL coded libraries.


We're free to make our own licensing choices of course. This is all in an interest of a discussion.

As I said, this is a choice between not passing on any less freedom you yourself received vs the absolute freedom to do whatever.

As far as the GPL is concerned, your code cannot be more free, because it's precisely the limits the GPL imposes that make it valuable.

I'd say the BSD is more "developer-friendly", whereas the GPL is more "user-friendly", in a broader sense.

The BSD licenses are more 'absolutely free' in a libertarian sense, whereas the GPL offers certain guarantees and if your definition of freedom fails within, they're a lot stronger than what BSD offers, but it's not for everybody.


You cannot separate the user from the programmer, because without a programmer there isn't a software for the user to use. And to require to make the source available for any GPL software used in a project is a very valid request. To relicense other parts of the project isn't.


That's just a question of where one software ends and another begins. Essentially, for lawyers to decide.

But that's also why LGPL exists.


The question is clearly determined by copyright law. If I call a function, this doesn't make the calling function a derived work.

LGPL is the GPL variant which is usually reasonable to use, as it doesn't require any other parts of the program to be put under (L)GPL. However, there are some technical details with the license which make problems. It basically assumes that the code put under LGPL is delivered as a shared library. But that doesn't work with many languages. Especially the requirement, that the user needs to be able to modify and relink the code under LGPL is a big headache, if not a deal breaker in many situations.


> The question is clearly determined by copyright law. If I call a function, this doesn't make the calling function a derived work.

It does make the called function a part of your program, however. Because if that function is not available on the target system (in a shared library or whatever), your program will simply blow up.


Well, sure, a missing function will cause the program to fail to function. But what has this to do with the discussion?

The copyright of the program is clearly mine. The copyright of the functions linked into my program is that of the functions copyright holder. The license regulates my right to link the functions in my program. But unfortunately, the license tries to affect my copyrights to my program parts.


It just regulates the conditions under which the (hopefully) dynamic library is distributed.

If the question comes to court (IIUC, this particular case has never been tested), you are just as likely to be ordered to pay for copyright infringement damages, rather than release your software under a GPL-compatible license. You'd have to rewrite it somehow as well, of course.


BSD and LGPL/GPL type licenses are good for different purposes and intentions and different type of code.

BSD is good when you consider you code as a snapshot that should be maximally available.

GPL is good when you think the code as a long term valuable investment and process that must be protected.

GPL is also really good choise for small to medium businesses with dual licensing. If you want so sell develop a software product and not just a service. If you own full copyright, you can always change the licensee later, so going with GPL first usually the safest choice.


> I want to guarantee to my users that my software will always remain free [...]

I always found this argument for GPL a little uncomfortable because of what it implies... let's be more precise: the existing code you publish whether using GPL or BSD will always remain free (it is irrevocably free); copyleft makes a distinction for freedom of derivatives i.e GPL forces people to make all future code free as well, this is about enforcing future investment not remaining free.

To be clear I'm not dogmatic about either, I think both copyleft and permissive licenses have their place - it's simply subjective - some software feels more suited to GPL and others more suited to BSD.


Copyleft is NOT free as in freedom. Period.


I will likely be downvoted for saying this, but fuck it.

This "copyleft is free (as in freedom)" claim bothers me. Copyleft is not free (as in freedom). Its more like free (but this gun pointed at your temple will shoot if you do not agree with The One True Philosophy). That doesn't sound like freedom to me; more like thinly veiled tyranny. (I suppose this is mostly the fault of the redefinition of a derivative work, but that's a separate issue).

My definition of freedom means that every individual has the right to their own One True Philosophy, whatever that may be. Wanna write your software in the nude (as in publicly)? Be my guest. Wanna write code for Dept. of Defense missiles (which probably should never, ever be public)? Go nuts, IDGAF. Etc, etc.

The GPL is a mistake for software development. I don't mean that just because of what I said above. It's a mistake because of its infectious nature. Whether or not you or I agree (or any reason, it doesn't matter), you must comply. Like a Borg drone, with no freedom. With a non-copyleft licence, any library will still be useful no matter the licence of the software it's linked to (well, except the aforementioned GPL-ed code). See libstdc++ for an example: if it really were vanilla GPL, nobody would use the STL (or at least, not GCC's STL)!

(Written on my Kubuntu workstation).


> (Written on my Kubuntu workstation)

Exactly.

Don't be a bee protesting against honey.


As I said elsewhere, I do understand where you're coming from. My definition of freedom is akin to your freedom ends where mine starts, there's also a sort of 'absolute freedom', in the right-leaning libertarian kind of sense i.e. as long as one has the manpower to do it, they can do it. This just sounds like actual tyranny, if you ask me.

The BSD is probably a lot closer to that 'absolute freedom', (not entirely, still requires you to preserve certain copyright texts for example public domain is probably closest).

The GPL simply limits your ability to pass on less guarantees with the software you're distributing than you yourself have received.


>My definition of freedom is akin to your freedom ends where mine starts

That's everyone else's definition too. The disagreement comes from you having the underlying assumption that producing non-GPL software is causing harm, while other people do not share that assumption.

Everyone agrees that your freedom to swing your fist ends where my nose begins, because everyone agrees that punching me is causing harm. But a lot of people do not consider writing software to be causing harm, so they do not see a valid reason to prohibit people from writing software.


GPL is about not passing less freedom to your users than you yourself received. That's it.

You're free not to use GPL'd software, but the moment you do, it's authors are free to impose certain requirements on you, such that you preserve the freedom they gave you for your downstream users.


You're simply ignoring what I said and talking past it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: