https://fedoraproject.org/wiki/Changes/F39-Lazarus-repackaging
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@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 widget library * `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 widget library * `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) * `lazarus-tools`
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 process: * `lazarus-doc` * `lazarus-ide` * `lazarus-lcl` * `lazarus-lcl-nogui` * `lazarus-lcl-gtk2` * `lazarus-tools`
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 modified package: [https://copr.fedorainfracloud.org/coprs/suve/lazarus-split/ copr/suve/lazarus-split].
== 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 == None.
== 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-*` packages.
devel-announce@lists.fedoraproject.org