summaryrefslogtreecommitdiffstats
path: root/README
blob: 40679617863245ecddb96cfced8935dc885a3047 (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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
Initial Port Bootstrap Scripts
==============================

These scripts automate the bootstrapping of an initial port of ProteanOS.

Prerequisites
-------------

To bootstrap ProteanOS, you'll need a modern UNIX-like system.

These scripts only support natively bootstrapping an any-linux-eglibc
architecture such as amd64-linux-glibc.  Therefore, you'll need a system running
Linux (or a compatible variant such as Linux-libre) and glibc (or a compatible
variant such as EGLIBC) on a CPU that matches the target CPU of the ProteanOS
architecture to be bootstrapped.

You'll need to have the following software installed on your system:

  * opkbuild (version 3.0.0-beta5 or later),
  * opkhelper (version 3.0.0 or a later 3.0.x version),
  * Sudo,
  * Git,
  * Subversion,
  * GNU Binutils,
  * GCC,
  * GNU Make,
  * Headers for your C library and Linux libc,
  * zlib (library and headers),
  * GNU Gettext,
  * GMP (library and headers),
  * GNU MPFR (library and headers), and
  * GNU MPC (library and headers, version 1.0 or later),
  * GNU M4,
  * GNU ncurses,
  * GNU Readline,
  * Expat,
  * Tcl 8.6,
  * Expect,
  * DejaGnu,
  * Time Zone Database code (comes with the GNU C Library),
  * GNU Autoconf,
  * GNU Automake, and
  * GNU Libtool.

These scripts have been tested on Debian GNU/Linux 7.0 (wheezy) with the libmpc3
and libmpc-dev packages from Debian's jessie suite.

Everything except opkbuild and opkhelper can be installed as follows on Debian
GNU/Linux jessie or later:

    $ apt-get --no-install-recommends install sudo git subversion binutils \
    > gcc g++ make libc6-dev linux-libc-dev zlib1g-dev gettext libgmp-dev \
    > libmpfr-dev libmpc-dev m4 libncurses5-dev libncursesw5-dev \
    > libreadline-dev libexpat1-dev tcl8.6-dev expect dejagnu autoconf \
    > automake libtool patch file time fakeroot bzip2 xz-utils gawk dpkg-dev \
    > ca-certificates

opkbuild can be downloaded and installed (in the default directories) as
follows:

    $ wget http://files.proteanos.com\
    > /pub/opkbuild/3.0.0-beta5/opkbuild-3.0.0-beta5.tar.gz
    $ tar -xzf opkbuild-3.0.0-beta5.tar.gz
    $ cd opkbuild-3.0.0-beta5/
    $ ./configure --with-opkg=/there/is/no/opkg
    $ make
    # make install

After installing opkbuild, be sure to run its mksysconf makefile with ARCH and
PLAT macros to install ProteanOS system configuration files on your system.  For
example, to bootstrap the amd64-linux-glibc dev port, run:

    # ./mksysconf ARCH=amd64-linux-glibc PLAT=dev

These scripts assume that opkbuild is built with the default sysconfdir (/etc)
and datadir (/usr/local/share).  If you've installed opkbuild with different
directories, you'll need to edit these scripts.

opkhelper can be downloaded and installed (in the default directories) as
follows:

    $ wget http://files.proteanos.com/pub/opkhelper/3.0.0/opkhelper-3.0.0.tar.gz
    $ tar -xzf opkhelper-3.0.0.tar.gz
    $ cd opkhelper-3.0.0/
    $ ./configure
    $ make
    # make install

Running
-------

Following is an overview of the initial port bootstrap scripts:

    Name                         Description
    ----------------------------------------------------------------------------
    bootstrap-main.sh            Runs the other scripts to perform a full
                                 bootstrap.
    bootstrap-prepare.sh         Downloads, configures, and patches packages to
                                 be built.
    bootstrap-stage1-build.sh    Builds packages in stage 1 of the bootstrap.
    bootstrap-stage1-install.sh  Installs built stage 1 packages into a
                                 bootstrap system directory.
    bootstrap-stage1-test.sh     Tests the installed bootstrap system in a
                                 changed file system root.
    bootstrap-stage2-build.sh    Builds packages in stage 2 of the bootstrap.
    bootstrap-stage2-install.sh  Installs built stage 2 packages into a
                                 bootstrap system directory.
    bootstrap-stage2-test.sh     Tests the installed stage 2 bootstrap system in
                                 a changed file system root.
    bootstrap-stage3-build.sh    Builds packages in stage 3 of the bootstrap.

To perform a full bootstrap, simply run bootstrap-main.sh.  To perform just one
step of the process, run one of the other scripts.

The scripts can (and should) be run from a separate directory.