Re: kernel rpm split

2020-02-11 Thread Zbigniew Jędrzejewski-Szmek
On Tue, Feb 11, 2020 at 10:09:52AM -0600, Justin Forbes wrote:
> On Tue, Feb 11, 2020 at 7:16 AM Zbigniew Jędrzejewski-Szmek
>  wrote:
> >
> > On Mon, Feb 10, 2020 at 02:37:13PM -0500, John Florian wrote:
> > > Can this be improved?  I'm sure it can be.  I'm genuinely curious
> > > what dracut does that an rpm couldn't ship.  I'd also hate to lose
> > > the versatility that we have at the present.  I've been very
> > > successful with what Fedora has offered, but I've always been scared
> > > of autonomous nodes building/booting their own special initrd's and
> > > hoping all just works.
> >
> > Hi,
> >
> > I think this discussion has gone further than intended. I'm not
> > proposing Fedora changes the way initramfs is being done; it's way too
> > early for this at this point. Rather, I was asking for making the
> > packaging of kernel more flexible. One of the uses might the initramfs
> > stuff, but this type of changes is generally useful for minimization,
> > e.g. for VM images. I think other cases would pop up too.
> >
> > As to the question of the flexibility of dracut: it is flexible. But
> > this flexibility is completely orthogonal to how the image is put
> > together: if the image was built by installing some rpms, it'd still
> > be possible to do whatever changes from a plugin after those rpms
> > have been installed. Please consider e.g. how os-build does this (there
> > was a nice talk at devconf).
> >
> 
> This is all relevant discussion though, as we really do need to know
> a) exactly how people are wanting the kernel split up, and b) what is
> the exact benefit of doing so. Here's the thing. People ask for the
> kernel to be split up in various ways almost yearly at this point.
> Everyone wants something different.  Splitting the kernel is a hard
> thing to do without messing up people's systems, and it can get out of
> hand *very* quickly.  I am not opposed to changing the kernel
> packaging if we can prove real benefit to doing so, AND can prove it
> isn't going to cause problems for existing users, or an ongoing
> nightmare for maintainers.

Ack. I'll come back with a more concrete proposal.

Zbyszek
___
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: kernel rpm split

2020-02-11 Thread Justin Forbes
On Tue, Feb 11, 2020 at 7:16 AM Zbigniew Jędrzejewski-Szmek
 wrote:
>
> On Mon, Feb 10, 2020 at 02:37:13PM -0500, John Florian wrote:
> > Can this be improved?  I'm sure it can be.  I'm genuinely curious
> > what dracut does that an rpm couldn't ship.  I'd also hate to lose
> > the versatility that we have at the present.  I've been very
> > successful with what Fedora has offered, but I've always been scared
> > of autonomous nodes building/booting their own special initrd's and
> > hoping all just works.
>
> Hi,
>
> I think this discussion has gone further than intended. I'm not
> proposing Fedora changes the way initramfs is being done; it's way too
> early for this at this point. Rather, I was asking for making the
> packaging of kernel more flexible. One of the uses might the initramfs
> stuff, but this type of changes is generally useful for minimization,
> e.g. for VM images. I think other cases would pop up too.
>
> As to the question of the flexibility of dracut: it is flexible. But
> this flexibility is completely orthogonal to how the image is put
> together: if the image was built by installing some rpms, it'd still
> be possible to do whatever changes from a plugin after those rpms
> have been installed. Please consider e.g. how os-build does this (there
> was a nice talk at devconf).
>

This is all relevant discussion though, as we really do need to know
a) exactly how people are wanting the kernel split up, and b) what is
the exact benefit of doing so. Here's the thing. People ask for the
kernel to be split up in various ways almost yearly at this point.
Everyone wants something different.  Splitting the kernel is a hard
thing to do without messing up people's systems, and it can get out of
hand *very* quickly.  I am not opposed to changing the kernel
packaging if we can prove real benefit to doing so, AND can prove it
isn't going to cause problems for existing users, or an ongoing
nightmare for maintainers.
___
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: kernel rpm split

2020-02-11 Thread Zbigniew Jędrzejewski-Szmek
On Mon, Feb 10, 2020 at 02:37:13PM -0500, John Florian wrote:
> Can this be improved?  I'm sure it can be.  I'm genuinely curious
> what dracut does that an rpm couldn't ship.  I'd also hate to lose
> the versatility that we have at the present.  I've been very
> successful with what Fedora has offered, but I've always been scared
> of autonomous nodes building/booting their own special initrd's and
> hoping all just works.

Hi,

I think this discussion has gone further than intended. I'm not
proposing Fedora changes the way initramfs is being done; it's way too
early for this at this point. Rather, I was asking for making the
packaging of kernel more flexible. One of the uses might the initramfs
stuff, but this type of changes is generally useful for minimization,
e.g. for VM images. I think other cases would pop up too.

As to the question of the flexibility of dracut: it is flexible. But
this flexibility is completely orthogonal to how the image is put
together: if the image was built by installing some rpms, it'd still
be possible to do whatever changes from a plugin after those rpms
have been installed. Please consider e.g. how os-build does this (there
was a nice talk at devconf).

Zbyszek
___
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: kernel rpm split

