back to article Use our stuff for free and sell your application? That's Qt. Time to give something back

The Qt Group is making changes to the terms under which its popular open-source Qt library is available to encourage more commercial licensees and a higher level of contribution from users. Qt is a cross-platform C++ framework with official bindings for Python as well as community support for many other languages. It is …

  1. Elledan
    Thumb Down

    Annoying

    Having used Qt since version 4.7 and having started on a fresh commercial project involving updating an old Qt app to Qt 5, this is rather annoying news. To us (freelance) devs it means another cost item to justify, or we can bank on the LGPL and skirt the LTS stuff if the customer doesn't explicitly require it, I guess.

    The requirement to have a user account feels like another 'user data slurping' thing to me. Where's the 'open source' spirit in that?

    Maybe it's not so crazy to give WxWidget, GTK+, etc. another look. You know, just in case. Heavens know I moved all non-GUI-based stuff away from Qt to POCO.

    1. cornetman Silver badge

      Re: Annoying

      Well this is just another case of the difference in spirit between the "free software" gang and the "open source" brigade. They are only superficially aligned.

    2. rcxb Silver badge

      Re: Annoying

      I prefer FLTK anyhow.

      Don't forget that license restrictions on QT are the only reason the GNOME desktop environment (based on GTK) was created in the first place, otherwise KDE would be the defacto full-featured DE for Linux users.

      1. Doctor Syntax Silver badge

        Re: Annoying

        And why, in consequence, Qt ended up under GPL.

      2. Tom 7

        Re: Annoying

        And it doesnt take up most of your hard drive either. I found several Gb of QT stuff installed - the documentation alone is near a Gig.

        1. Qt guy

          Re: Annoying

          So you are pissed off that Qt has large libraries of code for you?

    3. DrXym

      Re: Annoying

      The problem with the LGPL is that most of the newer Qt components are actually GPL3. So if (for example) you were doing an in-car infotainment system that needed to use the virtual keyboard, or wanted a remote QT app through the web, or something with a locked bootloader, you'd be screwed.

      The Qt licence is particularly punishing for embedded uses where it is per-device as opposed to a flat developer licence fee for desktops.

      I don't think there is any problem for any open source software built over any version of Qt any way they see fit providing it abides by the LGPL / GPLv3 as appropriate.

    4. Zolko Silver badge

      Re: Annoying

      "having started on a fresh commercial project [...] it means another cost item to justify"

      I don't understand: you complain that their business should give their product away for free to yours so you can make money ?

      1. Elledan

        Re: Annoying

        No, because a library (Qt) that used to be free suddenly costs money. Which one then has to justify to the customer.

        But I guess Qt never really was as 'open source' as it was made out to be. Free as in beer, indeed.

        1. Roland6 Silver badge

          Re: Annoying

          >But I guess Qt never really was as 'open source' as it was made out to be.

          But as even Stallman acknowledged 'Free' (and "open source") in the Free Software Movement means 'freedom' not without a price.

          I think the use of the word 'free' was a mistake, given how many have interpreted it to mean: without cost.

          1. Ray W.

            Re: Annoying

            It is true that Stallman stresses "free" does not eliminate making a profit from your work. I LOVE Qt and, now that I am retired, coding Qt projects is what I do instead of drinking or chasing young girls. I have no interest is earning an income from the projects I code. Hopefully, moving forward, I will still be able to do what I want to do without a LTS commercial license.

    5. Qt guy

      Re: Annoying

      So you make money off their work, but they should not make money off your work?

  2. JohnFen

    Time to fork

    Requiring an account? No good.

    > Similarly, restricting the LTS version to commercial users means that those relying on open-source licences will need to upgrade frequently, encouraging participation.

    ...but this is even worse. Requiring frequent upgrades increases the risk to the project, increases the amount of work required, and means that you're building an application on a bed of sand.

  3. davenewman

    The end of KDE?

  4. werdsmith Silver badge

    I can sense a growing movement for successful open source projects having become established, to want to monetise.

    Because I suppose, goodwill doesn’t pay the mortgage.

    1. Tom 7

      It may not pay the mortgage but it reduces the price of software so most dont need a mortgage for it. For most its very cost effective. I think the problem is people deciding that they need to make money out of giving to charity and introducing a turbulence into a laminar flow that itself costs them more than just giving does.

      1. werdsmith Silver badge

        I don't quite understand your metaphor. I was actually thinking more about 339 employees and their salaries.

      2. sabroni Silver badge

        re: introducing a turbulence into a laminar flow

        just say fart.

    2. Anonymous Coward
      Anonymous Coward

      Writing OSS is fine for individuals that perhaps are still at uni with no dependants, but once you need to pay rent/mortgage and look after kids the time and inclination left to write software for nothing declines significantly. I enjoy writing software as much as I did in my 20s , but I certainly can't spare the double digit hours a week to do the job properly now like most other people my age. This of course means that a lot of OSS is written by developers with perhaps less experience than is required to do it properly.

      Obviously the situation is different if the developers are being paid by a foundation or company and its just like any other dev job for them.

      1. cornetman Silver badge

        I dunno about that.

        I'm 53 and I do it because I think it is a necessary social good.

        I think that's why most people contribute to free software.

        Not to mention the warm fuzzy feeling you get from doing something that you think is worthwhile.

      2. Qt guy

        Most of Qt’s development is done by pay-to contribute in-house developers and partners banking on services helping fat pocket companies avoid license costs.

      3. Anonymous Coward
        Anonymous Coward

        Unless the code you write serves a specific business area it is quite frequently a better idea to open source it than to keep it closed. A lot of companies spend a lot of resources creating stuff that aren't part of their core business, and that would be better off as open source projects. True, that might benefit competitors as well, but that goes both ways, and in the end you can do more for less and focus on your *actual* objectives.

        Regarding experience, open source code quite frequently, if not even predominantly, has far better quality than closed source. This despite it often being written using orders of magnitude less resources than most in-house projects. It never ceases to amaze me how much crap companies allow to be written and to remain in their code in the race to create ever more features at the expense of actually giving a flying f**k about quality, security or maintainability and future cost. The average open source developer is, as far as I can see (I don't have statistics, just a couple decades' experience), far more experienced than the average in-house developer.

  5. whitepines
    Alert

    Oi, Qt Group! Maybe my employer would have thought twice about doing this except that you've let serious bugs rot in your code for over a decade now. Bugs that were reported over a decade ago and confirmed by other pissed off devs when you broke their commercial apps. Which you then promptly closed as resolved, even though everyone could still reproduce them in your latest releases. These are bugs that break people's apps, since there's no equivalent functionality elsewhere in the library, and you'd have to rip out and replace massive chunks of Qt to fix them out of tree, but because you're all about Mobile and Touch you just don't seem to give a toss.

    If that's how you treat your commercial customers writing open source code outside of a proprietary license, I shudder to think what you'd do after we were stuck into a license. Each new version seems to remove more and more desktop functionality, and add more and more app crap. Why exactly would we pay you to do this?

    If you really wanted to entice licensees, why not bundle it with "properly resolve at least two of the licensee's critical customer-identified and reproducible bug reports a year"? What's that, you just want to rent seek on the codebase, some of which was written by other people at no cost to you, not actually work for that income? Carry on then. Won't see a single penny from us, that's for certain!

    1. Anonymous Coward
      Anonymous Coward

      For all those complaining.

      You get what you pay for.

      1. whitepines
        Facepalm

        Re: For all those complaining.

        In case it wasn't clear, these were, so far as I can ascertain, commercial license holders complaining, developing proprietary applications on Windows. So if anything, I would argue they didn't get what they paid for (a license for a toolkit that has known serious regressions fixed in a timely way), but they have definitely served as a nice warning not to bother with Qt in that role.

    2. Elledan

      Very true. I remember having to write a drop-in class for some network class in Qt 4.x because some functionality was broken on Windows. They knew about it, ticket had been open for ages, but clearly nobody gave a toss.

      Add a few more of such issues and it explains why I only use Qt for GUI stuff these days, with everything else using libraries such as POCO, who actually do seem to care about code quality. And not writing spaghetti code. Ever had a look inside the Qt source? Cannot recommend it.

      1. Anonymous Coward
        Anonymous Coward

        I'm struggling to imagine why anyone would think Qt is a suitable library to use for network development in C++.

    3. anonanonanon

      All about mobile and touch? I wish, only cpp oss folks think QT is good for mobile, it doesn't appear on anyone elses multi platform mobile radar, because it's a gigantic mess that makes mobile development ten times more complicated for the justification of one code base. that's not much good if your code base is now ten times larger than it was before with a mess of dependencies of things never compiled for arm and never optimised for mobile. We spend more times on conan scripts and fixing the build every couple of days than coding.

      All optimised UI elements, throw them out of the window and use QTs home built system. Could do something with a few lines in native, ha, no, get new library, and all it's dependencies, and write a mass of cpp code with ten times more room for error.

      Memory management? Manage it all yourself again. Multiple device sizes? you need to implement all that yourself. Latest OS features? maybe in a few years they'll get round to it. AR, forget it, you'll implement it all native anyway, like other little things that just don't quite work.

      And multi platform??? We still haven't shipped an android build after a year.

      1. whitepines
        Devil

        You'll notice I didn't say it was any good for mobile, just that Qt Group seems to think that mobile features take precedence over desktop features, even though people are primarily using it on desktop.

  6. Doctor Syntax Silver badge

    There seems to be a conflict here. First of all, does Qt as it stands consist entirely of code written by employees and former employees? If not are there external contributions under GPL or LGPL? If so how do they propose to make LTS commercial only? They can't apply a non-GPL licence to those contributions which means that any end user has to be able to receive the source.

    Even if the previous code is employee only asking to give back in the form of code contributions is going to present a problem: if those are made under GPL type licences it introduces that problem and if not then I don't think there'll be many of them.

    1. JohnFen

      > If not are there external contributions under GPL or LGPL?

      They are, but Qt continues to honor those licenses. Their account requirement is only for the binaries. You can still download and build the source yourself just as you've always been able to.

      The LTS thing doesn't break the license in either spirit or letter either.

      > They can't apply a non-GPL licence to those contributions which means that any end user has to be able to receive the source.

      True, and they're not doing that.

      1. Doctor Syntax Silver badge

        If I were to acquire a commercial licence I have to get the source; that's the GPL.

        If I then sell an application built with that code I have to provide my customers with the source and a copy of the GPL. That's also part of the GPL.

        Those customers can then distribute the source because the copy of the GPL they receive says that.

        In that case I fail to see how anyone who wants a copy of the supposedly commercial-only LTS version can't get a copy,legally, from a customer of a commercial licensee.

        1. JohnFen

          > If I were to acquire a commercial licence I have to get the source; that's the GPL.

          > If I then sell an application built with that code I have to provide my customers with the source and a copy of the GPL. That's also part of the GPL

          Just to clarify, Qt dual-licenses this code. There is a license for commercial use, and an OSS license. The OSS license in play is LGPLv3 (except for certain tools which are GPL). They have a FAQ about this: https://www.qt.io/faq/

          If you're choosing the commercial license, then there is no requirement to provide source.

          > In that case I fail to see how anyone who wants a copy of the supposedly commercial-only LTS version can't get a copy,legally, from a customer of a commercial licensee

          As near as I can tell, there is no special "commercial" code as such. Anyone can get a copy of the source directly from Qt. The commercial license gives you additional tools and support as well as LTS binary releases.

          Because Qt is using a mix of different licenses for different parts, the licensing situation is quite confusing and I may have some details wrong. If you're intending to use Qt in a commercial product, it would probably be a good idea to get an actual legal opinion.

          1. doublelayer Silver badge

            In that case, what prevents me from taking all their code, identifying when an LTS version is getting released, and compiling it for those who don't want to do so themselves? I'm assuming that there's some difficulty in the compilation of this library? Then, people can simply download the resulting binaries from me. I might put a donation button to let people express satisfaction that I'm doing this.

            If this is allowed, it seems pointless on the part of the QT devs to not do this themselves as all the value in the commercial license would then be the support, which was already the case. Meanwhile, there's always the potential that by doing this they may gain some extra detractors, decreasing the size of the user base that could pay for support. It seems therefore that they shouldn't expect to gain much at all from this move.

            1. Richard 12 Silver badge
              Boffin

              Compiling the majority of Qt yourself is pretty simple.

              Until quite recently you had to compile Qt yourself if you wanted post-mortem debugging on Windows, because they didn't bother shipping the symbol files (PDBs), even for commercial licensees.

              They did finally fix that a couple of years ago - IIRC, we opened that bug more than a decade prior but might have been another company. Sadly they still don't operate a symbol server or embed srcsrv.

              The only annoying/difficult part is compiling the optional WebEngine (browser) component, as that's Chromium inside.

              In many ways the best thing about Qt is the documentation. If this change encourages more open source users to contribute to that, I guess it'll be worthwhile.

              I am concerned that it's going to reduce the value of the LTS though. If they take too long to backport fixes...

              1. Roland6 Silver badge

                >Compiling the majority of Qt yourself is pretty simple.

                Yes, however remember you are taking responsibility for the support of these binaries...

          2. damiandixon

            Some libraries, especially in QML, are now only GPL when you use the OSS version.

            Makes it painful to ensure compliance with LGPL.

            I'm sure its been done on purpose in an attempt to sell commercial licences.

            1. Zolko Silver badge
              Holmes

              "I'm sure its been done on purpose in an attempt to sell commercial licences."

              and what would be bad about it ? If you do open-source software you can use Qt's open-source license, if you do closed-source software and want to make money with it, then give a share of that revenue to Qt. Seems quite logical to me.

              1. damiandixon

                The cost of the commercial licence for small projects/companies was prohibitive especially if you are just using Qt for the GUI. Just compare the cost against Visual studio on a yearly basis...

                1. Qt guy

                  They are launching a new small business license.

      2. CRConrad Bronze badge

        Is that really how the GPL works, though?

        [Code contributed under GPL:] Qt continues to honor those licenses. Their account requirement is only for the binaries. You can still download and build the source yourself just as you've always been able to.
        Hm. If you can do that, then why couldn't you distribute the binaries you thus built? The GPL is usually perceived to only make distribution of source code, specifically, mandatory, but that's just because that's the form that is usually not available with the binaries.

        But I think it works both ways: AFAICR the license actually covers "all forms of expression of the program", or some such, which AFAICS includes binary. That would make the account requirement a GPL violation, if the binaries you're distributing are ones you compile yourself from the freely available source code.

  7. Anonymous Coward
    Anonymous Coward

    Licensing a component doesn't work

    I tried this about 20 years ago, released an application in the science market on a limited free use (or pay for high speed use) license, it made a little money for a few years but then a competitor sponsored a student to develop a free version for their PhD. He got his PhD, published the code and it almost completely killed my product. We're still supporting ours but he got a job doing something else so his code is just floating around with zero support - but it's free!

    1. whitepines
      Facepalm

      Re: Licensing a component doesn't work

      Well, not entirely sure what you had expected out of that one. If you look at commercial software vendors, most of them make money selling into markets where the customer is fairly stupid (Microsoft, Google, EA, etc.). Going after a market where there is both a will and a means to write an open variant of your product means you needed to make the entire development cost back in a short period of time.

      To rephrase, how long do you think you could make money selling grain to farmers?

      1. Sven Coenye
        Alert

        How long?

        For a very long time. Just ask Monsanto. Oh, and if the neighbor's grain escapes into your field, you're the one getting sued for IP theft. Now that's a viral license.

        1. whitepines
          Happy

          Re: How long?

          Isn't that *patent* law, versus copyright law, though? 120 years != 20 years, and patent stops anyone else from manufacturing anything covered under the patent, whereas copyright most certainly does not prevent reimplementation of something that has identical functionality. Thankfully, software patents are not legal.

          Upvote for that last line though.

      2. TheMeerkat Silver badge

        Re: Licensing a component doesn't work

        Or stupidity to write an open source variant?

        It is like farmers giving out grain for free and then being surprised that nobody buys grain from them.

        1. doublelayer Silver badge

          Re: Licensing a component doesn't work

          "Or stupidity to write an open source variant?"

          How is that stupid? Maybe it's stupid if you also write a closed-source version and expect to sell it, but that wasn't the case here. So somehow it's stupid to decide that you would prefer to spend some time writing a new version and giving it to the community than to buy a license for the alternative? If you want the tool and you don't want to pay for a license, reimplement it.

      3. This post has been deleted by its author

  8. Anonymous Coward
    Anonymous Coward

    QT now stands for Quitting Time.

    Seriously, if you need an account to install the runtime, then how the frogspawn do you expect adoption from the masses? Sure, it will steer people towards buying a dev license, but only so end-users don't think their utilities that rely on it are malware.

    And what happens when a free utility that isn't using LTS needs a newer version than an LTS release? Multiple runtime versions on linux, some account tied some not?

    Where are the account credentials stored/hashed user side? How often does it phone home?

    Makes me think twice about ever using it again in any capacity.

    1. Richard 12 Silver badge
      Facepalm

      Bollocks

      You can ship the binaries with your product.

      They even give you automated tools to walk the dependencies and make it easier.

      This is only the installer for the development environment

      And don't forget you need a Microsoft account to get MSVC and an Apple account to get xcode

  9. btrower

    I reviewed many times over the years, but avoided QT because of misgivings about the license and how they handled it. I am glad I did!

  10. Danny 5

    hmmm

    I can understand that a company wants to profit from parties making money off the back of their products, I don't think that's all that unfair. They have to be careful not to upset their free users though, as they probably make up a substantial part of the community and are vital for the platform's survival. It's like with pay2win games, they can generally only survive if there's a solid base of free users to create a big enough community. Your freeware needs to be good enough that people still want it and your commercial licenses should be enticing enough to persuade parties making money off of it to be willing to shell out the dosh.

    It's a tricky balance indeed.

  11. _LC_
    Flame

    Reporting bugs and adding code? Don't bother!

    If you are thinking about reporting bugs and adding code – don't.

    I did report several bugs, sometimes proposing fixes. I got insulted, and even bugs marked as critical, which would cause the entire QtCreator installation to become unusable, were ultimately ignored.

    I don't know what is going on there. They have too little personnel? They might have overstretched (3D and whatnot)? They might have issues with getting enough cash in? I don't know. All I know is that the people there appear to be stressed “beyond repair” and they pass this on whenever you get in contact with them.

    I dropped Qt a while ago when I noticed that things were only getting worse instead of better (i.e.: I found the bugs in their code mostly and thus couldn't repair things. I found myself avoiding Qt functionality wherever possible and using it for the GUI only. This increasingly sucked, though.).

  12. Anonymous Coward
    Anonymous Coward

    I will stick with a long-lasting and stable UI package

    You don't get these kinds of trouble with ncurses.

  13. zebm

    CopperSpice still seems to be going

    Must admit I've never used it and haven't used Qt in years but prefer the idea of using modern C++

  14. Lernauti

    If you plan to switch to wxWidgets, you should immediately be aware of several disadvantages. GDB, when debugging, did not display, for example, the value of the string classes wxString. Initialization of the wxWidgets libraries occurs implicitly and automatically in the macro when using the GUI of the application created in Code::Blocks.

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon