Recent

Author Topic: Free Pascal and Lazarus packages on Debian  (Read 9166 times)

valdir.marcos

  • Hero Member
  • *****
  • Posts: 1059
Re: Free Pascal and Lazarus packages on Debian
« Reply #15 on: August 18, 2021, 06:03:10 am »
First of all, I still don't use QT on Linux.
I use GTK, Enlightenment and Moksha:
valdir, from memory (I don't have a viable Enlightenment VM at the moment) E can use the Qt widget set too. One of the people that help me with tomboy-ng is  big fan of E, always trying to convert me.  I find it too complicated ....

When I was asked to package tomboy-ng for Debian, they told me that new GTK2 apps were not welcome, the only option was Qt5 (that later changed in a complicated story). Right now, there seems to be quite a lot of progress in GTK3 but sadly, still a long way the go. So, really, any new app trying to get into the Debian repo needs to be Qt5. So, we have our work cut out for use !
Qt demands buying commercial license for commercial applications:
--------
"Qt for Application Development is dual-licensed under commercial and open source licenses. The commercial Qt license gives you the full rights to create and distribute software on your own terms without any open source license obligations. With the commercial license you also have access to the official Qt Support and close strategic relationship with The Qt Company to make sure your development goals are met.
Qt for Application Development is also available under GPL and LGPLv3 open source licenses. Qt tools and some libraries are only available under GPL. See the comparison chart for details. The Qt open source licensing is ideal for use cases such as open source projects with open source distribution, student/academic purposes, hobby projects, internal research projects without external distribution, or other projects where all (L)GPL obligations can be met."
https://www.qt.io/licensing/
----------

This is a no go to me.

About Enlightenment and Moksha: old personal habits die hard...
But I use GTK on my work.

About Debian packages, we can work on building Lazarus using both Qt and GTK.
I believe that GTK3 support will be ready before we finish our job on refacoring Lazarus packages on Debian.

avra

  • Hero Member
  • *****
  • Posts: 2249
    • Additional info
Re: Free Pascal and Lazarus packages on Debian
« Reply #16 on: August 18, 2021, 08:42:52 am »
Qt demands buying commercial license for commercial applications
This is not true. You can develop commercial and closed source proprietary software with QT LGPL3 if you comply with the license terms. I know they have made their best to hide that info, but it can be found and it was made in such a way to scare businesses to play on the safe side and make them pay to avoid the risk. I am not a lawyer and this is not a legal advice, but reading the following it is very clear:

At https://www.qt.io/faq/tag/qt-open-source-licensing?hsLang=en you can find this:
https://www.qt.io/faq/3.5.-can-i-use-the-community-open-source-version-to-develop-my-commercial-product
Quote
Q: Can I use the Community open source version to develop my commercial product?
A: It depends on how you license and distribute your product. The open source version of Qt is mainly distributed under the LGPL, version 3 and GPLv2/v3. You will need to fulfill the license obligations for these licenses when using Qt in your product.

https://www.qt.io/faq/3.7.-what-are-my-obligations-when-using-qt-under-the-lgpl
Quote
Q: What are my obligations when using Qt under the LGPL?
A: If you are using Qt under the LGPLv3, there are a couple of obligations you will need to fulfill :

Firstly, you have to note that some Qt open source modules are not available for LGPLv3 license, for example Qt Charts, Qt Data Visualization and Qt Virtual Keyboard. These modules are only available under GPLv3 for open source usage.
You will need to deliver the complete source code of Qt (including all modifications you did or applied) to your users/customers. Alternatively you need to provide a written offer with instructions on how to get the source code. Please also note that this has to be under your control, so a link to the source code provided by the Qt Project or Qt Company is not sufficient.
The LGPL allows you to keep the source code of your application private as long as it is “work that uses” the library. Dynamic linking is usually recommended here.
The user of your application has to be able to re-link your application against a different or modified version of the Qt library. With LGPLv3 it is also explicitly stated that the user needs to be able to run the re-linked binary on it’s intended target device. It is your obligation to provide the user with all necessary tools to enable this process. For embedded devices, this includes making the full toolchain used to compile the library available to users. For parts licensed under LGPLv3 you are obliged to provide full instructions on how to install the modified library on the target device (this is not clearly stated with LGPLv2.1, although running the application against the modified version of the library clearly is the stated intention of the license).
The user of an application or device using LGPL licensed software has to be notified of their rights by providing a copy of the LGPL license to the end user and displaying a prominent notice about your usage of LGPL licensed software.
The above freedoms cannot in any way be restricted by other licensing terms. If an application is not fully following all the obligations as outlined above, it is not allowed to be distributed at all.

You will also need to make sure that you are not using any GPL licensed modules.

https://www.qt.io/faq/3.12.-is-it-possible-to-distribute-applications-developed-with-open-source-version-of-qt-via-public-application-stores
Quote
Q: Is it possible to distribute applications developed with open source version of Qt via public application stores?
A: Each application store has their own unique terms and conditions, which may or may not be compatible with distributing applications under LGPL or GPL licenses.

The commercial license of Qt is compatible with the terms and conditions of all the leading application stores and thus typically the best choice for distributing a closed source application in various application stores.

https://www.qt.io/licensing/open-source-lgpl-obligations
Quote
Developing with LGPL
These four degrees of freedom are very important for the success of the open-source Qt Project, and it is important that all users of Qt under LGPL adhere to these and fully meet all the requirements set by the LGPL. It is recommended that a thorough legal analysis is conducted when choosing to use any open-source licenses. In many cases, the LGPL is a viable solution to use, but it is important that the freedoms of the LGPL are not restricted from the user of an application or device using an LGPL library such as Qt, which may be difficult to achieve in some use cases. For such cases the commercial licensing option is typically a better choice. The following requirements should be fulfilled when, for example, creating an application or a device with Qt using the LGPL:

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). It should be noted that the complete corresponding source code has to be delivered even if the library has not been modified at all.
In case of dynamic linking, it is possible, but not mandatory, to keep application source code proprietary as long as it is “work that uses the library” – typically achieved via dynamic linking of the library. In case of static linking of the library, the application itself may no longer be “work that uses the library” and thus become subject to LGPL. It is recommended to either link dynamically, or provide the application source code to the user under LGPL.
The user is allowed to change and re-link the library used in the application or device – including reverse engineering. With LGPLv3 it is explicitly stated that the user also needs to be able to run the re-linked binary, and that sufficient installation information must be provided. In practice, this forbids the creation of closed devices, also known as tivoization.
If the application or device is not fully following all requirements of the LGPL, it is not allowed to be distributed at all. This includes, for example, possible patent license restricting distribution of the application in which case there is no right to distribute.
The freedoms provided by the LGPL license cannot be in any way negotiated upon or restricted from any of the recipients – i.e. it is not possible to make such terms for an application or a device using the LGPL library that would in any way restrict the rights provided by the LGPL. For example some means of distribution, such as online application stores, may have rules that are in conflict with LGPL, in which case those cannot be used with the LGPL licensing option of Qt.
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.
The LGPLv3 doesn’t forbid anyone from implementing any kind of DRM technology. However, if someone breaks the DRM, the license says that he will be free to distribute his software. For more details, see the (L)GPLv3 license FAQ.
The LGPLv3 contains explicit patent clauses in order to prevent people from trying to enforce patent claims against other licensees of the open source libraries. The clauses are rather complex but extremely relevant especially for larger corporations with software patents. So, it is always recommended to go through the patent clauses carefully with a legal counsel to make sure this would not be an issue if deciding to use LGPLv3. For more information and details, please see the (L)GPLv3 FAQ.
This is not a complete list of LGPL requirements – please refer to the LGPL for complete list of requirements – it is always recommended to contact an experienced legal counsel to clarify detailed licensing suitability. Please note that The Qt Company does not offer legal guidance on whether or not a certain license is suited for your need, or if your application or device meets the LGPL requirements. In case there is any doubt whether or not the requirements of LGPL can be met in full, the commercial licensing option of Qt is often the best choice.
Quote
The Fine Print — Exceptions
The Qt Company has made the following exceptions from LGPL licensing:

Third party software already included in Qt is governed by the separate Open Source license terms under which the third party software has been distributed. All third party software is listed in the documentation, along with their licensing terms. For example, here you can find list of third party licenses used in Qt.
Libraries that must be statically linked, such as the QtMain Library (QaX Server, QaX Container) have been licensed under a BSD-style license.
Application code as part of examples, which can be used by Qt contributors in the application creation is generally licensed under a BSD-style license
Documentation is licensed under the GNU Free Documentation License

https://doc.qt.io/qt-5/qtgui-index.html
Quote
Licenses and Attributions
Qt GUI is available under commercial licenses from The Qt Company. In addition, it is available under free software licenses. Since Qt 5.4, these free software licenses are GNU Lesser General Public License, version 3, or the GNU General Public License, version 2. See Qt Licensing for further details.

Furthermore, Qt GUI in Qt 5.15.5 may contain third-party modules under following permissive licenses:
...

List of QT framework essentials and add ons compatible with LGPL3:
https://www.qt.io/product/features#js-6-3

This is quick summary of LGPL 3.0 from https://tldrlegal.com/license/gnu-lesser-general-public-license-v3-(lgpl-3):
Quote
This license is mainly applied to libraries. You may copy, distribute and modify the software provided that modifications are described and licensed for free under LGPL. Derivatives works (including modifications or anything statically linked to the library) can only be redistributed under LGPL, but applications that use the library don't have to be.

