summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dev/todo/installation-bootstrap-tool.mdwn40
1 files changed, 40 insertions, 0 deletions
diff --git a/dev/todo/installation-bootstrap-tool.mdwn b/dev/todo/installation-bootstrap-tool.mdwn
new file mode 100644
index 0000000..14610fb
--- /dev/null
+++ b/dev/todo/installation-bootstrap-tool.mdwn
@@ -0,0 +1,40 @@
+[[!meta title="Installation Bootstrap Tool"]]
+
+A tool similar to [debootstrap][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.
+
+Hopefully, this tool can be done by October 2012.
+
+
+[debootstrap]: http://anonscm.debian.org/gitweb/?p=d-i/debootstrap.git;a=tree