summaryrefslogtreecommitdiffstats
path: root/README
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.