== Summary ==
Update the Free Pascal Compiler used within Fedora to version 3.2.0,
once it is published, and enable building (previously unsupported)
AArch64 and ppc64le packages using the compiler.
== Owners ==
* Name: [[User:suve|Artur Iwicki]]
* Email: <fedora(a)svgames.pl>
* Name: [[User:joost|Joost van der Sluis]]
* Email: <joost(a)cnoc.nl>
== Detailed Description ==
The Free Pascal Compiler team plans to release a new release, 3.2.0,
somewhere until the end of this year (2019). This date falls within
the Fedora 32 release schedule, so the new compiler version could be
introduced into F32 once it's released.
== Benefit to Fedora ==
The Free Pascal Compiler will support new architectures, which in turn
will allow programs compiled using FPC to run on more architectures
supported by Fedora.
See also [https://wiki.freepascal.org/FPC_New_Features_3.2|FPC
Features 3.2] for a list of other new compiler features.
== Scope ==
All packages depending on `fpc` should be rebuilt with the new `fpc`
once it hits F32, or, if there is not enough time for that, just all
packages built after the new `fpc` hits the buildroots.
* Proposal owners:
** Update the `fpc` package to version 3.2.0.
** Cross-compile the compiler for AArch64 and ppc64le (required for
** Add AArch64 and ppc64le to the `ExclusiveArch:` tag in the package spec.
** Build the compiler for the new architectures, using the
** Build the compiler once again, this time using the self-hosted binary.
** Update the `fpc-rpm-macros` package to accurately reflect the new,
expanded architecture list.
* Other developers: In the first few days or weeks, just voluntary
rebuilds using the new `fpc`. Should there be any build failures, look
at the [https://wiki.freepascal.org/User_Changes_3.2|User
page to see if the package is affected by any backwards-incompatible
change. If the packaged program/library does not support one of the
newly introduced architectures (AArch64/ppc64le), either resolve the
issue or add an `ExcludeArch:` tag to the spec.
* Release engineering: Mass rebuild requested for F32.
* Policies and guidelines: No changes needed.
* Trademark approval: N/A (not needed for this Change)
== Upgrade/compatibility impact ==
== How To Test ==
Since the main impact of this change is adding support for new
architectures, a mass-rebuild of dependent packages will also act as a
Users wanting to test this change may want to submit a scratch build
against rawhide. If needed, a [b]copr[/b] repo may also be created, so
anyone interested may install the compiler on F31 or F30.
== User Experience ==
FPC-dependent packages will become available on a larger number of
== Dependencies ==
Lazarus depends on FPC exact version, so it will need to be rebuilt.
== Contingency Plan ==
If bugs are discovered, I'd appreciate help from the package owners in
preparing self-contained testcases to speed up analysis and fixing the
bugs. I do not expect the compiler to introduce any bugs for x86 /
x86_64 / ARM, so the main question will be whether the new AArch64 and
ppc64le targets work correctly.
* Contingency mechanism: If errors occur only for AArch64 / ppc64le
builds, keep the compiler at the new version (3.2.0), but disable
AArch64 and ppc64le (attempt to enable them again once F32 branches
from Rawhide). If errors are also spotted on x86 / x86_64 / ARM,
revert to the the older version (3.0.4). After choosing either option,
perform a mass rebuild of dependent packages.
* Contingency deadline: Before release
* Blocks release? No
* Blocks product? No
== Documentation ==
Free Pascal wiki pages:
New Features 3.2]
== Release Notes ==
Fedora 32 ships with Free Pascal Compiler 3.2.0, see the
3.2] page for a list of new features and consult the
Changes 3.2] page
for a list of backwards-incompatible changes.
He / Him / His
Fedora Program Manager