Re: always update the bootloader during major upgrades

2019-07-04 Thread Javier Martinez Canillas
Hello Chris,

Thanks for bringing this topic and sorry for the late reply.

On Wed, Jun 26, 2019 at 10:20 PM Chris Murphy  wrote:
>
> Hi,
>
> This is not a formal proposal, this is for discussion and identifying
> liabilities. This email has an x86 GRUB bias only because that's the
> bootloader regime I'm most familiar with. I think it should apply to
> other archs as well, i.e. their bootloaders shouldn't be permitted to
> become stale.
>

I agree with you on this. I've commented my thoughts in the
fedora-workstation issue you created:

https://pagure.io/fedora-workstation/issue/97#comment-580794

Best regards,
Javier
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-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@lists.fedoraproject.org


Re: always update the bootloader during major upgrades

2019-06-30 Thread Chris Murphy
On Sat, Jun 29, 2019 at 5:24 AM Richard Shaw  wrote:
>
> I don't have the technical expertise in this area to comment on the details 
> of the implementation, but from a dumb user point of view, could there be a 
> simple or no-payload package that says "Fedora owns the bootloader" that's 
> installed by default and power users that wish to maintain it themselves (or 
> use other bootloaders) and remove the package?

I like this idea. Would bootloader projects be willing to use a single
canonical location and format for this indication? On the other hand,
if I don't want to use the Fedora GRUB bootloader, why do I have that
package still installed? If I were using the Ubuntu bootloader, or
systemd-boot, I would uninstall all the GRUB stuff to ensure it's not
being used, accidentally or otherwise.

Nevertheless, I'm OK with the idea that BIOS GRUB not be automatically
reinstalled everytime there's a package update, but rather postpone it
for major Fedora upgrades.

-- 
Chris Murphy
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-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@lists.fedoraproject.org


Re: always update the bootloader during major upgrades

2019-06-30 Thread Chris Murphy
On Sat, Jun 29, 2019 at 1:05 AM Nicolas Mailhot via devel
 wrote:
>
> Le vendredi 28 juin 2019 à 18:49 -0600, Chris Murphy a écrit :

> > I think that's completely out of scope. It's inappropriate to wait 10
> > months let alone 10 years to resolve this problem. And it's an overly
> > complicated solution.
>
> It's not an overcomplicated solution it's just putting a single stable
> unchanging installation command in front of whatever anaconda does.
> Which grubby was not since it was grub-specific with lots of options.

grubby isn't GRUB specific. It supports LILO, ELILO, SILO, ZIPL,
extlinux, GRUB legacy, GRUB2, yaboot, and something else I'm
forgetting no doubt.

This also seems applicable
https://xkcd.com/927/


> Not making the effort to put this single command in place, is the
> reason why Fedora boot problems in 2019, are the same than RHL boot
> problems in 2000:

a. Near as I can tell, the only system under discussion, x86 + BIOS +
multiboot, means exactly one bootloader: BIOS GRUB. That's the only
bootloader Fedora supports in that configuration.

b. Fedora only narrowly supports multiboot: Fedora + Windows, and
Fedora + macOS. As in, only the dual boot variety, and not any Linux
distros. Not even Fedora + Fedora is supported. By that I mean, there
is no release criteria that forms a basis for blocking the release if
something related to creating such a setup during installation is
found to be broken.

I just don't see how a single command to rule them all solves a single
problem. It's like playing musical chairs, except no seat has been
removed.


> 1. no one knows exactly what to call to reinstall the bootloader except
> bootloader people (it changes and is badly documented),

Fedora x86 BIOS, it's been 'grub2-install' since circa Fedora 14. And
on UEFI since early days it's reinstall shim and grub packages, also
hasn't changed.

>
> 2. therefore no one can test the result on the scale needed for the
> variety of hardware out there
>
> 3. when someone hits a bootloader problem, and tries to fix his system
> with whatever lies on the internet (because the documentation is not
> here, and the documentation is needed, because the actual commands to
> type change), it's never exactly what bootloader people think he should
> do, so the result is invalid (positive or negative), and not used to
> improve the way Fedora does things