If I remember well, the only serious drawback of using QT under LGPL3 license on Windows for commercial applications was that only QT paying customers were allowed to distribute LTS prebuilt binaries and offline installer: https://www.qt.io/blog/qt-offering-changes-2020. It can be solved by building your own DLLs and distributing them instead.
« Last Edit: August 18, 2021, 09:12:58 am by avra »
ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

DonAlfredo

  • Hero Member
  • *****
  • Posts: 1497
Re: Free Pascal and Lazarus packages on Debian
« Reply #17 on: August 18, 2021, 09:47:32 am »
Fpcupdeluxe might be of help.
It has a QT5 version that will install FPC and Lazarus together with a bit of smart linking.
https://github.com/LongDirtyAnimAlf/fpcupdeluxe/releases/download/v2.0.1b/fpcupdeluxe-x86_64-linux-qt5.zip

And an install script for the needed extra packages.
https://github.com/LongDirtyAnimAlf/fpcupdeluxe/blob/master/installscripts/debian_x86-64.sh

dbannon

  • Hero Member
  • *****
  • Posts: 1604
    • tomboy-ng, a rewrite of the classic Tomboy
Re: Free Pascal and Lazarus packages on Debian
« Reply #18 on: August 18, 2021, 10:53:03 am »
.....
Qt demands buying commercial license for commercial applications:

Yes, but the discussion is about Debian Packaging, anything that goes into Debian is definitely not encumbered by a commercial restrictions. Debian does more, IMHO than any other operation to ensure they don't step over any licensing line. For example, you could use the QT5 version of the IDE to make commercial GTK2 applications (no, I don't know why you would want to, but you could)

Quote from: valdir.marcos
This is a no go to me.

