Crystal packaging in Fedora

Hi everyone,

I’m moving the proposal to bring the Crystal Programming Language into the official Fedora and EPEL repositories into its next phase. The initial infrastructure is now functional, and I’m looking for peer review, QA, and collaborators to help refine the implementation before we finalize the FESCo Change Proposal for Fedora 46.

:hammer_and_wrench: The Stack So Far

We’ve built a robust foundation to ensure Crystal packaging is as idiomatic and automated as possible:

  1. cr2rpm: A dedicated Python-based metadata engine and spec generator. It parses shard.yml to drive the build process, similar to rust2rpm or go2rpm. It includes a metadata subcommand for programmatic querying of shard properties.

  2. Standardized RPM Macros: A complete suite (%crystal_setup, %crystal_build, %crystal_install, etc.) that handles:

    • Offline Builds: Automatic detection and handling of vendor tarballs (Source1).
    • Architecture Support: Standardized ExclusiveArch for x86_64 and aarch64.
    • FHS Compliance: Proper placement of binaries and the Crystal standard library.
  3. CI & Validation: The tooling is backed by a pytest suite and passes rpmlint with zero errors/warnings on generated specs.

:microscope: Request for Review & QA

I am looking for “Vibe-Engineers” and packagers to tear this apart and help us find the edge cases:

  • Logic & Architecture: Review the macros.crystal implementation. Is there a more efficient way to handle the bootstrap or the vendor caching?

  • Tooling QA: Run cr2rpm against complex shards (especially those with heavy C-bindings or non-standard directory structures) and report where the spec generation fails or produces non-idiomatic results.

  • EPEL Strategy: Review the epel.rst plan. We need to ensure long-term maintainability given RHEL’s lifecycle.

  • Opinions Welcome: Should we change the naming convention for libraries? Is the %crystal_setup parameterization flexible enough?

:package: Repository & Docs

The entire planning, guidelines, and tooling source is hosted here:
:backhand_index_pointing_right: renich/crystal-in-fedora: Project to take Crystal to Fedora Linux and make it a first-class citizen there. - Codeberg.org

If you’ve ever wanted a first-class Crystal experience on a major enterprise-grade distro, now is the time to weigh in on the foundation.

Looking forward to your PRs, issues, and brutal honesty.

Cheers,

Rénich Bon Ćirić
Fedora Packager