Advertisement

You're blocking ads, which pay for BlenderNation. Read about other ways to support us.

What restrains adoption of DWG in free software?

35

dwgDo you wonder why Blender doesn't support the DWG file format? As it turns out, it's an issue with the GPL license of LibreDWG

Alexandre Prokoudine writes:

If you care about things like CAD, precision modeling and industrial design, you probably wondered why Blender doesn't support DWG that's practically a de-facto standard in the industry. Contrary to a popular belief, it's not just because DWG is a proprietary format.

Libre Graphics World published an in-depth study of the subject that contains an interview with developers of LibreDWG, a GPL library for reading and writing DWG files, and comments from a representative of Free Software Foundation and developers of end-user software, including Ton Roosendaal and a developer of Blender-compatible Open Assets Library.

The result could be summarized like this. LibreDWG is the only library that allows free software to implement support for DWG files. However there are several reasons why it's not really used anywhere beyond GRASS.

1. It's license (GPL v3) prevents most applications like LibreCAD, FreeCAD and Blender from using it. FSF who hold the copyright for it used to be unwilling to change the license and preferred 3rd party software to stop using components that prevent an upgrade to a license compatible with GPL v3. At the moment FSF is in conversation with developers of LibreDWG regarding a change of license, but no clear statements have been made yet.

2. The specification of DWG issued by Open Design Alliance used to be very far from being complete and only started gaining essential missing information last year, after development of LibreDWG ceased.

3. Both lack of adoption of LibreDWG by end-user software, lack of information in the spec and lack of time were the reasons why development of LibreDWG ceased a year ago.

4. 3rd party developers are interested in supporting DWG if the license of LibreDWG is downgraded to a more liberal GPL v2+ or the like.