2020-02-10 Thread Jeremy Cline
On Thu, 2020-02-06 at 14:13 -0500, Josh Boyer wrote:
> On Thu, Feb 6, 2020 at 1:56 PM Zbigniew Jędrzejewski-Szmek
>  wrote:
> > Hello kernel maintainers, hello Fedora developers,
> > 
> > I'm looking into the split of kernel packages. The split into
> > subpackages
> > seems interesting, but there are many dependencies between the
> > packages,
> > so it is usual to end up with all of them installed.
> > 
> > E.g. for a simple VM, by design, kernel-core contains a basic set
> > of
> > modules that should be enough to boot. I see that in a standard
> > libvirt guest, the only modules from kernel-modules that are loaded
> > are for sound hardware and "usbnet", all which I'd be fine without.
> > 
> > Another example: we'd like to explore building an initramfs
> > directly
> > from rpms, without dracut, only systemd and a standard packages to
> > bring up the hardware. Some modules need to be installed, so the
> > kernel can load the from the initramfs, but the kernel itself
> > should
> > not, since it is provided "externally" by the boot loader.
> > 
> > But:
> > the basic modules are in one rpm with kernel-core
> > kernel-core Requires linux-firmware (which is 240MB)
> > kernel-modules Requires kernel-uname-r, which is provided by
> > kernel-core
> > kernel Requires kernel-core-uname-r, kernel-modules-uname-r
> > 
> > Would it be possible to make some changes:
> > 
> > - split out the modules from kernel-core package into a new
> > subpackage
> >   kernel-basic-modules, kernel-core can Recommend or Require it
> 
> There has to be a *really* good benefit to do this, and I haven't
> seen
> one described.  The more splitting we do, the more management both on
> the client machines and for the kernel maintainers themselves.  The
> way modules are filtered is terrible (I wrote it, so I can say that)
> and requires people to keep it updated as the upstream kernel changes
> module dependencies.
> 

The way modules are filtered is indeed difficult and requires a lot of
human care and attention, but perhaps this is a good opportunity to
rethink how it works a bit. 

I'm obviously not crazy about advocating for something that makes my
job harder, but I'm willing to entertain doing some work so I can later
not do any work in that area again. Furthermore, this particular issue
is on my radar anyway due to my last run-in with it.

All that to say that I *hope* we can improve how we divvy up modules
enough that it won't be a blocker for this proposal (and kernel
maintainers will live in a land filled with sunshine and rainbows).

> Can you describe in more detail why you need something smaller than
> kernel-core?  I'm not understanding your usecase.
> 
> > - remove the Requires on kernel-core (or change to Recommends) from
> >   kernel-modules, so it can be installed standalone
> 
> That makes no sense.  The modules are unusable without the main
> vmlinux binary.  Why would we do that and risk people making their
> machines unbootable?
> 
> > - move the Requires:linux-firmware (or change to Recommends) from
> > kernel-core,
> >   have kernel Requires:linux-firmware
> > 
> > I think this would be useful for playing with various minimization
> > scenarios.
> 
> This one might be feasible.  We did the split before Recommends
> support was present.  It's often been requested for the VM case.  I
> do
> still have concerns that it can lead to unbootable physical machines,
> but if dnf defaults to installing Recommended packages that might be
> possible.
> 
> josh
> ___
> 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

___
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: kernel rpm split

2020-02-10 Thread John Florian

On 2020-02-07 09:56, Stephen John Smoogen wrote:



On Fri, 7 Feb 2020 at 09:28, Zbigniew Jędrzejewski-Szmek 
mailto:zbys...@in.waw.pl>> wrote:


On Fri, Feb 07, 2020 at 08:37:05AM -0500, Neal Gompa wrote:
> On Fri, Feb 7, 2020 at 8:27 AM Zbigniew Jędrzejewski-Szmek
> mailto:zbys...@in.waw.pl>> wrote:
> >
> > On Fri, Feb 07, 2020 at 12:09:37PM +, Richard W.M. Jones
wrote:
> > >
> > > I'd strongly suggest you look at supermin before going any
further.
> >
> > Supermin is an interesting project, but at this point we're not
> > looking for a tool to craft the image. We're still at an
earlier stage
> > of changing how we do some rpm packages so that it is easy to
do an
> > installation that is small without custom logic.
> >
> > The idea is that the initramfs, once you include lvm, md, dm,
encryption,
> > networking, clevis, emergency utilities, scsi, iscsi, raid in
various
> > flavours, some graphics drivers, usb, bluetooth, etc, is a lot
like a
> > the full distribution. Things would be a lot easier if we
could just
> > use the same tools and daemons from the same packages as in the
> > host. Supermin (and other tools) have support for creating
something
> > custom and small, and here the goal is the opposite: to do
"standard".
> >
> > Fedora currently uses dracut, and the problem is that nobody has a
> > good grasp on what goes in dracut. There's a lot of custom
logic and
> > custom code and reimplementation of things, and people who
deal with
> > the same functionality in the host system don't necessarily
know what
> > happens in the initramfs. In the past such a setup made sense,
but now
> > it seems that the tradeoffs are different.
> >
>
> I'm genuinely surprised by this. [...] The main problem with
> dracut is the same problem with all initramfs generators: it has to
> prepare an environment that works in the worst circumstances. It's
> compounded by the restriction that everything is written in
shell, and
> POSIX shell at that (because Debian).

Well, look at it from the other side: the host machine also needs to
work in the same circumstances, since we need things to work also
after
we switch to the host. And the actual code that we use in the host
— the libraries, the binaries, configuration — is the same, since we
don't do different compilations for the initramfs.
In the host we have switched away from the shell for machine boot, but
for some reason we still keep it for the initramfs, along with a large
amount of custom logic.

> The dracut package, while very large,
> has a pretty understandable framework model.
Sure, it *can* be understood, but should it? Do we gain anything by
having the initramfs so different from the host? The initial


My problem here is that we continually get told we are full of Not 
Invented Here(NIH) solutions by people in other communities and we 
should be doing something Debian and different communities use..


And here is one of the places we do agree with other distributions, 
but it is now a "bah its crap and you can do something better that 
works with your tools." We knew that years ago and we have known that 
time and time again. The issue is that we end up with another 'NIH' 
tool which our limited manpower are going to know and as soon as XYZ 
developer walks off to $ABC startup we have an unbootable and 
unmaintained mess. AKA where we were before dracut.


If we are hell bent on repeating history, please let us try to learn 
from it first.



Please allow me to weigh in here, whilst I straddle this fence since I 
have a vested stake here, though I only have $0.02 to vote with just 
like anyone else.


