From Fedora Project Wiki
 
(6 intermediate revisions by the same user not shown)
Line 34: Line 34:


<!-- Select proper category, default is Self Contained Change -->
<!-- Select proper category, default is Self Contained Change -->
[[Category:SelfContainedChange]]
<!--[[Category:SelfContainedChange]] -->
<!-- [[Category:SystemWideChange]] -->
[[Category:SystemWideChange]]


* Targeted release: [[Releases/36 | Fedora Linux 36 ]]  
* Targeted release: [[Releases/36 | Fedora Linux 36 ]]  
Line 63: Line 63:
* redhat-hardened-clang.cfg
* redhat-hardened-clang.cfg
* buildflags.md
* buildflags.md


In addition the following macros from the macros file will be moved into a macros.c-cxx file in the new package:
In addition the following macros from the macros file will be moved into a macros.c-cxx file in the new package:
Line 119: Line 120:
* %__brp_strip_lto
* %__brp_strip_lto
* %__brp_llvm_compile_lto_elf
* %__brp_llvm_compile_lto_elf
The full implementation of these changes can be found here:
[https://src.fedoraproject.org/fork/tstellar/rpms/redhat-rpm-config/c/402d1145170b8e3ea3b2861c88e757b33b1e74c9?branch=c-cxx-macros-split redhat-rpm-config]
[https://pagure.io/fork/tstellar/c-cxx-rpm-macros/c/884c98a2274282fbac195d521d82efae9814c309?branch=rawhide c-cxx-rpm-macros]


== Feedback ==
== Feedback ==
Line 124: Line 130:


== Benefit to Fedora ==
== Benefit to Fedora ==
This change will not be visible to Fedora end-users, but it will provide some benefits to Fedora packagers:
* Moving some of the brp scripts out of redhat-rpm-config and into c-cxx-rpm-macros means that they won't be run for packages that don't depend on clang or gcc.  This will help speed up some builds.
* This will help reduce the review burden of redhat-rpm-config maintainers who aren't interested in C/C++ changes.
<!-- What is the benefit to the distribution?  Will the software we generate be improved? How will the process of creating Fedora releases be improved?
<!-- What is the benefit to the distribution?  Will the software we generate be improved? How will the process of creating Fedora releases be improved?
    
    
Line 154: Line 165:
== Scope ==
== Scope ==
* Proposal owners:
* Proposal owners:
  * Create new c-cxx-rpm-macros package and move the relevant content from redhat-rpm-config.
  * Test the changes.
<!-- What work do the feature owners have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
<!-- What work do the feature owners have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->


* Other developers: <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Other developers: N/A <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- What work do other developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
<!-- What work do other developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->


Line 194: Line 207:


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
 
These changes will be tested by doing test builds of a sampling of Fedora packages.


== User Experience ==
== User Experience ==
Line 217: Line 230:


<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "Revert the shipped configuration".  Or it might not (e.g. rebuilding a number of dependent packages).  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "Revert the shipped configuration".  Or it might not (e.g. rebuilding a number of dependent packages).  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
* Contingency mechanism: (What to do?  Who will do it?) N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Contingency mechanism: (What to do?  Who will do it?) The proposal owners will revert the changes in redhat-rpm-config and removed the c-cxx-rpm-macros package <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- When is the last time the contingency mechanism can be put in place?  This will typically be the beta freeze. -->
<!-- When is the last time the contingency mechanism can be put in place?  This will typically be the beta freeze. -->
* Contingency deadline: N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Contingency deadline: Beta Freeze <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? -->
<!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? -->
* Blocks release? N/A (not a System Wide Change), Yes/No <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Blocks release? No <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
 


== Documentation ==
== Documentation ==
Line 228: Line 240:


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)
No documentation changes planned.


== Release Notes ==
== Release Notes ==

Latest revision as of 08:25, 1 December 2021

Comments and Explanations
The page source contains comments providing guidance to fill out each section. They are invisible when viewing this page. To read it, choose the "view source" link.
Copy the source to a new page before making changes! DO NOT EDIT THIS TEMPLATE FOR YOUR CHANGE PROPOSAL.
Guidance
For details on how to fill out this form, see the documentation.


Change Proposal Name

C and C++ RPM Macros Package

Summary

Create a new package called c-cxx-rpm-macros and move all C and C++ related macros into it from redhat-rpm-config.


Owner

Current status

  • Targeted release: Fedora Linux 36
  • Last updated: 2021-12-01
  • FESCo issue: <will be assigned by the Wrangler>
  • Tracker bug: <will be assigned by the Wrangler>
  • Release notes tracker: <will be assigned by the Wrangler>

Detailed Description

A new package called c-cxx-rpm-macros will be created and added as a dependency of redhat-rpm-config. The following files and directories be moved into it from redhat-rpm-config:

  • brp-strip-lto
  • brp-llvm-compile-lto-elf
  • redhat-hardened-ld
  • redhat-hardened-cc1
  • redhat-annobin-cc1
  • rpmrc
  • tests/
  • redhat-hardened-clang.cfg
  • buildflags.md


In addition the following macros from the macros file will be moved into a macros.c-cxx file in the new package:

  • %__cc_gcc
  • %__cxx_gcc
  • %__cpp_gcc
  • %__cc_clang
  • %__cxx_clang
  • %__cpp_clang
  • %toolchain
  • %__cc
  • %__cxx
  • %__cpp
  • %build_cc
  • %build_cxx
  • %build_cpp
  • %build_cflags
  • %build_cxxflags
  • %build_ldflags
  • %__extension_strip_flags()
  • %extension_cflags
  • %extension_cxxflags
  • %extension_fflags
  • %extension_ldflags
  • %__global_cflags
  • %__global_cxxflags
  • %__global_fflags
  • %__global_fcflags
  • %__global_ldflags
  • %__cflags_arch_x86_64
  • %__cflags_arch_s390x
  • %_hardening_clang_cflags
  • %_hardening_cflags
  • %_hardening_ldflags
  • %_hardened_build
  • %_hardened_cflags
  • %_hardened_ldflags
  • %_annotated_build
  • %_annobin_gcc_plugin
  • %_annobin_clang_plugin
  • %_annotation_plugin
  • %_annotation_cflags
  • %_annotation_ldflags
  • %_ld_symbols_flags
  • %_ld_as_needed
  • %_ld_as_needed_flags
  • %_gcc_lto_cflags
  • %_clang_lto_cflags
  • %_lto_cflags
  • %_general_options
  • %_warning_options
  • %_preprocessor_defines
  • %_legacy_options
  • %__global_compiler_flags
  • %__brp_strip_lto
  • %__brp_llvm_compile_lto_elf


The full implementation of these changes can be found here: redhat-rpm-config c-cxx-rpm-macros

Feedback

Benefit to Fedora

This change will not be visible to Fedora end-users, but it will provide some benefits to Fedora packagers:

  • Moving some of the brp scripts out of redhat-rpm-config and into c-cxx-rpm-macros means that they won't be run for packages that don't depend on clang or gcc. This will help speed up some builds.
  • This will help reduce the review burden of redhat-rpm-config maintainers who aren't interested in C/C++ changes.


Scope

  • Proposal owners:
 * Create new c-cxx-rpm-macros package and move the relevant content from redhat-rpm-config.
 * Test the changes.
  • Other developers: N/A
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with Objectives:

Upgrade/compatibility impact

How To Test

These changes will be tested by doing test builds of a sampling of Fedora packages.

User Experience

Dependencies

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) The proposal owners will revert the changes in redhat-rpm-config and removed the c-cxx-rpm-macros package
  • Contingency deadline: Beta Freeze
  • Blocks release? No

Documentation

No documentation changes planned.

Release Notes