Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Abiding by LGPL
Forum Updated to NodeBB v4.3 + New Features

Abiding by LGPL

Scheduled Pinned Locked Moved Unsolved General and Desktop
18 Posts 5 Posters 1.2k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • E Offline
    E Offline
    EaccB
    wrote on last edited by
    #1
    Complete corresponding source code of the library used with the application or the device built using LGPL, including all modifications to the library, should be delivered with the application (or alternatively provide a written offer with instructions on how to get the source code). 
    
    The user of an application or device created with LGPL library has to be notified of their rights by providing a copy of the LGPL license text to the user and displaying a prominent notice about using the LGPL library – i.e. it is not allowed to hide the fact the LGPL library is used.
    

    In order to satisfy the above requirements of Qt's LGPL, is it sufficient to provide the offer of source code and licence text in the "Legal" section of the software's website, or does it have to be bundled in the application?

    Alternatively, will a text file with the above in the application's folder be adequate?

    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Hi,

      WARNING: I am not a lawyer

      It's not Qt's LGPL, it's just the LGPL itself and it concerns all your dependencies that uses that licence.

      Qt provides QApplication::aboutQt to show the information about the version of Qt you are using.

      You have to provide an about screen that can be accessed by your users that gives all the required informations.

      Note that your application code does not need to be provided but your users have to be able to switch all LGPL dependencies for other versions. What you are required to publish are all the patches you may have applied to the libraries you are using beside the sources of said dependencies. Doing that through a website is one way to do it.

      For a better answer: ask a lawyer

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      3
      • E Offline
        E Offline
        EaccB
        wrote on last edited by
        #3

        @EaccB said in Abiding by LGPL:

        e created with LGPL library has to be

        Do I have to use aboutQt()? In my general about section, can I simply have something like:

        "This software uses Qt version x.x.x available under LGPL v3", followed by the full LGPL text? In fact, do I need to even acknowledge Qt in the application?

        jsulmJ 1 Reply Last reply
        0
        • E EaccB

          @EaccB said in Abiding by LGPL:

          e created with LGPL library has to be

          Do I have to use aboutQt()? In my general about section, can I simply have something like:

          "This software uses Qt version x.x.x available under LGPL v3", followed by the full LGPL text? In fact, do I need to even acknowledge Qt in the application?

          jsulmJ Offline
          jsulmJ Offline
          jsulm
          Lifetime Qt Champion
          wrote on last edited by
          #4

          @EaccB said in Abiding by LGPL:

          do I need to even acknowledge Qt in the application?

          If I'm not mistaken this is one of the requirements of LGPLv3, so you have to.
          You do not have to use QApplication::aboutQt, you can design your own way to show this information.

          https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          2
          • E Offline
            E Offline
            EaccB
            wrote on last edited by EaccB
            #5

            So, "This software uses Qt version x.x.x available under LGPL v3", followed by the full LGPL text should be sufficient? Could I have the notice in the user manual instead?

            jsulmJ 1 Reply Last reply
            0
            • E EaccB

              So, "This software uses Qt version x.x.x available under LGPL v3", followed by the full LGPL text should be sufficient? Could I have the notice in the user manual instead?

              jsulmJ Offline
              jsulmJ Offline
              jsulm
              Lifetime Qt Champion
              wrote on last edited by
              #6

              @EaccB said in Abiding by LGPL:

              followed by the full LGPL text should be sufficient?

              Should be (I'm not a lawyer!).
              "Could I have the notice in the user manual instead?" - not sure about this.

              https://forum.qt.io/topic/113070/qt-code-of-conduct

              1 Reply Last reply
              1
              • SGaistS Offline
                SGaistS Offline
                SGaist
                Lifetime Qt Champion
                wrote on last edited by
                #7

                @EaccB said in Abiding by LGPL:

                In fact, do I need to even acknowledge Qt in the application?

                You have to acknowledge all the LGPL dependencies you use. Be it Qt or any other.
                If you do not want to acknowledge your use of Qt, then you should get a commercial license. And AFAIK, no, you can't just put that beside in some user guide.

                You are not required to use the aboutQt facility as long as you provide an equivalent. The good thing about aboutQt is that you do not have to update it since it will always provide the correct information.

                And again, if you want to be sure, go ask a lawyer. Especially since you seem to try to not fulfill licences constraints.

                Interested in AI ? www.idiap.ch
                Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                1 Reply Last reply
                2
                • E Offline
                  E Offline
                  EaccB
                  wrote on last edited by
                  #8

                  Thanks guys. It's not that I don't want to attribute Qt, I'd just rather not have my application littered with copyright, licence, branding, notices, etc.

                  On a slightly unrelated note, the software will come pre-deployed on a laptop (rented to user). LGPL states that the user should be able to replace DLLs with other or modified versions of Qt and reverse engineering should be allowed to the extent that allows this.

                  Is it acceptable to supply a laptop that disables an internet connection and external media (USB stick, etc) and states in its EULA that nothing can be transferred on/off the laptop, or at the very least prevents the user from removing the application from the machine? In theory, re-linking and reverse engineering would still be possible; it would just require the user to develop their own tools directly on the machine, and manually copy source code over.

                  jsulmJ SGaistS 2 Replies Last reply
                  0
                  • E EaccB

                    Thanks guys. It's not that I don't want to attribute Qt, I'd just rather not have my application littered with copyright, licence, branding, notices, etc.

                    On a slightly unrelated note, the software will come pre-deployed on a laptop (rented to user). LGPL states that the user should be able to replace DLLs with other or modified versions of Qt and reverse engineering should be allowed to the extent that allows this.

                    Is it acceptable to supply a laptop that disables an internet connection and external media (USB stick, etc) and states in its EULA that nothing can be transferred on/off the laptop, or at the very least prevents the user from removing the application from the machine? In theory, re-linking and reverse engineering would still be possible; it would just require the user to develop their own tools directly on the machine, and manually copy source code over.

                    jsulmJ Offline
                    jsulmJ Offline
                    jsulm
                    Lifetime Qt Champion
                    wrote on last edited by
                    #9

                    @EaccB said in Abiding by LGPL:

                    Is it acceptable to supply a laptop that disables an internet connection and external media (USB stick, etc) and states in its EULA that nothing can be transferred on/off the laptop, or at the very least prevents the user from removing the application from the machine? In theory, re-linking and reverse engineering would still be possible; it would just require the user to develop their own tools directly on the machine, and manually copy source code over.

                    Why all this? What is the problem if the user replaces the Qt DLLs (this is by the way not "reverse engineering")?

                    https://forum.qt.io/topic/113070/qt-code-of-conduct

                    E 1 Reply Last reply
                    1
                    • E EaccB

                      Thanks guys. It's not that I don't want to attribute Qt, I'd just rather not have my application littered with copyright, licence, branding, notices, etc.

                      On a slightly unrelated note, the software will come pre-deployed on a laptop (rented to user). LGPL states that the user should be able to replace DLLs with other or modified versions of Qt and reverse engineering should be allowed to the extent that allows this.

                      Is it acceptable to supply a laptop that disables an internet connection and external media (USB stick, etc) and states in its EULA that nothing can be transferred on/off the laptop, or at the very least prevents the user from removing the application from the machine? In theory, re-linking and reverse engineering would still be possible; it would just require the user to develop their own tools directly on the machine, and manually copy source code over.

                      SGaistS Offline
                      SGaistS Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on last edited by
                      #10

                      @EaccB said in Abiding by LGPL:

                      Thanks guys. It's not that I don't want to attribute Qt, I'd just rather not have my application littered with copyright, licence, branding, notices, etc.

                      That's why you have that about box that allows to provide all the required information.

                      Take for example Garmin's GPS software, they have one page with all the licences and stuff. It's not over the maps nor in front of the user. It's just easy to access and provides all the required data.

                      Interested in AI ? www.idiap.ch
                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                      1 Reply Last reply
                      1
                      • jsulmJ jsulm

                        @EaccB said in Abiding by LGPL:

                        Is it acceptable to supply a laptop that disables an internet connection and external media (USB stick, etc) and states in its EULA that nothing can be transferred on/off the laptop, or at the very least prevents the user from removing the application from the machine? In theory, re-linking and reverse engineering would still be possible; it would just require the user to develop their own tools directly on the machine, and manually copy source code over.

                        Why all this? What is the problem if the user replaces the Qt DLLs (this is by the way not "reverse engineering")?

                        E Offline
                        E Offline
                        EaccB
                        wrote on last edited by
                        #11

                        @jsulm

                        I'd rather keep my application source as closed as possible. Is what I suggested possible without breaching LGPL?

                        1 Reply Last reply
                        0
                        • SGaistS Offline
                          SGaistS Offline
                          SGaist
                          Lifetime Qt Champion
                          wrote on last edited by
                          #12

                          The LGPL does not impose to release your source code. The GPL makes it mandatory to provide your sources on demand. These are two different license.
                          What the LGPL says is that you have to provide the changes you made to a LGPL library you use and the possibility for your users to switch the libraries for a different version. If you link all LGPL libraries dynamically, then the second part is covered.

                          Interested in AI ? www.idiap.ch
                          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                          E 1 Reply Last reply
                          1
                          • SGaistS SGaist

                            The LGPL does not impose to release your source code. The GPL makes it mandatory to provide your sources on demand. These are two different license.
                            What the LGPL says is that you have to provide the changes you made to a LGPL library you use and the possibility for your users to switch the libraries for a different version. If you link all LGPL libraries dynamically, then the second part is covered.

                            E Offline
                            E Offline
                            EaccB
                            wrote on last edited by
                            #13

                            @SGaist

                            Yes, but LGPL allows reverse engineering of the application to the extent necessary to link with the new/modified DLLs. Ideally I'd like to make this as difficult as possible, hence my previous question.

                            1 Reply Last reply
                            0
                            • SGaistS Offline
                              SGaistS Offline
                              SGaist
                              Lifetime Qt Champion
                              wrote on last edited by
                              #14

                              If you use a LGPL library, its interface is known. The only thing people have to do is replace the library files.

                              Interested in AI ? www.idiap.ch
                              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                              E 1 Reply Last reply
                              1
                              • SGaistS SGaist

                                If you use a LGPL library, its interface is known. The only thing people have to do is replace the library files.

                                E Offline
                                E Offline
                                EaccB
                                wrote on last edited by
                                #15

                                @SGaist

                                Replacing the library files would be made difficult without access to internet/external media. Would this count as Tiviozation? I. don't think so as the means to replace the library remain, it just makes it more difficult by requiring the user to either develop their own linking tools and manually copy the Qt source of the version they want (i.e. typing it out).

                                FYI, in reality, the likelihood of anyone wanting to swap out the DLLs is extremely low so it's not something I really need to worry about. I'm asking more hypothetically and to help me understand the LGPL in a bit more detail.

                                JKSHJ kshegunovK 2 Replies Last reply
                                0
                                • SGaistS Offline
                                  SGaistS Offline
                                  SGaist
                                  Lifetime Qt Champion
                                  wrote on last edited by
                                  #16

                                  Then as I already wrote: ask a lawyer.

                                  Interested in AI ? www.idiap.ch
                                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                  1 Reply Last reply
                                  0
                                  • E EaccB

                                    @SGaist

                                    Replacing the library files would be made difficult without access to internet/external media. Would this count as Tiviozation? I. don't think so as the means to replace the library remain, it just makes it more difficult by requiring the user to either develop their own linking tools and manually copy the Qt source of the version they want (i.e. typing it out).

                                    FYI, in reality, the likelihood of anyone wanting to swap out the DLLs is extremely low so it's not something I really need to worry about. I'm asking more hypothetically and to help me understand the LGPL in a bit more detail.

                                    JKSHJ Offline
                                    JKSHJ Offline
                                    JKSH
                                    Moderators
                                    wrote on last edited by JKSH
                                    #17

                                    @EaccB said in Abiding by LGPL:

                                    I'm asking more hypothetically and to help me understand the LGPL in a bit more detail.

                                    The most important thing to understand is this: The GNU licenses (including the LGPL) are primarily concerned with the freedom to run, study, modify, and share code.

                                    So, if you use Qt in your application under the LGPL, you should prepare accessible solutions for each of these potential questions from your users:

                                    • How can I obtain a copy of the Qt source code from @EaccB?
                                    • How can I study and modify the Qt source code that I received from @EaccB?
                                    • When I modify the Qt source code, how can I share my version with other people?
                                    • When I modify the Qt source code, how can I build the DLLs using my version of the code?
                                    • Regarding @EaccB's application: How can I replace the Qt DLLs that the app uses and still have the app run properly? (Either with my own custom-built DLLs or with an officially-built DLL that I can download)

                                    Note: While I used Qt as an example here, the same applies to all other LGPL-licensed libraries that you use in your application.

                                    Is it acceptable to supply a laptop that disables an internet connection and external media (USB stick, etc) and states in its EULA that nothing can be transferred on/off the laptop, or at the very least prevents the user from removing the application from the machine?

                                    Can you provide accessible solutions to the questions I posed above?

                                    requiring the user to either develop their own linking tools and manually copy the Qt source of the version they want (i.e. typing it out).

                                    That doesn't sound accessible to me. It really goes against the spirit of the (L)GPL.

                                    FYI, in reality, the likelihood of anyone wanting to swap out the DLLs is extremely low so it's not something I really need to worry about.

                                    The likelihood of users wanting to exercise their LGPL-guaranteed freedoms has no bearing on your obligations. You are obliged to ensure that in the event someone wants to exercise these freedoms, they will be able to.

                                    Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

                                    1 Reply Last reply
                                    4
                                    • E EaccB

                                      @SGaist

                                      Replacing the library files would be made difficult without access to internet/external media. Would this count as Tiviozation? I. don't think so as the means to replace the library remain, it just makes it more difficult by requiring the user to either develop their own linking tools and manually copy the Qt source of the version they want (i.e. typing it out).

                                      FYI, in reality, the likelihood of anyone wanting to swap out the DLLs is extremely low so it's not something I really need to worry about. I'm asking more hypothetically and to help me understand the LGPL in a bit more detail.

                                      kshegunovK Offline
                                      kshegunovK Offline
                                      kshegunov
                                      Moderators
                                      wrote on last edited by JKSH
                                      #18

                                      @EaccB said in Abiding by LGPL:

                                      Replacing the library files would be made difficult without access to internet/external media. Would this count as Tiviozation?

                                      I would, personally, interpret it as such. What'd be the difference from putting a dongle with a driver, or imposing arbitrary restrictions on the libraries that can be used, for example, by hooking with LdrRegisterDllNotification?
                                      Just leave it be, even if it may not be strictly illegal, which only a lawyer can advise you on, it's borderline amoral.

                                      Yes, but LGPL allows reverse engineering of the application to the extent necessary to link with the new/modified DLLs.

                                      This isn't reverse engineering, it's a requirement for a reason ... if I suspect you've changed the library in a way that I feel is distasteful (in any possible meaning of the word), I shall be able to swap it with my own fresh build. Also if I were to really want to reverse engineer your application, I wouldn't play a guessing game by relinking with some modified library, I'd just load it in the disassembler and crack it open.

                                      Read and abide by the Qt Code of Conduct

                                      1 Reply Last reply
                                      5

                                      • Login

                                      • Login or register to search.
                                      • First post
                                        Last post
                                      0
                                      • Categories
                                      • Recent
                                      • Tags
                                      • Popular
                                      • Users
                                      • Groups
                                      • Search
                                      • Get Qt Extensions
                                      • Unsolved