[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: progress on debian-installer initrd



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

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: