Disable dmraid.service on first run if no dmraid sets are found - Fedora 33 System-Wide Change proposal

2020-06-29 Thread Ben Cotton
https://fedoraproject.org/wiki/Changes/DisableDmraidOnFirstRun

== Summary ==
The Fedora workstation livecd is the default Fedora variant getfedora.org
advices people to download.
As such most Fedora workstation installs will be done from the livecd. This
means that any package which is part of the livecd will be part of the
default install for most users.

Dmraid is 1 of only 2 packages in the default install which still Requires
the long obsoleted systemd-udev-settle.service, which waits for all
device-detection to be done + some extra waiting just to be sure. This
significantly slows down booting on various systems.

Fedora only support these RAID sets when they are already configured in the
BIOS at installation time. So we can solve the problem of dmraid.service
still depending on the obsolete udev-settle service by making
dmraid.service disable itself if no supported RAID sets are found on its
first run.

== Owner ==
* Name: [[User:jwrdegoede| Hans de Goede]]
* Email: hdego...@redhat.com

== Detailed Description ==

Dmraid is 1 of only 2 packages in the default install which still Requires
the long obsoleted systemd-udev-settle.service. The other package is
device-mapper-multipath see
[[Changes/RemoveDeviceMapperMultipathFromWorkstationLiveCD|Remove
device-mapper-multipath from the Fedora workstation livecd]].

Dmraid is necessary to support firmware-raid (motherboard BIOS built-in
RAID support) for non Intel firmware RAID sets. These RAID sets are quite
rare and we have never supported configuring these RAID sets after the
installation without manually setting it up. Since we only support these
sets when they are already configured in the BIOS at installation time, we
can solve the problem of dmraid.service still depending on the obsolete
udev-settle service by making dmraid.service disable itself if no supported
RAID sets are found on its first run.

Note then when installing from the server or everything netboot isos,
dmraid depending on the obsolete udev-settle service is not a problem,
because then it will not be installed at all. Anaconda (the installer) adds
storage related packages such as dmraid to the installation package-set as
necessary for the storage found at installation time. This means that for
such installs, if a dmraid set is later configured, the user manually needs
to install dmraid to be able to use the RAID set. This change adds a
similar requirement to livecd installs, there the user will now need to do
a "systemctl enable dmraid.service" if a dmraid set is added to the system
later.

There has been [https://bugzilla.redhat.com/show_bug.cgi?id=1795014 a bug]
open against dmraid for this issue for a while now. As pointed out there,
this change can easily be implemented with some small changes to the shell
script which gets started by the dmraid service.

== Benefit to Fedora ==
systemd-udev-settle.service causes a significant and sometimes quite long
delay during boot. Removing / disabling the last 2 services depending on
this long obsolete helper service will remove the unnecessary boot delay.

== Scope ==
* Proposal owners:
** Prepare the suggested dmraid activation script changes and push out a
new dmraid package with these changes added
** Coordinate this with the dmraid maintainers

* Other developers:
** I will make sure that the dmraid maintainers are aware of and agree with
these changes. I will take care of these changes myself.

* Release engineering: [https://pagure.io/releng/issue/9559 #9559] (a check
of an impact with Release Engineering is needed)

* Policies and guidelines: N/A (not needed for this Change)

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

== Upgrade/compatibility impact ==
After upgrading, if no dmraid sets are found on the first boot with the new
package, the dmraid service will disable itself, just as it will on new F33
installs.

== How To Test ==
# Install F33 on a machine / VM without dmraid
# Boot the installed system
# Reboot the installed system
# Do "systemctl status dmraid.service", the output should be "loaded (...;
disabled; ...)" and "inactive (dead)"

== User Experience ==
Faster booting Fedora when installed from the livecd.

== Dependencies ==
There are no other changes / package updates this Change depends on; or
which this change impacts.

== Contingency Plan ==
* Contingency mechanism: Revert the activation script changes if they cause
problems
* Blocks release? No