On one hand, I like the idea being proposed.  I mean, it shouldn't be 
that different of an environment than what you're trying to boot into.  
The whole process has a a lot of complexity that seems wasteful in some 
cases but affords flexibility in others.  Nobody likes waiting for 
dracut to do its thing.  I've literally done so hundreds of times in the 
last few weeks as I prepare for an in-service, in-place upgrade of 
several hundred nodes running a custom Fedora Live spin to a newer 
custom Fedora Live spin.  I've done so successfully shepherding them 
from Fedora 10 to 25 and am about to jump them all to F29.  The magic 
all happens via a custom initrd that does a switcheraroo of the LiveOS 
and syslinux directories.  So, one reboot into the magic initrd to do 
the switch and another reboot from there into the new distro. (I should 
note, that the hundreds of dracut runs are its fault, but instead for 
dev work related to how the new payload is managed.  Nonetheless, I've 
done a lot of waiting in testing due to dracut runs.)


On the other hand, I remember the madness of trying to maintain local 
patches t

Re: kernel rpm split

2020-02-07 Thread Stephen John Smoogen
On Fri, 7 Feb 2020 at 09:28, Zbigniew Jędrzejewski-Szmek 
wrote:

> On Fri, Feb 07, 2020 at 08:37:05AM -0500, Neal Gompa wrote:
> > On Fri, Feb 7, 2020 at 8:27 AM Zbigniew Jędrzejewski-Szmek
> >  wrote:
> > >
> > > On Fri, Feb 07, 2020 at 12:09:37PM +, Richard W.M. Jones wrote:
> > > >
> > > > I'd strongly suggest you look at supermin before going any further.
> > >
> > > Supermin is an interesting project, but at this point we're not
> > > looking for a tool to craft the image. We're still at an earlier stage
> > > of changing how we do some rpm packages so that it is easy to do an
> > > installation that is small without custom logic.
> > >
> > > The idea is that the initramfs, once you include lvm, md, dm,
> encryption,
> > > networking, clevis, emergency utilities, scsi, iscsi, raid in various
> > > flavours, some graphics drivers, usb, bluetooth, etc, is a lot like a
> > > the full distribution. Things would be a lot easier if we could just
> > > use the same tools and daemons from the same packages as in the
> > > host. Supermin (and other tools) have support for creating something
> > > custom and small, and here the goal is the opposite: to do "standard".
> > >
> > > Fedora currently uses dracut, and the problem is that nobody has a
> > > good grasp on what goes in dracut. There's a lot of custom logic and
> > > custom code and reimplementation of things, and people who deal with
> > > the same functionality in the host system don't necessarily know what
> > > happens in the initramfs. In the past such a setup made sense, but now
> > > it seems that the tradeoffs are different.
> > >
> >
> > I'm genuinely surprised by this. [...] The main problem with
> > dracut is the same problem with all initramfs generators: it has to
> > prepare an environment that works in the worst circumstances. It's
> > compounded by the restriction that everything is written in shell, and
> > POSIX shell at that (because Debian).
>
> Well, look at it from the other side: the host machine also needs to
> work in the same circumstances, since we need things to work also after
> we switch to the host. And the actual code that we use in the host
> — the libraries, the binaries, configuration — is the same, since we
> don't do different compilations for the initramfs.
> In the host we have switched away from the shell for machine boot, but
> for some reason we still keep it for the initramfs, along with a large
> amount of custom logic.
>
> > The dracut package, while very large,
> > has a pretty understandable framework model.
> Sure, it *can* be understood, but should it? Do we gain anything by
> having the initramfs so different from the host? The initial
>

My problem here is that we continually get told we are full of Not Invented
Here(NIH) solutions by people in other communities and we should be doing
something Debian and different communities use..

And here is one of the places we do agree with other distributions, but it
is now a "bah its crap and you can do something better that works with your
tools." We knew that years ago and we have known that time and time again.
The issue is that we end up with another 'NIH' tool which our limited
manpower are going to know and as soon as XYZ developer walks off to $ABC
startup we have an unbootable and unmaintained mess. AKA where we were
before dracut.

If we are hell bent on repeating history, please let us try to learn from
it first.



-- 
Stephen J Smoogen.
___
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: kernel rpm split

2020-02-07 Thread Zbigniew Jędrzejewski-Szmek
On Fri, Feb 07, 2020 at 08:37:05AM -0500, Neal Gompa wrote:
> On Fri, Feb 7, 2020 at 8:27 AM Zbigniew Jędrzejewski-Szmek
>  wrote:
> >
> > On Fri, Feb 07, 2020 at 12:09:37PM +, Richard W.M. Jones wrote:
> > >
> > > I'd strongly suggest you look at supermin before going any further.
> >
> > Supermin is an interesting project, but at this point we're not
> > looking for a tool to craft the image. We're still at an earlier stage
> > of changing how we do some rpm packages so that it is easy to do an
> > installation that is small without custom logic.
> >
> > The idea is that the initramfs, once you include lvm, md, dm, encryption,
> > networking, clevis, emergency utilities, scsi, iscsi, raid in various
> > flavours, some graphics drivers, usb, bluetooth, etc, is a lot like a
> > the full distribution. Things would be a lot easier if we could just
> > use the same tools and daemons from the same packages as in the
> > host. Supermin (and other tools) have support for creating something
> > custom and small, and here the goal is the opposite: to do "standard".
> >
> > Fedora currently uses dracut, and the problem is that nobody has a
> > good grasp on what goes in dracut. There's a lot of custom logic and
> > custom code and reimplementation of things, and people who deal with
> > the same functionality in the host system don't necessarily know what
> > happens in the initramfs. In the past such a setup made sense, but now
> > it seems that the tradeoffs are different.
> >
> 
> I'm genuinely surprised by this. [...] The main problem with
> dracut is the same problem with all initramfs generators: it has to
> prepare an environment that works in the worst circumstances. It's
> compounded by the restriction that everything is written in shell, and
> POSIX shell at that (because Debian).

Well, look at it from the other side: the host machine also needs to
work in the same circumstances, since we need things to work also after
we switch to the host. And the actual code that we use in the host
— the libraries, the binaries, configuration — is the same, since we 
don't do different compilations for the initramfs.
In the host we have switched away from the shell for machine boot, but
for some reason we still keep it for the initramfs, along with a large
amount of custom logic.

