This document represents a proposed Change. As part of the Changes
process, proposals are publicly announced in order to receive
community feedback. This proposal will only be implemented if approved
by the Fedora Engineering Steering Committee.
== Summary ==
Split the `lazarus` package (the Lazarus IDE for Free Pascal) into
several sub-packages (built from the same spec file) and enable
building the Lazarus Component Library for multiple widget sets,
instead of just the default GTK2.
== Owner ==
* Name: [[User:suve|Artur Frenszek-Iwicki]]
* Email: <fedora(a)svgames.pl>
== Detailed Description ==
The `lazarus` package will be split into multiple packages:
* `lazarus-doc` - documentation
* `lazarus-ide` - the IDE itself
* `lazarus-lcl` - base package for the LCL (Lazarus Component
Library), containing common LCL parts
* `lazarus-lcl-nogui` - components for building non-graphical applications
* `lazarus-lcl-gtk` - components for building programs using the GTK2
* `lazarus-tools` - command-line tools shipped with Lazarus, e.g. `lazbuild`
The `lazarus` package will become a metapackage - it will not contain
any files itself, instead pulling in all the packages mentioned above.
Several new packages will also be introduced:
* `lazarus-lcl-gtk3` - support for building programs using the GTK3
* `lazarus-lcl-qt` - ditto, for Qt4
* `lazarus-lcl-qt5` - ditto, for Qt5
== Benefit to Fedora ==
Currently, Lazarus in Fedora only supports building programs with the
GTK2 widget set. With this change, Lazarus will gain support for
additional widget sets, allowing users to build their applications
using GTK3, Qt4 and Qt5.
Maintainers of packages depending on Lazarus can switch from
BuildRequiring `lazarus` to the following set:
* `lazarus-lcl-nogui` (may not be needed, depending on the program)
* `lazarus-lcl-gtk2` (or a different widget set, if the maintainer so wishes)
This minimal package set is about ~60MiB smaller than the current
Lazarus package. This should make builds slightly faster.
== Scope ==
* Proposal owners:
** Edit `lazarus.spec` as required and rebuild the package, preferably
before the Mass Rebuild.
* Other developers: No action required.
* Release engineering: No action required.
* Policies and guidelines: N/A (not needed for this Change)
* Trademark approval: N/A (not needed for this Change)
* Alignment with Objectives: N/A
== Upgrade/compatibility impact ==
When upgrading Fedora 39, users who have the `lazarus` package
installed should see the following sub-packages pulled in during the
This set of packages should provide the same files and functionality
as the current monolithic `lazarus` package.
== How To Test ==
A copr repository has been created where users can test out the
== User Experience ==
For users not interested in different widget sets, this Change should
not affect their experience. Those wanting to build their programs
using GTK3, Qt4 or Qt5 will gain the ability to do so.
== Dependencies ==
== Contingency Plan ==
Worst case scenario - give up, revert to an old version of
`lazarus.spec` and rebuild the package.
== Documentation ==
N/A (not a System Wide Change)
== Release Notes ==
The `lazarus` package has been split into multiple sub-packages. Apart
from GTK2, the IDE now supports building programs using the GTK3, Qt4
and Qt5 widget sets - available by installing `lazarus-lcl-*`
He / Him / His
Fedora Program Manager