Possibly (but read avra's writing) but not for a good proportion of Debian users. My point was that if you are writing a new app now and want it in the Debian Repository, it needs to be a QT app, not GTK2 one. While that will change as GTK3 matures, it where we are now.

Quote from: valdir.marcos
About Enlightenment and Moksha: old personal habits die hard...

Yeah ! I sure agree. I use a Mate desktop because its like the desktop I used 20 years ago !  And I love it !

Quote from: valdir.marcos
About Debian packages, we can work on building Lazarus using both Qt and GTK.
I believe that GTK3 support will be ready before we finish our job on refactoring Lazarus packages on Debian.

Thats an interesting statement. Are you saying we are close to completing GTK3 or are you saying we are a very long way from refactoring Lazarus Debian packages ?  (thats a joke by the way).

On the topic of refactoring Lazarus, perhaps a useful question to ask is "does anyone find the Debian approach preferable" ?  That particularly applies to the model of presenting Lazarus as six or eight packages, the IDE, GTK2LCL, GTK3LCL, QT5LCL etc ?  In practice, in my personal experience, that does not help in any way. I have never found a situation where I wanted just one or two of those packages. (But I did stop using Debian packages quite early in my "Lazarus career".) If we could speak on behalf of a significant proportion of Linux Lazarus users who all say "keep it together man!" maybe we could make some progress ?

Davo

Lazarus 2, Linux (and reluctantly Win10, OSX)
My Project - https://github.com/tomboy-notes/tomboy-ng

valdir.marcos

  • Hero Member
  • *****
  • Posts: 1059
Re: Free Pascal and Lazarus packages on Debian
« Reply #19 on: August 18, 2021, 01:32:33 pm »
Quote
Quote
Since GTK3, GTK4, and QT5 integration to LCL suffers from lack of developers and you are also saying that is an important matter, my suggestion is that you learn that subject to be helpful and get things done.
yep, that applies to us all !  Incidentally, Chris was very helpful in facilitating some of the work involved in adapting to the "Apple Silicon".

The big issue in Debian packaging is they have a policy of breaking things down to small modules to enable reuse.  And that makes very good sense most of the time. However, with FPC/Lazarus there is little or no 'cross use', very few other tools can use LCL for example and the IDE is really Pascal (probably FPC) only.  But a mob like Debian absolutely has to have rules and must, as much as possible stick to them. Its the only way a project like that can work.

Our standard install of FPC for example puts executable binaries under /usr/lib/fpc..., we then symlink it to /usr/bin.  In the debian install, when you call fpc, you get /usr/bin/fpc which is a symlink to /etc/alternatives/fpc that is a symlink to /usr/bin/x86_64-linux-gnu-fpc

That works fine for a fpc user who just wants to build native apps, we could, with some effort, write instructions to use the Debian model to make a cross compiler. Should we ?

The debian model does not work for 'our' Lazarus built, for example from source. Again, the problem is just that Lazarus does not recognise where things are, it could be made to work, again, should we do that ?

Things to do -

I am very happy to spend some time documenting the differences between how Debain package FPC/Lazarus compared to 'our' SourceForge model.  That may help us decide if there is sufficient common ground to work towards a compromise.  I do, however feel it may be too hard ...

I recently re-wrote the instructions to cross compile from Linux ot Windows, at the top I now say, very clearly, "Do not use a Repo version of FPC to do this" - that may well be our only long term solution.

Davo
I am still managing on Gitlab timeouts.
Convertion of FPC from svn/mantis to Gitlab has been completed. [August 09, 2021, 07:29:46 am]
https://forum.lazarus.freepascal.org/index.php/topic,55750.0.html

First:
1. We need an explanation and guide on how to install stable Free Pascal from Gitlab sources on a clean Debian 11 Bullseye [just released in 14/08/2021] similar to https://wiki.freepascal.org/Installing_the_Free_Pascal_Compiler;
2. Same for fixes Free Pascal on a secondary directory;
3. Same for trunk Free Pascal on a tertiary directory;
4. last one is cross-compilling.

Then, same for Lazarus from sources.

Afterwards, we need to strip down and understand how to install from he three simple huge DEB files:
fpc-laz_3.2.2-210709_amd64.deb   2021-07-09   39.3 MB
fpc-src_3.2.2-210709_amd64.deb   2021-07-09   30.6 MB
lazarus-project_2.2.0RC1-0_amd64.deb   2021-07-09   121.9 MB
https://sourceforge.net/projects/lazarus/files/Lazarus%20Linux%20amd64%20DEB/Lazarus%202.2RC1/

Only after understanding and documenting all that, we can start working on new Free Pascal and Lazarus Debian packages.

Extra information:
https://wiki.freepascal.org/Installing_Lazarus
https://wiki.freepascal.org/Installing_Lazarus_on_Linux
https://wiki.freepascal.org/Multiple_Lazarus
https://wiki.lazarus.freepascal.org/Install_on_Ubuntu_from_.deb_files

https://stackoverflow.com/questions/48003652/lazarus-link-failed-on-linux-mint-18-3-cinnamon
https://www.edivaldobrito.com.br/como-instalar-ide-lazarus-1-2-4-ubuntu/
http://pgopher.chm.bris.ac.uk/Help/compiling.htm
https://lazarus.lazarus.freepascal.narkive.com/qbwoiFLO/wiki-instructions-for-installing-fpc-trunk
https://github.com/LongDirtyAnimAlf/fpcupdeluxe

valdir.marcos

  • Hero Member
  • *****
  • Posts: 1059
Re: Free Pascal and Lazarus packages on Debian
« Reply #20 on: August 18, 2021, 01:36:40 pm »
Qt demands buying commercial license for commercial applications
This is not true. You can develop commercial and closed source proprietary software with QT LGPL3 if you comply with the license terms. I know they have made their best to hide that info, but it can be found and it was made in such a way to scare businesses to play on the safe side and make them pay to avoid the risk. I am not a lawyer and this is not a legal advice, but reading the following it is very clear:

At https://www.qt.io/faq/tag/qt-open-source-licensing?hsLang=en you can find this:
https://www.qt.io/faq/3.5.-can-i-use-the-community-open-source-version-to-develop-my-commercial-product
Quote
Q: Can I use the Community open source version to develop my commercial product?
A: It depends on how you license and distribute your product. The open source version of Qt is mainly distributed under the LGPL, version 3 and GPLv2/v3. You will need to fulfill the license obligations for these licenses when using Qt in your product.

https://www.qt.io/faq/3.7.-what-are-my-obligations-when-using-qt-under-the-lgpl
Quote
Q: What are my obligations when using Qt under the LGPL?
A: If you are using Qt under the LGPLv3, there are a couple of obligations you will need to fulfill :

Firstly, you have to note that some Qt open source modules are not available for LGPLv3 license, for example Qt Charts, Qt Data Visualization and Qt Virtual Keyboard. These modules are only available under GPLv3 for open source usage.
You will need to deliver the complete source code of Qt (including all modifications you did or applied) to your users/customers. Alternatively you need to provide a written offer with instructions on how to get the source code. Please also note that this has to be under your control, so a link to the source code provided by the Qt Project or Qt Company is not sufficient.
The LGPL allows you to keep the source code of your application private as long as it is “work that uses” the library. Dynamic linking is usually recommended here.
The user of your application has to be able to re-link your application against a different or modified version of the Qt library. With LGPLv3 it is also explicitly stated that the user needs to be able to run the re-linked binary on it’s intended target device. It is your obligation to provide the user with all necessary tools to enable this process. For embedded devices, this includes making the full toolchain used to compile the library available to users. For parts licensed under LGPLv3 you are obliged to provide full instructions on how to install the modified library on the target device (this is not clearly stated with LGPLv2.1, although running the application against the modified version of the library clearly is the stated intention of the license).
The user of an application or device using LGPL licensed software has to be notified of their rights by providing a copy of the LGPL license to the end user and displaying a prominent notice about your usage of LGPL licensed software.
The above freedoms cannot in any way be restricted by other licensing terms. If an application is not fully following all the obligations as outlined above, it is not allowed to be distributed at all.

You will also need to make sure that you are not using any GPL licensed modules.

https://www.qt.io/faq/3.12.-is-it-possible-to-distribute-applications-developed-with-open-source-version-of-qt-via-public-application-stores
Quote
Q: Is it possible to distribute applications developed with open source version of Qt via public application stores?
A: Each application store has their own unique terms and conditions, which may or may not be compatible with distributing applications under LGPL or GPL licenses.

The commercial license of Qt is compatible with the terms and conditions of all the leading application stores and thus typically the best choice for distributing a closed source application in various application stores.

https://www.qt.io/licensing/open-source-lgpl-obligations
Quote
Developing with LGPL
These four degrees of freedom are very important for the success of the open-source Qt Project, and it is important that all users of Qt under LGPL adhere to these and fully meet all the requirements set by the LGPL. It is recommended that a thorough legal analysis is conducted when choosing to use any open-source licenses. In many cases, the LGPL is a viable solution to use, but it is important that the freedoms of the LGPL are not restricted from the user of an application or device using an LGPL library such as Qt, which may be difficult to achieve in some use cases. For such cases the commercial licensing option is typically a better choice. The following requirements should be fulfilled when, for example, creating an application or a device with Qt using the LGPL:

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). It should be noted that the complete corresponding source code has to be delivered even if the library has not been modified at all.
In case of dynamic linking, it is possible, but not mandatory, to keep application source code proprietary as long as it is “work that uses the library” – typically achieved via dynamic linking of the library. In case of static linking of the library, the application itself may no longer be “work that uses the library” and thus become subject to LGPL. It is recommended to either link dynamically, or provide the application source code to the user under LGPL.
The user is allowed to change and re-link the library used in the application or device – including reverse engineering. With LGPLv3 it is explicitly stated that the user also needs to be able to run the re-linked binary, and that sufficient installation information must be provided. In practice, this forbids the creation of closed devices, also known as tivoization.
If the application or device is not fully following all requirements of the LGPL, it is not allowed to be distributed at all. This includes, for example, possible patent license restricting distribution of the application in which case there is no right to distribute.
The freedoms provided by the LGPL license cannot be in any way negotiated upon or restricted from any of the recipients – i.e. it is not possible to make such terms for an application or a device using the LGPL library that would in any way restrict the rights provided by the LGPL. For example some means of distribution, such as online application stores, may have rules that are in conflict with LGPL, in which case those cannot be used with the LGPL licensing option of Qt.
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.
The LGPLv3 doesn’t forbid anyone from implementing any kind of DRM technology. However, if someone breaks the DRM, the license says that he will be free to distribute his software. For more details, see the (L)GPLv3 license FAQ.
The LGPLv3 contains explicit patent clauses in order to prevent people from trying to enforce patent claims against other licensees of the open source libraries. The clauses are rather complex but extremely relevant especially for larger corporations with software patents. So, it is always recommended to go through the patent clauses carefully with a legal counsel to make sure this would not be an issue if deciding to use LGPLv3. For more information and details, please see the (L)GPLv3 FAQ.
This is not a complete list of LGPL requirements – please refer to the LGPL for complete list of requirements – it is always recommended to contact an experienced legal counsel to clarify detailed licensing suitability. Please note that The Qt Company does not offer legal guidance on whether or not a certain license is suited for your need, or if your application or device meets the LGPL requirements. In case there is any doubt whether or not the requirements of LGPL can be met in full, the commercial licensing option of Qt is often the best choice.
Quote
The Fine Print — Exceptions
The Qt Company has made the following exceptions from LGPL licensing:

Third party software already included in Qt is governed by the separate Open Source license terms under which the third party software has been distributed. All third party software is listed in the documentation, along with their licensing terms. For example, here you can find list of third party licenses used in Qt.
Libraries that must be statically linked, such as the QtMain Library (QaX Server, QaX Container) have been licensed under a BSD-style license.
Application code as part of examples, which can be used by Qt contributors in the application creation is generally licensed under a BSD-style license
Documentation is licensed under the GNU Free Documentation License

https://doc.qt.io/qt-5/qtgui-index.html
Quote
Licenses and Attributions
Qt GUI is available under commercial licenses from The Qt Company. In addition, it is available under free software licenses. Since Qt 5.4, these free software licenses are GNU Lesser General Public License, version 3, or the GNU General Public License, version 2. See Qt Licensing for further details.

Furthermore, Qt GUI in Qt 5.15.5 may contain third-party modules under following permissive licenses:
...

List of QT framework essentials and add ons compatible with LGPL3:
https://www.qt.io/product/features#js-6-3

This is quick summary of LGPL 3.0 from https://tldrlegal.com/license/gnu-lesser-general-public-license-v3-(lgpl-3):
Quote
This license is mainly applied to libraries. You may copy, distribute and modify the software provided that modifications are described and licensed for free under LGPL. Derivatives works (including modifications or anything statically linked to the library) can only be redistributed under LGPL, but applications that use the library don't have to be.

If I remember well, the only serious drawback of using QT under LGPL3 license on Windows for commercial applications was that only QT paying customers were allowed to distribute LTS prebuilt binaries and offline installer: https://www.qt.io/blog/qt-offering-changes-2020. It can be solved by building your own DLLs and distributing them instead.
I don't use Qt and I just took information from its official site.
I dind't know about all the information you provided.
Thanks, @avra.

valdir.marcos

  • Hero Member
  • *****
  • Posts: 1059
Re: Free Pascal and Lazarus packages on Debian
« Reply #21 on: August 18, 2021, 01:40:48 pm »
Fpcupdeluxe might be of help.
It has a QT5 version that will install FPC and Lazarus together with a bit of smart linking.
https://github.com/LongDirtyAnimAlf/fpcupdeluxe/releases/download/v2.0.1b/fpcupdeluxe-x86_64-linux-qt5.zip

And an install script for the needed extra packages.
https://github.com/LongDirtyAnimAlf/fpcupdeluxe/blob/master/installscripts/debian_x86-64.sh
Thanks @DonAlfredo.
And special thanks for your great effort and excellent work in fpcupdeluxe.

valdir.marcos

  • Hero Member
  • *****
  • Posts: 1059
Re: Free Pascal and Lazarus packages on Debian
« Reply #22 on: August 19, 2021, 01:56:08 am »
.....
Qt demands buying commercial license for commercial applications:
Yes, but the discussion is about Debian Packaging, anything that goes into Debian is definitely not encumbered by a commercial restrictions. Debian does more, IMHO than any other operation to ensure they don't step over any licensing line. For example, you could use the QT5 version of the IDE to make commercial GTK2 applications (no, I don't know why you would want to, but you could)
I agree with you and said that in the final lines (= "About Debian packages, we can work on building Lazarus using both Qt and GTK.").

