LSB-Futures - libqt


Introduction

One candidate has generated more discussion by far than all others, libqt. It is the consensus of the LSB futures subcommittee that it does not meet the LSB candidate selection criteria. Many of the discussions around this issue tend to be repeated on the mailing lists. This document attempts to record the Frequent Asked Questions and various arguments around this issue. If you don't see something here and can't find it in the mailing list archives, please bring it up on the lsb-futures mailing list.

Background and History

  1. libqt has always been considered a candidate for the LSB. It was first added to our tracking system on April 15, 2002 (roughly the same time as gtk).

  2. The LSB Selection Criteria is a set of guidelines developed for the LSB project in order to have a consistent, fair, non-arbitrary set of metrics for determining if an interface was appropriate for adding to the LSB. It was developed in response to mistakes the project had made, criticism of being too closed, and overall confusion (inside the project as well) of how we make decisions. Most of it was developed after the LSB 1.0 release when the project had a chance to reflect on how the release went. There have been some additions and adjustments since it has been developed.

  3. When the criteria are being evaluated, what's under consideration is the canonical implementation of the interface. If multiple implementations exist they can each be evaluated and in some cases be evaluated together as a way of fulfilling the criteria. This is to ensure that at least one implementation is available for runtime implementors to use that meets the criteria.

  4. libqt is currently considered to not meet the LSB license criteria. The license criteria was first proposed November 11, 2002 and adopted on January 7, 2003. libqt's requirement that developers purchase a license in order to develop applications that use libqt is considered to violate the "no strings attached" requirement of the license criteria. Specific questions and arguments are addressed below.

  5. This issue of libqt has been discussed on the lsb-futures, lsb-discuss, and other mailing lists over the last 4 years.

