F37 proposal: GNU Toolchain Update (glibc 2.36, binutils 2.38) (late System-Wide Change proposal)

2022-07-01 Thread Ben Cotton
https://fedoraproject.org/wiki/Changes/GNUToolchainF37

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.


== Summary ==
Update the Fedora 37 GNU Toolchain to glibc 2.36, binutils 2.38.

The set of core GNU Toolchain packages for Fedora 37 are as follows:

* GNU C Compiler 12 (first released in Fedora 36)
** Associated runtimes for C++ (libstdc++), Go (gccgo), OpenMP (gomp),
Fortran (gfortran), D (phobos), Objective C/C++.
* GNU Binary Utilities 2.38 (expected release in Fedora 37)
* GNU C Library 2.36 (expected release in Fedora 37)
* GNU Debugger 12 (immediately available in Fedora 35, 36, and 37)

The glibc 2.36 change will be tracked in this top-level GNU Toolchain
system-wide update.

The binutils 2.38 change will be tracked in this top-level GNU
Toolchain system-wide update.

== Owner ==
* Name: [[User:codonell|Carlos O'Donell]]
* Email: car...@redhat.com



== Detailed Description ==
The GNU Compiler Collection, GNU C Library, GNU Debugger, and GNU
Binary Utilities make up the core part of the GNU Toolchain and it is
useful for our users to transition these components as a complete
implementation when making a new release of Fedora.

The GNU C Library version 2.36 is expected to be released in the
beginning of August 2022; we have started closely tracking the glibc
2.36 development code in Fedora Rawhide and are addressing any issues
as they arise. Given the present schedule Fedora 37 will branch after
the release of glibc 2.36. However, the mass rebuild schedule means
Fedora 37 will mass rebuild (if required) before the final release of
glibc 2.36, but after the ABI is frozen.

The GNU Binutils version 2.38 was released in February 2022; and we
have already been using this version of binutils in Fedora Rawhide
successfully to build the distribution. Given the present schedule for
Fedora 37 we will continue to use Binutils 2.38 for Fedora 37.


== Benefit to Fedora ==
Stays up to date with latest features, improvements, security and bug
fixes from gcc, glibc, binutils, and gdb upstream.

The goal is to track and transition to the latest components of the
GNU Toolchain.

== Scope ==
* Proposal owners: Fedora Toolchain Team (gcc, glibc, binutils, gdb,
...) developers need to ensure that gcc, glibc, binutils, and gdb in
rawhide are stable and ready for the Fedora 37 branch.

* Other developers: Given that glibc is backwards compatible and we
have been testing the new glibc in rawhide it should make very little
impact when updated, except for the occasional deprecation warnings
and removal of legacy interfaces from public header files.

* Release engineering: A mass rebuild is strongly encouraged;
[https://pagure.io/releng/issue/10865 #10865]

* Policies and guidelines: N/A (not needed for this Change)
* Trademark approval: N/A (not needed for this Change)
* Alignment with Objectives: N/A


== Upgrade/compatibility impact ==
Any source level changes required for glibc 2.36 will be noted here:
https://sourceware.org/glibc/wiki/Release/2.36#Packaging_Changes

== How To Test ==
The GNU Compiler Collection has its own testsuite which is run during
the package build and examined by the gcc developers before being
uploaded.

The GNU C Library has its own testsuite which is run during the
package build and examined by the glibc developers before being
uploaded. This test suite has over 6200 tests that run to verify the
correct operation of the library. In the future we may also run the
microbenchmark to look for performance regressions.

The GNU Binutils has its own testsuite which is run during the package
build and examined by binutils developers before being uploaded. The
regression testsuite is run to verify the correct operation of the
static linker and attendant utilities.

The GNU Debugger has its own testsuite which is run during the package
build and examined by gdb developers before being uploaded. The
regression testsuite is run to verify the correct operation of the
debugger.


== User Experience ==


== Dependencies ==
All packages do not need to be rebuilt due to backwards compatibility.
However, it is advantageous if a mass rebuild is performed during the
Fedora 37 cycle. The mass rebuild would ensure all packages can be
built with the newer compiler and core runtime.

== Contingency Plan ==

* Contingency mechanism glibc: If glibc 2.36 proves too disruptive to
compiling the distribution we could revert to 2.35, but given that
Rawhide has started tracking glibc 2.36, no show-stopper problems are
expected.  At this point we can still revert to upstream version 2.35
if insurmountable problems appear, but to do so may require a mass
rebuild to remove new symbols from the ABI/API.

* Contingency mechanism binutils: If binutils 2.38 proves too
distruptive to assembling and linking the distribution we could 

F37 proposal: Linux Firmware Minimization (late System-Wide Change proposal)

2022-07-01 Thread Ben Cotton
https://fedoraproject.org/wiki/Changes/Linux_Firmware_Minimization

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.

== Summary ==
Split linux-firmware into more subpackages, and add the ability to
automatically install firmware based on the hardware present

== Owner ==
* Name: [[User:Salimma|Michel Alexandre Salim]],
[[User:Dcavalca|Davide Cavalca]]
* Email: mic...@fb.com, dcava...@fb.com


== Detailed Description ==
The `linux-firmware` RPM is very large (175M src.rpm, 287M
*.noarch.rpm per 20211027-126) that bundles most of the system
firmware loaded by the kernel, regardless of whether it’s actually
needed. Some additional firmwares are already split up into individual
subpackages. This change would extend that, splitting out most firmare
into appropriate subpackages. The Change would also make the
subpackages `Supplements` the appropriate `modalias(...)` for the
hardware they support and `Provides`
`firmware(kmodname/firmwarefile.bin)`

Candidates for splitting out:
* CPU firmwares
* GPU firmwares
* Non-Intel wifi firmwares
* Bluetooth firmwares

Conversely some firmware could probably be grouped together, e.g. have
iwlwifi-firmware that pulls in iwl*-firmware (corresponding to
openSUSE's kernel-firmware-iwlwifi).

We will also introduce `linux-firmware-all` that will pull in all
subpackages; this will make it easier to manage the firmware packages
in different Fedora variants.

A DNF plugin will be written to make use of the `Supplements` metadata
to automatically install the appropriate firmware packages based on
the hardware present on the system (see openSUSE's `libzypp`:
https://github.com/openSUSE/libzypp/blob/a34d857dbe3b16d4a7e0219cd213cc5a87966538/zypp/target/modalias/Modalias.cc
and 
https://github.com/openSUSE/libzypp/blob/7f345ea4892fd02345e8de47c2a08ab5b174650b/doc/autoinclude/Modalias.doc)

== Feedback ==


== Benefit to Fedora ==
This would save a lot of disk space on Fedora installations, and make
it easier to test individual firmware updates by replacing a single
subpackage. It will also bring us into alignment with openSUSE (see
their 
[https://code.opensuse.org/package/kernel-firmware/blob/master/f/kernel-firmware.spec
kernel-firmware.spec]).

== Scope ==
* Proposal owners:
** Create test COPR with proposed changes
** Add some additional firmware subpackages
** Add the required metadata (supplements, provides)
** Write DNF plugin to make use of supplements
** Write libdnf plugin for PackageKit (and in the future, microdnf)
** refactor 
[https://pagure.io/fedora-comps/blob/main/f/comps-f37.xml.in#_2887-2903
comps for F37]

* Other developers:
** Validate that installation works with iwl*-firmware replaced by
iwlwifi-firmware
** Test the DNF plugin
** If it works well, preinstall the DNF plugin and stop installing
iwlwifi-firmware or any of the iwl*-firmware

* Release engineering: [https://pagure.io/releng/issues #Releng issue number]
* 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 ==
No compatibility impact.


== How To Test ==
* Enable the test COPR
* Verify that after upgrading, no firmware subpackages are removed
* Install the DNF plugin
* Verify that the DNF plugin works: `dnf mark remove` a firmware
package that is needed, then verify that `dnf autoremove` does not
remove it
* `dnf mark remove` all firmware packages, and verify that `dnf
autoremove` only remove the unneeded packages


== User Experience ==
More disk space available, no functional changes.

== Dependencies ==
No dependency, `linux-firmware` is not required by any package

== Contingency Plan ==
* Contingency mechanism: If the plugin is not ready in time, the other
changes would preserve the status quo. So we can postpone shipping the
DNF plugin to F38.
* Contingency deadline:Decide on whether to postpone the DNF
plugin by beta freeze
* Blocks release? No


== Documentation ==
Documentation will be added in
[https://hackmd.io/KnHbJ40pQ8eJjc1H80R10w this HackMD]

== Release Notes ==



-- 
Ben Cotton
He / Him / His
Fedora Program Manager
Red Hat
TZ=America/Indiana/Indianapolis
___
devel-announce mailing list -- devel-announce@lists.fedoraproject.org
To unsubscribe send an email to devel-announce-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel-announce@lists.fedoraproject.org
Do not reply to spam on the list, report it: 
https://pagure.io/fedora-infrastructure


[HEADS UP] Sphinx 5 and docutils 0.18.1 coming to Rawhide on July 11th

2022-07-01 Thread Karolina Surma
Hello packagers,

The new major version of the popular documentation framework Sphinx has
been recently released[0]. It brings many changes, among which there is
support of docutils 0.18.1. We aim to update both packages together in
Fedora Rawhide on **July 11th**.

As usual, an ongoing attempt to smoothly integrate the updates takes
place using Copr[1]. There are some packages impacted with the new
changes. Please take time to review an fix the package, or coordinate
with the upstream.

If your package hasn't succeeded to build with Python 3.11 yet, we can't
test whether it will work with this update.


Common issues and mitigation

- `None` is no longer accepted as value of `language` in conf.py
Solution: Use `language = 'en'` instead.

- Build/ tests fail with: `AttributeError: 'path' object has no
attribute 'text'`
Solution: use `path.read_text()` instead


Test your package locally in mock using the provided test Copr

$ mock -r fedora-rawhide-x86_64
--addrepo=https://download.copr.fedorainfracloud.org/results/ksurma/sphinx-5/fedora-rawhide-x86_64/
--no-clean 
$ mock -r fedora-rawhide-x86_64
--addrepo=https://download.copr.fedorainfracloud.org/results/ksurma/sphinx-5/fedora-rawhide-x86_64/
 shell


Packages that pin Sphinx and docutils to lower versions than are about
to be introduced, and will effectively stop working after the update has
reached Rawhide:

Sphinx < 5:
python-h2-0:4.1.0-7.fc37.src
python-priority-0:2.0.0-7.fc37.src
python-sphinx-panels-0:0.6.0-3.fc37.src
python-sphinx-tabs-0:3.1.0-7.fc37.src
python3-sphinxcontrib-zopeext-0:0.3.2-3.fc37.noarch

docutils < 0.18:
python-sphinx-tabs-0:3.1.0-7.fc37.src
python3-sphinx_rtd_theme-0:1.0.0-6.fc37.noarch


Full list of known affected packages

Maintainers by package:
copr-keygen  clime dturecek frostyx msuchy praiskup
coq  amdunn jjames
diceware kushal
kea  fjanus mosvald zdohnal
libcamerajavierm
liblognorm   alakatos rsroka zfridric
python-djangobkabrda churchyard jdornak mrunge rdopiera salimma
sgallagh
python-graphviz  eclipseo
python-h2eclipseo
python-pikepdf   qulogic zdohnal
python-priority  eclipseo
python-sphinx-panels qulogic
python-sphinx-tabs   hobbes1069
python-sphinx_rtd_theme jjames ksurma piotrp
python-sphinxcontrib-bibtex jjames
python-sphinxcontrib-htmlhelp churchyard cstratak
python-sphinxcontrib-jsmath churchyard cstratak
python-sphinxcontrib-qthelp churchyard cstratak
python-sphinxcontrib-zopeext jjames

Packages by maintainer:
alakatos   liblognorm
amdunn coq
bkabrdapython-django
churchyard python-django python-sphinxcontrib-htmlhelp
python-sphinxcontrib-jsmath python-sphinxcontrib-qthelp
clime  copr-keygen
cstratak   python-sphinxcontrib-htmlhelp python-sphinxcontrib-jsmath
python-sphinxcontrib-qthelp
dturecek   copr-keygen
eclipseo   python-graphviz python-h2 python-priority
fjanus kea
frostyxcopr-keygen
hobbes1069 python-sphinx-tabs
javiermlibcamera
jdornakpython-django
jjames coq python-sphinx_rtd_theme python-sphinxcontrib-bibtex
python-sphinxcontrib-zopeext
ksurma python-sphinx_rtd_theme
kushal diceware
mosvaldkea
mrunge python-django
msuchy copr-keygen
piotrp python-sphinx_rtd_theme
praiskup   copr-keygen
qulogicpython-pikepdf python-sphinx-panels
rdopiera   python-django
rsroka liblognorm
salimmapython-django
sgallagh   python-django
zdohnalkea python-pikepdf
zfridric   liblognorm


Cheers,
Karolina Surma


[0] https://www.sphinx-doc.org/en/master/changes.html
[1] https://copr.fedorainfracloud.org/coprs/ksurma/sphinx-5/
___
devel-announce mailing list -- devel-announce@lists.fedoraproject.org
To unsubscribe send an email to devel-announce-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel-announce@lists.fedoraproject.org
Do not reply to spam on the list, report it: 
https://pagure.io/fedora-infrastructure