From Fedora Project Wiki

Remove GCC from BuildRoot

Summary

Removing gcc and gcc-c++ from default buildroot in Koji and mock.

Owner

  • Name: Igor Gnatenko
  • Email: ignatenkobrain@fedoraproject.org
  • Release notes owner:

Current status

Detailed Description

Since beginning of Fedora, gcc (and gcc-c++) are installed in every buildroot. Times have changed and nowadays many of packages are not written in C/C++, they are written in Python, Ruby, Node.js, Go, Rust, Perl and so on so they don't need to have C/C++ compiler. Installing gcc and gcc-c++ takes time so if we remove it, we can improve build times for many of the packages.

  • Remove gcc and gcc-c++ from build group in Koji.
  • Remove gcc and gcc-c++ from buildsys-build group in comps (fedora-comps).
  • Try to automatically fix affected packages.

Benefit to Fedora

  • Smaller build times (for packages which do not need gcc/gcc-c++ during build).
  • Better package compliance with Packaging Guidelines.
  • Cleaner buildroot environment.

Scope

  • Proposal owners: Automatically fix as much as possible of affected packages and send Pull Request for fedora-comps.
  • Other developers: If package has not been automatically fixed by owners, fix it manually.
  • Release engineering: #7317 (rel-eng should adjust koji configuration and merge Pull Request for fedora-comps)
  • Policies and guidelines: Nothing needed, guidelines already have paragraph about listing all required BuildRequires.
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

This change is internal to packaging and is not visible to end users.

How To Test

You can test that your package still builds without gcc and gcc-c++ in the buildroot by running mock or fedpkg mockbuild with a modified configuration file that excludes gcc and gcc-c++ from the buildroot. Instructions can be found here.

User Experience

Users (developers) who build packages could notice this change if they use gcc/gcc-c++ in their packages. Solution is simple, add appropriate BuildRequires.

Dependencies

Change in koji settings and fedora-comps is required.

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) Revert changes in koji/fedora-comps by persons who have access there.
  • Contingency deadline: Beta Freeze
  • Blocks release? Hard to say, we would need to fix packages.

Documentation

Release Notes