aboutsummaryrefslogtreecommitdiff
blob: 28872d9d87cb6a98c7806d2761083462759619fc (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
# Eric Thibodeau
# 01 Jul 2008
# Google Summer of Code 2008: Gentoo Clustering LiveCD

## The build environment ##

If you want to be able to create liveCDs with as little hassle as possible you will need the following:

	- The loop module, it's required for the licecd-stage2 creation of the kernel
		modprobe loop

	- dev-util/subversion
	- dev-util/git
    - dev-util/catalyst (am using CVS version which is close to 2.0.6)
        ** for some reason, catalyst won't create the skeleton dirs so here is the sequence to get you started

        emerge dev-util/catalyst
        mkdir -p /var/tmp/catalyst/ /var/tmp/catalyst/snapshots /var/tmp/catalyst/tmp/default
		# edit /etc/catalyst/catalystrc and add relevant options such as:
		export MAKEOPTS="-j6"
		export FEATURES="parallel-fetch"
		# you can set CFLAGS here but it's not recommended
		# NOTE, don't try to use distcc, it's broken, the distcc user is not being created in the catalyst build

    - http://sources.gentoo.org/viewcvs.py/releng/ pulled in as /var/svnroot/releng
        mkdir -p /var/svnroot/
        cd /var/svnroot/
        svn co svn://anonsvn.gentoo.org/releng

    - A recent snapshot (last one used was portage-20080629.tar.bz2), you have to modify the catalyst .spec files accordingly
        ** as soon as we get an official 2008.0 release, I will adapt the spect files to that official, nailed down reference **
        So get a snapshot and place it in /var/tmp/catalyst/snapshots (we are doing something evil here...):

        wget ftp://mirrors.tera-byte.com/pub/gentoo/snapshots/portage-latest.tar.bz2 -O /var/tmp/catalyst/snapshots/portage-20080629.tar.bz2

	- A recent stage3, this eliminates many problems related to circular dependancies and collisions. We used drobbin's packages from funtoo.org
		mkdir -p /var/tmp/catalyst/builds/drobbins/
		cd /var/tmp/catalyst/builds/drobbins/
		wget http://www.funtoo.org/linux/amd64/funtoo-amd64-2008.06.27/stage3-amd64-2008.06.27.tar.bz2 

    - This git checked out into /var/git/:

        mkdir -p /var/git/
        cd /var/git/
        git clone git://git.overlays.gentoo.org/proj/clustering-livecd.git

    - The abovementionned snapshot suffers from the following bugs (whch have been fixed if you take something more recent):
        http://bugs.gentoo.org/show_bug.cgi?id=229103 "www-client/mozilla-firefox-bin-2.0.0.14 missing pango-dependency"
        http://bugs.gentoo.org/show_bug.cgi?id=206753 "gnome-base/gnome-desktop-2.20.3 - parser errors during emerge"

		** This bug isn't going to be resolved any time soon:
		http://bugs.gentoo.org/show_bug.cgi?id=142637 "missing dependency in eutils.eclass"

		So you have to edit the openldap ebuild (currently the setup pulls in 2.4.10) and add DEPEND="sys-apps/shadow":
		
		vi /var/tmp/catalyst/snapshot_cache/20080629/portage/net-nds/openldap/openldap-2.4.10.ebuild
		ebuild /var/tmp/catalyst/snapshot_cache/20080629/portage/net-nds/openldap/openldap-2.4.10.ebuild digest

	- We also need (some) overlays:
		# NOTE!!! I set up my layman to put all files into /usr/local/portage/ (and not de thefault of /usr/portage/local)
		layman -a sunrise

## Before you can build the LiveCD/DVD, you have to build the nfsroot which is to be included in the iso...so skip to the NFSroot-HOWTO and come back here when you're done ;)
	
## Actually building the CD ##

** NOTE: if you have lots of RAM: **
	You can build everything in RAM with no problems as long as tmpfs has at least 6Gigs (for the LiveCD stages)
	alias mnttmp='mount -t tmpfs -o size=6G,noatime catalystbuild /var/tmp/catalyst/tmp/default'
**

	# Barring the bugs 229103 and 206753, the following sequence should get you down to a LiveCD (haha...HAHA...HAHAHAHAHA)

	cd clustering-livecd/catalyst/releases/2008.0/specs/amd64/
	for I in stage*
	do 
		mnttmp
		catalyst -f $I
		# we empty out stuff we don't need anymore ;)
		umount /var/tmp/catalyst/tmp/default
	done
	mnttmp
	catalyst -f livecd-stage1.spec
	catalyst -f livecd-stage2.spec

	# At the end, an iso image should be waiting for you as /tmp/livecd-amd64-installer-2008.0.iso ;)