But in effect you're proposing the inevitable day when the user still
invokes grub2-install, and the Fedora oracles still say "yeah that's
deprecated on Fedora, you ran the wrong command, that's why your
system is now hosed"

By the way, bootctl is already taken by systemd-boot.


--
Chris Murphy
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-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@lists.fedoraproject.org


Re: always update the bootloader during major upgrades

2019-06-29 Thread Richard Shaw
I don't have the technical expertise in this area to comment on the details
of the implementation, but from a dumb user point of view, could there be a
simple or no-payload package that says "Fedora owns the bootloader" that's
installed by default and power users that wish to maintain it themselves
(or use other bootloaders) and remove the package?

Thanks,
Richard
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-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@lists.fedoraproject.org


Re: always update the bootloader during major upgrades

2019-06-29 Thread Nicolas Mailhot via devel
Le vendredi 28 juin 2019 à 18:49 -0600, Chris Murphy a écrit :
> On Fri, Jun 28, 2019, 1:19 AM Nicolas Mailhot via devel
>  wrote:
> > Le jeudi 27 juin 2019 à 12:26 -0600, Chris Murphy a écrit :
> > > Yep, small problem. And I'm not even sure how a 'grub2-install'
> > > on
> > > BIOS systems would be initiated only at major upgrade time. But
> > > even
> > > Fedora Rawhide does change versions when fcXX becomes fcXX+1, but
> > > is
> > > that a sane trigger?
> > 
> > It's not, such magic “it's FCX time” break all the time for users
> > that
> > only do dnf update, or use rawhide (which branches before the next
> > version logic is deployed), etc
> 
> Twice a year for Rawhide. And upon initiation of major upgrade on
> release versions. It wouldn't be all the time.
> 
> > >  I'm not sure what the alternatives are.
> > 
> > That's, easy,
> > 
> > 1. add a generic bootctl install command that knows the different
> > variants of bootloader used in Fedora, how to install them, how to
> > identify which variant is appropriate for a system (make grub and
> > other
> > bootloaders packages install the corresponding info in a directory
> > read
> > by this command)
> > 
> > 2. make it write the id, generation, and deployment options used in
> > a
> > lockfile every time it (re)installs the bootloader
> > 
> > 3. add a config file with a variable to inhibit auto-redeployment
> > 
> > 4. add a scriptlet to the bootctl package that calls bootctl
> > install
> > and
> >  – checks the variant in the lockfile is appropriate for the
> > hardware
> > (in case of disk mode or copy)
> >  – checks if the generation is current or unknown (unknown =
> > future, do
> > not touch)
> >  – and if any of those is false, reinstalls the bootloader, unless
> > the
> > inhibit variable is set
> > 
> > 5. add a --force switch to bootctl to allow the operator to force a
> > bootloader rewrite every time somethins else broke it
> 
> I think that's completely out of scope. It's inappropriate to wait 10
> months let alone 10 years to resolve this problem. And it's an overly
> complicated solution. 

It's not an overcomplicated solution it's just putting a single stable
unchanging installation command in front of whatever anaconda does.
Which grubby was not since it was grub-specific with lots of options.

Not making the effort to put this single command in place, is the
reason why Fedora boot problems in 2019, are the same than RHL boot
problems in 2000:

1. no one knows exactly what to call to reinstall the bootloader except
bootloader people (it changes and is badly documented),

2. therefore no one can test the result on the scale needed for the
variety of hardware out there

3. when someone hits a bootloader problem, and tries to fix his system
with whatever lies on the internet (because the documentation is not
here, and the documentation is needed, because the actual commands to
type change), it's never exactly what bootloader people think he should
do, so the result is invalid (positive or negative), and not used to
improve the way Fedora does things

4. because there is no master command, and the actual commands change
over time, there is no incentive to do something in new sets of
commands, that salvages whatever was done in the previous set of
commands

