F43 Change Proposal: Deprecate YASM (self-contained)

Deprecate YASM

This is a proposed Change for Fedora Linux.
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.

Wiki
Announced

:link: Summary

This Change proposes to deprecate YASM and build packages with NASM instead.

:link: Owner

:link: Detailed Description

YASM is unmaintained upstream currently, but it’s still used to compile assembly sources in 12 Fedora packages, including critical ones like Firefox. Last release was in July 2019 and last commit was in June 2024. Issues are left unresolved and pull requests unreviewed. It is getting dropped from other distributions already. In contrast, NASM is still maintained, with last release in April 2024 and last commit in November 2024 with no indication of upstream abandoning development. Most, if not all upstreams support building using NASM already, so the proposal is to switch their build dependency to NASM instead.

:link: Feedback

:link: Benefit to Fedora

Switching to compiling assembly sources with NASM ensures (critical) applications are built with a maintained assembler.

:link: Scope

  • Proposal owners:

    • Open pull requests to switch BuildRequires: yasm to nasm or make the changes directly where permitted.
    • Mark yasm as deprecated by adding Provides: deprecated(yasm)
    • Work with affected package maintainers and upstreams to ensure they build with nasm correctly.
  • Other developers: Affected package maintainers are encouraged (but not required) to ensure their packages build with nasm instead of yasm.

  • Release engineering: N/A (not a System-wide Change)

  • Policies and guidelines: N/A (not needed for this Change)

  • Trademark approval: N/A (not needed for this Change)

  • Alignment with the Fedora Strategy: N/A (not needed for this Change)

:link: Upgrade/compatibility impact

No new packages should require yasm to build as it will be marked as deprecated. Existing packages will be built using nasm going forward. The change should be transparent to users.

:link: How To Test

fedrq wrsrc -s yasm -F name returns no packages depending on yasm to build.

:link: User Experience

There should be no noticeable user impact.

:link: Dependencies

:link: Contingency Plan

  • Contingency mechanism: Revert BuildRequires: back to yasm and remove the deprecation.
  • Contingency deadline: Final Freeze
  • Blocks release? N/A (not a System Wide Change)

:link: Documentation

N/A (not a System Wide Change)

:link: Release Notes

YASM assembler has been deprecated and all packages that required it to build are now built using NASM.

Last edited by @amoloney 2025-07-24T22:36:05Z

Last edited by @amoloney 2025-07-24T22:36:05Z

1 Like

How do you feel about the proposal as written?

  • Strongly in favor
  • In favor, with reservations
  • Neutral
  • Opposed, but could be convinced
  • Strongly opposed
0 voters

If you are in favor but have reservations, or are opposed but something could change your mind, please explain in a reply.

We want everyone to be heard, but many posts repeating the same thing actually makes that harder. If you have something new to say, please say it. If, instead, you find someone has already covered what you’d like to express, please simply give that post a :heart: instead of reiterating. You can even do this by email, by replying with the heart emoji or just “+1”. This will make long topics easier to follow.

Please note that this is an advisory “straw poll” meant to gauge sentiment. It isn’t a vote or a scientific survey. See About the Change Proposals category for more about the Change Process and moderation policy.

Does Firefox (identified as using yasm), officially support using nasm as an alternative? While I have personally been involved in moving some non-Fedora packages to nasm from yasm, I would not want to build something as important to the community as Firefox using an unsupported (by the upstream) assembler.

Deprecating it to prevent additional packages to be introduced using yasm seems quite appropriate moving forward (as long as FESCo can waive the deprecation for some future introduced critical packages, should they happen (which seems unlikely, but…)).

This is a nice cleanup.

I wouldn’t worry about firefox too much: it is probably calling the assembler in a fixed way and as long as yasm works it works, and even if yasm is buggy, those bugs don’t matter. So I guess it’s fine if firefox keeps using it for a while.

Firefox has no actual dependency on yasm, see: PR#94: Drop unused yasm build dependency - rpms/firefox - src.fedoraproject.org .