== Documentation ==
This change does not require any documentation.


-- 
Ben Cotton
He / Him / His
Senior Program Manager, Fedora & CentOS Stream
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: 

Remove device-mapper-multipath from the Fedora workstation livecd - Fedora 33 System-Wide Change proposal

2020-06-29 Thread Ben Cotton
https://fedoraproject.org/wiki/Changes/RemoveDeviceMapperMultipathFromWorkstationLiveCD

== Summary ==
The Fedora workstation livecd is the default Fedora variant getfedora.org
advices people to download.
As such most Fedora workstation installs will be done from the livecd. This
means that any package which is part of the livecd will be part of the
default install for most users.

device-mapper-multipath is 1 of only 2 packages in the default install
which still Requires the long obsoleted systemd-udev-settle.service, which
waits for all device-detection to be done + some extra waiting just to be
sure. This significantly slows down booting on various systems.

Multipath support is only necessary for installations in data-centers or
other enterprise setups, as such having device-mapper-multipath on the
livecd is not really necessary. For installations which do actually need
this device-mapper-multipath the server installation iso can be used and
this is a better fit for such installations.

== Owner ==
* Name: [[User:jwrdegoede| Hans de Goede]]
* Email: hdego...@redhat.com

== Detailed Description ==

device-mapper-multipath is 1 of only 2 packages in the default install
which still Requires the long obsoleted systemd-udev-settle.service. The
other package is dmraid see [[Changes/DisableDmraidOnFirstRun|Disable
dmraid.service on first run]].

Multipath support is only necessary for installations in data-centers or
other enterprise setups, as such having device-mapper-multipath on the
livecd is not really necessary. For installations which do actually need
this device-mapper-multipath the server installation iso can be used and
this is a better fit for such installations.

Note then when installing from the server or everything netboot isos,
device-mapper-multipath depending on the obsolete udev-settle service is
not a problem, because then it will not be installed at all. Anaconda (the
installer) adds storage related packages such as device-mapper-multipath to
the installation package-set as necessary for the storage found at
installation time. So any installs done through the netinst isos already
will not have device-mapper-multipath installed.

== Feedback ==


== Benefit to Fedora ==
systemd-udev-settle.service causes a significant and sometimes quite long
delay during boot. Removing / disabling the last 2 services depending on
this long obsolete helper service will remove the unnecessary boot delay.

== Scope ==
* Proposal owners:
** Change the livecd packagelist (comps) to no longer include the
device-mapper-multipath package

* Other developers:
** No action is required by other developers
** Except if another package still brings in device-mapper-multipath
through dependencies, then this needs to be solved / coordinated with that
other packages maintainers

* Release engineering: [https://pagure.io/releng/issue/9560 #9560] (a check
of an impact with Release Engineering is needed)

* Policies and guidelines: N/A (not needed for this Change)

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

== Upgrade/compatibility impact ==
This only affects new installs, upgrades of installs which have
device-mapper-multipath installed will still have it installed after the
upgrade.

== How To Test ==
# Install F33 on a machine / VM
# Do "rpm -q device-mapper-multipath", the output should be
"device-mapper-multipath" is not installed

== User Experience ==
Faster booting Fedora when installed from the livecd.

== Dependencies ==
There are no other changes / package updates this Change depends on; or
which this change impacts.

== Contingency Plan ==
* Contingency mechanism: Re-add device-mapper-multipath to the livecd if
the dropping of it causes problems.
* Blocks release? No

== Documentation ==
This change does not require any documentation.


-- 
Ben Cotton
He / Him / His
Senior Program Manager, Fedora & CentOS Stream
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


Cleanup GNOME Hidden Boot Menu Integration - Fedora 33 System-Wide Change proposal

2020-06-29 Thread Ben Cotton
https://fedoraproject.org/wiki/Changes/CleanupGnomeHiddenBootMenuIntegration