5. it ends up in new full system installs just to get anaconda to the
point it does this part (and RHL supported in-place updates, while
Fedora will insist on blowing up the previous install)

6. and everyone involved insists it's "too complex" to set up an easy
to document master install command

7. something should be put in place "now" and not wait 10 months or 10
years

Well Fedora and RHL have spent 20 years avoiding cleaning up this mess
and it's still the same original mess so at one point 10 months seems
awfully short period to get it done.

Regards,

-- 
Nicolas Mailhot
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-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@lists.fedoraproject.org


Re: always update the bootloader during major upgrades

2019-06-28 Thread Nicolas Mailhot via devel
Le vendredi 28 juin 2019 à 09:06 -0700, Adam Williamson a écrit :
> On Fri, 2019-06-28 at 09:18 +0200, Nicolas Mailhot via devel wrote:
> > That's, easy,
> > 
> > 1. add a generic bootctl install command that knows the different
> > variants of bootloader used in Fedora, how to install them, how to
> > identify which variant is appropriate for a system (make grub and
> > other
> > bootloaders packages install the corresponding info in a directory
> > read
> > by this command)
> 
> I am not sure you quite understand the meaning of the word "easy". :P

It's the same core logic that already exists in anaconda, and in the
envisionned dist upgrade, except packaged in a sane reusable easy to
test unit.

Packaging it sanely does not make the core logic simpler sure, but it
removes the mass of problems caused by bootloader installations
happening in multiple badly defined in-between gray dimensions, without
any tracking of what was effectively done in the past.

And the core logic need to be maintained in any case.

So yes, I do believe that quick and dirty is more difficult in the long
run.

-- 
Nicolas Mailhot
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-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@lists.fedoraproject.org


Re: always update the bootloader during major upgrades

2019-06-28 Thread Adam Williamson
On Fri, 2019-06-28 at 09:18 +0200, Nicolas Mailhot via devel wrote:
> That's, easy,
> 
> 1. add a generic bootctl install command that knows the different
> variants of bootloader used in Fedora, how to install them, how to
> identify which variant is appropriate for a system (make grub and other
> bootloaders packages install the corresponding info in a directory read
> by this command)

I am not sure you quite understand the meaning of the word "easy". :P
-- 
Adam Williamson
Fedora QA Community Monkey
IRC: adamw | Twitter: AdamW_Fedora | XMPP: adamw AT happyassassin . net
http://www.happyassassin.net
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-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@lists.fedoraproject.org


Re: always update the bootloader during major upgrades

2019-06-28 Thread Nicolas Mailhot via devel
Le jeudi 27 juin 2019 à 12:26 -0600, Chris Murphy a écrit :
> On Thu, Jun 27, 2019 at 9:06 AM Bruno Wolff III 
> wrote:
> > On Wed, Jun 26, 2019 at 14:19:26 -0600,
> >   Chris Murphy  wrote:
> > > Short version: Fedora should take responsibility for the
> > > bootloader
> > > being up to date, by updating it during major version upgrades.
> > > This
> > > is already the case on UEFI with conventional installations. I'd
> > > like
> > > to make sure it always happens on major version upgrades for BIOS
> > > installations. What's the problem? This would step on any custom
> > > bootloader configuration a user has for multiboot. There is no
> > > reasonable mechanism on BIOS systems to determine if the
> > > bootloader is
> > > a Fedora bootloader, and somehow only update a Fedora bootloader
> > > and
> > > not touch any other bootloader.
> > 
> > How do you envision this working for rawhide?
> > I had a problem where grub1 configs were no longer updated with
> > kernel
> > updates, where I finally needed to upgrade to grub2.
> 
> Yep, small problem. And I'm not even sure how a 'grub2-install' on
> BIOS systems would be initiated only at major upgrade time. But even
> Fedora Rawhide does change versions when fcXX becomes fcXX+1, but is
> that a sane trigger?