> The dracut package, while very large,
> has a pretty understandable framework model.
Sure, it *can* be understood, but should it? Do we gain anything by
having the initramfs so different from the host? The initial
experiments with initramfs built from rpms directly give something
that a) already works fine for some common cases without any tweaking,
b) is actually faster to boot. Currently the size increase is not
acceptable, but if we consider that the binaries and libs will take
the same amount of space no matter how we build the image, this issue
should be surmountable.

Zbyszek
___
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: kernel rpm split

2020-02-07 Thread Neal Gompa
On Fri, Feb 7, 2020 at 8:27 AM Zbigniew Jędrzejewski-Szmek
 wrote:
>
> On Fri, Feb 07, 2020 at 12:09:37PM +, Richard W.M. Jones wrote:
> >
> > I'd strongly suggest you look at supermin before going any further.
>
> Supermin is an interesting project, but at this point we're not
> looking for a tool to craft the image. We're still at an earlier stage
> of changing how we do some rpm packages so that it is easy to do an
> installation that is small without custom logic.
>
> The idea is that the initramfs, once you include lvm, md, dm, encryption,
> networking, clevis, emergency utilities, scsi, iscsi, raid in various
> flavours, some graphics drivers, usb, bluetooth, etc, is a lot like a
> the full distribution. Things would be a lot easier if we could just
> use the same tools and daemons from the same packages as in the
> host. Supermin (and other tools) have support for creating something
> custom and small, and here the goal is the opposite: to do "standard".
>
> Fedora currently uses dracut, and the problem is that nobody has a
> good grasp on what goes in dracut. There's a lot of custom logic and
> custom code and reimplementation of things, and people who deal with
> the same functionality in the host system don't necessarily know what
> happens in the initramfs. In the past such a setup made sense, but now
> it seems that the tradeoffs are different.
>

I'm genuinely surprised by this. The dracut package, while very large,
has a pretty understandable framework model. The main problem with
dracut is the same problem with all initramfs generators: it has to
prepare an environment that works in the worst circumstances. It's
compounded by the restriction that everything is written in shell, and
POSIX shell at that (because Debian).

It does take a bit of a mental bend (mainly to understand POSIX
shell), but it's not difficult to understand what's happening.



-- 
真実はいつも一つ!/ Always, there's only one truth!
___
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: kernel rpm split

2020-02-07 Thread Zbigniew Jędrzejewski-Szmek
On Fri, Feb 07, 2020 at 12:09:37PM +, Richard W.M. Jones wrote:
> 
> I'd strongly suggest you look at supermin before going any further.

Supermin is an interesting project, but at this point we're not
looking for a tool to craft the image. We're still at an earlier stage
of changing how we do some rpm packages so that it is easy to do an
installation that is small without custom logic.

The idea is that the initramfs, once you include lvm, md, dm, encryption,
networking, clevis, emergency utilities, scsi, iscsi, raid in various
flavours, some graphics drivers, usb, bluetooth, etc, is a lot like a
the full distribution. Things would be a lot easier if we could just
use the same tools and daemons from the same packages as in the
host. Supermin (and other tools) have support for creating something
custom and small, and here the goal is the opposite: to do "standard".

Fedora currently uses dracut, and the problem is that nobody has a
good grasp on what goes in dracut. There's a lot of custom logic and
custom code and reimplementation of things, and people who deal with
the same functionality in the host system don't necessarily know what
happens in the initramfs. In the past such a setup made sense, but now
it seems that the tradeoffs are different.

As to how to actually construct the image, that's an open question for
now. Doing it "by hand" is not too onerous, but in the long term some
tool we'll most likely be used. Whether it's supermin, os-build, or
something else doesn't matter at this point.

Zbyszek
___
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: kernel rpm split

2020-02-07 Thread Daniel Mach



Dne 07. 02. 20 v 13:47 Neal Gompa napsal(a):

On Fri, Feb 7, 2020 at 4:00 AM Daniel Mach  wrote >> Dne 06. 
02. 20 v 19:54 Zbigniew Jędrzejewski-Szmek napsal(a):

- move the Requires:linux-firmware (or change to Recommends) from kernel-core,
have kernel Requires:linux-firmware

It would be nice to introduce hardware specific Requires implemented.
If you have the hardware, a Provide would be dynamically generated (an
udev rule?) and used in rich dependencies to pull the firmware package
you need.

I believe SUSE is doing something similar already, but I don't quite
like references to PCI-IDs, for example:
Supplements: (kernel-default and
namespace:modalias(pci:v80EEdBEEFsv*sd*bc*sc*i*))




We already have kmods generate modalias provides if they're associated
with hardware, I think? So it wouldn't be that bad to have DNF trigger
inject virtual supplements that would pull in kernel modules.



I'm not opposed to that as long as someone outside the DNF team manages 
the rules. We are in the package management business and know only a 
little about hardware, firmware, kmods and how they relate to each other.

___
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: kernel rpm split

