Fedora 34 Change proposal: Remove make from BuildRoot (System-Wide Change)
by Ben Cotton
https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot
== Summary ==
This change will remove make from the default buildroot in Koji and mock.
== Owner ==
* Name: [[User:tstellar| Tom Stellard]]
* Email: <tstellar(a)redhat.com>
== Detailed Description ==
===== Phase 1: Analysis =====
For this change, we will start by creating a list of all packages that
have a build-time dependency on make. This will be done by analyzing
spec files and also by rebuilding all packages in Fedora with make
removed from the buildroot to see which packages fail to build. Once
we have this list, we will remove packages that already have
BuildRequires:make in their spec file, and this final list[1] will be
all the packages that need to be updated in Phase 2.
[1] https://github.com/tstellar/fedora-change-make-buildroot/blob/main/needs_...
===== Phase 2: Package Updates =====
Once we have the list of packages that need to be updated, we will
proceed with adding BuildRequires: make to all spec files that require
it. This new BuildRequires will be added to the line after the last
BuildRequires in the spec file. The release number for packages will
'''*not*''' be incremented for this change.
The spec file updates will be automated and changes will be pushed
directly to dist-git once they are ready.
===== Phase 3: Update Buildroot =====
Once package spec files have been updated, then we can proceed with
removing make from the BuildRoot. This will be done by removing make
from the build group in Koji and by removing make from the
buildsys-build group in comps (fedora-comps). In order to avoid
issues with Koschei, this change will need to be made as close as
possible to the start of the mass rebuild. If possible, we will try
to first remove make from the mass rebuild side-tag and then remove it
from rawhide after the rebuild completes.
===== Phase 4: Monitor Failures =====
Once all the changes are in place, we will continue to monitor koji
builds to see if there are any failures related to this change. We
expect that the analysis done in Phase 1 would give us the complete
list of packages that need to be updated, but it is always possible
that something will be missed.
== Feedback ==
* Removing make from the Buildroot without rebuilding the packages
first has the potential to cause mass failures in Koschei. This is
because Koschei builds from the latest SRPM and not from dist-git. We
can minimize this problem by removing make from the buildroot as close
as possible to the mass rebuild. The proposal has been updated now to
account for this issue.
== Benefit to Fedora ==
Based on my research[1], Fedora Rawhide has 22,309 packages, and there
are approximately 10,378 packages that either use make explicitly or
fail to build when make is removed form the buildroot. This means
that there are around 11,931 packages that don't need make. Removing
make from the BuildRoot will reduce the network traffic, download
times, and disk usage for these builds in Koji and also for users
doing builds with mock.
Removing make (and its dependencies) will:
* Reduce the BuildRoot download size by: 7.3 MB [2]:
** make: 539k
** gc: 104k
** guile22: 6.6M
** libtool-ltdl: 36k
* Reduce the BuildRoot install size by; 46 MB [2]:
** make: 1.6M
** gc: 229k
** guile22: 44M
** libtool-ltdl: 71k
[1] https://github.com/tstellar/fedora-change-make-buildroot
[2] Package sizes are from the x86_64 packages.
== Scope ==
* '''Proposal owners:''' Tom Stellard
* '''Package Maintainers:''' Fedora package maintainers should report
bugs if they think there is a problem caused by this change, but
otherwise there will be no action required by them.
* '''Proven Packager:''' The proposal owner will need to either apply
for provenpackager status or get the help of someone with
provenpackager status in order to make the spec file changes that are
required.
* '''Release engineering:''' [https://pagure.io/releng/issue/9829
#9829] (a check of an impact with Release Engineering is needed)
* '''Policies and guidelines:''' The packager guidelines will need to
be updated to mention that BuildRequires: make is now required for all
packages that need make.
* '''Trademark approval:''' N/A (not needed for this Change)
* '''Alignment with Objectives:''' This aligns with the Fedora
Minimization [https://pagure.io/minimization/issue/12 objective].
== Upgrade/compatibility impact ==
This should not impact upgrades.
== How To Test ==
This change can be tested by rebuilding affected packages. The goal
is to complete this before the mass rebuild to ensure maximum testing
coverage.
== User Experience ==
Fedora users will not notice any difference with this change. This
will only impact Fedora package maintainers.
== Dependencies ==
gcc < 11 will fail if the -flto=auto option is used when make is not
installed. Phase 3 cannot be completed until gcc 11 lands in rawhide,
but Phase 1 and Phase 2 are not blocked by this.
== Contingency Plan ==
* '''Contingency mechanism:''' If we discover critical issues during
phase 4, then Fedora Release Engineering will need to re-add make into
the buildroot.
* '''Contingency deadline:''' 2021-02-23 (F34 Beta Freeze)
* '''Blocks release?''' No
* '''Blocks product?''' No
== Documentation ==
The packager guidelines will need to be updated to mention that
BuildRequires: make is now required for all packages that need make.
--
Ben Cotton
He / Him / His
Senior Program Manager, Fedora & CentOS Stream
Red Hat
TZ=America/Indiana/Indianapolis
3 years, 2 months
our containers with alias vim=vi
by clime
Hello,
could Fedora and CentOS containers for docker and podman come with
`alias vim=vi` in ~/.bashrc?
I would very much welcome it as I am used to type vim everywhere but
if vi starts instead I am happy too. I know that the solution is to
create a customized container but often I want to try something on
vanilla containers from the whole range.
Didn't want to write about this first but maybe there are more people
with the same problem.
clime
3 years, 2 months
Server Side Public License (SSPL) v1
by Tom Callaway
After review, Fedora has determined that the Server Side Public License
v1 (SSPL) is not a Free Software License.
It is the belief of Fedora that the SSPL is intentionally crafted to be
aggressively discriminatory towards a specific class of users.
Additionally, it seems clear that the intent of the license author is to
cause Fear, Uncertainty, and Doubt towards commercial users of software
under that license. To consider the SSPL to be "Free" or "Open Source"
causes that shadow to be cast across all other licenses in the FOSS
ecosystem, even though none of them carry that risk.
It is also worth nothing that while there is a draft for a "v2" of the SSPL:
A) It is not final.
B) It is not in use anywhere at this time (as far as we know).
C) The intent of the v2 draft text is not changed from the v1 license
currently in use.
We have updated our "Bad License" list to include SSPLv1. No software
under that license may be included in Fedora (including EPEL and COPRs).
Thanks,
Tom Callaway
Fedora Legal
3 years, 3 months
Re: NeuroFedora review swaps
by Ankur Sinha
On Mon, Jan 28, 2019 15:47:00 +0100, J. Scheurich wrote:
>
> > I'd like to get this package reviewed please:
> >
> > - python-pyscaffold: https://bugzilla.redhat.com/show_bug.cgi?id=1669913#
> >
> > Would anyone like to swap reviews?
>
> I would review it for wdune sponsoring.
Sorry---I'm not current with the wdune scenario. I assumed you meant
that you'd review it unofficially as part of the work to get sponsored
to the packagers group:
https://fedoraproject.org/wiki/How_to_get_sponsored_into_the_packager_gro...
I'm not a sponsor yet so I cannot sponsor you to the group myself, but
once you've done a few reviews, a sponsor will be happy to take a look
at them and guide you through the sponsorship process.
If you've submitted a review ticket for wdune already, I will be happy
to review it and provide comments.
--
Thanks,
Regards,
Ankur Sinha
https://ankursinha.in
Time zone: Europe/London
3 years, 3 months
Mass spec file change: Adding BuildRequires: make
by Tom Stellard
Hi,
As part of the f34 change request[1] for removing make from the
buildroot, I will be doing a mass update of packages[2] to add
BuildRequires: make where it is needed.
If you are a package maintainer and would prefer to update your packages
on your own, please do so before Dec 14, which is when I will begin
doing the mass update.
I will be doing the updates in batches, so that if there is a mistake
the impact will be limited. Here is the rough schedule of the changes:
Dec 14: Update first 50 packages.
Dec 16: Next 1000.
Dec 18: Next 1000.
Jan 4: Next 1000.
Jan 5: Next 1000.
Jan 6: Next 1000.
Jan 7: Next 1000.
Jan 8: Rest of packages.
The deadline for completing these updates is the start of the f34 mass
rebuild (Jan 20).
Thanks,
Tom
[1] https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot
[2] https://fedorapeople.org/~tstellar/needs_br_make_packages.txt
3 years, 3 months
F34 Change proposal: Wayland by Default for KDE Plasma Desktop
(System-Wide Change)
by Ben Cotton
https://fedoraproject.org/wiki/Changes/WaylandByDefaultForPlasma
== Summary ==
Change the default session selection in SDDM to prefer the
Wayland-based KDE Plasma Desktop session over the X11-based one.
== Owner ==
* Name: [[User:Ngompa|Neal Gompa]], [[User:Rdieter|Rex Dieter]],
[[User:Jgrulich|Jan Grulich]]
* Email: ngompa13(a)gmail.com, rdieter(a)gmail.com, jgrulich(a)redhat.com
* Product: KDE Spin
* Responsible WG: KDE SIG
== Detailed Description ==
With KDE Plasma 5.20, the KDE Plasma desktop environment has reached a
point where nearly all commonly used features in the desktop and all
major applications function in the Plasma Wayland environment on all
major GPUs (including NVIDIA with the proprietary driver). Starting
with Plasma 5.20 in Fedora 34, we will change the default
configuration for Wayland and X11 Plasma sessions so that Wayland is
preferred and used by default, while permitting the X11 session to be
selected as the alternative desktop environment option.
== Feedback ==
==== Is Wayland ready? ====
Wayland has been used by default for Fedora Workstation (which uses
GNOME) since Fedora 25. And while it was somewhat immature initially,
today it is a very rock-solid experience on virtually everything
Fedora Workstation runs on. The change in Fedora 25 kickstarted the
drive to get everything working on Wayland, and the Workstation team
succeeded beyond their wildest dreams. Firefox has been Wayland-native
by default since Fedora 31 as well.
On the KDE side, serious work into supporting Wayland started shortly
after GNOME switched to Wayland by default. Unlike GNOME, KDE has a
much broader stack in its toolkit, and it has taken longer to get to a
usable state. With the Plasma 5.20 release, the Wayland protocol for
screencasting as well as middle-click paste finally are supported,
completing the required feature set for switching to Wayland by
default.
==== What about NVIDIA? ====
Plasma, in fact, ''does'' support NVIDIA GPUs with the proprietary
driver on Wayland. It needs to be manually activated, which will be
taken care of by the <code>kwin-wayland-nvidia</code> package. So the
expectation is that all major GPUs will work just fine.
==== Why not keep using X11? ====
The fact of the matter is, Xorg is in
[https://blogs.gnome.org/uraeus/2019/06/24/on-the-road-to-fedora-workstati...
"hard maintenance mode"] per [[User:Uraeus|Christian Schaller]] and
development on it has basically stopped beyond the most critical of
fixes. Combined with the rapid maturation of the Wayland session in
KDE Plasma, this is the best time to make the switch and push things
over the edge for the KDE ecosystem in the same way that Fedora
Workstation did for the GNOME ecosystem.
== Benefit to Fedora ==
Fedora has long been a leader in advancing the adoption of the Wayland
protocol as part of the overall strategy to improve the Linux
graphical software stack. Much of the quality of Wayland for GNOME can
be attributed to the work done by the Fedora Workstation WG as part of
advancing the GNOME platform. It is now the KDE SIG's turn to do the
same for the KDE platform. By making this change, we are helping push
the adoption forward for newer, more streamlined, and overall more
actively developed graphics technology for the KDE ecosystem.
== Scope ==
* Proposal owners:
** Modify {{package|kwin}} to switch to Wayland
*** Split out <code>/usr/bin/kwin_x11</code> to the
<code>kwin-x11</code> subpackage.
*** Make {{package|kwin}} require <code>kwin-wayland</code> and
recommend <code>kwin-x11</code>
*** Add <code>kwin-wayland-nvidia</code> subpackage which contains
<code>/usr/lib/environment.d/10-kwin-wayland-nvidia.conf</code> to set
<code>$KWIN_DRM_USE_EGL_STREAMS</code> to <code>1</code>. This package
will have have a Supplements dependency <code>(kwin-wayland and
kmod-nvidia)</code>.
** Modify {{package|plasma-workspace}} to switch to Wayland
*** Rename <code>/usr/share/xsessions/plasma.desktop</code> to
<code>/usr/share/xsessions/plasma-xorg.desktop</code>, subpackage it
out as <code>plasma-workspace-xorg</code>, and have it require
<code>kwin-x11</code>
*** Rename <code>/usr/share/wayland-sessions/plasmawayland.desktop</code>
to <code>/usr/share/wayland-sessions/plasma.desktop</code>
*** Make {{package|plasma-workspace}} require
<code>plasma-workspace-wayland</code> and recommend
<code>plasma-workspace-xorg</code>
** Modify <code>@kde-desktop</code> comps group for Fedora 34 to
include <code>plasma-workspace-xorg</code> for the media.
* Other developers: N/A (not applicable for this Change)
* Release engineering: [https://pagure.io/releng/issue/9741 #9741]
* Policies and guidelines: N/A (not needed for this Change)
* Trademark approval: N/A (not needed for this Change)
* Alignment with Objectives: N/A (not applicable for this Change)
== Upgrade/compatibility impact ==
Systems using certain (very old) graphics hardware or graphics drivers
(matrox, etc.) may have problems running the Wayland session. In these
(rare) cases, users may have to configure SDDM to use X11.
== How To Test ==
Log into a KDE Plasma desktop. Do any activity you would normally do
in your daily desktop use: launching applications, configuring
displays, etc. Things should work the same way under Wayland as they
used to under X.
== User Experience ==
The user experience should not change noticeably.
== Dependencies ==
This mainly affects the {{package|plasma-workspace}} and
{{package|kwin}} packages, and details for the changes for those
packages are described in the Scope section.
== Contingency Plan ==
* Contingency mechanism: Revert the file renames and switch
<code>plasma-workspace-xorg</code> to be the required package instead
of <code>plasma-workspace-wayland</code>
* Contingency deadline: beta freeze
* Blocks release? Yes
* Blocks product? KDE Spin
== Documentation ==
Some upstream documents about Wayland
* https://community.kde.org/Plasma/Wayland
* https://community.kde.org/KWin/Wayland
There is currently no coherent up to date documentation about Plasma Wayland.
== Release Notes ==
The KDE Plasma Desktop is using the Wayland display system now. X
applications will continue to run transparently through XWayland.
--
Ben Cotton
He / Him / His
Senior Program Manager, Fedora & CentOS Stream
Red Hat
TZ=America/Indiana/Indianapolis
3 years, 3 months
systemd v247-rc2 (app.slice, oomd, udev rule changes, light deps)
by Zbigniew Jędrzejewski-Szmek
Hi,
we're getting ready to push systemd 247-rc2 to rawhide. This is
currently blocked by selinux (see below), but I wanted to give a heads-up.
There's a number of changes which are interesting for Fedora:
- user units (under user(a)nnn.service) are segregated into app.slice,
session.slice, background.slice. By itself this doesn't do much, but
it'll allow e.g. kernel memory protections to be applied to session.slice,
ensuring that gnome-shell remains responsive even with high memory
contention. This change requires further changes from desktop environments
to put appropriate units in the respective slices, so the changes in systemd
are just the beginning of the process.
- systemd-oomd and oomctl are available, but should be considered "technical
preview" (backwards-incompatible changes may still happen). oomd doesn't
do anything without configuration, so for anyone interested in this, now
is a good moment to experiment with policy settings and suggest some
defaults to upstream.
- udev rules might need to be adjusted to handle new "bind" and "unbind"
events emitted by the kernel. Despite multiple attempts, we couldn't
find a way to handle this change in udev in a way that would preserve
compatibility with existing rules. See the NEWS file [1] for details.
- some non-essential libraries are now loaded using dlopen().
Dependencies in packages have been downgraded from "Requires" to
"Recommends" (libpwquality, libqrencode, libxkbcommon, libidn2,
libcryptsetup). This will result in smaller installation footprint,
but users may need to explicitly install some dependencies. (This
only matters where install_weak_deps=False, i.e. not on normal user
installations.)
- nss-resolve now talks to systemd-resolved using a direct varlink
connection, instead of a dbus connection through the system broker.
This means that name resolution using resolved is available
immediately after resolved is up, while previously it required
dbus-broker.service to up, which happens relatively late.
There's a bunch of other changes too, see NEWS [1].
The new version is not built in rawhide yet because we're waiting for
the selinux policy update [2]. (The biggest problem is selinux policy
blocking the check if selinux is enabled ;)).
Builds are available in side tag f34-build-side-33917 [3].
[1] https://github.com/systemd/systemd/blob/v247-rc2/NEWS
[2] https://github.com/fedora-selinux/selinux-policy/pull/464
[3] https://koji.fedoraproject.org/koji/taskinfo?taskID=55456626
Zbyszek
3 years, 3 months