20 comments

[ 5.5 ms ] story [ 61.0 ms ] thread
tl;dr: GNU LibreDWG is licensed GPL3+, incompatible with projects that use other open source licenses, including "GPLv2 only".

I'm a little surprised that a library such as LibreDWG is not licensed LGPL, but come to think of it, this isn't unexpected from the hardline FSF (Stallman). They want to create a coherent free ecosystem, and are unwilling license their work with licenses that have known loopholes.

That's a damn shame for these almost-but-not-quite-as-libre software projects such as LibreCAD, FreeCAD, Open Asset Import Library and Bender.

What's wrong with the OpenDWG [1] libraries, licensed GPLv2?

[1]: http://sourceforge.net/projects/opendwg/

OpenDWG is not under GPLv2 - and that Sourceforge project is little more than a stub, it's almost empty.

The Open Design Alliance [0] despite its name does not make available any open source implementation of DWG.

[0] <http://www.opendwg.org/>

I don't think it's fair to blame GPLv3 alone for this problem. Really the problem is with all so-called free software licenses that impose conditions (or restrictions) that might be inconvenient, difficult, or even (legally) impossible to meet.
The GPL isn't to blame, the FSF is. Note it is their own license they are incompatible with.
You mean like GPLv3 does? GPL is hardly the be-all and end-all of freedoms, its just trades some freedoms for others.
The GPL prevents you from shipping compiled binaries or modified source.

A LibreDWG plugin to LibreCAD is likely to be easily distributable purely as source. FSF doesn't like to talk about it (it gets into quite dangerous territory for them when talking about interpreted languages), but the reality is that GPL relies on copyright. Specifically, it relies on their ability to make a copyright claim to things you are trying to share. If they have no actual copyright claim to something you're distributing, they are shit out of luck.

FSF and licensing@ really likes to pretend that they can prevent this. But they never give specifics and always talk in generalities. They are bluffing and have no actual legs to stand on. If they have no copyright claim to something, they have no actual power over it. At all. It's out of their GPL's grasp.

Of course, the FSF also wants it both ways when convenient. For example, they want to co-opt Matlab's MEX API for GNU/Octave, and simultaneously prevent you from doing the same to their code. This is allowed because of their magical "compatibility" wand. Apparently, they may copy interfaces as they wish, but for nebulous reasons you are expected to trust them that you may not do the same.

See also the existence of ZFS on Linux distributed as patches/source-code shims (not a FSF issue as FSF does not own the Linux kernel, but ultimately it's the same licensing issue).

It's up to the authors to decide which license they will choose. Complaining that you can't use a GPL3 DWG library in your code is no different than complaining that you can't use Autocad's DWG library in your code: it's not yours; you do not get to decide the rules for using it.
A couple of objections:

1) I don't see how it is the GPL's fault that the Open CASCADA license is GPL incompatible. The Open CASCADA license was created way after the GPL, and so if they wanted to use their code with GPL code, they shouldn't have made a license that was GPL incompatible. If they thought it was compatible, but it turned out it wasn't, then maybe their legal team doesn't have the acumen to fully design their own license, and they should have used one of the existing known GPL-compatible licenses for their work.

2) The FSF has long anticipated potential incompatibilities between GPL versions, which is why its recommended to license your software under the GPL or any later version, and indeed such language is provided in the license by default. LibreCAD's original developers changed the license to make it GPLv2 only, intentionally breaking license compatibility with software licensed under future versions of the GPL.

If these people did these actions by accident without realizing the ramifications then the GPL could be faulted for being confusing (despite the very comprehensive FAQ page provided by the FSF), but I don't see how it's GPL's fault when people go out of their way to be GPL incompatible, or incompatible with future versions of GPL.

The problem here is that the GPLv3 has more requirements of the licensee than the GPLv2 does, but the GPLv2 says "you may not impose any further restrictions on the recipients' exercise of the rights granted herein".

Some extra requirements of licensees of GPLv3 programs:

- Preventing tivoization: they must provide information on how to install and execute modified versions of anything they build with the code, when they provide the corresponding source;

- Preventing DRM: anything they build with the code won't be legally considered a DRM system, and they "waive any legal power to forbid circumvention" of that system;

- Protecting against patents: they must provide every recipient of the program (in source or binary) with any patent licenses necessary to exercise the rights that the GPL gives them, and if they try to use a patent suit to stop another user from exercising those rights, their license will be terminated.

I would place the blame of this situation at the maintainers of the GPLv2-only libraries: why don't they want to use a license that prevents tivoization, DRM, and patent abuse? If they've changed their minds on copyleft, why not switch to the BSD license?

I'm not sure exactly what the LibreDWG developers asked of Stallman, but if it was to change the GPLv2 or GPLv3, that's stupid. Even if he did, it wouldn't help their situation.

On the trollish title: the GPLv3 stifling "open-source" development? Really? (Edit: the title has since been changed) Let's talk about how all the non-copyleft licenses let companies run off with the code to build their own systems behind closed doors, and only contribute what they want, when they want -- if at all? How does that support free software development?

I'm licensing my projects under the AGPLv3, because I believe that nonfree software is harmful, and I don't want to contribute to its development at all. I believe that a free society must necessarily operate on free software. I want to encourage the development of free software, and discourage the development of nonfree software.

The GPL was designed to ensure that the software stays free software; "to ensure that every user has freedom". The GPL's protections may have sufficed in 1990, but they don't in 2014. The GPL doesn't consider users of a web service to be users of the software implementing that server. Thankfully, the AGPL does.

The AGPL ensures that if the code is used to implement a web service, then the entire source code of that web service must be free software. This way, I'm not contributing to nonfree software, whether it's executed locally or provided over a network.

How does the 'all or nothing' approach work in this situation? LibreDWG stays GPLv3, but no projects can use it. Eventually the development team gives up and leaves because their work isn't being used. But it's a win for Free Software because the license remained unchanged! A victory! Round of drinks for everyone! We made sure that our work remained pure, despite everyone else and their 'practical' concerns!
I'm not sure what you're asking or saying.

The whole mess here certainly isn't a win for free software, but that's only because there doesn't seem to be enough developers who care about free software, and want DWG support.

I think you're saying that the GPL isn't practical. I just wrote this large reply to a sibling comment on the whole practicality argument: https://news.ycombinator.com/item?id=7886353

I'm saying this is a situation where a different license might make sense. The Open Source projects that could make use of said library, can't use said library because of GPLv3. No one else wants to use it, and the project is dying on the vine. Maybe it makes sense to change the license so that the projects that could make use of it, are now legally able to. This might encourage developers to come back to the project, and improve the software ecosystem as a whole...
> I'm saying this is a situation where a different license might make sense.

I completely agree. That's why I asked in my original comment why the other library authors don't want to move from GPLv2 to GPLv3+, or why the LibreDWG authors won't switch to a non-copyleft license if they've changed their minds on copyleft.

> LibreDWG authors won't switch

My reading of the article says that the copyright belongs to the FSF. It seems unlikely that the FSF will ever change license to anything other than GPLv3+.

Some of the other projects seem like forks where the original code copyright belongs to someone else. Unless the original owned changes the license, the devs have their hands tied.

This is an ideological argument rather than a practical one, but the usual counterpoint is that even pure leeches of OS development contribute to its success by displacing competitors, training users and developers, and there is always a chance they'll change their position on code contributions when it's in their interests. I personally prefer 3 clause BSD because it gets used without some developer, entrepreneur or corporation engaging lawyers to sort out these issues. Freedom from legal BS is the best freedom I can gift to users.

IMO the AGPL cuts off your nose to spite your face. I understand the rationale, but I find it excessively onerous and complex for the users I really care about (other devs).

I wrote this large reply to a sibling comment on the whole practicality argument against copyleft licenses: https://news.ycombinator.com/item?id=7886353

The popularity of a project, derived or not, is not relevant. By that measure, FreeBSD is running on 10% of desktop computers, and it's better off because of that? I don't think so. FreeBSD has its merits, and I think it's a cool project, but the popularity of its derivations has nothing to do with its quality.

I can understand the legal-freedom angle of non-copyleft. I really can. I released Macrofun [0] under the MIT license, because it's not actually useful, and so I didn't care what people did with it. I later released a similar, useful project, Libpp [1], under the AGPL.