35 Comments

  1. Daryl Van Humbeck on

    Pardon my ignorance, but what's wrong with GPL v3 again?
    Is it particularly restrictive towards FOSS or too liberal towards commercial applications?

        • Udo Schuermann on

          The GPLv3 fights, among possibly other things, the idea of Tivoization, i.e. the use of Free software in a device, but preventing you from actually replacing/modifying it when installed on a device. That would be Free software only so long as you don't want to actually exercise that Freedom.

        • OK, let's try for even shorter version. Strictly GPL v2 is not compatible with GPL v3+. Lots of code in LibreCAD is strictly GPLv2 and cannot be relicensed, while the architecture is not very suitable for solution via plugins.

    • Short story long:  Richard Milhous Stallman and Eben Moglen took issue with TiVO's modifying the Linux kernel and preventing anyone from installing said modified kernel on the TiVO hardware.  The fact that the restrictions of TiVO could still be bypassed or that no one really wants to edit that software didn't enter into the OCD discussion about how everyone's freedom was stolen by providing something useful that didn't need to be changed.

      RMS and Eben Moglen then proceeded to add tons of language to an already complicated license without clarifying the vague language that really _needed_ to be clarified to prevent the specious lawsuits that lead supposedly friendly companies like Google to have no GPL in user space policies or like Apple to ban the license altogether and fund permissively licensed replacements.

      Long story short:  The GPL3 is not compatible with GPL2.

      • Daniel Monteiro Basso on

        "[...] providing something useful that didn't need to be changed."
        In your opinion. Whoever have a different opinion is screwed.

        GPLv3 just removed the loopholes in v2 that permit people to restrict the freedom of users. I thank the Free Software Foundation for that.

        Btw, if you don't like it, please don't use my Blender add-ons, they are GPLv3.

        • "Btw, if you don't like it, please don't use my Blender add-ons, they are GPLv3."

          I think such a freedom-restricting statement is well at odds with any version of the GPL. There is no requirement to 'like' a license, only to comply with it.

  2. The problem is that the GPLv3 is not backwards compatible to GPLv2 and not all GPLv2 projects have the "or later" clause (sometimes intentionally), so it can not be "upgraded" unless the original author agrees to relicense.
    Personally I see nothing wrong with the GPLv3 and generally release everything under the GPLv2+ (e.g. with the "or later" clause) license to allow integration into GPLv3 projects.

  3. " 2. The specification of DWG issued by Open Design Alliance used to be very far from being complete"

    It has been many moons since I was involved in the CAD world, but IIRC, the problem with DWG is that it is badly underspecified.  Said another way, a DWG file is what AutoDesk says it is.  This makes writing converters problematic and is a harder problem than licensing issues.

  4. Lawrence D’Oliveiro on

    I thought the FSF’s policy was to use LGPL for libraries that implemented functionality already available elsewhere (particularly in proprietary apps, e.g. libc), and only use GPL for libraries that offer functionality only available in Free software (like readline).

  5. Like this. My vision of the future of DWG access in Blender is clouded, perhaps if you cross my palms with some silver amulet it would help to brighten my outlook.

  6. IMHO Blender should not support closed, proprietary protocols, no matter how many people use them. Instead, the CAD community should devise an open, probably XML-based format with identical functionality and FOSS CAD programs should NOT support propietary formats, even for import. If you support proprietary formats users will keep using them.

    The biggest error that OpenOffice / LibrreOffice made was to support Office files. Their developers are spending enormous amounts of time reverse engineering Microsoft's OOXML format and users will always believe that 'it works best with Office because Microsoft invented it' and therefore OO/LO will always be considered inferior alternatives.

    If FOSS keeps supporting proprietary formats it will always be chasing and lagging behind proprietary software.

    • I wish I was able to see things your way. Unfortunately I'm spoiled by dealing with the real world where interaction takes place.

      • Lawrence D’Oliveiro on

         In that “real world”, the owners of the proprietary formats chop and change them at a whim, so that older versions of the proprietary software cannot read files created by newer versions. This forces everyone to chain themselves to the upgrade treadmill, continuing to shell out money for newer versions that have no important functionality that they need, except the ability to read files created by others who also upgraded because they didn’t actually need to.

        This is the world you choose to live in? Because I don’t.

        • :)

          We don't choose which world we live in, because there's just one of it. But we can choose to adapt to it and, where possible, change it to the better.

          Personally I don't think I will ever understand people with extreme views, but it's probably good that they (you) exist, so we could have a kind of South and North Poles for navigation.

          Oh, and speaking of file formats, I could think of at least one well-known free software project that changes its file format all the time (without documenting changes) and demands upgrades. It's a blessing they don't charge you any money.

          •  I don't think my view isn't radical at all, merely rational. If enough FOSS packages support an open format and ONLY an open format the proprietary software vendors will be cornered and after a while will have no choice but to support it too.

            But it does mean biting the bullet and therefore not providing any support for proprietary formats, forcinig users to switch to the new, open format. If all Office software vendors would consistently only support ODF I'm convinced that within a couple of years MS Office would have no choice but to adopt it and abandon its OOXML format.

            The same holds for FOSS CAD software or any other software for that matter.

          • So what you are saying is that merely supporting just one open file format will be enough to corner proprietary developers? And this is not a radical view?

            I'm afraid I have some bad news for you :)

          • First let me explain my background.  I use CAD software extensively to design sound reinforcement systems and model acoustics.  This means I do my signal flow diagrams, speaker layouts, rack layouts, etc. all in CAD, along with on occasion custom pieces and mounting solutions.  I have to be able to support two way communication between myself and the architect, where I ingest his/her drafts to create some of the above layouts, and myself and the contractors who take my drawings and implement them.

            Right now the amount of hoops I have to jump through because I choose to use software that has open source components (In my case QCad) that doesn't support DWG (QCad3 fixes this but the open source question to my knowledge is still in the air) is incredible, to the point of in more than a few cases I have had to more than triple my workload to redraft drawings in PDF or print to make my layouts as I couldn't accept the drawings in a useful form.

            I am an outlier in this regards, I make life difficult on myself because I support open source for this.  But I gotta tell you, not a single one of those people care a single bit what format I do support, because to them it is all about DWG for transferring files back and forth.  If I don't support DWG I have to make it work, and still be able to give them DWG back so they can open it easily and so that I don't hurt relationships that lead to more business later.  Me supporting an open format literally makes absolutely no difference here, and it wouldn't to them either.  It would just mean they choose not to work with me in the future, end of story and I am out of a job.

            This is the 'real world' prokoudine mentioned.  It isn't my choice there, it is a requirement for me to be in it.  None of those people will consider an open source software program unless it provides a strong benefit to them, enough of a benefit to outweigh disadvantage of losing the ability to talk to anyone else, and as of yet there isn't even close to this for most people to replace AutoCAD, Vectorworks, Solidworks, etc.  You have to fix that issue before you even begin to think about taking up the flag and fighting the format battle that is DWG and interoperability.  And lets face it, losing interoperability with 99% of the rest of the world is a huge disadvantage to overcome, whereas if you give advantages at first without doing that, you are in much better shape, thus supporting DWG out of the box becomes a very worthwhile proposition.

          • In other words, STEP is already there, is an ISO standard and is supported by most proprietary CAD apps and some free apps (that are functionally behind proprietary ones). Which somehow hasn't stopped DWG from being de-facto standard :)

            Or take SVG: supported by AI and CDR since dawn of times, which hasn't stopped a solid flow of files in both proprietary formats.

    •  If FOSS software avoided anything that was "proprietary", I think it would severely cut down the interest and functionality of that software for a large portion of its users. Wasn't OOXML officially deemed to be "open"? I know, through underhanded tactics, but still. Anyway, I agree that FOSS developers should not expend a great amount of effort to reverse engineer file formats, but if a format's specifications are published or at least well-known, they should be implemented, regardless if it's deemed to be officially proprietary or open. I will say though that I'm not entirely familiar with all the formats in question, so I could be wrong.

    • Well, probably the open standards are already available, for mechanical engineering there is STEP to exchange data. For architecture there is a STEP-brother (haha) called IFC. The latter is getting adopted more and more. If you are interested in importing IFC into blender take a look at IfcOpenShell: http://ifcopenshell.org/ifcblender.html

  7. I have no idea what is wrong with GPLv3, and what the conflict is with GPLv2.  There is a claim that there *is* a problem, but *what* it is not explained.

    If anyone can explain, then please respond.

    • It's explained both in the article that is linked to from here, in the follow-up I posted yesterday and in the comments here. Which one would you like? :)

      Simply put, you can't link GPLv2 code to GPLv3+.

    • prokoudine, you being the author of the article, the main citation in this blendernation post, and a voracious commenter, maybe you could give someone a chance to answer who is able to make the issue clearer.  

      You said, "The result could be summarized like this [...] It’s license (GPL v3) prevents most applications [...] from using it."  I expect at some point you address why that might be the case, but you don't . . . maybe I missed it.

      So I go to your article where you say, "GPLv3 license [...] doesn't work for end-user software, because they tend to use 3rd party components under different licenses that impose restrictions."  If this is the correct answer, then maybe cite the pertinent text in GPLv3 and GPLv2; as is, it seems like you are not answering the main concern: why doesn't it "work"?

      I don't see a clearer explanation in the comments.

      I don't think you have ever written in a way that someone without working knowledge of the licenses would understand what the core problem is.  Just let someone else try for a bit.

        • Yes, that's much clearer.  It's good to know that you didn't write it.  It's not in your article or in the Blendernation post, so with luck someone may actually find this here. 

          Yes, I would rather not have you be the source of information.

          • It's actually in the follow-up posting, and I added the link to the original research as well to prevent further amusing comments from taking place.

          • No thanks is needed, just good journalism.   I was not and am not being sarcastic.  If I were nice about it, I would have gotten a flippant, incomplete answer that you gave to others in these comments.  What made you answer correctly was my being blunt.  Pay attention the first time someone mentions a problem instead of taking it out on me for making you answer.

Leave A Reply

To add a profile picture to your message, register your email address with Gravatar.com. To protect your email address, create an account on BlenderNation and log in when posting a message.

Advertisement

×