Qt World Summit: Submit your Presentation

LGPL and Qt Meta-Object Compiler outputs

  • Hi, I have a trouble to understand the relation between Qt Open Source License and Meta-Object Compiler (moc)outputs. I would greatly appreciate it if you would correct my understanding if I'm wrong.

    I currently consider to use Qt Open Source with LGPL v3. I understand that I shall be obliged to follow LGPL v3, so I go over the requirements I must follow. However, after the reading LGPL v3 section 3 and GPL v3 terms and conditions section 2 Basic Permission, I wonder if the moc outputs are licensed under LGPL v3 or not.

    Here is my understanding.

    GPL v3 section 2 Basic Permission states that "The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work". The moc generates C++ source files containing the "meta-object codes" from user's source file. These "meta-object codes" constitute a covered work. Therefore, the output from moc is licensed under LGPL v3 in theory. Hence, a user of my Qt application is a legal right to request the moc outputs and I am obliged to provide the outputs. Since they are statically linked, I am obliged to provide the object codes or source codes upon user's legal written requests.

    However, Qt company explicitly defined the GPL v3 exception,

    "Exception 1:
    As a special exception you may create a larger work which contains the output of this application and distribute that work under terms of your choice, so long as the work is not otherwise derived from or based on this application and so long as the work does not in itself generate output that contains the output from this application in its original or modified form."

    Because of this exception, I can distribute the moc outputs under terms of my choice. Hence, I can set my own license for my Qt application.

    Is this correct?

  • Lifetime Qt Champion

    Hi and welcome to devnet,

    Interesting question but you should contact the Qt Company directly to clarify the wording and/or a lawyer specialized in software licenses. This is a user driven forum.

  • @SGaist Hi, Thank you for your reply. I understand your point, so I set this topic solved.

    I just realized that C:\Qt\Licenses\LISENSE do not include the GPL v3 exception stated above. Hence, the argument above does not hold.