== Summary ==
GNOME integrates with Fedora's [[Changes/HiddenGrubMenu|hidden boot
menu feature]] to signal to the bootloader that boot was successful
and to request the menu to be shown the next boot when "Boot Options"
is selected in the Shutdown/Reboot dialog. Currently Fedora carries
downstream patches for this, which directly call the Fedora specific
grub2-set-bootflag helper. The goal of this change is to replace these
downstream patches with a clean bootloader agnostic solution which can
be submitted upstream.

== Owner ==
* Name: [[User:jwrdegoede| Hans de Goede]]
* Email: hdego...@redhat.com

== Detailed Description ==

GNOME has 2 integration points with the
[[Changes/HiddenGrubMenu|hidden boot menu feature]]:

# Requesting the menu to be shown the next boot when "Boot Options" is
selected in the Shutdown/Reboot dialog.
# Signalling the bootloader that the boot was successful.

To replace our downstream patches for 1. we can use the new(ish)
systemd DBUS API used by "systemctl reboot --boot-loader-menu=60".
This currently only works with sd-boot, but systemd has hooks to allow
integration with other bootloaders, see the
[https://github.com/systemd/systemd/blob/master/docs/ENVIRONMENT.md
SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU env. variable documentation]. So we
can support this in grub2 with some relatively simply changes and then
replace our downstream patches for this with new patches using the
systemd DBUS API for this.

Replacing our downstream patches for 2. with an upstreamable
bootloader agnostic solution is somewhat involved. systemd has its
[https://systemd.io/AUTOMATIC_BOOT_ASSESSMENT/ Automatic Boot
Assessment] feature, which is somewhat similar in that it to deals
with boot success detection, but its behavior on failure is different
(auto fallback to an older kernel) and it is a sd-boot specific
feature. Still we can use some parts of this. The boot-complete.target
and the concept of having a systemd-bless-boot.service which Requires
that target to be reached before it runs. So replacing out downstream
patches for 2. will consists of 2 parts:

# grub2 changes: Add a grub2-bless-boot.service which Requires
boot-complete.target and which does the equivalent of
"grub2-set-bootflag boot_success" when that target is reached
# GNOME changes: Add a oneshot gnome-wait-for-boot-success.service to
boot-complete.target, this will start a simple helper which listens on
a unix socket until signalled, thus delaying the completion of
boot-complete.target until it is signalled; and in the places where
the downstream patches are currently directly calling
"grub2-set-bootflag boot_success" signal (write a byte) this unix
socket instead.

Also see this 
[https://lists.freedesktop.org/archives/systemd-devel/2020-June/044800.html
mailinglist discussion].

== Benefit to Fedora ==

This change will remove some technical-debt in the form of a couple of
quick-and-dirty downstream patches from Fedora and will align GNOME's
integration with the [[Changes/HiddenGrubMenu|hidden boot menu
feature]] with our upstream first policy.