2020-02-07 Thread Neal Gompa
On Fri, Feb 7, 2020 at 4:00 AM Daniel Mach  wrote:
>
>
>
> Dne 06. 02. 20 v 19:54 Zbigniew Jędrzejewski-Szmek napsal(a):
> > Hello kernel maintainers, hello Fedora developers,
> >
> > I'm looking into the split of kernel packages. The split into subpackages
> > seems interesting, but there are many dependencies between the packages,
> > so it is usual to end up with all of them installed.
> >
> > E.g. for a simple VM, by design, kernel-core contains a basic set of
> > modules that should be enough to boot. I see that in a standard
> > libvirt guest, the only modules from kernel-modules that are loaded
> > are for sound hardware and "usbnet", all which I'd be fine without.
> >
> > Another example: we'd like to explore building an initramfs directly
> > from rpms, without dracut, only systemd and a standard packages to
> > bring up the hardware. Some modules need to be installed, so the
> > kernel can load the from the initramfs, but the kernel itself should
> > not, since it is provided "externally" by the boot loader.
> >
> > But:
> > the basic modules are in one rpm with kernel-core
> > kernel-core Requires linux-firmware (which is 240MB)
> > kernel-modules Requires kernel-uname-r, which is provided by kernel-core
> > kernel Requires kernel-core-uname-r, kernel-modules-uname-r
> >
> > Would it be possible to make some changes:
> >
> > - split out the modules from kernel-core package into a new subpackage
> >kernel-basic-modules, kernel-core can Recommend or Require it
> If you're after generating a minimal initramfs, this still doesn't solve
> the problem. In many cases you need kernel-core *and* several modules.
>
> An option would be splitting the modules into individual RPMs and
> installing only those we need. But it is a bad idea (remember texlive
> and it's subpackage explosion).
>
> I was thinking if you couldn't look into using a similar approach to the
> %_install_langs macro - simply define modules you want installed, the
> others would be skipped.
>
> >
> > - remove the Requires on kernel-core (or change to Recommends) from
> >kernel-modules, so it can be installed standalone
> >
> > - move the Requires:linux-firmware (or change to Recommends) from 
> > kernel-core,
> >have kernel Requires:linux-firmware
> It would be nice to introduce hardware specific Requires implemented.
> If you have the hardware, a Provide would be dynamically generated (an
> udev rule?) and used in rich dependencies to pull the firmware package
> you need.
>
> I believe SUSE is doing something similar already, but I don't quite
> like references to PCI-IDs, for example:
> Supplements: (kernel-default and
> namespace:modalias(pci:v80EEdBEEFsv*sd*bc*sc*i*))
>
>

We already have kmods generate modalias provides if they're associated
with hardware, I think? So it wouldn't be that bad to have DNF trigger
inject virtual supplements that would pull in kernel modules.


-- 
真実はいつも一つ!/ Always, there's only one truth!
___
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: kernel rpm split

2020-02-07 Thread Richard W.M. Jones

I'd strongly suggest you look at supermin before going any further.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines.  Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v
___
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: kernel rpm split

2020-02-07 Thread Daniel Mach



Dne 06. 02. 20 v 19:54 Zbigniew Jędrzejewski-Szmek napsal(a):

Hello kernel maintainers, hello Fedora developers,

I'm looking into the split of kernel packages. The split into subpackages
seems interesting, but there are many dependencies between the packages,
so it is usual to end up with all of them installed.

E.g. for a simple VM, by design, kernel-core contains a basic set of
modules that should be enough to boot. I see that in a standard
libvirt guest, the only modules from kernel-modules that are loaded
are for sound hardware and "usbnet", all which I'd be fine without.

Another example: we'd like to explore building an initramfs directly
from rpms, without dracut, only systemd and a standard packages to
bring up the hardware. Some modules need to be installed, so the
kernel can load the from the initramfs, but the kernel itself should
not, since it is provided "externally" by the boot loader.

But:
the basic modules are in one rpm with kernel-core
kernel-core Requires linux-firmware (which is 240MB)
kernel-modules Requires kernel-uname-r, which is provided by kernel-core
kernel Requires kernel-core-uname-r, kernel-modules-uname-r

Would it be possible to make some changes:

- split out the modules from kernel-core package into a new subpackage
   kernel-basic-modules, kernel-core can Recommend or Require it
If you're after generating a minimal initramfs, this still doesn't solve 
the problem. In many cases you need kernel-core *and* several modules.


An option would be splitting the modules into individual RPMs and 
installing only those we need. But it is a bad idea (remember texlive 
and it's subpackage explosion).


I was thinking if you couldn't look into using a similar approach to the 
%_install_langs macro - simply define modules you want installed, the 
others would be skipped.




- remove the Requires on kernel-core (or change to Recommends) from
   kernel-modules, so it can be installed standalone

- move the Requires:linux-firmware (or change to Recommends) from kernel-core,
   have kernel Requires:linux-firmware

It would be nice to introduce hardware specific Requires implemented.
If you have the hardware, a Provide would be dynamically generated (an 
udev rule?) and used in rich dependencies to pull the firmware package 
you need.


I believe SUSE is doing something similar already, but I don't quite 
like references to PCI-IDs, for example:
Supplements: (kernel-default and 
namespace:modalias(pci:v80EEdBEEFsv*sd*bc*sc*i*))





I think this would be useful for playing with various minimization scenarios.

Zbyszek
___
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


___
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: kernel rpm split

2020-02-06 Thread Zbigniew Jędrzejewski-Szmek
On Thu, Feb 06, 2020 at 03:09:53PM -0500, Josh Boyer wrote:
> On Thu, Feb 6, 2020 at 2:40 PM Zbigniew Jędrzejewski-Szmek
>  wrote:
> >
> > On Thu, Feb 06, 2020 at 02:13:25PM -0500, Josh Boyer wrote:
> > > On Thu, Feb 6, 2020 at 1:56 PM Zbigniew Jędrzejewski-Szmek
> > >  wrote:
> > > >
> > > > Hello kernel maintainers, hello Fedora developers,
> > > >
> > > > I'm looking into the split of kernel packages. The split into 
> > > > subpackages
> > > > seems interesting, but there are many dependencies between the packages,
> > > > so it is usual to end up with all of them installed.
> > > >
> > > > E.g. for a simple VM, by design, kernel-core contains a basic set of
> > > > modules that should be enough to boot. I see that in a standard
> > > > libvirt guest, the only modules from kernel-modules that are loaded
> > > > are for sound hardware and "usbnet", all which I'd be fine without.
> > > >
> > > > Another example: we'd like to explore building an initramfs directly
> > > > from rpms, without dracut, only systemd and a standard packages to
> > > > bring up the hardware. Some modules need to be installed, so the
> > > > kernel can load the from the initramfs, but the kernel itself should
> > > > not, since it is provided "externally" by the boot loader.
> > > >
> > > > But:
> > > > the basic modules are in one rpm with kernel-core
> > > > kernel-core Requires linux-firmware (which is 240MB)
> > > > kernel-modules Requires kernel-uname-r, which is provided by kernel-core
> > > > kernel Requires kernel-core-uname-r, kernel-modules-uname-r
> > > >
> > > > Would it be possible to make some changes:
> > > >
> > > > - split out the modules from kernel-core package into a new subpackage
> > > >   kernel-basic-modules, kernel-core can Recommend or Require it
> > >
> > > There has to be a *really* good benefit to do this, and I haven't seen
> > > one described.  The more splitting we do, the more management both on
> > > the client machines and for the kernel maintainers themselves.  The
> > > way modules are filtered is terrible (I wrote it, so I can say that)
> > > and requires people to keep it updated as the upstream kernel changes
> > > module dependencies.
> >
> > > Can you describe in more detail why you need something smaller than
> > > kernel-core?  I'm not understanding your usecase.
> >
> > The initramfs built from rpms was described above.
> 
> I don't understand the description of the initramfs build from rpms as
> described above.  Can you be more verbose with the usecase of that,
> how it would work, what hardware it would target, etc?

Dracut builds initramfs by (in great simplification)
- picking a list of files to copy from the host filesystem
  (along with dependencies, e.g. all libraries used by the binaries)
- adding a layer of shell scripts and custom logic to manage the
  boot sequence.

This means that the initramfs is a) dependent on the host installation,
including any local modifications and errors, b) very fragile because
a list of files to copy must be carefully curated.