I think we just differ on ideology. Like I said, I believe that nonfree software is harmful [2], so I don't want to contribute to it at all. When I want to release a body of code as free software, but not have that code be used to develop nonfree software (nor DRM, nor patent abuse, ...), legal complexity has to come into the picture.

The MIT and BSD licenses are really simple, and I get that appeal. I long for an AGPL-like license that doesn't run over 600 lines. Thankfully, the GNU project has a lot of documentation of its licenses, so the most common questions are already answered.

I think the GPL licenses are only problems for people (or employees) who - implicitly or explicitly - are trying to avoid contributing to free software. I care little for their convenience.

[0]: https://github.com/mcinglis/macrofun

[1]: https://github.com/mcinglis/libpp

[2]: http://minglis.id.au/blog/2014/04/09/free-software-free-soci...

> Let's talk about how all the non-copyleft licenses let companies run off with the code to build their own systems behind closed doors, and only contribute what they want, when they want -- if at all? How does that support free software development?

It supports free software development because contributing to free software works in practice, so less complex requirements means lower legal barriers means more people participate.

> The GPL's protections may have sufficed in 1990, but they don't in 2014.

The GPL's restrictions may have been necessary to motivate people to contribute back in 1990, but they aren't in 2014. The people making the practical case for free software succeeded, and active communities around permissively licensed Free software abound. Sure, proprietary forks and proprietary value-added enhanced versions also abound, but the maintainers of those (at least the latter) often also contribute (both code and money) back to the Free upstream project -- or, actually, are simultaneously the maintainer of the Free upstream project.

Ah, the practicality defense of non-copyleft; puporting the absurd notion that licenses that let companies do anything with the code is actually good for the freedom of society in the long term. Because, er, the market will select companies that protect freedom, right?

An MIT/BSD/Apache project means: people can take it, extend it, incorporate it into their totally non-free product, and they may contribute back to the original project when it suits them.

An AGPL project means: people can take it, extend it, use it for whatever they want privately, but, if conveying it publicly, the covered work must have the freedoms required by the AGPL.

Your argument is basically that many companies prefer non-copyleft, and this means that non-copyleft projects will have a larger contributor pool (from their employees). Thus, non-copyleft projects will be better off than copyleft projects.

There are a number of issues with that argument.

First, just as there are people who prefer to contribute to non-copyleft projects because it means they can use it to develop nonfree software, there are people who prefer to contribute to copyleft projects because they don't want to contribute to nonfree software. Unless you have reliable data on the exact numbers of people who like or dislike copyleft, you can't make the claim that "more people will participate in a non-copyleft project". There very well could be more individual developers who prefer to contribute to copyleft projects, than there are employees that companies will pay to contribute to non-copyleft projects.

Second, whereas it's a choice to release your extensions of a non-copyleft project, it's a requirement of using copylefted projects. Thus, a copyleft project can be assured that all copyleft-friendly developers will give back to it if they extend it, whereas a non-copyleft project has no such assurance. I believe that this is a large reason why Linux has thrived and persevered over the past two decades; Linus Torvalds agrees. [0]

Third, and most importantly, free software shouldn't be about practicality. Copyleft is about protecting free software, and thus the freedom of a society dependent on software, by enabling free software development, and not contributing to the development of nonfree software. Google, Apple, Facebook, startup bubblers all hate copyleft - what a surprise! They can't use my code in nonfree software without paying me for a proprietary license; boo hoo. Free software licensing should never be about companies' convenience, winning popularity contests, or other vacuous exercises. Free software licensing should should be about protecting the freedoms of the software - for all users now and future.

Look, there are cases of copylefted projects succeeding and non-copylefted projects succeeding. If someone wants to write and release non-copylefted code, I'm still thankful for that because the code itself will stay free forever more. However, when someone releases code under a non-copyleft license, they are making our future just as comfy for nonfree software as it would be for free software, and that's certainly not ideal. I want nonfree software developers to have as hard a time as possible, because I think nonfree software is harmful. [1]

[0]: http://www.bbc.com/news/technology-18419231

[1]: http://minglis.id.au/blog/2014/04/09/free-software-free-soci... (my blog)

The most free license, as in completely unlimited freedom as opposed to this kind of "freedom forced down your throat" approach, is the one used by SQLite.