Tuesday, June 24, 2025

F43 Change Proposal: X11Libre (system-wide)

Wiki - https://fedoraproject.org/wiki/Changes/X11Libre
Discussion thread -
https://discussion.fedoraproject.org/t/f43-change-proposal-x11libre-system-wide/156330

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 ==

Replace the X.Org X11 Xserver (<code>xorg-x11-xserver</code>) with the
[https://github.com/X11Libre/xserver X11Libre (XLibre) Xserver], an
actively maintained fork.

== Disclaimer ==

'''The Change Owner does NOT share or endorse upstream's political
views!''' Given that those can be found even in the upstream
project-wide <code>README.md</code>, the Change Owner feels obliged to
make this clarification.

== Owner ==
* Name: [[User:Kkofler| Kevin Kofler]]
* Email: Kevin@tigcc.ticalc.org



== Detailed Description ==

A long time has passed since the last major release of the X.Org X11
Xserver. Even bugfix releases have become rare. Therefore, this Change
proposes replacing the nearly unmaintained upstream with a maintained
fork, the X11Libre XServer.

The upstream maintainer of X11Libre had been the most active remaining
contributor to the X.Org X11 Xserver before the fork. The Change Owner
is well aware of the controversies around the X11Libre upstream
maintainer (FreeDesktop.org CoC violations, controversial political
views, conspiracy theories, rants against Red Hat), but believes that
the benefit of shipping maintained software outweighs the potential
annoyances when having to deal with upstream.

There is no intent to ever replace the Xwayland implementation, only
the standalone Xserver and its subpackages (Xnest, Xvfb, Xephyr), and
possibly the driver packages (<code>xorg-x11-drv-*</code>).

== Feedback ==

The formal discussion on this Change has '''not''' started yet,
pending official announcement of the Change.

=== Some earlier X11-related discussion (not directly related to this
Change) ===

Ticket:
* [https://pagure.io/Fedora-Council/tickets/issue/481 #481 KDE X11
Packages in Violation of System-Wide Change]

Thread:
* [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/U27YRVY3UZUM623QAQKCP3VM2OJBCEQ6/
fedora-devel
list archive: GDM dropped support for running X11
sessions in F42 without a Change?]

=== Discussion of this Change started before the formal announcement ===

Thread:
* [https://discussion.fedoraproject.org/t/veto-x11libre-inclusion-for-fedora/155926/1
discussion.fedoraproject.org - Veto X11Libre inclusion for fedora]


== Benefit to Fedora ==
* Fedora will benefit from shipping an actively maintained Xserver
instead of a moribund one whose maintainers themselves label as
"unmaintained" (pushing Wayland as the replacement).
* All the Spins (and Editions, if any) still shipping X11 will benefit
from the improvements. The ones that have switched to Wayland (only)
will not be affected at all.
* One interesting new feature is the
[https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1865
Xnamespace extension], which aims at bridging the gap in isolation
capabilities between X11 and Wayland. '''If and where''' that
extension is used, it will no longer be possible to abuse the Xserver
for privilege escalation across a security boundary enforced by the
extension (e.g., host/container, root/user). (Note that this extension
is purely opt-in and will by default do nothing.)
* The Xnest nested X server has been ported from the legacy Xlib to
the xcb library.
* The fact that the Xserver is now maintained again means it will be
able to live in Fedora for much longer, and the need to push all users
to Wayland at all costs disappears completely.

== Scope ==
* Proposal owners: Package <code>x11libre-xserver</code> (based on the
existing <code>xorg-x11-xserver</code> package), add proper
Obsoletes/Provides, get it through the package review process, and try
to find comaintainers. (The packaging changes as such are pretty much
self-contained. The Change is system-wide due to touching an important
package with many users and reverse dependencies.)

* Other developers: Drivers depending on the X11 driver ABI will need
to be rebuilt (see the next section ''Upgrade/compatibility impact'').
For those that are part of X.Org, instead of just rebuilding the old
unmaintained code, it may make sense to move those packages to the
forks in the X11Libre project as well. Otherwise, no changes by other
developers should be needed.

* Release engineering: [https://pagure.io/releng/issue/12774 Rel-eng
says no impact.]

* Policies and guidelines: No updates needed.

* Trademark approval: N/A (not needed for this Change)

* Alignment with the Fedora Strategy: Replacing near-unmaintained
software with a maintained version matches the point "Focus Area:
Technology Innovation & Leadership" of the Fedora Strategy and "First"
in the referenced Four Foundations.

== Upgrade/compatibility impact ==
The fork is a drop-in replacement for the X.Org X11 Xserver. As such,
no compatibility issues should be visible to end users, and RPM-level
Obsoletes/Provides will transparently take care of the package rename.
No manual configuration or data migration should be needed. No dropped
functionality has been announced at this time.

However, as with every new major X.Org X11 Xserver release in the
past, the driver ABI has changed. Therefore, any X drivers will have
to be rebuilt with the new ABI. The process is the same as for regular
major updates of the Xserver, though indeed it has been a long time
since the last such major release, so this might come as a surprise to
some.

== Early Testing (Optional) ==
Do you require 'QA Blueprint' support? N

It is planned to bring up a Copr repository as soon as possible to
allow for early user testing. The Change Owner does not believe
automated testing to be of much use for this Change.

== How To Test ==
Hardware requirements: Testing is useful on all hardware (except
completely headless or text-only systems). No special hardware is
needed. However, the more different graphics hardware gets tested, the
better.

Software requirements: To test this change, the system only needs to
run X11. So install any desktop environment or standalone window
manager that uses X11. (If you want to test KDE Plasma, install the
<code>plasma-workspace-x11</code> package and make sure you test the
"Plasma (X11)" session, not the Wayland one.) Then upgrade your
Xserver to the X11Libre one (<code>x11libre-xserver</code>).

Testing: Once you have the requirements, you should try to use your
desktop environment (or standalone window manager) as normal, and
report any crashes or graphical glitches that come up. The expected
result is that everything works without any crashes or glitches. A
non-exhaustive list of items that are useful to test specifically is
given by the following release criteria:
* [https://fedoraproject.org/wiki/Basic_Release_Criteria#Window_manager_functionality
Basic: Window manager functionality]
* [https://fedoraproject.org/wiki/Fedora_43_Beta_Release_Criteria#Desktop_panel
Beta: Desktop panel]
* [https://fedoraproject.org/wiki/Fedora_43_Final_Release_Criteria#Default_application_functionality
Final: Default application functionality]
* [https://fedoraproject.org/wiki/Fedora_43_Final_Release_Criteria#Default_panel_functionality
Final: Default panel functionality]
* [https://fedoraproject.org/wiki/Fedora_43_Final_Release_Criteria#Dual_monitor_setup
Final: Dual monitor setup]
* [https://fedoraproject.org/wiki/Fedora_43_Final_Release_Criteria#Window_manager_functionality
Final: Window manager functionality]

== User Experience ==
Users will not immediately notice any difference at all. In the long
run, they may benefit from fixed bugs, from the Xnamespace extension
if and when other software starts using it, and from future features.

== Dependencies ==
'''RPM reverse dependencies (other packages depending on this
package):''' Several packages depend on the Xserver. Thanks to
Obsoletes/Provides, most of them will not be affected by this change
at all. However, packages depending on the driver ABI will need a
rebuild (see ''Upgrade/compatibility impact'').

'''Dependencies on other Changes:''' No.

'''Dependencies on other upstream projects:''' No.

== Contingency Plan ==
* Contingency mechanism: Revert to <code>xorg-x11-server</code>. With
suitably versioned Obsoletes/Provides, that should require only a
sufficient bump of Release in <code>xorg-x11-server</code> and adding
Obsoletes/Provides to <code>xorg-x11-server</code> to replace
<code>x11libre-server</code>. The Change Owner will do it.
* Contingency deadline: Beta Freeze. (Late enactment of the
contingency plan is technically possible, but means a lot of testing
may be invalidated.)
* Blocks release? Maybe. If the Change is not implemented at all (or
if the contingency plan is enacted): no. If any release-blocking
deliverable is still using X11, and if X11 is so broken that it makes
it fail the release criteria, then yes, until either the regression is
fixed or the contingency plan is enacted. Otherwise, no.

== Documentation ==
See the [https://www.freelists.org/post/xlibre/Xlibre-250-summer-solstice-release
upstream 25.0 release announcement]. There is also
[https://github.com/X11Libre/xserver/blob/master/README.md the
upstream README.md]. Unfortunately, half of those documents consists
of political statements (which are upstream's views and upstream's
'''only''', see the ''Disclaimer'' section) and rants.

More details about the Xnamespace extension can also be found in the
[https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1865
rejected X.Org/FreeDesktop.org merge request].

== Release Notes ==
In this Fedora release, the X.Org X11 Xserver
(<code>xorg-x11-xserver</code>) has been replaced by a maintained
fork, the X11Libre Xserver (<code>x11libre-xserver</code>). This
affects the Xserver itself (<code>xorg-x11-xserver-Xorg</code>) as
well as the subpackages ''Xnest'' (which no longer depends on the
legacy Xlib (<code>libX11</code>), but on the xcb library
(<code>libxcb</code>)), ''Xvfb'', and ''Xephyr''.

End users are not expected to immediately notice any difference at
all, but may in the long run benefit from fixed bugs and future
features. Note however that, as with any major release of the Xserver,
the X11 driver ABI has changed, so third-party drivers will need to be
recompiled for the new Xserver version.

--
Aoife Moloney

Fedora Operations Architect

Fedora Project

Matrix: @amoloney:fedora.im

IRC: amoloney

--
_______________________________________________
devel-announce mailing list -- devel-announce@lists.fedoraproject.org
To unsubscribe send an email to devel-announce-leave@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, report it: https://pagure.io/fedora-infrastructure/new_issue

No comments:

Post a Comment