Wiki - https://fedoraproject.org/wiki/Changes/Python_built_with_gcc_O3
Discussion.fpo -
https://discussion.fedoraproject.org/t/f41-change-proposal-python-built-wit…
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.
== Summary ==
Instead of [https://docs.fedoraproject.org/en-US/packaging-guidelines/#_compiler_flags
Fedora's default `-O2` compiler flag], we will use `-O3` to build
CPython.
This only impacts the interpreter and Python standard library, not any
3rd party extension modules built as RPM or on developer machines.
This aligns with the way Python is built upstream.
According to our performance measurements, it makes Python
significantly faster (pyperformance geometric mean: 1.04x faster).
== Owner ==
* Name: [[User:churchyard|Miro Hrončok]]
* Email: mhroncok(a)redhat.com
== Detailed Description ==
We will replace the `-O2` compiler flag with `-O3` when building the
python3.13 package. This change may be backported to older Pythons if
desired. [[Changes/Python3.13|Python 3.13 should be the main Python
version in Fedora 41+]].
The [https://docs.fedoraproject.org/en-US/packaging-guidelines/#_compiler_flags
Fedora packaging guidelines] about compiler flags explicitly say:
''> Overriding these flags for performance optimizations (for
instance, `-O3` instead of `-O2`) is generally discouraged. If you can
present benchmarks that show a significant speedup for this particular
code, this could be revisited on a case-by-case basis.''
This change proposal presents such benchmarks and a case for Python to
use `-O3`.
This change is limited to CPython interpreter and extension modules
from the Python standard library only thanks to
[[Changes/Python_Extension_Flags_Reduction]] (since Fedora 39). Other
Python extension modules will remain bulidng as before, e.g. in RPM
packages, they will still be built with `-O2`, unless Fedora changes
that globally. The extension modules built with `-O2` still work with
Python built with `-O3`.
== Feedback ==
== Benefit to Fedora ==
Upstream already builds Python with `-O3` by default. Fedora's Python
built with `-O3` is faster (1.04x):
{| class="wikitable sortable"
|+ Benchmark with python3.12-3.12.2-3.fc41
|-
! Benchmark !! -O2 !! -O3 !!
Change !! Significance
|-
| 2to3 || 465 ms || 446 ms ||
1.04x faster || Significant (t=21.72)
|-
| async_generators || 853 ms || 784 ms ||
1.09x faster || Significant (t=36.61)
|-
| async_tree_cpu_io_mixed || 1.19 sec || 1.11 sec ||
1.08x faster || Significant (t=13.38)
|-
| async_tree_cpu_io_mixed_tg || 1.17 sec || 1.09 sec ||
1.08x faster || Significant (t=18.69)
|-
| async_tree_eager || 202 ms || 189 ms ||
1.07x faster || Significant (t=7.99)
|-
| async_tree_eager_cpu_io_mixed || 727 ms || 664 ms ||
1.09x faster || Significant (t=18.56)
|-
| async_tree_eager_cpu_io_mixed_tg || 633 ms || 558 ms ||
1.13x faster || Significant (t=24.53)
|-
| async_tree_eager_io || 1.72 sec || 1.68 sec ||
1.03x faster || Significant (t=6.13)
|-
| async_tree_eager_io_tg || 1.65 sec || 1.62 sec ||
1.02x faster || Significant (t=4.65)
|-
| async_tree_eager_memoization || 437 ms || 422 ms ||
1.04x faster || Significant (t=5.09)
|-
| async_tree_eager_memoization_tg || 330 ms || 322 ms ||
1.03x faster || Significant (t=2.60)
|-
| async_tree_eager_tg || 137 ms || 125 ms ||
1.09x faster || Significant (t=16.94)
|-
| async_tree_io || 1.64 sec || 1.60 sec ||
1.02x faster || Significant (t=9.49)
|-
| async_tree_io_tg || 1.65 sec || 1.61 sec ||
1.02x faster || Not significant
|-
| async_tree_memoization || 895 ms || 871 ms ||
1.03x faster || Significant (t=3.73)
|-
| async_tree_memoization_tg || 848 ms || 836 ms ||
1.01x faster || Not significant
|-
| async_tree_none || 718 ms || 700 ms ||
1.03x faster || Significant (t=6.90)
|-
| async_tree_none_tg || 686 ms || 659 ms ||
1.04x faster || Significant (t=13.11)
|-
| asyncio_tcp || 757 ms || 748 ms ||
1.01x faster || Not significant
|-
| asyncio_tcp_ssl || 2.58 sec || 2.56 sec ||
1.01x faster || Not significant
|-
| asyncio_websockets || 419 ms || 418 ms ||
1.00x faster || Not significant
|-
| bench_mp_pool || 10.7 ms || 10.7 ms ||
1.00x faster || Not significant
|-
| bench_thread_pool || 1.62 ms || 1.61 ms ||
1.01x faster || Not significant
|-
| chameleon || 12.2 ms || 12.0 ms ||
1.02x faster || Not significant
|-
| chaos || 113 ms || 105 ms ||
1.07x faster || Significant (t=46.23)
|-
| comprehensions || 37.4 us || 35.1 us ||
1.07x faster || Significant (t=49.72)
|-
| coroutines || 42.4 ms || 41.4 ms ||
1.02x faster || Significant (t=18.68)
|-
| coverage || 109 ms || 104 ms ||
1.05x faster || Significant (t=33.91)
|-
| create_gc_cycles || 1.84 ms || 1.79 ms ||
1.02x faster || Significant (t=5.50)
|-
| crypto_pyaes || 141 ms || 127 ms ||
1.11x faster || Significant (t=86.61)
|-
| dask || 766 ms || 769 ms ||
1.00x slower || Not significant
|-
| deepcopy || 619 us || 614 us ||
1.01x faster || Not significant
|-
| deepcopy_memo || 71.3 us || 68.3 us ||
1.04x faster || Significant (t=26.58)
|-
| deepcopy_reduce || 5.62 us || 5.56 us ||
1.01x faster || Not significant
|-
| deltablue || 5.76 ms || 5.49 ms ||
1.05x faster || Significant (t=7.97)
|-
| django_template || 62.8 ms || 59.7 ms ||
1.05x faster || Significant (t=27.05)
|-
| docutils || 4.38 sec || 4.29 sec ||
1.02x faster || Significant (t=11.25)
|-
| fannkuch || 706 ms || 667 ms ||
1.06x faster || Significant (t=75.80)
|-
| float || 144 ms || 137 ms ||
1.05x faster || Significant (t=24.66)
|-
| gc_traversal || 5.73 ms || 5.81 ms ||
1.01x slower || Not significant
|-
| generators || 56.0 ms || 58.2 ms ||
1.04x slower || Significant (t=-16.25)
|-
| genshi_text || 40.8 ms || 39.5 ms ||
1.03x faster || Significant (t=17.64)
|-
| genshi_xml || 88.2 ms || 86.3 ms ||
1.02x faster || Significant (t=6.96)
|-
| go || 223 ms || 217 ms ||
1.03x faster || Significant (t=19.92)
|-
| hexiom || 10.3 ms || 9.76 ms ||
1.05x faster || Significant (t=42.15)
|-
| html5lib || 109 ms || 108 ms ||
1.01x faster || Not significant
|-
| json_dumps || 17.4 ms || 16.3 ms ||
1.06x faster || Significant (t=45.38)
|-
| json_loads || 44.2 us || 42.3 us ||
1.04x faster || Significant (t=27.71)
|-
| logging_format || 12.9 us || 12.4 us ||
1.04x faster || Significant (t=9.81)
|-
| logging_silent || 176 ns || 174 ns ||
1.01x faster || Not significant
|-
| logging_simple || 11.4 us || 11.0 us ||
1.03x faster || Significant (t=9.94)
|-
| mako || 19.2 ms || 18.1 ms ||
1.06x faster || Significant (t=54.89)
|-
| mdp || 4.46 sec || 4.33 sec ||
1.03x faster || Significant (t=30.14)
|-
| meteor_contest || 189 ms || 167 ms ||
1.13x faster || Significant (t=60.31)
|-
| nbody || 157 ms || 153 ms ||
1.03x faster || Significant (t=4.34)
|-
| nqueens || 153 ms || 140 ms ||
1.09x faster || Significant (t=63.60)
|-
| pathlib || 32.9 ms || 32.6 ms ||
1.01x faster || Not significant
|-
| pickle || 18.6 us || 16.0 us ||
1.16x faster || Significant (t=23.88)
|-
| pickle_dict || 45.8 us || 44.6 us ||
1.03x faster || Significant (t=16.51)
|-
| pickle_list || 6.86 us || 6.59 us ||
1.04x faster || Significant (t=19.65)
|-
| pickle_pure_python || 515 us || 505 us ||
1.02x faster || Not significant
|-
| pidigits || 285 ms || 284 ms ||
1.00x faster || Not significant
|-
| pprint_pformat || 2.72 sec || 2.54 sec ||
1.07x faster || Significant (t=40.28)
|-
| pprint_safe_repr || 1.34 sec || 1.25 sec ||
1.08x faster || Significant (t=58.43)
|-
| pyflate || 738 ms || 724 ms ||
1.02x faster || Not significant
|-
| python_startup || 15.5 ms || 15.3 ms ||
1.01x faster || Not significant
|-
| python_startup_no_site || 11.2 ms || 11.0 ms ||
1.01x faster || Not significant
|-
| raytrace || 549 ms || 514 ms ||
1.07x faster || Significant (t=45.37)
|-
| regex_compile || 245 ms || 233 ms ||
1.05x faster || Significant (t=13.30)
|-
| regex_dna || 269 ms || 268 ms ||
1.00x faster || Not significant
|-
| regex_effbot || 4.83 ms || 4.95 ms ||
1.03x slower || Significant (t=-12.52)
|-
| regex_v8 || 33.7 ms || 33.1 ms ||
1.02x faster || Not significant
|-
| richards || 75.7 ms || 71.9 ms ||
1.05x faster || Significant (t=18.30)
|-
| richards_super || 85.2 ms || 81.4 ms ||
1.05x faster || Significant (t=31.25)
|-
| scimark_fft || 662 ms || 587 ms ||
1.13x faster || Significant (t=71.10)
|-
| scimark_lu || 199 ms || 190 ms ||
1.04x faster || Significant (t=26.77)
|-
| scimark_monte_carlo || 123 ms || 117 ms ||
1.05x faster || Significant (t=37.45)
|-
| scimark_sor || 217 ms || 210 ms ||
1.04x faster || Significant (t=10.68)
|-
| scimark_sparse_mat_mult || 8.51 ms || 7.42 ms ||
1.15x faster || Significant (t=62.99)
|-
| spectral_norm || 196 ms || 183 ms ||
1.07x faster || Significant (t=95.78)
|-
| sqlalchemy_declarative || 239 ms || 234 ms ||
1.02x faster || Significant (t=4.81)
|-
| sqlalchemy_imperative || 33.1 ms || 33.4 ms ||
1.01x slower || Not significant
|-
| sqlglot_normalize || 197 ms || 187 ms ||
1.05x faster || Significant (t=39.81)
|-
| sqlglot_optimize || 97.1 ms || 91.3 ms ||
1.06x faster || Significant (t=47.14)
|-
| sqlglot_parse || 2.29 ms || 2.18 ms ||
1.05x faster || Significant (t=14.70)
|-
| sqlglot_transpile || 2.79 ms || 2.67 ms ||
1.04x faster || Significant (t=11.76)
|-
| sqlite_synth || 3.97 us || 3.90 us ||
1.02x faster || Not significant
|-
| sympy_expand || 833 ms || 802 ms ||
1.04x faster || Significant (t=19.41)
|-
| sympy_integrate || 34.7 ms || 33.8 ms ||
1.03x faster || Significant (t=9.99)
|-
| sympy_str || 511 ms || 489 ms ||
1.04x faster || Significant (t=18.17)
|-
| sympy_sum || 286 ms || 278 ms ||
1.03x faster || Significant (t=14.46)
|-
| telco || 12.6 ms || 11.7 ms ||
1.08x faster || Significant (t=9.31)
|-
| tomli_loads || 3.91 sec || 3.56 sec ||
1.10x faster || Significant (t=46.29)
|-
| tornado_http || 213 ms || 212 ms ||
1.01x faster || Not significant
|-
| typing_runtime_protocols || 214 us || 196 us ||
1.09x faster || Significant (t=24.74)
|-
| unpack_sequence || 70.5 ns || 66.0 ns ||
1.07x faster || Significant (t=8.58)
|-
| unpickle || 24.3 us || 22.0 us ||
1.10x faster || Significant (t=10.67)
|-
| unpickle_list || 7.44 us || 8.61 us ||
1.16x slower || Significant (t=-45.10)
|-
| unpickle_pure_python || 390 us || 360 us ||
1.08x faster || Significant (t=37.48)
|-
| xml_etree_generate || 160 ms || 145 ms ||
1.10x faster || Significant (t=44.33)
|-
| xml_etree_iterparse || 189 ms || 180 ms ||
1.05x faster || Significant (t=20.16)
|-
| xml_etree_parse || 275 ms || 257 ms ||
1.07x faster || Significant (t=20.58)
|-
| xml_etree_process || 106 ms || 98.6 ms ||
1.08x faster || Significant (t=46.73)
|-
| Geometric mean || || ||
1.04x faster ||
|}
Generated by `pyperformance run -o Ox.json` and `pyperformance compare
-O table O2.json O3.json` on Fedora 40 x86_64 with rawhide-built
Python, python3.12-3.12.2-3.fc41, on Lenovo X1 Carbon 3rd gen.
The benchmark was performed on Python 3.12 because it uses 3rd party
Python packages lacking support for Python 3.13. Once it is possible
to run such a benchmark for Python 3.13, we will do so.
The benchmark was performed on x86_64. Until somebody presents a
contradicting benchmark (or gives explicit reason for us to measure
it), we believe the change makes sense on all architectures.
== Scope ==
* Proposal owners:
** Change python3.13 to build with `-O3` instead of `-O2`
** Backport the change to older Pythons if desired
* Other developers: no action expected, report bugs when found
* Release engineering: no action expected
* Policies and guidelines: this change is following the spirit of the guidelines
* Trademark approval: not needed for this Change
* Alignment with Community Initiatives: faster Python, happier users,
more contributors?
== Upgrade/compatibility impact ==
None expected.
== How To Test ==
To verify this change has landed, inspect the build.log of python3.13.
It should be built with `gcc ... -O3`.
To test this change, test Fedora as you would normally do and assert
there are no regressions.
Run benchmarks, and report slowdowns if found.
== User Experience ==
Faster Python, faster Fedora.
== Dependencies ==
* [[Changes/Python_Extension_Flags_Reduction]] landed in Fedora 39
* [[Changes/Python3.13]] is expected to land in Fedora 41. If not, we
will apply this on Python 3.12.
== Contingency Plan ==
* Contingency mechanism: revert the change, rebuild Python
* Contingency deadline: Final Freeze
* Blocks release? No
== Documentation ==
N/A (not a System Wide Change)
== Release Notes ==
--
Aoife Moloney
Fedora Operations Architect
Fedora Project
Matrix: @amoloney:fedora.im
IRC: amoloney
Hello,
To deliver Python 3.13 with Fedora Linux 41, we will run a coordinated
rebuild in a side tag.
https://fedoraproject.org/wiki/Changes/Python3.13
Python 3.13.0b2 is scheduled for Tuesday, Jun 4th 2024.
We hope to start the mass rebuild shortly after it's available.
TL;DR: If you can, for the period of the mass rebuild just don't build
your packages in rawhide.
We will let you know when the side tag rebuild actually starts and when
it is merged and it's safe to build in rawhide with Python 3.13.
Details:
If you see a "Rebuilt for Python 3.13" (or similar) commit in your package,
please don't rebuild it in regular rawhide or another rawhide side tag.
If you need to, please let us know, so we can coordinate.
If you'd like to build a package after we already rebuilt it, you should
be able to build it in the side tag via:
on branch rawhide:
$ fedpkg build --target=f41-python
$ koji wait-repo f41-python --build <nvr>
It takes time to build all the essential packages,
so don't expect all your dependencies to be available right away.
Any attempts to build your packages in the side tag before we do will
likely fail due to missing dependencies.
When in trouble, ask here or on Fedora's Matrix - Fedora Python room
(https://matrix.to/#/#python:fedoraproject.org)
Ping me (ksurma) or Miro (mhroncok) if you need to talk to us.
Builds will appear here:
https://koji.fedoraproject.org/koji/builds?latest=0&tagID=f41-python&order=…
Please avoid any potentially disturbing or major changes in Python
packages until the rebuild is over.
Thanks!
Karolina
Wiki - https://fedoraproject.org/wiki/Changes/golang1.23
Discussion Thread -
https://discussion.fedoraproject.org/t/f41-change-proposal-golang-1-23-syst…
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.
== Summary ==
Update of Go (golang package) to the upcoming version 1.23 in Fedora 41.
== Owner ==
* Name: [[User:alexsaezm| Alejandro Sáez Morollón]]
* Email: asm(a)redhat.com
== Detailed Description ==
Update of Go (golang package) to the upcoming version 1.23 in Fedora
41. Go 1.23 is expected to be released in
[https://tip.golang.org/doc/go1.23 August 2024]. A mass rebuild of all
of the dependent packages is required.
== Feedback ==
No feedback yet.
There is an [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org…
ongoing conversation] about removing a patch and revert to the
defaults a couple of variables.
== Benefit to Fedora ==
Up-to-date and latest Go release will be delivered to Fedora users.
Being close to upstream allows us to avoid security issues and provide
more up-to-date features. Therefore, Fedora will be providing a
reliable development platform for the Go language and projects written
in it.
For a complete list of changes, see upstream change notes at
https://tip.golang.org/doc/go1.23
== Scope ==
* Proposal owners:
Rebase Golang package in Fedora 41, and help resolve possible issues
found during package rebuilds.
* Other developers:
Fix possible issues, with help from Golang maintainers.
* Release engineering: [https://pagure.io/releng/issues #Releng issue number]
Rebuild of dependent packages as part of planned mass-rebuild.
* Policies and guidelines: N/A (not needed for this Change)
* Trademark approval: N/A (not needed for this Change)
* Alignment with the Fedora Strategy:
It doesn't align directly with the current objectives, but it helps
maintain the quality of the project.
== Upgrade/compatibility impact ==
No upgrade or compatibility impact.
== How To Test ==
# Install golang 1.23 from rawhide and use it to build your
application(s)/package(s).
# Perform a scratch build against rawhide.
# Your application/package built using golang 1.23 should work as expected.
== User Experience ==
Users will have a newer version of Go, with new features described in
the release notes and security fixes.
== Dependencies ==
<pre>
dnf repoquery -q --releasever=rawhide --disablerepo='*'
--qf='%{name}' --enablerepo=fedora-source --enablerepo=updates-source
--enablerepo=updates-testing-source --archlist=src --whatrequires
'golang'
dnf repoquery -q --releasever=rawhide --disablerepo='*'
--qf='%{name}' --enablerepo=fedora-source --enablerepo=updates-source
--enablerepo=updates-testing-source --archlist=src --whatrequires
'compiler(go-compiler)'
dnf repoquery -q --releasever=rawhide --disablerepo='*'
--qf='%{name}' --enablerepo=fedora-source --enablerepo=updates-source
--enablerepo=updates-testing-source --archlist=src --whatrequires
'go-rpm-macros'
</pre>
<pre>
Omitted due to the number of packages listed: ~2000.
</pre>
== Contingency Plan ==
* Contingency mechanism: Revert to Go 1.22.X if significant issues are
discovered
* Contingency deadline: Beta freeze
* Blocks release? No
== Documentation ==
https://tip.golang.org/doc/go1.23
== Release Notes ==
--
Aoife Moloney
Fedora Operations Architect
Fedora Project
Matrix: @amoloney:fedora.im
IRC: amoloney
Wiki - https://fedoraproject.org/wiki/Changes/UnprivilegedUpdatesAtomicDesktops
Discussion Thread -
https://discussion.fedoraproject.org/t/f41-change-proposal-unprivileged-upd…
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.
== Summary ==
We want to update the Polkit rule currently controlling access to the
rpm-ostree daemon on Fedora Atomic Desktops to do the following:
* Enable users to update the system without being an administrator or
typing a password.
* Restrict the current rule for administrators to make more operations
explicitly require a password.
== Owner ==
* [[User:boredsquirrel| Henning]], boredsquirrel(a)secure.mailbox.org
* [[User:Siosm| Timothée Ravier]], siosm(a)fedoraproject.org
== Detailed Description ==
This change tries to address two issues:
* Give more users the permission to update their systems as this
should be an entirely safe operation on Fedora Atomic Desktops.
** Silverblue already automatically update the system and Flatpaks by
default and Kinoite is looking at doing it as well:
https://fedoraproject.org/wiki/Changes/KDEKinoiteAutoUpdateByDefault
** We will thus enable all active and interactive users to update the
system without being an administrator or typing a password.
** Note that this is only about system updates (and repo metadata
updates) and no other operations.
* Reduce access to the most privileged operations of rpm-ostree for
administrators to avoid mistakes.
** The current setup is not directly a security issue as it only
allows those operations for users that are part of the wheel group and
thus assumed to be administrators.
** However, some of those operations can be more dangerous than others
so we should ask the administrator to confirm them or let them do it
via `sudo`.
** Operations such as changing kernel arguments, installing a local
package, rebasing to another image, etc. will thus be removed from the
current Polkit rule and will now require the administrator password,
similarly to calling it via `sudo`.
** Only the install/uninstall packages from the repos, upgrade,
rollback, cancel and cleanup operations will remain password-less, to
match the behavior on package mode Fedora with dnf.
See:
* https://gitlab.com/fedora/ostree/sig/-/issues/7
* https://github.com/rohanssrao/silverblue-privesc/issues/4
* https://bugzilla.redhat.com/show_bug.cgi?id=2203555
Initial work in:
* https://src.fedoraproject.org/rpms/fedora-release/pull-request/324
* https://src.fedoraproject.org/rpms/fedora-release/pull-request/325
== Feedback ==
Nothing here so far beyond comments in the PRs, which have mostly been
addressed.
== Benefit to Fedora ==
This change will make it easier to setup a Fedora system with
non-administrator (unprivileged) users that can still update the
system without administrator intervention. Note that major version
upgrades (rebase operation) will still require privileges (or an
administrator password) for now. This is due to a limit of the current
rpm-ostree interface.
This is also a step towards the goals of the
[https://fedoraproject.org/wiki/SIGs/ConfinedUsers Confined Users
Special Interest Group (SIG)].
== Scope ==
* Proposal owners:
** Implement the change in the polkit rules
** Validate that this changes works on all Fedora Atomic Desktops
(notably with GNOME Software and Plasma Discover)
* Other developers:
** Developers depending on the current polkit rules might have to
adapt their software. We don't know of any software impacted right
now.
* Release engineering: N/A (not needed for this 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: Not specificaly
== Upgrade/compatibility impact ==
This change does not remove any interface so it should not have any
impact for users on upgrade. If some of the now "password-full"
operations were used previously, they will now ask for a password.
If administrators previously disabled or overwrote the current polkit
rules, then they might have to update their override for the new
behavior.
== Early Testing (Optional) ==
Do you require 'QA Blueprint' support? No
== How To Test ==
* Write the following file:
`/etc/polkit-1/rules.d/org.projectatomic.rpmostree1.rules`
<pre>
polkit.addRule(function(action, subject) {
if ((action.id == "org.projectatomic.rpmostree1.repo-refresh" ||
action.id == "org.projectatomic.rpmostree1.upgrade") &&
subject.active == true &&
subject.local == true) {
return polkit.Result.YES;
}
if ((action.id ==
"org.projectatomic.rpmostree1.install-uninstall-packages" ||
action.id == "org.projectatomic.rpmostree1.rollback" ||
action.id == "org.projectatomic.rpmostree1.reload-daemon" ||
action.id == "org.projectatomic.rpmostree1.cancel" ||
action.id == "org.projectatomic.rpmostree1.cleanup" ||
action.id == "org.projectatomic.rpmostree1.client-management") &&
subject.active == true &&
subject.local == true &&
subject.isInGroup("wheel")) {
return polkit.Result.YES;
}
if ((
action.id == "org.projectatomic.rpmostree1.install-local-packages" ||
action.id == "org.projectatomic.rpmostree1.override" ||
action.id == "org.projectatomic.rpmostree1.deploy" ||
action.id == "org.projectatomic.rpmostree1.rebase" ||
action.id == "org.projectatomic.rpmostree1.rollback" ||
action.id == "org.projectatomic.rpmostree1.bootconfig" ) &&
subject.active == true &&
subject.local == true &&
subject.isInGroup("wheel")) {
return polkit.Result.AUTH_ADMIN;
}
});
</pre>
* Test that normal / unprivileged users can '''only do''' the
following operations '''without a password''':
** Update the system: `rpm-ostree update`
** Refresh the metadata: `rpm-ostree refresh-md`
* Test that admin / privileged users can do the following operations
'''without a password''':
** Install a package from the official Fedora repos: `rpm-ostree install strace`
** Cancel an in-progress transaction: `rpm-ostree cancel`
** Rollback to a previous version: `rpm-ostree rollback`
** Reload the daemon: `rpm-ostree reload`
** Cleanup pending or rollback deployments: `rpm-ostree cleanup`
* Test that admin / privileged users are '''asked a password''' for
the following operations:
** Install a local RPM package: `rpm-ostree install ./foo.rpm`
** Override replace a package: `rpm-ostree override replace vim-x.y.z.rpm`
** Deploy a specific version: `rpm-ostree deploy 40.20240518.1`
** Rebase to any version: `rpm-ostree rebase ...` (try with Kinoite on
Silverblue, etc.)
** Change kernel argments: `rpm-ostree kargs --append=foo=bar`
== User Experience ==
This change should be mostly transparent for users.
If some of the now "password-full" operations were used previously,
they will now ask for a password.
Unprivileged users will be able to update the system.
== Dependencies ==
The rules are shipped as part of the `fedora-release` RPM. There are
no other dependencies.
== Contingency Plan ==
* Contingency mechanism: (What to do? Who will do it?)
** We can revert the change to the `fedora-release` package at any time.
** Will be done by the change owners.
* Contingency deadline: Beta freeze or final freeze
* Blocks release? No
== Documentation ==
No additional documentation.
== Release Notes ==
To be written once the change is accepted.
--
Aoife Moloney
Fedora Operations Architect
Fedora Project
Matrix: @amoloney:fedora.im
IRC: amoloney
Wiki - https://fedoraproject.org/wiki/Changes/TunedAsTheDefaultPowerProfileManagem…
Discussion Thread -
https://discussion.fedoraproject.org/t/f41-change-proposal-make-tuned-the-d…
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.
== Summary ==
This Change makes ‘tuned’ the default power profile management daemon
in Fedora Workstation, KDE Plasma, and Budgie instead of
power-profiles-daemon.
* tuned-ppd provides a drop-in replacement for power-profiles-daemon,
which allows it to be used with current desktops
* power users can customize the desktop-exposed power profiles by
editing /etc/tuned/ppd.conf
== Owner ==
* Name: [[User:smallorange| Kate Hsuan]], [[User:jskarvad | Jaroslav Škarvada]]
* Email: <hpa(a)redhat.com>, <jskarvad(a)redhat.com>
== Detailed Description ==
<p>
Tuned and power-profiles-daemon provide a similar function to set and
tune the power status of a system. Both of them have similar features,
if they can be integrated into one, it allows the Fedora user to have
more options for power settings of their system and benefits the
users. In this proposal, we set up tuned to the default power profile
management daemon for the GNOME in Fedora Workstation and the KDE
Plasma Spin. Tuned already provides power profiles for different use
cases. Recently, tuned released the translation API layer called
tuned-ppd which can translate the power-profiles-daemon API to tuned.
The applications that use power-profiles-daemon API can access tuned
without modifying the code. For now, the Fedora user can immediately
switch to tuned by installing the tuned-ppd package without impacting
the user experience. Therefore, tuned can be the default power profile
management daemon for Fedora.
</p>
<p>
This work would replace power-profiles-daemon with tuned. Since tuned
already provides a wide range of power profiles for different
purposes, this allows the user to have more options for configuring
the system power profile.
Tuned provides many kinds of advanced and basic profiles for different
purposes. Power-profiles-daemon provides the basic power profiles and
the profiles can be set to the system through platform_profiles, Intel
p-state and AMD p-state. That is simple and clever. However, if the
users want to ask for an advanced profile, they need to install
another power utility, such as tuned to fine-tune their system. With
tuned as the default power profile management daemon, users have a
wider range of profiles to fine-tune the system.
</p>
<p>
Tuned released a new translation API service called tuned-ppd
<ref>https://github.com/redhat-performance/tuned/tree/master/tuned/ppd</ref>.
tuned-ppd can translate the power-profiles-daemon API to the tuned API
so applications can talk with tuned without modification. Moreover,
the GUI settings, such as gnome-control-center can configure tuned
profiles through tuned-ppd. tuned-ppd also allows the user to override
the basic three power profiles, including power-saver, balanced, and
performance through the config file /etc/tuned/ppd.conf
<ref>https://github.com/redhat-performance/tuned/blob/master/tuned/ppd/ppd.conf</ref>.
If the user wants to use a customized profile, they can edit the
config file and map the custom profile to the basic three
power-profiles-daemon profile names. In this way, gnome-control-center
can keep the original design to configure the customized profile.
</p>
<p>
The work expects tuned to replace the power-profiles-daemons to offer
a wider range of power profiles to Fedora users. tuned-ppd resolved
the API translation issue so the application can access tuned service
through power-profiles-daemon API without converting to the tuned API.
Moreover, the three basic profiles can be overridden when the user
needs it for their use case. It also benefits GNOME applications that
can keep the original design and designing a new GUI tool for custom
profiles is unnecessary. Therefore, tuned can be the default power
setting service for Fedora.
</p>
== Feedback ==
'''From fedora-devel'''
<p>
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org…
1. The dependency concern. Since tuned is written by Python, that
causes a dependency impact on Fedora installation.
2. The power-profiles-daemon API should be ported to tuned to provide
the function to the application that uses power-profiles-daemon API,
such as gnome-shell and gnome-control-center.
</p>
'''From the hardware vendor'''
<p>
Moreover, we discuss it with vendors through the mail.
1. Since tuned covers several kinds of system tuning schemes that
allow the vendor to implement their power profile for different
devices or workloads. For power-profile-daemon, it only has three
profiles to set and every detail setting should be done through the
firmware level. If tuned can replace power-profiles-daemon, they can
imagine they can develop the profile in a much more flexible manner.
</p>
'''The previous discussions'''
<p>
https://discussion.fedoraproject.org/t/f40-change-proposal-tuned-replaces-p…
</p>
== Benefit to Fedora ==
<p>
<ol>
<li>Benefits the user. The user would have more options to tune their
system.</li>
<li>Benefits the maintainer. Integrate similar software into one
software to reduce the maintenance effort.</li>
</ol>
</p>
== Scope ==
* Proposal owners:
** for GNOME: update gnome-control-center weak dependency on
power-profile-daemon to tuned-ppd
** for KDE: update powerdevil weak dependency on power-profile-daemon
to tuned-ppd
** for Budgie: update budgie-control-center weak dependency on
power-profile-daemon to tuned-ppd
* Other developers:
* 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 the Fedora Strategy:
== Upgrade/compatibility impact ==
<p>
Since tuned-ppd provides the ppd APIs and features, there is no impact
on other applications.
</p>
== Early Testing (Optional) ==
Do you require 'QA Blueprint' support? Y/N
== How To Test ==
<ol>
<li>
Remove power-profiles-daemon.<br>
$ sudo dnf remove power-profiles-daemon
</li>
<li>Install tuned and tuned-ppd through the following command<br>
$ sudo dnf install tuned<br>
$ sudo dnf install tuned-ppd
</li>
<li>
Run gnome-control-center and switch to the power panel and then select
one of the three power profiles.
Click the top-right corner of the screen and you can see the “Power
Mode” shows the profile name that you selected previously.
</li>
<li>
Run the following command to show the active profile. Since tuned-adm
shows the tuned profile name, the profile name mapping can be found in
/etc/tuned/ppd.conf.<br>
$ tuned-adm active
</li>
</ol>
== User Experience ==
<ol>
<li>
The workstation user can set the power profile through the gnome-control-center.
</li>
<li>
The server users switch the profile through the tuned command line.
</li>
</ol>
== Dependencies ==
<p>
tuned is written by Python so it depends on python packages and its 40 packages.
</p>
== Contingency Plan ==
* Contingency mechanism:
<p>
Use the original power-profiles-daemon
</p>
* Contingency deadline:
<p>
Before F41 beta freeze.
</p>
* Blocks release?
<p>
No, tuned-ppd provides all the power-profiles-daemon APIs otherwise
the original power-profile-daemon can be used when the plan blocks the
release.
</p>
== Documentation ==
I have talked with tuned about this information.<br>
https://github.com/redhat-performance/tuned/issues/559
== Release Notes ==
* https://github.com/redhat-performance/tuned/tree/master/tuned/ppd
* https://github.com/redhat-performance/tuned/blob/master/tuned/ppd/ppd.conf
--
Aoife Moloney
Fedora Operations Architect
Fedora Project
Matrix: @amoloney:fedora.im
IRC: amoloney
Wiki - https://fedoraproject.org/wiki/Changes/NetworkScriptsRemoval
Discussion Thread -
https://discussion.fedoraproject.org/t/f41-change-proposal-removing-network…
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.
== Summary ==
<code>network-scripts</code> package will be removed in Fedora 41. By
removing the package, we also remove support for legacy
<code>ifup/ifdown</code> network scripts that have been deprecated
since 2018.
== Owner ==
* Name: [[User:jamacku| Jan Macku]]
* Name: [[User:lnykryn| Lukáš Nykrýn]]
* Email: [mailto:jamacku@redhat.com jamacku(a)redhat.com]
* Email: [mailto:lnykryn@redhat.com lnykryn(a)redhat.com]
== Detailed Description ==
<code>network-scripts</code> will be removed in Fedora 41. It provides
legacy <code>ifup</code>/<code>ifdown</code> scripts as well as
<code>network.service</code>.
The <code>network-scripts</code> were '''deprecated in 2018''', and
since then, upstream has provided only limited support.
The main reason for removing <code>network-scripts</code> is that ISC
dhcp has not been maintained upstream since the end of 2022. There is
[https://fedoraproject.org/wiki/Changes/dhclient_deprecation plan to
remove it upcoming Fedora release]. Network scripts heavily depend on
the DHCP client, and since Network Scripts are no longer developed,
there is no chance of updating them to use an alternative client.
== Feedback ==
== Benefit to Fedora ==
We don't deliver software that has been deprecated for many years,
unmaintained upstream, and for which we don't have resources to
maintain downstream. Additionally, it simplifies networking tasks for
users and administrators because NetworkManager will be used more
uniformly across Fedora environments.
== Scope ==
* Proposal owners: Removing of <code>network-scripts</code> rpm package.
* Other developers: Make sure that dependency on
<code>network-scripts</code> package is removed (see
[[Changes/NetworkScriptsRemoval#Dependencies| #Dependencies]]).
* Release engineering: N/A (not needed for this Change)
* Policies and guidelines: N/A (not needed for this Change)
* Trademark approval: N/A (not needed for this Change)
* Alignment with Community Initiatives: N/A (not needed for this Change)
== Upgrade/compatibility impact ==
<code>ifup/ifdown</code> command are no longer available. Use
<code>nmcli connection up/down</code> or <code>networkctl
up/down</code> instead.
Old <code>ifcfg</code> network configuration should still work thanks
to <code>NetworkManager-initscripts-ifcfg-rh</code> package. No
migration is needed, but it is recommended to migrate from
<code>ifcfg</code> to <code>keyfiles</code> configuration.
You can use one of the following articles on how to migrate:
* https://fedoramagazine.org/converting-networkmanager-from-ifcfg-to-keyfiles/
* https://opensource.com/article/22/8/migrate-networkmanager-keyfiles-configu…
== How To Test ==
Networking should work as before the removal of
<code>network-scripts</code> package.
== User Experience ==
== Dependencies ==
RPM packages that depends in some form on <code>network-scripts</code>:
* <code>libteam</code> - https://bugzilla.redhat.com/show_bug.cgi?id=2262986
* <code>NetworkManager</code> -
https://bugzilla.redhat.com/show_bug.cgi?id=2275295
* <code>openvswitch</code> - https://bugzilla.redhat.com/show_bug.cgi?id=2262982
* <code>ppp</code> - https://bugzilla.redhat.com/show_bug.cgi?id=2262981
Note that this will also affect all users with local custom
network-scripts that require functionality from
<code>network-scripts</code> package.
== Contingency Plan ==
* Contingency mechanism: Since
[https://fedoraproject.org/wiki/Changes/dhclient_deprecation dhcp
client is no longer maintained] and is going to be deprecated in
Fedora, there is currently no contingency mechanism.
* Contingency deadline: beta freeze
* Blocks release: No
== Documentation ==
* Upstream Deprecation notice -
https://github.com/fedora-sysv/initscripts/commit/b748244cf9905696baf1bc16e…
== Release Notes ==
--
Aoife Moloney
Fedora Operations Architect
Fedora Project
Matrix: @amoloney:fedora.im
IRC: amoloney
Wiki - https://fedoraproject.org/wiki/Changes/LLVM-19
Discussion Thread -
https://discussion.fedoraproject.org/t/f41-change-proposal-llvm-19-system-w…
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.
== Summary ==
Update all llvm sub-projects in Fedora Linux to version 19.
== Owner ==
* Name: [[User:tstellar| Tom Stellard]]
* Email: <tstellar(a)redhat.com>
== Detailed Description ==
All llvm sub-projects in Fedora will be updated to version 19, and
there will be a soname version change for the llvm libraries.
Compatibility packages clang18, llvm18, lld18, compiler-rt18, and
libomp18 will be added to ensure that packages that currently depend
on clang and llvm version 18 libraries will continue to work. We may
add other compatibility packages too if they're determined to be
necessary to maintain functionality in other RPMS that use llvm/clang.
Any compatibility packages we add for Fedora 41 will be retired or
orphaned before the Fedora 42 branch date. As stated in the
[[Changes/LLVM-18 | LLVM-18 change proposal]], we plan to retire or
orphan these older compatibility packages prior to the Fedora 41
branch date:
* llvm17
* clang17
* lld17
* compiler-rt17
* libomp17
Other notable changes:
* '''Build compat packages (e.g. llvm18) as early as possible.'''
When we package a new major release of llvm, we create a compat
package so that packages that aren't compatible with the new version
can still use the old version. In the past, we've waited to introduce
the compat packages until the new version of LLVM was ready (typically
during the Beta Freeze). However, this proved to be an issue this
release for packages the were ready to switch to the compat packages
early in the release cycle, but then had to wait for Beta freeze.
* '''Spec file merge.''' We plan to retire the clang, compiler-rt,
lld and libomp packages and merge them in with llvm and have them be
sub-packages of the llvm package. All these packages have their
sources in the same upstream git repository and use the same
versioning. This change will allow us to use the build configuration
recommended by upstream and also make it possible to optimize the
packages using Profile-Guided Optimizations (PGO). It's possible that
in future releases (f42+), we may decided to merge more packages in
with llvm too.
* '''Fat LTO'''. All RPMS built with clang will default to using the
-ffat-lto option. Fat LTO is a feature that allows the compiler to
produce libraries that contain LTO bitcode along side the traditional
ELF binary code so that the libraries can be linked in both LTO mode
and non-LTO mode. gcc also supports this feature and has it enabled in
Fedora. In Fedora 40 and older, with LTO enabled, clang produces
binaries with only LTO bitcode, so we need to run a post-processing
script (brp-llvm-compile-to-elf) on the libraries to convert them to
ELF code so they can be used by other packages. Enabling Fat LTO will
allow us to remove this script and simplify the build process. We
originally proposed this feature for Fedora 40, but it was not ready
in time.
===Planned Schedule===
Our plan is to push 19.1.0-rc3 into Fedora 41 as a Beta Freeze
exception. Updates after 19.1.0-rc3 will generally be very small and
can be done after the Beta Freeze is over. If we are late packaging
releases after 19.1.0-rc3, we will not ask for a Final Freeze
exception, unless they contain a fix for a critical release blocking
bug.
We are not planning to push 19.1.0-rc1 into rawhide because the
library ABI is not stabilized at that point. Typically, the ABI
stabilizes after -rc3, but there are no guarantees from upstream about
this. Given the history of minimal ABI changes after -rc3, we feel
like it's safe to push -rc3 into rawhide and Fedora 41. The worst
case scenario would be an ABI change in -rc4 or the final release that
would force us to patch LLVM to maintain compatibility with the -rc3
ABI. This scenario would not require rebuilding LLVM library users in
Fedora, so it would merely be a self-contained change to LLVM.
====Important Dates====
Dates may change depending on circumstances.
* Jun 4: Build llvm18, clang18, lld18, compiler-rt18, and lld18
compat packages in rawhide.
* July 26: Begin building LLVM 19.1.0-rc1 in COPR.
* Aug 6: Begin building LLVM 19.1.0-rc2 in COPR.
* '''''Aug 6: Fedora f41 branches created.'''''
* Aug 20: Begin building LLVM 19.1.0-rc3 in Rawhide and f41 side-tags.
* '''''Aug 20: Fedora f41 Beta Freeze'''''
* Aug 20-> Sep 10: Request Beta Freeze Exception and push 19.1.0-rc3
into f41 stable.
* Sep 3: Begin building LLVM 19.1.0-rc4 in Rawhide side-tag.
* Sep 17: Begin building LLVM 19.1.0 in Rawhide and f41 side-tags.
* Sep 17 -> Oct 1: Push 19.1.0 into f41 stable.
* '''''Oct 1: Fedora f41 Final Freeze.'''''
== Feedback ==
== Benefit to Fedora ==
New features and bug fixes provided by the latest version of LLVM.
== Scope ==
* Proposal owners:
** Review existing llvm and clang compatibility packages and orphan
any packages that are no longer used.
** Build and test early release candidates of LLVM 19 in COPR.
* Other developers:
** Fix build issues found with LLVM-19 or switch their package to use
the llvm18 compat libs. The LLVM team will not block Bodhi updates on
dependent packages that fail to build or run with LLVM-19. There
should be around 6-8 weeks between when -rc1 lands in the koji
side-tag and the Final Freeze for package maintainers to fix issues
uncovered with the LLVM-19 update.
* Release engineering: [https://pagure.io/releng/issue/12118]
* Policies and guidelines: N/A (not needed for this Change)
* Trademark approval: N/A (not needed for this Change)
* Alignment with the Fedora Strategy:
== Upgrade/compatibility impact ==
This change should not impact upgrades.
== Early Testing (Optional) ==
Do you require 'QA Blueprint' support? N
== How To Test ==
The CI tests for the llvm sub-packages in Fedora will be used to catch
regressions that might be potentially introduced by the update to LLVM
19.
== User Experience ==
== Dependencies ==
Packages that depend on one of the llvm packages will need to be
updated to work with LLVM19 or will need to switch to using one of the
llvm18 compat packages.
== Contingency Plan ==
If there are major problems with LLVM 19, the compatibility package
provide a way for other packages to continue using LLVM 18.
* Contingency deadline:Final Freeze
* Blocks release? No (not a System Wide Change)
== Documentation ==
LLVM sub-projects in Fedora have been updated to version 19:
* llvm (now includes clang, lld, compiler-rt, libomp)
* lldb
* llvm-test-suite
* libcxx
* python-lit
* flang
* mlir
* polly
* libclc
* llvm-bolt
== Release Notes ==
--
Aoife Moloney
Fedora Operations Architect
Fedora Project
Matrix: @amoloney:fedora.im
IRC: amoloney
Wiki - https://fedoraproject.org/wiki/Changes/Anaconda_As_Native_Wayland_Applicati…
Discussion Thread -
https://discussion.fedoraproject.org/t/f41-change-proposal-anaconda-as-nati…
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.
== Summary ==
Currently, Anaconda is still an X11 application, which we would like
to fix and make Anaconda Wayland native application to allow us drop
of the X11 dependencies from installation ISO images. However, this
change is not just a simple switch and we need to do some adjustments
during the path which will impact user experience.
== Owner ==
* Name: Anaconda team ([[User:jkonecny| Jiří Konečný]])
* Email: jkonecny(a)redhat.com
== Detailed Description ==
Anaconda is required to migrate to Wayland native application to drop
dependencies from the installation ISO images which are deprecated.
Package owners want to drop libXklavier from Fedora (see
https://bugzilla.redhat.com/show_bug.cgi?id=1955025 ) but also Xorg
server from CentOS Stream and RHEL. However, this change won’t be just
simple switching from X11 to Wayland, we also need to change a few
things in Anaconda to be able to remove the X11 dependencies. This
will have two main visible impacts listed below.
=== VNC switch to RDP for remote GUI installations ===
Anaconda has to remove ‘TigerVNC' which is used for VNC connection to
be able to install your machine remotely with graphical UI. Reason is
that TigerVNC is built from the Xorg server sources, so we would still
depend on the Xorg server with this project. As replacement, we follow
the recommendation of the Fedora Workstation to switch to Gnome Remote
Desktop (grd) with a better protocol Remote Desktop Protocol (RDP)
which gives users better performance and security.
This will have an impact on current vnc kickstart commands and kernel
boot options of Anaconda. This will impact only the Anaconda
installation environment (boot.iso).
=== Consistent keyboard control ===
Currently, Anaconda experiences difficulties in handling keyboard
layouts in the installation environment, particularly on Wayland.
Formerly, libXklavier was utilized by Anaconda to manage keyboard
layout configuration, however, it proved unstable on Wayland. As a
result, Anaconda has disabled keyboard handling during Wayland Live
media installations due to unexpected behavior (refer to
https://bugzilla.redhat.com/show_bug.cgi?id=2016613 ). This approach
may lead to situations when users encountering issues while unlocking
LUKS devices or using user passwords in the installed system because
installation was done with a different keyboard layout.
To exacerbate the situation, there is no universally applicable
solution for keyboard handling on Wayland systems, as Wayland lacks a
unified API for keyboard management. It means that each Fedora Desktop
Environment developed their own API. Unfortunately, the Anaconda team
is not able to maintain a custom solution for each Fedora spin. Some
Desktop environments started to use '''systemd-localed''' DBus API to
address this issue and similar issues. The systemd-localed API seems
to be the best approach currently, so we want to promote it as a
shared solution for all Fedora spins.
The plan is:
* All Fedora spins and Anaconda listen on
'''org.freedesktop.locale1''' and reflect configuration on the
currently running system (might be only for Live media if desired)
* All Fedora spins and Anaconda reflect their configuration to
org.freedesktop.locale1
* In case Fedora spin will not support '''org.freedesktop.locale1''',
the keyboard configuration of Anaconda won’t be reflected in the
current system and the situation will be similar to the current Live
Wayland experience
All the spin owners were notified about this request:
* https://pagure.io/fedora-workstation/issue/430
* https://pagure.io/fedora-kde/SIG/issue/504
* https://gitlab.com/fedora/sigs/sway/SIG/-/issues/36
* https://bugzilla.redhat.com/show_bug.cgi?id=2278655
* https://bugzilla.redhat.com/show_bug.cgi?id=2278658
* https://bugzilla.redhat.com/show_bug.cgi?id=2278656
* https://bugzilla.redhat.com/show_bug.cgi?id=2278864
* https://bugzilla.redhat.com/show_bug.cgi?id=2278866
* https://bugzilla.redhat.com/show_bug.cgi?id=2278869
* https://bugzilla.redhat.com/show_bug.cgi?id=2278874
* https://pagure.io/fedora-cosmic/SIG/issue/1
* https://pagure.io/fedora-budgie/project/issue/4
* https://pagure.io/fedora-lxqt/SIG/issue/4
* https://pagure.io/i3-sig/Fedora-i3-Spin/issue/70
== Feedback ==
We have some feedback from the SIG owners for the keyboard handling
(see the links above).
We don’t have feedback for the VNC to RDP switch yet.
== Benefit to Fedora ==
* This change will enable removal of X11 dependencies from the
Anaconda which may result in reduction of installed software to the
system when installing from Live ISO where ISO content is copied to
the installed system (depends on the spin dependencies).
* Switching from VNC to RDP allow users to use remote graphical
installations which are more secure and have better performance .
== Scope ==
* Proposal owners: The Anaconda team will implement changes required
in the Anaconda project. More specifically:
** Switch Anaconda code to start Wayland environment on boot.iso instead of X11
** Change keyboard switching logic to use systemd-localed DBus instead
of libXklavier
** Switch remote graphical installations from VNC (TigerVNC) to RDP (GRD)
* Other developers: Fedora SIG owners needs to add support for their
environment to listen and use systemd-localed DBus API to reflect
current state of the DE/WM or they won’t have support of keyboard
layout switching in Anaconda.
* Release engineering: [https://pagure.io/releng/issue/12138 #12138]
* Policies and guidelines: Yes should be done after the implementation
(https://docs.fedoraproject.org/en-US/fedora-server/installation/interactive…
should switch to RDP)
* Trademark approval: N/A (not needed for this Change)
* Alignment with the Fedora Strategy:
== Upgrade/compatibility impact ==
This will impact only Fedora installations so no compatibility or
upgrade issues.
== Early Testing (Optional) ==
We will reach Fedora QE to coordinate testing approach.
== How To Test ==
# Download any installation media
# Run the installation
# Look for breakages during the installation
Testing should be especially focused on:
* Changing resolution with ''inst.resolution'' kernel boot option
* Test new RDP solution (API will be clarified)
** Password can be set to the RDP
** Username can be set to the RDP
* Test keyboard layout switching works correctly
** On Live media, Anaconda should react on keyboard layout change in
the DE and set that to the installed system
** On Live media, Anaconda should be able to set the keyboard layout
changes to the live environment
** In the network installation (boot.iso) Anaconda should correctly
reflect keyboard layouts changes so text in the Anaconda is written by
the correct layout
** Check if specific keyboard layouts are configured and installed as expected
== User Experience ==
The only visible change to a user should be:
* Remote graphical installations will use RDP instead of VNC.
* Anaconda will be able to control keyboard layouts in the Wayland
environment on Live ISOs. This will improve user experience when
installing Fedora Workstation, Fedora KDE, Fedora Sway and other
Wayland based environments.
== Dependencies ==
No dependencies of this package related to this change.
== Contingency Plan ==
* Contingency mechanism: Postpone this change to the next Fedora
release. Revert landed changes in Anaconda if required.
* Contingency deadline: 100% code completion deadline
* Blocks release? No
== Documentation ==
No documentation yet. However, there are a few PRs ready for merge for
CentOS Stream 10:
* https://github.com/rhinstaller/anaconda/pull/5463
* https://github.com/rhinstaller/anaconda/pull/5470
* https://github.com/rhinstaller/anaconda/pull/5485
* https://github.com/rhinstaller/anaconda/pull/5498
== Release Notes ==
TBD
--
Aoife Moloney
Fedora Operations Architect
Fedora Project
Matrix: @amoloney:fedora.im
IRC: amoloney
Hello all,
Fedora Linux 38 reached its end of life for updates and support on
2024-05-21. As of that date, no further updates of any kind, including
security updates or security announcements, will be available for
Fedora Linux 38. The distribution ceased pushing any updates,
including those to the stable release. On the other hand, Fedora Linux
39 will continue to receive updates until approximately one month
after the release of Fedora Linux 41. The maintenance schedule of
Fedora Linux releases is documented on the Fedora Project wiki [1].
For instructions on upgrading from a previous release of Fedora Linux
to a version receiving updates, the Fedora Project wiki provided
comprehensive guidance [2].
Regards,
Samyak Jain
Fedora Release Engineering
[1] https://docs.fedoraproject.org/en-US/releases/lifecycle/#_maintenance_sched…
[2]https://fedoraproject.org/wiki/Upgrading?rd=DistributionUpgrades