The general idea is to instead the equivalent of
dnf --installroot=/tmp/foo install systemd kernel-modules lvmd ...
cp /usr/lib/os-release /tmp/foo/etc/initrd-release
and create a squashfs from /tmp/foo and use that as the initramfs.

This already works well enough to boot normal Fedora installations,
but certainly not many custom cases. The initramfs is also ~10 larger.
The prospective advantages though are pretty significant:
- no need to maintain a list of files to install, just use normal rpm
  packaging and deps
- the initramfs is created from pristine files from rpm
- no custom logic and shell scripts, just plain systemd

> > A different example: a VM is booted with 'qemu -kernel foo'. Then
> > we vmlinuz binary is not necessary in the guest, just the modules.
> >
> > > > - remove the Requires on kernel-core (or change to Recommends) from
> > > >   kernel-modules, so it can be installed standalone
> > >
> > > That makes no sense.  The modules are unusable without the main
> > > vmlinux binary.  Why would we do that and risk people making their
> > > machines unbootable?
> >
> > See above, there are cases where the modules are usable without vmlinuz
> > being _installed_. People who just want to have the safe thing, should
> > install kernel.rpm and have it pull in all the dependencies. The split
> > into subpackages is for power users.
> 
> Hm.  I see.  So you're really asking for the vmlinuz to be packaged
> all by itself.

Both ways: for some cases I want just the modules, for some just vmlinuz
and a very small list of modules.

Zbyszek
___
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

Re: kernel rpm split

2020-02-06 Thread Neal Gompa
On Thu, Feb 6, 2020 at 2:40 PM Zbigniew Jędrzejewski-Szmek
 wrote:
>
> On Thu, Feb 06, 2020 at 02:13:25PM -0500, Josh Boyer wrote:
> > On Thu, Feb 6, 2020 at 1:56 PM Zbigniew Jędrzejewski-Szmek
> >  wrote:
> > >
> > > Hello kernel maintainers, hello Fedora developers,
> > >
> > > I'm looking into the split of kernel packages. The split into subpackages
> > > seems interesting, but there are many dependencies between the packages,
> > > so it is usual to end up with all of them installed.
> > >
> > > E.g. for a simple VM, by design, kernel-core contains a basic set of
> > > modules that should be enough to boot. I see that in a standard
> > > libvirt guest, the only modules from kernel-modules that are loaded
> > > are for sound hardware and "usbnet", all which I'd be fine without.
> > >
> > > Another example: we'd like to explore building an initramfs directly
> > > from rpms, without dracut, only systemd and a standard packages to
> > > bring up the hardware. Some modules need to be installed, so the
> > > kernel can load the from the initramfs, but the kernel itself should
> > > not, since it is provided "externally" by the boot loader.
> > >
> > > But:
> > > the basic modules are in one rpm with kernel-core
> > > kernel-core Requires linux-firmware (which is 240MB)
> > > kernel-modules Requires kernel-uname-r, which is provided by kernel-core
> > > kernel Requires kernel-core-uname-r, kernel-modules-uname-r
> > >
> > > Would it be possible to make some changes:
> > >
> > > - split out the modules from kernel-core package into a new subpackage
> > >   kernel-basic-modules, kernel-core can Recommend or Require it
> >
> > There has to be a *really* good benefit to do this, and I haven't seen
> > one described.  The more splitting we do, the more management both on
> > the client machines and for the kernel maintainers themselves.  The
> > way modules are filtered is terrible (I wrote it, so I can say that)
> > and requires people to keep it updated as the upstream kernel changes
> > module dependencies.
>
> > Can you describe in more detail why you need something smaller than
> > kernel-core?  I'm not understanding your usecase.
>
> The initramfs built from rpms was described above.
>
> A different example: a VM is booted with 'qemu -kernel foo'. Then
> we vmlinuz binary is not necessary in the guest, just the modules.
>
> > > - remove the Requires on kernel-core (or change to Recommends) from
> > >   kernel-modules, so it can be installed standalone
> >
> > That makes no sense.  The modules are unusable without the main
> > vmlinux binary.  Why would we do that and risk people making their
> > machines unbootable?
>
> See above, there are cases where the modules are usable without vmlinuz
> being _installed_. People who just want to have the safe thing, should
> install kernel.rpm and have it pull in all the dependencies. The split
> into subpackages is for power users.
>
> (Proposed changes don't fundamentally change anything: it was already
> possible to uninstall kernel-modules and kernel-firmware, just keeping
> kernel-core, and make the machine unbootable.)
>

The changes you're asking for would make this possible. It's currently
not possible to completely break your system this way.

I've previously experimented with some further splitting for
minimization purposes and I haven't really seen much benefit to it. It
also adds a lot of surprises for what functionality is expected to
work.

