From 83446de3984c32885dceceeff30314457e2990fc Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Thu, 31 May 2012 13:41:40 -0400 Subject: Describe "second stage" problem in bootstrap tool. --- (limited to 'dev') diff --git a/dev/todo.html b/dev/todo.html index 5593b18..9d7cbbf 100755 --- a/dev/todo.html +++ b/dev/todo.html @@ -44,6 +44,7 @@

Installation Bootstrap Tool

A tool similar to debootstrap of Debian needs to be written to bootstrap the installation of a basic system. It can be used for building packages (see "Package Cross Building Tool" below) or installing the operating system on hardware targets.

Basically, the tool would fetch from the package archive the index of packages, determine which packages need to be installed, download each package, and unpack each package. Since the package manager may not be available, the tool must handle dependency resolution and package unpacking on its own.

+

To be determined is how the "second stage" of the installation – the execution of package maintainer scripts (preinst and postinst) to complete the configuration of each package – will be done. At least most of the time, this tool will be used to install packages built for an architecture that differs from the architecture on which the tool is run; therefore utilities used by maintainer scripts may not be executable. In this situation, debootstrap leaves behind a copy of itself in the installed system to be executed on the target architecture. Such a solution might not work for this tool, because nothing can be executed on the target architecture until the installed system is booted, and the installed system shouldn't be booted until after the packages are configured.

We can't use debootstrap, since the formats of our binary packages and package archives differ slightly from those of Debian. But we can model our tool after debootstrap or even just fork debootstrap.

If written portably (i.e. in conformance with POSIX.1), this tool could be used to make base system images on any UNIX-like operating system with an implementation of tar. On any operating system that also has a chroot program, this tool can be used with the package cross building tool described below to build packages for this distribution. Therefore, these tools can be thought of as a "Software Development Kit" ("SDK") for the distribution, usable on any capable development system.

Package Cross Building Tool

-- cgit v0.9.1