Hi Everyone,
I'm sure some of you have been wondering what we're doing at Corel.
We've been busy defining what our distribution will look like and how
we'll execute certain
tasks, such as installation and package management.
In doing so we've tried to stick as much as possible to the present
Debian layout and methods.
Adam D'Carlo has setup a setup-api section under
cvs.debian.org/debian-boot/setup-api.
That will be where we will do our development from. Our own internal CVS
site will be for backup purposes. By using the Debian CVS site we will
be essentially putting our work "out there" for everyone to see, and
should they choose work with. Our work will be uploaded there shortly.
To date most of our work has been in planning , with some initial
experimentation of concepts, such as live CD.Here's what we are
proposing for our design. Please note that all the following procedures
and steps can be ignored or modified by Debian. The overall design is
very flexible.
1.We intend to use a rescue image to boot off either a floppy or CD-ROM.
2.A splash screen will appear(lilo) and the initrd image and kernel
will be loaded.
3. Kernel boot messages will be sent to an alternate console.
4.A linuxrc will determine the cdrom, mouse, network card and hard drive
devices.
5. linuxrc then mounts the cdrom on /instmnt and loads the correct
mouse driver and
corresponding XF86Config file.
6. linuxrc then starts X [startx] and the setup UI from a
preconfigured xinitrc.
As you can see this is a big change from the current Debian install. We
have actually
got the above scenario working. Here is what will be required to
implement the above
design if Debian should wish to use it also.
1. The rescue image will need to be rebuilt to use lilo.
2. The root.bin image will have to be rebuilt to include the linuxrc
script and
the needed libs and links to the cdrom where X resides.
3. A 2.2.X kernel will need to be used since the linuxrc script uses
it's new /proc layout to
grab info.
4. dbootstrap will be replaced by the setup API (dbootstrap 2) which is
a shared library
written in C++ possibly or C. It contains the disk partitioning ,
package installation,
system configuration , and other needed installation functions, but
not the UI.
The setup API would reside in the root.bin image not cdrom.
5. A Setup UI of either GTK, QT, or curses would need to be done. This
UI would ,except for the curses based UI, reside on the cdrom live
system. It's role would be to call up the needed functions from within
the setup API that are required during the various installation phases.
It should also be noted that the Setup UI is independent of the Setup
API. Therefore
Debian could use a GTK and /or curses UI, as we will initially use a
QT2 based UI.
6.The setup API will be able to do disk partitioning and resizing, auto
XF86 setup,
as well as either manual or automatic installation. Debian could use
what ever functions they chose from within it by simply designing
their UI to only call up what you felt you wanted or needed. It should
also be noted that Debian could add functions within the Setup API that
we may wish not to use also.
We are also looking at a a replacement for dselect(it would still be
installed),
as the primary means of choosing custom packages, again this would be
based from the setup UI calling the needed functions from within the
setup API.
Should you the Debian development community choose to accept this
design,(it can be modified), the next step would be to get the various
setup maintainers to contact me and
start the process of actually doing this . The maintainers of
dbootstrap, the kernel,
rescue and root images, apt and dselect, and any other Debian
installation related
programs , would be needed to build this. My hope is that we could get
this done in time for the potato release. Here at Corel we have at the
moment 5 people working on this full time and
we definitely could help get this done.
I hope that we can bring together our talents to build an installation
process that fits both of us well. Hopefully this design will fit your
needs.
Thanks
Dave Neil <davidne@corel.com>