It's not, such magic “it's FCX time” break all the time for users that
only do dnf update, or use rawhide (which branches before the next
version logic is deployed), etc

>  I'm not sure what the alternatives are.

That's, easy,

1. add a generic bootctl install command that knows the different
variants of bootloader used in Fedora, how to install them, how to
identify which variant is appropriate for a system (make grub and other
bootloaders packages install the corresponding info in a directory read
by this command)

2. make it write the id, generation, and deployment options used in a
lockfile every time it (re)installs the bootloader

3. add a config file with a variable to inhibit auto-redeployment

4. add a scriptlet to the bootctl package that calls bootctl install
and
 – checks the variant in the lockfile is appropriate for the hardware
(in case of disk mode or copy)
 – checks if the generation is current or unknown (unknown = future, do
not touch)
 – and if any of those is false, reinstalls the bootloader, unless the
inhibit variable is set

5. add a --force switch to bootctl to allow the operator to force a
bootloader rewrite every time somethins else broke it


-- 
Nicolas Mailhot
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-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@lists.fedoraproject.org


Re: always update the bootloader during major upgrades

2019-06-27 Thread Chris Murphy
On Thu, Jun 27, 2019 at 9:06 AM Bruno Wolff III  wrote:
>
> On Wed, Jun 26, 2019 at 14:19:26 -0600,
>   Chris Murphy  wrote:
> >
> >Short version: Fedora should take responsibility for the bootloader
> >being up to date, by updating it during major version upgrades. This
> >is already the case on UEFI with conventional installations. I'd like
> >to make sure it always happens on major version upgrades for BIOS
> >installations. What's the problem? This would step on any custom
> >bootloader configuration a user has for multiboot. There is no
> >reasonable mechanism on BIOS systems to determine if the bootloader is
> >a Fedora bootloader, and somehow only update a Fedora bootloader and
> >not touch any other bootloader.
>
> How do you envision this working for rawhide?
> I had a problem where grub1 configs were no longer updated with kernel
> updates, where I finally needed to upgrade to grub2.

Yep, small problem. And I'm not even sure how a 'grub2-install' on
BIOS systems would be initiated only at major upgrade time. But even
Fedora Rawhide does change versions when fcXX becomes fcXX+1, but is
that a sane trigger? I'm not sure what the alternatives are.

And could there be a policy setting in /etc/default/grub for this,
where the user can opt out? And should such an opt out exist? There is
no such opt out for UEFI. Anyway, the how to do this is a different
question than whether to do it, and whether the policy is the same
across all Fedora editions, spins, images, etc.

I think it's uncontroversial to say on IoT the bootloader must be
updated, I imagine no reasonable justification for making this user
domain on this class of device. That is probably also true for
cloud/virtual, and baremetal servers. It's really desktops that
there's an open question of what/who owns the bootloader. And there
I'd say the default really ought to be, maybe even must be, update the
bootloader with some regularity. And if that's true and agreed upon,
then fill in the gaps with some needed details: how often, how to do
it, should there be an opt out, and how to implement that, etc.


-- 
Chris Murphy
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-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@lists.fedoraproject.org


Re: always update the bootloader during major upgrades

2019-06-27 Thread Bruno Wolff III

On Wed, Jun 26, 2019 at 14:19:26 -0600,
 Chris Murphy  wrote:


Short version: Fedora should take responsibility for the bootloader
being up to date, by updating it during major version upgrades. This
is already the case on UEFI with conventional installations. I'd like
to make sure it always happens on major version upgrades for BIOS
installations. What's the problem? This would step on any custom
bootloader configuration a user has for multiboot. There is no
reasonable mechanism on BIOS systems to determine if the bootloader is
a Fedora bootloader, and somehow only update a Fedora bootloader and
not touch any other bootloader.


How do you envision this working for rawhide?
I had a problem where grub1 configs were no longer updated with kernel 
updates, where I finally needed to upgrade to grub2.

___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-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@lists.fedoraproject.org