There's a can of worms we opened this year: the unfortunate situation with support for DWG files in free CAD software via LibreDWG. We feel, by now it ought to be closed. We have the final answer from FSF.

In January this year LGW picked a lead about perspectives of LibreDWG and support for DWG in software like LibreCAD, FreeCAD, Open Asset Import Library, and Blender.

The key question was: why doesn't any of the end-user applications use the existing code in LibreDWG to gain support for DWG files?

As it turned out, it was about incompatibility between LibreDWG, which is GPLv3+, and some of the 3rd party projects which had strictly GPLv2 licensed code or linked to one.

We contacted all involved parties — developers of LibreDWG, maintainers of all aforementioned 3rd party end-user software, and a license compatibility engineer at FSF.

Eventually, as nothing was moving forward, in April one of LibreDWG developers contacted Richard Stallman personally (and CCed several people including me). It took quite a bit of persuasion (3 months) to get him to provide a clear and concise statement, and that statement is:

We are not going to change the license.

So, what does it mean? Is it the end of DWG support in free software? Is LibreDWG actually alive? And what took it LGW so long to publish an update to the story? Let's start from the very beginning.

The core of the issue

Essentially, it's about incompatibility between GPLv2-only and GPLv3+ code. LibreDWG is licensed under GPLv3+, and all copyright belongs to Free Software Foundation. The actual developers don't have a say in all legal matters.

The FAQ on GPL clearly states:

Is GPLv3 compatible with GPLv2? No. Some of the requirements in GPLv3, such as the requirement to provide Installation Information, do not exist in GPLv2. As a result, the licenses are not compatible: if you tried to combine code released under both these licenses, you would violate section 6 of GPLv2. However, if code is released under GPL “version 2 or later,” that is compatible with GPLv3 because GPLv3 is one of the options it permits.

For FreeCAD the problem was both the Coin3D library and the Open CASCADE library. The first used to be GPLv2-only and was relicensed to GPL-compatible BSD 3-clause in December 2011.

The Open CASCADE project, however, currently uses its own Open CASCADE Technology Public License that isn't GPL-compatible. They were contacted about that by Debian team in 2009. In late 2011 they publicly stated that they were considering dual-licensing OCCT (the library), however in February 2012 they announced they were postponing that move. According to Andrey Betenev, as of December 2012 the decision is still up to the head company that controls Open CASCADE assets.

For LibreCAD the legal issue is about the GPLv2-only code inherited from Ribbonsoft who created the original QCad Community Edition product. The company declined the requests to relicense the code and even requested immediate removal of additional content such as documentation and fonts from LibreCAD.

So before FSF issued a final statement (not a public one, too) on the matter, we were dealing with a situation where LibreDWG could become usable for end-user software only at the risk of potential legal issues.

Having had seen that developers of free CAD software couldn't make use of LibreDWG, the library developers eventually lost the motivation to work on the project and ceased their involvement. Which didn't make the situation any better.

What's going on now

In terms of DWG support in free software nothing is really going on. GRASS is still the only project knowingly using the LibreDWG library. FreeCAD team is about to release v0.13, LibreCAD team is working on upcoming v2.0, Open Asset Import Library and Blender are compatible, but have no volunteers to work on the support for DWG files.

Meanwhile earlier this year Open Design Alliance released v5.2 of their DWG specification that finally makes a stab at decrypting binary ACIS data — the most important part of DWG for FreeCAD.

The development of LibreDWG is effectively on hold. Latest changes to master branch were committed in January 2011, and latest changes to r2007 branch were committed in February 2012.

What’s next

How can we solve this? Let's be realistic: we probably can't.

You can't force Open CASCADE managers to okay the switch of the license to LGPL: they will do it only when they feel comfortable about it and have the green lights from lawyers. And knowing the track record of Ribbonsoft, chances that you can get them to relicense their code from the QCad Community Edition are rather zero-ish.

If it's not relicensing, then surely there could be a technical workaround? Like a plug-in? Well, not quite.

For instance, according to LibreCAD team, right now there are just two ways for LibreDWG to be legally used in LibreCAD via the plug-in interface:

Rewriting all LibreCAD classes that are currently GPLv2-only. Creating tons of proxy objects to work around license incompatibility.

Given the current development status of LibreCAD, none of the two ways seem realistic, and in terms of longterm strategy planning the second approach is, frankly, unthinkable.

Edit: accrording to one of LibreDWG developers the second scenario isn't legal anyway.

Finally, once you break through the legal matters, you have to deal with the fact that LibreDWG is currently unmaintained and even hasn't had a single tarball release ever. There doesn't seem to be any development going on, the code for R2007 file format is still in a branch, and no work on R2010 file format has even (knowingly) started.

But wait, isn't LibreDWG one of the high priority projects by Free Software Foundation? Unfortunately, so far hopes for FSF to take the lead have proven to be false.

Richard Stallman wasn’t even aware of the problems one of their “high priority” projects had been facing for a long time. And it doesn’t look like he did anything about it since he learned about it: no awareness campaign, no direct contacting of involved parties that we know about.

Since I was drawn into a private discussion with Richard about LibreDWG anyway, I specifically asked him, whether FSF was planning to take any actions to ensure that the work on LibreDWG wasn't left unused by free end-user software. That was in June 2012.

After 6 months (I can be very patient, when I have to) and several reminders Richard still hasn’t provided any reply whatsoever. Apparently, the question doesn’t deserve an answer.

You are at liberty to draw your conclusions from that. I have my own reservations.

As you can see, solving this issue for both FreeCAD and LibreCAD is going to need a well orchestrated campaign. It's going to involve a smart strategy. And it's going to take years to get to the stage where you have production-quality input and output of DWG files. So we are talking about a bottomless supply of patience coupled with passion and some serious management skills.

I'm confident: there is a CAD version of Barney Stinson walking around who can claim that the challenge is accepted. Maybe it's you?