The Makefile has changed, causing the animated-menus patch to no longer apply. New patch made and attached. Besides that, ebuild changes: - tell about dolilo - do not set S, as ${WORKDIR}/${P} is the default (ebuild mistakes doc) - fix typo "is" -> "are", there are multiple .b's in /boot - apply the animated menu's patch again Dolilo is a convenience wrapper that mounts /boot (remounts it rw when it's mounted ro), runs /sbin/lilo and then restores the original situation (this might mean unmounting /boot if it wasn't mounted, or remounting it ro).
Created attachment 25058 [details, diff] lilo-22.5.8-r1.ebuild.diff
Created attachment 25059 [details] dolilo dolilo wrapper script
Created attachment 25060 [details, diff] lilo-22.5.8-animated-menu.patch
Comment on attachment 25059 [details] dolilo Defective file, upload error.
Created attachment 25061 [details] dolilo
Created attachment 25062 [details] dolilo wrapper script Forgot the Gentoo copyright header, added.
Created attachment 25063 [details] dolilo Upload failed again, apparently. Retrying.
Created attachment 25114 [details] dolilo deluxe Did some extra work on the wrapper. This makes using lilo as your bootloader a fairly easy task, even when you're completely new to this. I have a separate /boot partition, I just compiled a kernel in /usr/src/linux, and I don't have an /etc/lilo.conf file yet (this has sanity checks in case the way I determine the boot-device doesn't work out): prometheus / # dolilo A minimal /etc/lilo.conf has been generated for you as you didn't have one yet. Your kernel image has been copied to /boot/bzImage. Added linux * Ofcourse, it doesn't replace lilo, so you never run this by accident.
This extension to dolilo was just a random idea that worked really well, btw. If you still want the ebuild to handle things automatically, you might want to consider calling /sbin/dolilo instead, as this also fixes bug 23246
The old ani-menu patch broke the timeout option - is this still the case? As for the wrapper - could work for use in the eclass, but it will not fix it for grub, elilo, etc. I think rather then if that bug is high priority, then we should rather fix the eclass.
Created attachment 25194 [details] dolilo genkernel edition This version of dolilo can deal with a genkernel-built kernel. I'll go and test how the timeout is doing.
Created attachment 25208 [details] dolilo genkernel+bootsplash This version of dolilo is also capable of placing an initrd in boot, for bootsplash support. Besides that, I apologize for two things, for not checking the graphical bootup more thoroughly (you were right, the timeout doesn't work anymore). Besides that, #!/bin/bash was missing, to used to working in ebuild files. This one is syntactically correct, and might be usable for grub as well, but since I don't use that, I have no way to tell. I will e-mail the person that forward ported this patch, to see if there is a solution for this. If you would be willing to include dolilo in the tree, that would be very nice (makes lilo a lot easier to use). In the meantime, feel free to RESO NEEDINFO for the animated-menu part of this. I understand why I can't be enabled in it's current state.
Created attachment 25228 [details] dolilo livecd,genkernel,bootsplash Found a way to confuse the script, causing an invalid /etc/lilo.conf to be written. Patched. Lilo run is now invisible unless errors are reported. Bootsplash support is extended and writes out the necessary append= and vga= lines as well. It can also deal with being run from a LiveCD (different $bootdev and $rootdev lookup). When called from the ebuild instead of the eclass, the handbook entry for using lilo would become "1) emerge lilo 2) doublecheck created configuration 3) you're done". Example output, no /etc/lilo.conf, nothing in /boot (and it's not mounted): voyager / # dolilo Kernel image moved into place as /boot/bzImage. Bootsplash initrd for 1024x768 resolution copied to /boot/initrd. Adding bootsplash configuration to lilo.conf (video mode 791 for 1024x768 resolution). A minimal /etc/lilo.conf has been generated for you as you didn't have one yet. Bootsector updated succesfully. No response from the patch author, will keep you posted.
Comment on attachment 25060 [details, diff] lilo-22.5.8-animated-menu.patch Patch author has responded, and is unable to fix this. He is open to suggestions, but I can't give any. Consider this a request for just dolilo from now on.
Created attachment 25271 [details, diff] lilo-22.5.8-r1.ebuild.diff This removes the mounting of /boot and the running of /sbin/lilo from the ebuild and lets /sbin/dolilo do that. It also mentions why the animated-menus patch is actually disabled (in the hope that it saves people wasted time).
I have a few issues with changing the ebuild: 1) It does not check if lilo is the current bootloader - meaning it can remove a working grub/whatever setup 2) It will break stage creation where $ROOT != "/".
Created attachment 25802 [details, diff] lilo-22.5.8-r1.ebuild.diff Less intrusive changes in the ebuild this time (because I understand why those checks are there now). Just removed the mount-boot eclass usage as dolilo can handle this. When /sbin/lilo would be called, dolilo is called instead. postinst tells the user about dolilo.
Created attachment 26162 [details] dolilo After testing things with an actual lilo-user who has using a LiveCD to install (they're rare), I've made a few extra bugfixes, and removed a chunk of LiveCD-specific code that proved to be unnecessary. Determining of the kernel-version has also been reworked, it's better to check where /usr/src/linux points to then just using uname (it breaks with the LiveCD).
Created attachment 27948 [details] dolilo koutput+bootsplash By latexer's request, dolilo is now KBUILD_OUTPUT aware for locating it's new images. The error messages have been improved, and also the normal messages that are emitted are a bit more clear. The configuration file is shorter because most options are now specified globally. Please test and tell me if you manage to confuse or break it.
Created attachment 28070 [details] dolilo dynamic koutput edition Update from latexer regarding the KOUTPUT_BUILD specification in the Makefile, it's more dynamic then I anticipated. With extra parsing to get it right, and I had one bug, forgot to change a static kernel image path to ${KIMAGE}. How's this?
Created attachment 28074 [details] dolilo release candidate 1 Two more bugs, forgotten " in error messages, add an extra line of verbosity with regard to kernel image location, and fix KV. Deducting the kernel version from the symlink is not portable (kernel makefile changes etc). I promise to leave it alone for now, I can't find anything left that's awry, and latexer had a quick peek as well.
Created attachment 28079 [details] dolilo release candidate 2 It was too easy to catch this one off-guard, the error message "dolilo is not working out on your system" triggered in wrong circumstances. Better if-statement protecting that. Noted by Broekie, we display 6 values in the debug "not working out" print, not 4.
Created attachment 28688 [details] dolilo memtest86 edition Since everyone is leaving this by the side of the road, I'm going to touch it some more... The name of backups made is now mentioned to the user. Backups are now made by calling cp with appropriate options instead of mv'ing files (which could cause an error message in some situations). Initial ramdisks are now also backupped. "Mega if-monstrosities" are now separated out better, this should solve the last logic bug, and bail out on errors earlier. The /usr/src/linux symlink is checked, because the script heavily depends on it's validity. initrd is no longer specified as a global variable in lilo.conf, to allow for two kernel configs with separate initrd's. The memtest86 binary image is detected and placed into the initial config (prompting is not added for this, however). Error messages should be more helpful and to the point. (I'm not getting much comments here, but I have been able to get some testers)
Created attachment 29258 [details] dolilo with better bootsplash support This version of dolilo always makes an entry for the backup kernels that the script creates as to avoid nasty deadlocks. Besides that, it understands bootsplash themes now, and places the right initrd into /boot. The ebuild diff has been obsoleted as lilo 22.5.8-r2 has been released without this wrapper.
Created attachment 30024 [details] dolilo 2004.0 LiveCD compatible This version has a slight update to the rootdev= line to be able to cope with 2004.0 LiveCD's. I will post an updated ebuild diff soon.
Created attachment 30026 [details] lilo-22.5.8-r2.ebuild.diff This diff will update the ebuild to install and tell about dolilo. It will also run instead of the normal lilo to avoid leaving /boot mounted. (This fixes the linked bug)
Created attachment 31187 [details] dolilo with full genkernel & conf.d/dolilo support This version is fully compatible with genkernel, and generates the needed entries on the append-line now (real_root= etc). Done from a working lilo config submitted by a genkernel user. Besides that, dolilo now supports /etc/conf.d/dolilo, from which the needed append-line and various other options are read. With REWRITE enabled, a new config file is written each time, to allow for full autoconfiguration. Switching to and from genkernel is now fully painless.
Created attachment 31188 [details] /etc/conf.d/dolilo This is the example /etc/conf.d/dolilo. The script will move on without errors if the file does not exist, and use the safe non-rewrite default (in that it only creates /etc/lilo.conf if it doesn't exist and otherwise leaves it alone).
Updated remark in ebuild about the animated splashscreens, hopefully to keep people from trying to port the patch (it will break the timeout, yes). Dolilo is available in lilo-22.5.9 which is in CVS now and should appear in the tree soon.