Questions / Arguments

  1. Isn't it OK since free software developers can use the GPL and proprietary developers can either use gtk or pay a Trolltech for a development license?

    In a message to the lsb-futures mailing list, Ted Ts'o explains...

    George Kraft writes ...
  2. Does this mean that applications that use libqt can't be LSB compliant?

    No. Applications are allowed to use whatever interfaces they like, but if those interfaces are not in the LSB they can't assume that they will be present at runtime on an LSB compliant system. So to be LSB compliant they are responsible for providing any external dependencies, for example by linking statically or by providing their own shared copy of the interfaces they require.

  3. Does this mean that developers shouldn't use libqt?

    No. As described above it just means they can't assume the libqt interfaces will be present on an LSB runtime environment.

  4. There can be only one! Doesn't there have to be a "winner" between gtk and libqt and only one to go in the LSB?

    The LSB only selects interfaces that have emerged as a best practice for the particular problem they are designed to solve. The LSB futures subcommittee decided that gtk and libqt, while very similar, address slightly different problems and audiences, enough so that we are willing to consider each separately and if they can each meet the LSB criteria they can each be added. We're not aware of any objection to this approach.

  5. The Linux 2.6 kernel use libqt for one of it's configuration GUIs, does that mean it can be added?

    The Linux kernel has their own license criteria and the LSB Workgroup has no control over that. It's really up to them to decide, and for the most part doesn't affect the LSB since it doesn't specify kernel interfaces.

  6. Trolltech worked with Eric Raymond and OSI to make sure that libqt is Open Source, isn't that acceptable?

    It is not in dispute that Qt meets the Open Source definition and can safely be used by Open Source projects. The LSB license criteria is different than the OSI license criteria, for reasons described in this document. The LSB should be freely used by all, including non-Open-Source projects.

  7. libqt/KDE is superior to libgtk/Gnome, that's why libqt should be added (or libgtk not be added).

    This helps libqt meet the best practice criteria. It doesn't affect the licensing criteria.

  8. libqt is widely used and is a choice for ISVs porting their applications from Microsoft Windows.

    This helps libqt meet the demand criteria. It doesn't affect the licensing criteria.

  9. Trolltech and libqt have been part of the community from the very beginning and have a good track record of working with the community to provide stable interfaces for building applications.

    This helps libqt meet the stable ABI/API and upstream cooperative criteria. It doesn't affect the licensing criteria.

  10. Couldn't the requirement that proprietary developers buy development licenses be considered Reasonable And Non-Discriminatory (RAND)? Other standards have considered RAND clauses, why not the LSB?

    RAND clauses have been widely rejected for use in Free Standards. There was a large controversy when the idea was proposed in the W3C standards group, resulting in this policy.

  11. You're just singling out libqt for discrimination because you don't like it, you wouldn't treat other candidates the same way.

    The LSB selection criteria rules are designed to produce a standard that allows for maximum possible participation and increase the use of Free Software. We are not playing favorites, any interface that meets these criteria can be added to the LSB, including libqt.

    Other candidates are blocked due to license criteria, for example Berkeley Database.

  12. What would be some effects of changing the license criteria to allow for RAND?

    In addition to the things mentioned above, we can expect that someone would start a competing standard to the LSB that didn't include a RAND clause. The competing standard would be usable by more developers, and everyone would follow it instead thus making the LSB obsolete. The same thing would happen if we decided to add things that prevented a free software implementation. To address the largest audience possible we need to be as inclusive as possible.

  13. Wouldn't having a standard for libqt be better than not?

    Yes, but as long as it does not meet our license criteria it is not within the charter of the Free Standards Group to develop. We encourage those who would benefit from such a standard to create one and we would like to see it exist as a layer on top of the LSB and would be willing to work on any changes needed to the LSB in order to make that happen.

  14. Trolltech's commercial license doesn't require royalties for distributing Qt based applications, just licenses for people developing applications. Does that make it OK?

    The LSB is a development standard, it's intended audience is developer and not users directly. The "no strings attached" idea in the license criteria is no strings attached for the developer both for deployment and development.

  15. The LSB is partly about making it easier for commercial ISVs to provide applications on Linux. Trolltech is a commercial ISV too, does this justify adding libqt to the LSB?

    The difference in the two cases is between making a product available in an LSB compliant manner versus adding interfaces to the LSB itself. Trolltech (or anyone else willing to follow their implementation's GPL license) is able to create an LSB compliant version of libqt for people using libqt who want to make their application LSB compliant.

  16. What about the Harmony project? Would that be a suitable alternative implementation?

    Perhaps. Currently the Harmony project has been abandoned for quite a while and doesn't implement the full interfaces that libqt developers are using today.

  17. Trolltech and KDE have created the KDE Free Qt Foundation. This organization exists,"to secure the availability of the Qt toolkit for the development of Free Software" and "gives the Foundation the right to release Qt under a BSD-style license in case Trolltech doesn't continue the development of the Qt Free Edition for any reason including, but not limited to, a buy-out of Trolltech, a merger or bankruptcy". Does this help it to meet the license criteria?

    While this might prevent reverting of the current situation in the future(or might even improve it), it does nothing for the current problem that developers are required to purchase licenses. So it's not relevant to the license discussion, unless the release clause is actually invoked.

  18. What about the LSB headers and stub libraries? In the process of adding an interface to the LSB the workgroup runs tools over the canonical implementation to extract it's interface information and import it into a database. Then that database is used to generate header files and stub libraries suitable for compiling software in an LSB compliant manner. These headers and stub libraries could be placed under a license that meets the LSB criteria. Could they be used as a way to fulfill the license criteria?

    It is unclear if interfaces determined in this way can be placed under a different license. Some the other projects have attempted something similar in the past have faced lawsuits.

  19. What could be done in order to allow libqt to meet the license criteria?
    1. The licence of the Trolltech implementation could be modified to meet the license criteria.
    2. Another implementation could be made available that does meet the license criteria that would be a suitable for people who are restricted by Trolltech's implementation.
    3. The license criteria could be changed. This would require convincing the LSB workgroup that a change is needed. It does not, however, require convincing the FSG Board of Directors. The Board advises on these issues but leaves the decisions up to the workgroup.


page maintained by: Matt Taggart <taggart@fc.hp.com>