Quote
Quote from: valdir.marcos
This is a no go to me.
Possibly (but read avra's writing) but not for a good proportion of Debian users. My point was that if you are writing a new app now and want it in the Debian Repository, it needs to be a QT app, not GTK2 one. While that will change as GTK3 matures, it where we are now.
Refactoring Debian packages wil take years, same as Lazarus' integration to GTK3 to mature.

Quote
Quote from: valdir.marcos
About Enlightenment and Moksha: old personal habits die hard...
Yeah ! I sure agree. I use a Mate desktop because its like the desktop I used 20 years ago !  And I love it !

Quote
Quote from: valdir.marcos
About Debian packages, we can work on building Lazarus using both Qt and GTK.
I believe that GTK3 support will be ready before we finish our job on refactoring Lazarus packages on Debian.
Thats an interesting statement. Are you saying we are close to completing GTK3 or are you saying we are a very long way from refactoring Lazarus Debian packages ?  (thats a joke by the way).
Refactoring Debian packages is a huge task and it wil take years to be done, same as Lazarus' integration to GTK3 to mature.

Quote
On the topic of refactoring Lazarus, perhaps a useful question to ask is "does anyone find the Debian approach preferable" ?  That particularly applies to the model of presenting Lazarus as six or eight packages, the IDE, GTK2LCL, GTK3LCL, QT5LCL etc ?  In practice, in my personal experience, that does not help in any way. I have never found a situation where I wanted just one or two of those packages. (But I did stop using Debian packages quite early in my "Lazarus career".) If we could speak on behalf of a significant proportion of Linux Lazarus users who all say "keep it together man!" maybe we could make some progress ?

Davo
Those are difficult questions to answer now.
The best we can do is to start the process and see what happens in its way.
The fastest timeframe to have this huge job done would be the release of Debian 12 Bookworm in two years from now, but this is not likely to happen.
https://wiki.debian.org/DebianBookworm

Then, we would have to wait until Debian 13 Trixie is released in four years from now:
https://wiki.debian.org/DebianTrixie

prof7bit

  • Full Member
  • ***
  • Posts: 139
Re: Free Pascal and Lazarus packages on Debian
« Reply #23 on: September 25, 2021, 01:08:48 pm »
I don't use Qt and I just took information from its official site.
I dind't know about all the information you provided.
Thanks, @avra.
Actually all you need to know is that it is available under LGPL.

These 4 letters alone tell you that you can link a commercial closed source application against it, no need to read all the surrounding legalize. LGPL grants a well known set of rights and all they can do with additional license texts is to grant additional rights on top of that but they can NEVER take any of the existing LGPL rights away, no matter how much they write.
« Last Edit: September 25, 2021, 01:12:43 pm by prof7bit »

Thaddy

  • Hero Member
  • *****
  • Posts: 10929
Re: Free Pascal and Lazarus packages on Debian
« Reply #24 on: September 25, 2021, 01:46:26 pm »
what you need to know is lgpl with linker exception.
There is a huge difference,
The average programmer productivity is 4-5 hours per day. Peak performance 72 hours for short bursts. MTBF is 1 second or less.

prof7bit

  • Full Member
  • ***
  • Posts: 139
Re: Free Pascal and Lazarus packages on Debian
« Reply #25 on: September 25, 2021, 02:07:07 pm »
what you need to know is lgpl with linker exception.
There is a huge difference,

You mean the STATIC linking exception.

You only need the static linking exception if you want to link someone's libraries statically into your ececutable (as it is for example the case with FCL/LCL packages, they all grant the static linking exception on top of the normal LGPL because they will be baked into your binary). Otherwise (with normal LGPL) you just install their unmodified DLLs as separate files (and their LGPL license text and copyright) and link dynamically at runtime which is what the LGPL was made for (and what LibQT5Pas will do anyways).

I have not yet heard about anybody seriously trying to link the entire Qt5 framework statically into their Lazarus executable, so you end up with a 100MB .exe. It might be possible but I would not even try to do this because ONLY then you would need the commercial license which grants the static linking right.
« Last Edit: September 25, 2021, 02:47:16 pm by prof7bit »

 

TinyPortal © 2005-2018