(Announcing the Change proposal) |
(Change submitted to FESCo) |
||
Line 15: | Line 15: | ||
== Current status == | == Current status == | ||
[[Category: | [[Category:ChangeReadyForFesco]] | ||
[[Category:SelfContainedChange]] | [[Category:SelfContainedChange]] | ||
Line 27: | Line 27: | ||
--> | --> | ||
* [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/GIFJBZECXXQMHGOFCXYOYL5Z3RIM53WB/ devel thread] | * [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/GIFJBZECXXQMHGOFCXYOYL5Z3RIM53WB/ devel thread] | ||
* FESCo issue: | * FESCo issue: [https://pagure.io/fesco/issue/2992 #2992] | ||
* Tracker bug: <will be assigned by the Wrangler> | * Tracker bug: <will be assigned by the Wrangler> | ||
* Release notes tracker: <will be assigned by the Wrangler> | * Release notes tracker: <will be assigned by the Wrangler> |
Revision as of 15:07, 3 May 2023
Lazarus repackaging
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: Artur Frenszek-Iwicki
- Email: <fedora@svgames.pl>
Current status
- Targeted release: Fedora Linux 39
- Last updated: 2023-05-03
- devel thread
- FESCo issue: #2992
- Tracker bug: <will be assigned by the Wrangler>
- Release notes tracker: <will be assigned by the Wrangler>
Detailed Description
The lazarus
package will be split into multiple packages:
lazarus-doc
- documentationlazarus-ide
- the IDE itselflazarus-lcl
- base package for the LCL (Lazarus Component Library), containing common LCL partslazarus-lcl-nogui
- components for building non-graphical applicationslazarus-lcl-gtk
- components for building programs using the GTK2 widget librarylazarus-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 librarylazarus-lcl-qt
- ditto, for Qt4lazarus-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.
- Edit
- 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: 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.