== Scope ==
* Proposal owners:
Create the necessary changes ASAP and submit these to Fedora's
[https://github.com/rhboot/grub2/ grub2] and
[https://gitlab.gnome.org/GNOME/ GNOME] upstreams.

* Other developers:
The bootloader team needs to do a new grub2 build with the changes
added and the desktop team needs to add the GNOME changes to the GNOME
packages. I will coordinate this with both teams.

* Release engineering: [https://pagure.io/releng/issue/9557 #9557] (a
check of an impact with Release Engineering is needed)
* Policies and guidelines: N/A (not needed for this Change)
* Trademark approval: N/A (not needed for this Change)

== Upgrade/compatibility impact ==
This change does not impact upgrades, the interface between the OS and
grub2 still goes through the same unmodified grubenv settings. The
only changes are in how we make the grubenv changes and all parts
involved in that will be updated together.

== How To Test ==
# Tests
## Install Fedora Workstation in a fresh vm or select reclaim
diskspace -> delete all in the installer (do a single os install).
## Boot the system the grub menu should NOT show
## Login, wait 2 minutes then presss "CTRL + ALT + F6" followed by
"CTRL + ALT + DEL" to do a reboot from the text-console without going
through the GNOME reboot dialog. The grub menu should NOT show on the
new boot.
## Reboot from the GNOME reboot dialog inside gdm. The grub menu
should NOT show on the new boot.
## Open the GNOME reboot dialog, then press alt to change the "Reboot"
button into "Boot Options" and click the "Boot Options" button (while
keeping alt pressed). You should now get the grub menu, with a
countdown of 60 seconds.
## Boot the system and then press "CTRL + ALT + F6" followed by "CTRL
+ ALT + DEL" to do a reboot from the text-console without logging in,
this counts as a failed boot, so 

NetworkManager keyfile instead of ifcfg-rh - Fedora 33 System-Wide Change proposal

2020-06-29 Thread Ben Cotton
https://fedoraproject.org/wiki/Changes/NetworkManager_keyfile_instead_of_ifcfg_rh

== Summary ==
Change the default settings plugin of NetworkManager so that new
profiles will be created in keyfile format instead of ifcfg-rh format.

== Owner ==
* Name: [[User:Thaller| Thomas Haller]]
* Email: 

== Detailed Description ==
NetworkManager supports settings plugins to persist connection
profiles to disk. There is the native ''keyfile'' format and the
Fedora/RHEL specific ''ifcfg-rh'' format originally from initscripts.
The keyfile plugin is always enabled in NetworkManager and can handle
any supported type of profile. It stores profiles under
`/{etc,usr/lib,run}/NetworkManager/system-connections` and is
documented in 
[https://developer.gnome.org/NetworkManager/stable/nm-settings-keyfile.html
nm-settings-keyfile manual]. The ifcfg-rh format is in part compatible
with the network-scripts package from initscripts, however both
network-scripts and NetworkManager define their own extensions
([https://developer.gnome.org/NetworkManager/stable/nm-settings-ifcfg-rh.html
[1]]). Since network-scripts and NetworkManager are fundamentally
different, the same ifcfg file is not treated exactly the same by both
systems. In the past, having the ifcfg-rh format made it easier for
users familiar with initscripts to migrate to/from NetworkManager.

The settings plugins are configurable in
[https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html
NetworkManager.conf] via the `"main.plugins"` option. Multiple plugins
can be configured and on Fedora 32 and older, the compile time default
for the option is `"ifcfg-rh,keyfile"`. This means, that when
NetworkManager stores a new profile to disk, it will first try to
persist it in ifcfg-rh format before falling back to keyfile format,
if the ifcfg-rh plugin doesn't support the profile type. When reading
profiles from disk, NetworkManager will read and expose profiles from
both settings plugins and when modifying an existing profile, it will
update the existing file and preserve the settings plugin.

This Change is about to change the default for `"main.plugins"` from
`"ifcfg-rh,keyfile"` to `"keyfile,ifcfg-rh"`.

== Feedback ==
This was brought up on the NetworkManager mailing list
([https://mail.gnome.org/archives/networkmanager-list/2020-May/msg2.html
[1]]]).

Fedora CoreOS doesn't use ifcfg-rh files at all, only keyfile. Also,
RHEL CoreOS uses the `"main.plugins=ifcfg-rh,keyfile"` configuration
too. For CoreOS this of course is simpler, because they don't deal
with existing user configurations and tools that would break during
upgrade.

== Benefit to Fedora ==
The long term goal of NetworkManager is to move away from ifcfg-rh
files. That will be difficult as it affects existing installations and
will require migration of existing configurations. This change is only
a first step and affects how NetworkManager by default persists new
profiles to disk.

The ifcfg-rh format arguably has an uglier syntax and, contrary to
keyfile, does not support all profile types. Also, keyfile plugin is
available on every NetworkManager installation because that is the
only plugin that supports all profiles. Having multiple plugins and
file formats is confusing. By now, initscripts' `network-script`
package is deprecated in Fedora and upstream wants to move away from
that format in the long term. Also maintaining multiple settings
plugins is a maintainance burden, and in the past there were subtle
bugs where ifcfg-rh did not implement all settings (e.g.
[https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2020-10754
CVE-2020-10754]). On other Linux distributions NetworkManager uses the
keyfile format by default. It is a general goal that NetworkManager
works similar on all distributions.

== Scope ==

* Proposal owners: The default settings for `"main.plugins"` can
already be selected at compile time. This only requires building the
package with a different default
([https://src.fedoraproject.org/rpms/NetworkManager/blob/a06b38bcbe8f9a38badab4f37e8c6fae240428b7/f/NetworkManager.spec#_759
[3]]).
* Other developers: 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)

