blob: 9734d17f0124a1addf88c736c806e604c48ea9df (
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
|
Proof of concept remote builder of clean Gentoo tree to provide on demand binary packages to desktop and
laptop comptuers.
- This will not work with presence of any significant unstable packet.
* For instance, unstable firefox depends on unstable "nss-3.45". After update it is replaced in portage
with "nss-3.46". Either full "nss-3.*" branch should be unmasked (which may bring its own problems or the
manual intervention is required)
- Even with stable tree, there are pereodically circular dependencies (always during the bootstrap phase)
Idea:
- Create 'Bootstrap' image, i.e. Gentoo image with all configuration. Solved circular dependencies ready to build
make bootstrap
make check
- Instantiate 'Builder', i.e. synced configs and portage tree
make builder
make bash
- Update builder to integrate latest configuration/portage changes
make update
make bash
- Start building
make build
make logs
It will build packages and put it on the attached volume. The script is designed to run forever.
* If crashed it will start idle sleep until the connected user solves the problem and kills the
sleep. It will restart building, then.
* If it finishes, it will re-sync after given interval or just wait until the user triggers rebuild
manually, again by killing sleep.
If the script is restarted for some reason (crash/server reboot), emerge will first re-use already
built binaries and, then, will continue compilling.
* At some point a snapshot could be made by converting 'container' into the huge 'image' with
'docker commit'.
- Overall: This requires fast. I guess lvm based stuff is necessety.
|