From Fedora Project Wiki
No edit summary
(Mark the page as ready for wrangler)
Line 13: Line 13:
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo)
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo)
* FESCo shepherd: [[User:FASAccountName| Shehperd name]] <email address>
* FESCo shepherd: [[User:FASAccountName| Shehperd name]] <email address>
-->
<!--- UNCOMMENT only if this Change aims specific product, working group (Cloud, Workstation, Server, Base, Env & Stacks)
* Product:
* Responsible WG:
-->
-->


Line 82: Line 78:
Fedora 32 ships with Free Pascal Compiler 3.2.0, see the [https://wiki.freepascal.org/FPC_New_Features_3.2|FPC New Features 3.2] page for a list of new features and consult the [https://wiki.freepascal.org/User_Changes_3.2|User Changes 3.2] page for a list of backwards-incompatible changes.
Fedora 32 ships with Free Pascal Compiler 3.2.0, see the [https://wiki.freepascal.org/FPC_New_Features_3.2|FPC New Features 3.2] page for a list of new features and consult the [https://wiki.freepascal.org/User_Changes_3.2|User Changes 3.2] page for a list of backwards-incompatible changes.


[[Category:ChangePageIncomplete]]
[[Category:ChangeReadyForWrangler]]
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
<!-- The Wrangler announces the Change to the devel-announce list and changes the category to Category:ChangeAnnounced (no action required) -->
<!-- After review, the Wrangler will move your page to Category:ChangeReadyForFesco... if it still needs more work it will move back to Category:ChangePageIncomplete-->
 
[[Category:SystemWideChange]]
[[Category:SystemWideChange]]

Revision as of 09:15, 10 October 2019

Free Pascal Compiler 3.2.0

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


Current status

  • Targeted release: Fedora 32
  • Last updated: 2019-10-10
  • Tracker bug: <will be assigned by the Wrangler>
  • Release notes tracker: <will be assigned by the Wrangler>

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 New 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 bootstrapping).
    • Add AArch64 and ppc64le to the ExclusiveArch: tag in the package spec.
    • Build the compiler for the new architectures, using the cross-compiled binaries.
    • 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 Changes 3.2 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

No 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 test.

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 architectures.

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:

Release Notes

Fedora 32 ships with Free Pascal Compiler 3.2.0, see the New Features 3.2 page for a list of new features and consult the Changes 3.2 page for a list of backwards-incompatible changes.