Mercurial > hg > control-images
annotate www/index.html @ 33:a051c841d782
Add command recording ability (via record-commands wrapper).
author | Rob Landley <rob@landley.net> |
---|---|
date | Fri, 22 Mar 2013 22:54:03 -0500 |
parents | 5555993a80c5 |
children |
rev | line source |
---|---|
5
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1 <title>Build Control Images</title> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3 <h1>Control Images</h1> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
5 <p>These are squashfs images that plug into <a href=/aboriginal>Aboriginal |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
6 Linux</a> to drive an automated software build. These images are |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
7 target-independent and self-contained: they include source code and build |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
8 control scripts, and upload the result to the host via FTP through the virtual |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
9 network.</p> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
10 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
11 <ul> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
12 <li><a href=downloads>Download source code</a></li> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
13 <li><a href=downloads/binaries>Download binaries</a></li> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
14 <li><a href=/hg/control-images>Mercurial Repository</a></li> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
15 </ul> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
16 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
17 <p>Development discussion goes on the |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
18 <a href=http://lists.landley.net/listinfo.cgi/aboriginal-landley.net>Aboriginal Linux mailing list</a>.</p> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
19 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
20 <h2>How to use</h2> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
21 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
22 <p>Each system image tarball includes a "./native-build.sh" which expects a |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
23 control image as its argument. The results are uploaded through the |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
24 virtual network to an "upload" subdirectory under the system image |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
25 directory.</p> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
26 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
27 <p>This attaches the control image as the third |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
28 virtual hard drive provided to QEMU (the first is the root filesystem, the |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
29 second is a sparse 2 gigabyte ext3 filesystem provided by dev-environment.sh |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
30 and mounted on /home to provide writeable space for the build). The Aboriginal |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
31 Linux init script (sbin/init.sh) will mount this /dev/hdc on /mnt and check for |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
32 an executable "/mnt/init". If it finds one, it will run that instead of |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
33 launching a shell prompt. (It pauses for three seconds for the user to press |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
34 any key to get a shell prompt anyway.) When the script exits, the system |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
35 image shuts down causing QEMU to exit.</p> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
36 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
37 <p>The /mnt/init script can use busybox ftpput to upload its results to |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
38 the host using FTP_SERVER and FTP_PORT environment variables. (By default |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
39 native-build.sh runs the busybox ftp server on the host, writing into an |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
40 "upload" subdirectory.)</p> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
41 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
42 <h2>Example usage:</h2> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
43 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
44 <blockquote><pre> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
45 cd system-image-armv5l |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
46 ./native-build.sh ../static-tools.hdc |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
47 ls -l upload |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
48 </pre></blockquote> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
49 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
50 <h2>Can I use this on real hardware?</h2> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
51 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
52 <p>Sure, grab a root-filesystem tarball, chroot into it (probably via |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
53 sbin/init.sh to set up the mount points properly), mount the squashfs |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
54 on /mnt, and run /mnt/init.</p> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
55 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
56 <p>You might want to export values for "CPUS", "HOST", "FTP_SERVER", and |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
57 "FTP_PORT", and maybe even set up distcc |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
58 (see dev-environment.sh for an example).</p> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
59 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
60 <h1>Creating build images</h1> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
61 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
62 <p>Download the source code and run "./build.sh" to list available build |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
63 images (from the "images" directory). Run "./build.sh all" to compile |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
64 everything.</p> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
65 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
66 <p>This build infrastructure is largely copied from Aboriginal Linux.</p> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
67 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
68 <h2>Designing your own build control images</h2> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
69 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
70 <p>The native-build.sh script attaches the control image as the third |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
71 virtual hard drive provided to QEMU, hence the "hdc" extension. |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
72 The init scripts then mount this on /mnt, and run /mnt/init if it exists |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
73 instead of starting a command shell. From there, the script can do anything |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
74 it needs to.</p> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
75 |
27 | 76 <p>The full build-time environment is:</p> |
5
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
77 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
78 <ul> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
79 <li><p>The first disk is Aboriginal Linux's squashfs root filesystem, |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
80 attached by run-emulator.sh and mounted on "/". This contains a simple |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
81 native Linux development environment built from busybox, |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
82 uClibc, gcc, binutils, make, and bash.</p></li> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
83 |
27 | 84 <li><p>The second disk is a 2 gigabyte ext3 filesystem created in a sparse |
85 file on the host (so it grows up to 2 gigabytes as space is used). It's | |
86 attached to QEMU by dev-environment.sh, which then calls run-emulator.sh. If | |
5
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
87 /dev/hdb (or /dev/sdb) exists, sbin/init.sh will mount it |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
88 on "/home" to provide writeable space for the build. (Otherwise it |
27 | 89 mounts a tmpfs there if the root filesystem is read only, and does nothing |
90 if the root filesystem is already writeable.)</p> | |
5
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
91 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
92 <p>The dev-environment.sh script also sets up distcc if distccd and the |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
93 appropriate cross compiler are in the host's $PATH. It creates a directory |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
94 of symlinks to the cross compiler binaries and runs distccd |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
95 with a restricted $PATH so it can only find the cross compiler, and sets |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
96 DISTCC_HOSTS=$ADDRESS:$PORT/$CPUS on the kernel command line.<p> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
97 </li> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
98 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
99 <li><p>The third disk is the build control image attached by |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
100 native-build.sh, which then calls dev-environment.sh. The Aboriginal |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
101 Linux init script (sbin/init.sh) will mount this /dev/hdc on /mnt and check for |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
102 an executable "/mnt/init". If it finds one, it will run that instead of |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
103 launching a shell prompt. (It pauses for three seconds for the user to press |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
104 any key to get a shell prompt anyway.) When the script exits, the system |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
105 image shuts down causing QEMU to exit.</p> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
106 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
107 <p>The native-build.sh script also sets the FTP_SERVER and FTP_PORT environment |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
108 variables, allowing the /mnt/init script to use busybox ftpput to upload its |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
109 results to the host. using FTP_SERVER and FTP_PORT environment variables. |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
110 If these variables aren't already set, native-build.sh runs the busybox ftp |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
111 server on the host, configured to write into an "upload" subdirectory.</p> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
112 </li> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
113 </ul> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
114 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
115 <p>Creating your own build control image means creating a squashfs with |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
116 what you want to appear on /mnt. It must contain at least an executable "init" |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
117 file.</p> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
118 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
119 <h2>The basic control image build infrastructure</h2> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
120 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
121 <p>The "common" directory contains common code available to each build script. |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
122 The top level "build.sh" file pulls in the common definitions from |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
123 "common/include.sh", calls the "images/$NAME/build.sh" for the image in |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
124 question, and then makes a squashfs of the result. Control images are |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
125 created by running "./build.sh imagename", or "./build.sh all" to iterate |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
126 through all available images/*/build.sh files. The output should show |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
127 up in the "build" directory.</p> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
128 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
129 <p>The source code for control images lives under the "images" directory, each |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
130 in its own subdirectory. Each one provides a file "images/$NAME/build.sh" |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
131 which populates a "$TOP/build/$NAME" directory and should contain an executable |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
132 file called "init" and any other files that init program requires.</p> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
133 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
134 <p>You can write your own images/$NAME/build.sh, which can put anything it wants |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
135 into the resulting image. (It doesn't have to perform a native build, it |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
136 can launch a server or something. Up to you.)</p> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
137 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
138 <h2>The bootstrap infrastructure</h2> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
139 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
140 <p>The other option is to use the "bootstrap" infrastructure by linking |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
141 an image's download.sh to common/builder.sh. This copies the common/bootstrap |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
142 code into the resulting system image, calls "images/$NAME/download.sh" to add |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
143 additional package source, and copies additional files (I.E. build scripts) |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
144 from the "images/$NAME/mnt" directory. This download.sh can use the same |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
145 "download" function as aboriginal linux |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
146 (there's a copy in include/download_functions.sh).</p> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
147 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
148 <p>A bootstrap image builds packages and installs them into the system |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
149 image, copying the system to a writeable /home/chroot first if necessary using |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
150 setup-chroot. Note that the control image is --bind mounted into the new |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
151 chroot, and thus remains read only.</p. |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
152 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
153 <p>The /mnt/run-build-stages.sh script iterates through |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
154 /mnt/package-list and calls /mnt/build-one-package.sh on each name listed, |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
155 in order. (It keeps a list of packages it's built in /usr/src/manifest so |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
156 it can skip rebuilding successfully installed packages if interactively |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
157 stopped and restarted.)</p> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
158 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
159 <p>/mnt/build-one-package.sh calls build scripts out of /mnt/build which can |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
160 end in different extensions indicating how to set up the writeable build |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
161 directory:</p> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
162 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
163 <ul> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
164 <li><b>.sh</b> - copy a tree of symlinks from /mnt/packages to /home</li> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
165 <li><b>.nolink</b> - copy file contents from /mnt/packages to /home</li> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
166 <li><b>.nosrc</b> - this package has no source code</li> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
167 </ul> |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
168 |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
169 <p>When /mnt/run-build-stages.sh exits, /mnt/init uploads a tarball of the |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
170 resulting chroot filesystem. The intended use is to convert the minimal |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
171 native development environment into a distribution environment for use |
73ab228e8da3
Make a simple web page for the control images.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
172 with an existing distribution's package manager and source repository.</p> |