> > > - move the Requires:linux-firmware (or change to Recommends) from 
> > > kernel-core,
> > >   have kernel Requires:linux-firmware
> > >
> > > I think this would be useful for playing with various minimization 
> > > scenarios.
> >
> > This one might be feasible.  We did the split before Recommends
> > support was present.  It's often been requested for the VM case.  I do
> > still have concerns that it can lead to unbootable physical machines,
> > but if dnf defaults to installing Recommended packages that might be
> > possible.
> Cool, that'd be a good start, since the firmware package is so large.
> Yes, dnf does install Recommends by default.

I wish we could have linux-firmware get pulled in conditionally by DNF
if it detects hardware that needs it. That said, downgrading the
dependency to Recommends means that the kickstarts will need
adjustment to compensate for the fact that it'll no longer be pulled
in by default.

Alternatively, have you considered having the kernel package produce a
stub subpackage (e.g kernel-no-firmware) to install no firmware and
satisfy a kernel-firmware virtual dependency that it requires? Then
the kernel-core package could have a "Suggests: (kernel-no-firmware if
(fedora-release-cloud or fedora-release-container) or
linux-firmware)".



-- 
真実はいつも一つ!/ Always, there's only one truth!
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https:/

Re: kernel rpm split

2020-02-06 Thread Josh Boyer
On Thu, Feb 6, 2020 at 2:40 PM Zbigniew Jędrzejewski-Szmek
 wrote:
>
> On Thu, Feb 06, 2020 at 02:13:25PM -0500, Josh Boyer wrote:
> > On Thu, Feb 6, 2020 at 1:56 PM Zbigniew Jędrzejewski-Szmek
> >  wrote:
> > >
> > > Hello kernel maintainers, hello Fedora developers,
> > >
> > > I'm looking into the split of kernel packages. The split into subpackages
> > > seems interesting, but there are many dependencies between the packages,
> > > so it is usual to end up with all of them installed.
> > >
> > > E.g. for a simple VM, by design, kernel-core contains a basic set of
> > > modules that should be enough to boot. I see that in a standard
> > > libvirt guest, the only modules from kernel-modules that are loaded
> > > are for sound hardware and "usbnet", all which I'd be fine without.
> > >
> > > Another example: we'd like to explore building an initramfs directly
> > > from rpms, without dracut, only systemd and a standard packages to
> > > bring up the hardware. Some modules need to be installed, so the
> > > kernel can load the from the initramfs, but the kernel itself should
> > > not, since it is provided "externally" by the boot loader.
> > >
> > > But:
> > > the basic modules are in one rpm with kernel-core
> > > kernel-core Requires linux-firmware (which is 240MB)
> > > kernel-modules Requires kernel-uname-r, which is provided by kernel-core
> > > kernel Requires kernel-core-uname-r, kernel-modules-uname-r
> > >
> > > Would it be possible to make some changes:
> > >
> > > - split out the modules from kernel-core package into a new subpackage
> > >   kernel-basic-modules, kernel-core can Recommend or Require it
> >
> > There has to be a *really* good benefit to do this, and I haven't seen
> > one described.  The more splitting we do, the more management both on
> > the client machines and for the kernel maintainers themselves.  The
> > way modules are filtered is terrible (I wrote it, so I can say that)
> > and requires people to keep it updated as the upstream kernel changes
> > module dependencies.
>
> > Can you describe in more detail why you need something smaller than
> > kernel-core?  I'm not understanding your usecase.
>
> The initramfs built from rpms was described above.

I don't understand the description of the initramfs build from rpms as
described above.  Can you be more verbose with the usecase of that,
how it would work, what hardware it would target, etc?

> A different example: a VM is booted with 'qemu -kernel foo'. Then
> we vmlinuz binary is not necessary in the guest, just the modules.
>
> > > - remove the Requires on kernel-core (or change to Recommends) from
> > >   kernel-modules, so it can be installed standalone
> >
> > That makes no sense.  The modules are unusable without the main
> > vmlinux binary.  Why would we do that and risk people making their
> > machines unbootable?
>
> See above, there are cases where the modules are usable without vmlinuz
> being _installed_. People who just want to have the safe thing, should
> install kernel.rpm and have it pull in all the dependencies. The split
> into subpackages is for power users.

Hm.  I see.  So you're really asking for the vmlinuz to be packaged
all by itself.

josh

> (Proposed changes don't fundamentally change anything: it was already
> possible to uninstall kernel-modules and kernel-firmware, just keeping
> kernel-core, and make the machine unbootable.)
>
> > > - move the Requires:linux-firmware (or change to Recommends) from 
> > > kernel-core,
> > >   have kernel Requires:linux-firmware
> > >
> > > I think this would be useful for playing with various minimization 
> > > scenarios.
> >
> > This one might be feasible.  We did the split before Recommends
> > support was present.  It's often been requested for the VM case.  I do
> > still have concerns that it can lead to unbootable physical machines,
> > but if dnf defaults to installing Recommended packages that might be
> > possible.
> Cool, that'd be a good start, since the firmware package is so large.
> Yes, dnf does install Recommends by default.
>
> Zbyszek
> ___
> 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
___
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: kernel rpm split

2020-02-06 Thread Zbigniew Jędrzejewski-Szmek
On Thu, Feb 06, 2020 at 02:13:25PM -0500, Josh Boyer wrote:
> On Thu, Feb 6, 2020 at 1:56 PM Zbigniew Jędrzejewski-Szmek
>  wrote:
> >
> > Hello kernel maintainers, hello Fedora developers,
> >
> > I'm looking into the split of kernel packages. The split into subpackages
> > seems interesting, but there are many dependencies between the packages,
> > so it is usual to end up with all of them installed.
> >
> > E.g. for a simple VM, by design, kernel-core contains a basic set of
> > modules that should be enough to boot. I see that in a standard
> > libvirt guest, the only modules from kernel-modules that are loaded
> > are for sound hardware and "usbnet", all which I'd be fine without.
> >
> > Another example: we'd like to explore building an initramfs directly
> > from rpms, without dracut, only systemd and a standard packages to
> > bring up the hardware. Some modules need to be installed, so the
> > kernel can load the from the initramfs, but the kernel itself should
> > not, since it is provided "externally" by the boot loader.
> >
> > But:
> > the basic modules are in one rpm with kernel-core
> > kernel-core Requires linux-firmware (which is 240MB)
> > kernel-modules Requires kernel-uname-r, which is provided by kernel-core
> > kernel Requires kernel-core-uname-r, kernel-modules-uname-r
> >
> > Would it be possible to make some changes:
> >
> > - split out the modules from kernel-core package into a new subpackage
> >   kernel-basic-modules, kernel-core can Recommend or Require it
> 
> There has to be a *really* good benefit to do this, and I haven't seen
> one described.  The more splitting we do, the more management both on
> the client machines and for the kernel maintainers themselves.  The
> way modules are filtered is terrible (I wrote it, so I can say that)
> and requires people to keep it updated as the upstream kernel changes
> module dependencies.

