On Friday, 3 October 2008 9:54:27 Petr Tesarik wrote:
On Thu, 2008-10-02 at 21:44 +0200, Andreas Jaeger wrote:
Andreas Gruenbacher <agruen@suse.de> writes:
On Thursday, 2 October 2008 20:43:00 Markus Koßmann wrote:
Am Donnerstag, 2. Oktober 2008 schrieb Andreas Gruenbacher:
On Thursday, 2 October 2008 10:37:40 Dave Plater wrote:
Thanks very much for the explanation. I'll keep an open eye for problems and open a bug.
Thanks! I hope things will be pretty painless.
Unfortunately there is at least one problem. The filesystem driver support of the base package is also stripped down to ext3 and jbd.
Yes, the base package is supposed to be very minimal, so that you can use it for building small virtual machine images.
If you are running a system with rootfilesystem not being one of these filesystems, the installation of the kernel base package will throw an error message, because mkinitrd cannot include the filesystem driver for that filesystem into initrd.
Thanks, I didn't notice that mkinitrd handles different missing modules differently. (It only warns for some other modules; I did not think of testing this case as well.)
This is fixed later when installing the default package ( <https://bugzilla.novell.com/show_bug.cgi?id=431703> )
Yes, that's the expected result.
I know of no good way to tell when an initrd should be created and when not: in some cases the -base package will be enough, in others the main package, and in still others, the -extra package will be needed. In the %post script we don't know if this is the last package, or if another package will follow. So the best we can do, I believe, is to warn and skip ahead if mkinitrd finds that modules are missing.
That's ugly. I see it's not a trivial task, so I suggest to ask the packaging experts (e.g. on opensuse-packaging) on how to fix this in a better way,
I think it's still the same recurring problem with system update after package installation. On the one hand you don't want to run all SUSEconfig scripts after each update, on the other hand there are some actions which you don't want to run in %post.
In this case we want to ensure that installing packages from the rpm command line will work just as well as installing them from the package manager. It would be nice to have a clean way to "batch up" things like creating an initrd, so that rpm or the package manager will "eventually" perform these actions. One way to achieve this would be to cause rpm to run some external script after installing/updating packages, so that that script can check for such additional actions. The package manager would have to disable this mechanism and trigger those events itself. Another way would be to somehow pass down to the %post script which other packages are going to be installed in the same "transaction": the %post script could then figure out for itself whether it is time to create an initrd already, or whether to postpone that action to a following package. In case of doubt, it would perform its action right away. Error recovery would become harder, though: we would need to ensure that even when the user changes his plans half-way through a transaction, the right actions are performed.
I've already suggested that each SUSEconfig script should be controlled by a flag.
There is more to it than a simple flag: you can install a number of different kernels in parallel, requiring multiple initrds. SUSEconfig really doesn't cut it. Thanks, Andreas -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-kernel+help@opensuse.org