No edit summary |
No edit summary |
||
(11 intermediate revisions by 3 users not shown) | |||
Line 32: | Line 32: | ||
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development | CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development | ||
--> | --> | ||
* Tracker bug: | * Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1551327 #1551327] | ||
* Release Notes tracking: [https://pagure.io/fedora-docs/release-notes/issue/123 #123] | |||
== Detailed Description == | == 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. | 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 <code>gcc</code> and <code>gcc-c++</code> from <code>build</code> group in Koji. | |||
* Remove <code>gcc</code> and <code>gcc-c++</code> from <code>buildsys-build</code> group in comps (fedora-comps). | |||
* Try to automatically fix affected packages. | |||
== Benefit to Fedora == | == 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 == | == Scope == | ||
* Proposal owners: | * 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: [https://pagure.io/releng/issue/7317 #7317] (rel-eng should adjust koji configuration and merge Pull Request for fedora-comps) | |||
* Other developers: | |||
* Release engineering: [https://pagure.io/releng/issue/7317 #7317] ( | |||
** [[Fedora_Program_Management/ReleaseBlocking/Fedora{{FedoraVersionNumber|next}}|List of deliverables]]: N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ** [[Fedora_Program_Management/ReleaseBlocking/Fedora{{FedoraVersionNumber|next}}|List of deliverables]]: N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
* Policies and guidelines: Nothing needed, guidelines already have paragraph about listing all required BuildRequires. | * Policies and guidelines: Nothing needed, guidelines already have paragraph about listing all required BuildRequires. | ||
Line 52: | Line 56: | ||
== Upgrade/compatibility impact == | == Upgrade/compatibility impact == | ||
This change is internal to packaging and is not visible to end users. | |||
== How To Test == | == How To Test == | ||
You can test that your package still builds without gcc and gcc-c++ in the buildroot by running <code>mock</code> or <code>fedpkg mockbuild</code> with a modified configuration file that excludes <code>gcc</code> and <code>gcc-c++</code> from the buildroot. Instructions can be found [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/4GUVCYWZ2BS3YHIS7ZFHJO5MHIIUQY3S/ here]. | |||
== User Experience == | == User Experience == | ||
Line 61: | Line 66: | ||
== Dependencies == | == Dependencies == | ||
Change in koji settings and fedora-comps is required. | |||
== Contingency Plan == | == Contingency Plan == | ||
Line 81: | Line 86: | ||
--> | --> | ||
[[Category: | [[Category:ChangeAcceptedF29]] | ||
<!-- When your change proposal page is completed and ready for review and announcement --> | <!-- When your change proposal page is completed and ready for review and announcement --> | ||
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler --> | <!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler --> |
Latest revision as of 19:46, 4 March 2018
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
- Targeted release: Fedora 29
- Last updated: 2018-03-04
- Tracker bug: #1551327
- Release Notes tracking: #123
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
andgcc-c++
frombuild
group in Koji. - Remove
gcc
andgcc-c++
frombuildsys-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)
- List of deliverables: N/A (not a System Wide Change)
- 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
- https://fedoraproject.org/wiki/Packaging:C_and_C%2B%2B#BuildRequires_and_Requires
- https://fedoraproject.org/wiki/Packaging:Guidelines#Build-Time_Dependencies_.28BuildRequires.29