> Can you describe in more detail why you need something smaller than
> kernel-core?  I'm not understanding your usecase.

The initramfs built from rpms was described above.

A different example: a VM is booted with 'qemu -kernel foo'. Then
we vmlinuz binary is not necessary in the guest, just the modules.

> > - remove the Requires on kernel-core (or change to Recommends) from
> >   kernel-modules, so it can be installed standalone
> 
> That makes no sense.  The modules are unusable without the main
> vmlinux binary.  Why would we do that and risk people making their
> machines unbootable?

See above, there are cases where the modules are usable without vmlinuz
being _installed_. People who just want to have the safe thing, should
install kernel.rpm and have it pull in all the dependencies. The split
into subpackages is for power users.

(Proposed changes don't fundamentally change anything: it was already
possible to uninstall kernel-modules and kernel-firmware, just keeping
kernel-core, and make the machine unbootable.)

> > - move the Requires:linux-firmware (or change to Recommends) from 
> > kernel-core,
> >   have kernel Requires:linux-firmware
> >
> > I think this would be useful for playing with various minimization 
> > scenarios.
> 
> This one might be feasible.  We did the split before Recommends
> support was present.  It's often been requested for the VM case.  I do
> still have concerns that it can lead to unbootable physical machines,
> but if dnf defaults to installing Recommended packages that might be
> possible.
Cool, that'd be a good start, since the firmware package is so large.
Yes, dnf does install Recommends by default.

Zbyszek
___
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: kernel rpm split

2020-02-06 Thread Josh Boyer
On Thu, Feb 6, 2020 at 1:56 PM Zbigniew Jędrzejewski-Szmek
 wrote:
>
> Hello kernel maintainers, hello Fedora developers,
>
> I'm looking into the split of kernel packages. The split into subpackages
> seems interesting, but there are many dependencies between the packages,
> so it is usual to end up with all of them installed.
>
> E.g. for a simple VM, by design, kernel-core contains a basic set of
> modules that should be enough to boot. I see that in a standard
> libvirt guest, the only modules from kernel-modules that are loaded
> are for sound hardware and "usbnet", all which I'd be fine without.
>
> Another example: we'd like to explore building an initramfs directly
> from rpms, without dracut, only systemd and a standard packages to
> bring up the hardware. Some modules need to be installed, so the
> kernel can load the from the initramfs, but the kernel itself should
> not, since it is provided "externally" by the boot loader.
>
> But:
> the basic modules are in one rpm with kernel-core
> kernel-core Requires linux-firmware (which is 240MB)
> kernel-modules Requires kernel-uname-r, which is provided by kernel-core
> kernel Requires kernel-core-uname-r, kernel-modules-uname-r
>
> Would it be possible to make some changes:
>
> - split out the modules from kernel-core package into a new subpackage
>   kernel-basic-modules, kernel-core can Recommend or Require it

There has to be a *really* good benefit to do this, and I haven't seen
one described.  The more splitting we do, the more management both on
the client machines and for the kernel maintainers themselves.  The
way modules are filtered is terrible (I wrote it, so I can say that)
and requires people to keep it updated as the upstream kernel changes
module dependencies.

Can you describe in more detail why you need something smaller than
kernel-core?  I'm not understanding your usecase.

> - remove the Requires on kernel-core (or change to Recommends) from
>   kernel-modules, so it can be installed standalone

That makes no sense.  The modules are unusable without the main
vmlinux binary.  Why would we do that and risk people making their
machines unbootable?

> - move the Requires:linux-firmware (or change to Recommends) from kernel-core,
>   have kernel Requires:linux-firmware
>
> I think this would be useful for playing with various minimization scenarios.

This one might be feasible.  We did the split before Recommends
support was present.  It's often been requested for the VM case.  I do
still have concerns that it can lead to unbootable physical machines,
but if dnf defaults to installing Recommended packages that might be
possible.

josh
___
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


kernel rpm split

2020-02-06 Thread Zbigniew Jędrzejewski-Szmek
Hello kernel maintainers, hello Fedora developers,

I'm looking into the split of kernel packages. The split into subpackages
seems interesting, but there are many dependencies between the packages,
so it is usual to end up with all of them installed.

E.g. for a simple VM, by design, kernel-core contains a basic set of
modules that should be enough to boot. I see that in a standard
libvirt guest, the only modules from kernel-modules that are loaded
are for sound hardware and "usbnet", all which I'd be fine without.

Another example: we'd like to explore building an initramfs directly
from rpms, without dracut, only systemd and a standard packages to
bring up the hardware. Some modules need to be installed, so the
kernel can load the from the initramfs, but the kernel itself should
not, since it is provided "externally" by the boot loader.

But:
the basic modules are in one rpm with kernel-core
kernel-core Requires linux-firmware (which is 240MB)
kernel-modules Requires kernel-uname-r, which is provided by kernel-core
kernel Requires kernel-core-uname-r, kernel-modules-uname-r

Would it be possible to make some changes:

- split out the modules from kernel-core package into a new subpackage
  kernel-basic-modules, kernel-core can Recommend or Require it

- remove the Requires on kernel-core (or change to Recommends) from
  kernel-modules, so it can be installed standalone

- move the Requires:linux-firmware (or change to Recommends) from kernel-core,
  have kernel Requires:linux-firmware 

I think this would be useful for playing with various minimization scenarios.

Zbyszek
___
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