summaryrefslogtreecommitdiffstats
path: root/dev/releases/1/opkbootstrap.mdwn
blob: 83bb6c06ba916b808f354ec1cd8caf8d4c8c2fa4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
[[!meta title="Release Series 1 Goal: Installation Bootstrap Tool"]]

A goal for [[release_1.0.0|dev/releases/1]] is an installation bootstrap tool.


Overview
========

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|dev/todo/package-cross-building-tool]] 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.

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
implementations of the `tar` and `chroot` programs.  Additionally, the package
building tool can build packages for this distribution inside an isolated
environment made using this installation tool.  Therefore, these tools can be
thought of as a "Software Development Kit" ("SDK") for the distribution, usable
on any capable development system.

Ideas and code may be borrowed from debootstrap and old versions of ipkg (the
predecessor to opkg, originally written in UNIX shell command language).


Status
======

Development has begun on [opkbootstrap][opkbootstrap].  It currently downloads
old ipkg-style source lists, finds essential packages, and unpacks packages.  To
do are downloading Debian pool-style source lists, resolving dependencies,
downloading packages, setting up an isolated environment ("chroot"), and running
maintainer scripts.


[debootstrap]: http://anonscm.debian.org/gitweb/?p=d-i/debootstrap.git;a=tree
[opkbootstrap]: http://git.os.pehjota.net/opkbootstrap/opkbootstrap.git/