On Saturday 06 September 2008 06:38:08 Chris Lamb wrote: > Hi Joseph, > > > I have done some preliminary work on getting the debian-installer to work > > as an "application". > > Thanks for your detailed mail, you clearly have done a lot of work - great > stuff. > > I don't have anything in particular to add, just to say your message was > read and that I am looking forward to hearing more in the future. Thanks :) I was wondering if anybody was reading this. I know that there's a lot more pressing matters for y'all in testing the new images, and getting ready for lenny to be released. > I stalled for a bit, trying to decide on the best way to do this. I read the installer internals guide, but it was only moderately helpful. After digging through the code myself, I learn almost as much as those docs told me anyway.
I took the time to check out debian-installer from subversion, so I could make my own modified packages. I started modifying the rootskel package in a way similar to the way the scripts were run. Basically, I put this (just one example, but you'll get the picture) in the top of the initscripts that don't need to run in the chrooted environment. Index: packages/rootskel/src/lib/debian-installer-startup.d/S01mount =================================================================== --- packages/rootskel/src/lib/debian-installer-startup.d/S01mount (revision 55597) +++ packages/rootskel/src/lib/debian-installer-startup.d/S01mount (working copy) @@ -1,5 +1,9 @@ # Cleanup after the first init, which leaves the initrd mounted # on /initrd (if we're not using initramfs) +if ! [ -z "$CHROOT_DEBIAN_INSTALLER" ]; then + exit 0 +fi + (a better variable name would probably have to be chosen) Anyway, I was thinking that this approach would be cleaner, and possibly acceptable to the d-i team. I still have yet to actually build those packages and put them in a local mirror to test. I got sidetracked a bit, and started to look at ubiquity. Ubiquity is the ubuntu installer that runs in a live system. The build of this package is interesting, as it grabs the sources for the debian-installer from the internet and integrates them into the package. I haven't been able to build this on debian, as it seems to need some things particular to ubuntu. It also only supports a small part of the installer, so I'm not really interested in building it, as much as I am in seeing how the debian-installer is integrated into the package, and how a frontend is wrapped around it. I'm at a crossroads now. I'm trying to determine the method that would be best. If the debian-installer packages are to be patched, I'd like to do that in a manner that's least intrusive as possible. I think that as long as the patches look for an environment variable before the behavior differs, it would be the easiest to maintain in the long term, although it may be more difficult to introduce them in the first place, especially if the patches take up too much space. The unmodified debian-installer needs to work in as little memory as possible, and the patches may turn out to be too much for that. I'm also considering making a package, somewhat like ubiquity, where the packages are patched before the live-installer package is built. In this case, the debian-installer packages can be modified without the same regard to how they'll be used, as they will be specifically patched to work with the live-installer package. This is probably where I'll start, once I get a better feel for how ubiquity is built and packaged. -- Thanks: Joseph Rawson
signature.asc
Description: This is a digitally signed message part.