== Upgrade/compatibility impact ==
This affects most users, unless they explicitly set the option in
NetworkManager.conf configuration. The biggest effect of this change
is that new profiles will now preferably be persisted in keyfile
format. This changes behavior for users who expect NetworkManager to
write ifcfg-rh files, or who have scripts or tools that expect that.
What will still work is that existing ifcfg files are loaded after
upgrade. Users who only use the D-Bus API (via one of the client
applications like nmcli or the GUI), shouldn't notice the difference.

As before, users still can explicitly configure the settings plugins
in NetworkManager.conf. This only affects the default, but it affects
existing 

List of long term FTBFS packages to be retired in August

2020-06-29 Thread Miro HronĨok

Dear maintainers.

Based on the current fail to build from source policy, the following packages
will be retired from Fedora 33 approximately one week before branching (August 
2020).


Policy: 
https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/


Note that some listed packages are orphaned and hence may be retired even 
sooner.

The packages in rawhide were not successfully built at least since Fedora 31.

This report is based on dist tags.

Packages collected via:
https://github.com/hroncok/fedora-report-ftbfs-retirements/blob/master/ftbfs-retirements.ipynb

If you see a package that was built, please let me know.
If you see a package that should be exempted from the process, please let me 
know and we can work together to get a FESCo approval for that.


If you see a package that can be rebuilt, please do so.


  Package (co)maintainers  Latest build

OpenCoarrays   jussilehtolaFedora 30
gpscorrelate   tillFedora 30
js-jquery-jqplot   xavierb Fedora 30
js-jquery1 nodejs-sig, patches, vondruch   Fedora 30
js-jquery2 vondruchFedora 30
js-sizzle  nodejs-sig, patches, vondruch   Fedora 30
nodejs-path-type   jsmith, nodejs-sig  Fedora 30
nodejs-temp-write  jsmith  Fedora 30
nodejs-unique-stream   jsmith, nodejs-sig  Fedora 30
ocaml-pxp  orphan  Fedora 30
ocaml-ulex orphan  Fedora 30
orpie  bowlofeggs, jaredwallaceFedora 30
rubygem-ruby-hmac  humaton, mmorsi Fedora 30
xvarstar   orphan  Fedora 30


The following packages require above mentioned packages:
Depending on: gpscorrelate (1)
foxtrotgps (maintained by: bubeck)
foxtrotgps-1.2.2-5.fc33.x86_64 requires gpscorrelate = 
1.6.1-27.fc30

Depending on: js-jquery-jqplot (1)
sympa (maintained by: xavierb)
sympa-6.2.56-1.fc33.src requires js-jquery-jqplot = 1.0.9-3.fc30
sympa-6.2.56-1.fc33.x86_64 requires js-jquery-jqplot = 
1.0.9-3.fc30

Depending on: js-jquery1 (69)
R-profvis (maintained by: qulogic)
R-profvis-0.3.6-3.fc33.src requires js-jquery1 = 1.12.4-7.fc30
R-profvis-0.3.6-3.fc33.x86_64 requires js-jquery1 = 
1.12.4-7.fc30

R-rmarkdown (maintained by: qulogic)
R-rmarkdown-2.2-1.fc33.noarch requires js-jquery1 = 
1.12.4-7.fc30
R-rmarkdown-2.2-1.fc33.src requires js-jquery1 = 1.12.4-7.fc30

copr-frontend (maintained by: clime, copr-sig, dturecek, frostyx, 
msuchy, praiskup)
copr-frontend-1.166-1.fc33.noarch requires js-jquery1 = 
1.12.4-7.fc30

ghc-pretty-show (maintained by: mathstuf)
ghc-pretty-show-1.9.5-3.fc32.x86_64 requires js-jquery1 = 
1.12.4-7.fc30

mkdocs (maintained by: cheeselee)
mkdocs-1.1.2-1.fc33.noarch requires js-jquery1 = 1.12.4-7.fc30
mkdocs-1.1.2-1.fc33.src requires js-jquery1 = 1.12.4-7.fc30

python-XStatic-jQuery (maintained by: mrunge, openstack-sig, rdopiera)
python3-XStatic-jQuery-3.4.1.0-2.fc33.noarch requires 
js-jquery1 = 1.12.4-7.fc30

python-sphinx-bootstrap-theme (maintained by: besser82, sic)
		python3-sphinx-bootstrap-theme-0.8.0-3.fc33.noarch requires js-jquery1 = 
1.12.4-7.fc30


rubygem-apipie-rails (maintained by: jaruga, ruby-packagers-sig, 
vondruch)
rubygem-apipie-rails-0.5.5-6.fc32.noarch requires js-jquery1 = 
1.12.4-7.fc30

R-BiocFileCache (maintained by: spot)
R-BiocFileCache-1.12.0-2.fc33.src requires R-rmarkdown = 
2.2-1.fc33

R-DBItest (maintained by: qulogic)
R-DBItest-1.7.0-1.fc33.src requires R-rmarkdown = 2.2-1.fc33

R-V8 (maintained by: qulogic)
R-V8-3.1.0-2.fc33.src requires R-rmarkdown = 2.2-1.fc33

R-broom (maintained by: qulogic)
R-broom-0.5.6-2.fc33.src requires R-rmarkdown = 2.2-1.fc33

R-cellranger (maintained by: qulogic)
R-cellranger-1.1.0-6.fc33.src requires R-rmarkdown = 2.2-1.fc33

R-clipr (maintained by: qulogic)
R-clipr-0.7.0-3.fc33.src requires R-rmarkdown = 2.2-1.fc33

R-dbplyr (maintained by: qulogic)
R-dbplyr-1.4.3-2.fc33.src requires R-rmarkdown = 2.2-1.fc33

R-devtools (maintained by: qulogic)
R-devtools-2.1.0-2.fc33.src requires R-rmarkdown = 2.2-1.fc33

R-diffobj (maintained by: qulogic)
R-diffobj-0.3.0-2.fc33.src requires R-rmarkdown = 2.2-1.fc33

R-dplyr (maintained by: qulogic)

java stack is dead, long live the javastack (was "500 packages FTBFS in rawhide with java-11-openjdk as system JDK")

2020-06-29 Thread Jiri Vanek
Current stats from my testing samples:
408 failing
263 passing

That is huge improvement. Thank you all.
I'm now running last rebuild n copr, and in week or two an mass rebuild will be 
taken in koji.

There was an discussion what the border will be, when to force this change, or 
when to step away.
50% of passed? 80%? But afaik no metric is valid here, because - sorry to say 
it - there is no
longer any javastack...
Since f29, about 1000 java packages died or were orphaned. I was removing 
packages where upstream is
dead and are orphaned (so no chance to make them reliable working with jdk11), 
and I found that
wildfly, jenkins, jboss, half of maven plugins, elastic search, apach-emina, 
infinispan, cassandra,
hibernate All are dead. What is javastack for now (no blame or evil in 
that)?

So maybe the system jdk11 can be used as just last death-blow to java stack, 
rethink it,  and stat
rebuilding on pretty fresh field


J.



-- 
Jiri Vanek
Senior QE engineer, OpenJDK QE lead, Mgr.
Red Hat Czech
jva...@redhat.comM: +420775390109
___
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