]> git.pld-linux.org Git - projects/pld-builder.new.git/blame - admin/install-chroot.sh
- use current system poldek.conf - it should be ac anyway
[projects/pld-builder.new.git] / admin / install-chroot.sh
CommitLineData
cbe88683
MM
1#!/bin/sh
2
9804a079 3DIST="ac"
fb4193ac
MM
4DISTTAG="PLD 3.0 (Th)"
5
cbe88683
MM
6die () {
7 echo "$0: $*" 1>&2
abf36701
MM
8 cat 1>&2 <<EOF
9USAGE: $0 name1=val2 name2=val2 ...
10
11Variables:
12 chroot_type=src or chroot_type=bin (required)
13 chroot_dir=/path/to/chroot (required)
abf36701 14 arch=i386 (required)
86eb765c 15 cvs_root=:pserver:<user>:<password>@<host>:<cvsroot>
abf36701
MM
16 (required in src builder)
17 builder_uid=2000 (optional, uid of builder user
fb4193ac 18 in chroot; defaults to current uid)
abf36701 19EOF
cbe88683
MM
20 exit 1
21}
22
23default_config () {
9804a079
MM
24 builder_pkgs="rpm-build poldek shadow net-tools which rpm-perlprov rpm-php-pearprov rpm-pythonprov"
25 builder_uid=`id -u`
26 dist_url="ftp://ftp.$DIST.pld-linux.org"
cbe88683 27
abf36701
MM
28 case "$chroot_type" in
29 src )
9804a079 30 builder_arch_pkgs="cvs wget"
cbe88683 31 ;;
abf36701
MM
32 bin )
33 builder_arch_pkgs=""
34 ;;
cbe88683
MM
35 esac
36}
37
abf36701
MM
38check_conf () {
39 test "$chroot_dir" || die "no chroot_dir"
40 test "$arch" || die "no arch"
9804a079 41 test "$dist_url" || die "no dist_url"
cbe88683 42
abf36701
MM
43 case "$chroot_type" in
44 src )
45 test "$cvs_root" || die "no cvs_root"
46 ;;
47 bin )
48 ;;
49 * )
50 die "evil chroot_type: $chroot_type"
51 ;;
52 esac
cbe88683 53}
cbe88683 54
cbe88683
MM
55poldek_src () {
56 if test "$1" ; then
abf36701 57 echo "source = local,pri=1 /spools/ready/"
cbe88683
MM
58 fi
59 cat <<EOF
fb4193ac
MM
60source = main-test,noauto,pri=2 $dist_url/dists/$DIST/test/$arch/RPMS/
61source = main-ready,pri=3 $dist_url/dists/$DIST/ready/$arch/RPMS/
62source = main-ug,pri=4 $dist_url/dists/$DIST/updates-general/$arch/RPMS/
63source = main-us,pri=5 $dist_url/dists/$DIST/updates-security/$arch/RPMS/
64source = main,pri=6 $dist_url/dists/$DIST/$arch/RPMS/
cbe88683
MM
65EOF
66}
67
68common_poldek_opt () {
fb4193ac 69 cat <<EOF
cbe88683
MM
70particle_install = no
71greedy = yes
72rpmdef = _excludedocs 1
73EOF
74}
75
76chr() {
77 sudo chroot $chroot_dir su - root -c "$*"
78}
79
80chb() {
81 sudo chroot $chroot_dir su - builder -c "$*"
82}
83
fb4193ac
MM
84install_SPECS_builder () {
85 cat >install-specs <<EOF
86set -x
87rm -rf rpm
88mkdir rpm
89cvs -d $cvs_root login
90cd rpm
91cvs -d $cvs_root co SPECS/builder
92cvs -d $cvs_root co SOURCES/.cvsignore
93mkdir SRPMS RPMS BUILD
94cd SPECS
95cvs up additional-md5sums mirrors
96EOF
97 chb "sh" < install-specs
98 rm install-specs
99}
100
101install_build_tree () {
102 cat >install-bt <<EOF
103set -x
104rm -rf rpm
105mkdir rpm
106cd rpm
107mkdir SPECS SOURCES SRPMS RPMS BUILD
108echo "%packager PLD bug tracking system ( http://bugs.pld-linux.org/ )">.rpmmacros
109echo "%vendor PLD">>.rpmmacros
110echo "%distribution $DISTTAG">>rpmmacros
111EOF
112 chb "sh" < install-bt
113 rm install-bt
114}
115
116
117
118
119eval "$*" || usage
120default_config
121eval "$*"
122check_conf
123
cbe88683
MM
124rm -rf tmp-chroot
125mkdir tmp-chroot
126cd tmp-chroot
127
128cat >poldek.conf <<EOF
129$(poldek_src)
130$(common_poldek_opt)
abf36701 131cachedir = $chroot_dir/spools/poldek
cbe88683
MM
132keep_downloads = no
133EOF
134
135cat > install-$chroot_name.sh <<EOF
136#!/bin/sh
137set -x
138cd $PWD
139rm -rf $chroot_dir
abf36701 140mkdir -p $chroot_dir/spools/poldek
fb8fabc7 141poldek --mkdir --install-dist $chroot_dir \
cbe88683
MM
142 $builder_pkgs $builder_arch_pkgs
143EOF
144chmod 755 install-$chroot_name.sh
145
146echo "About to remove '$chroot_dir' and install it again, using"
147echo "install-$chroot_name.sh:"
148echo
149cat install-$chroot_name.sh
150echo
151cat <<EOF
152what to do?
c52da901 153 r) the script was already ran; continue,
cbe88683
MM
154 s) run it using sudo,
155 a) abort"
156EOF
157echo -n "[r/s/a]: "
158read ans
159case "$ans" in
160 r )
161 ;;
162 s )
163 sudo ./install-$chroot_name.sh
164 ;;
165 * )
166 echo "bye"
167 exit 1
168esac
169
507ad968
MM
170chr "ldconfig"
171
cbe88683
MM
172echo "OK"
173echo "installing conf..."
174cat >poldek.conf <<EOF
deda9a51 175$(poldek_src local)
cbe88683 176$(common_poldek_opt)
abf36701 177cachedir = /spools/poldek
507ad968 178keep_downloads = no
cbe88683
MM
179EOF
180
181chr "cat > /etc/poldek.conf" < poldek.conf
e81d8e2c 182chr "useradd -u "$builder_uid" -c 'PLD $chroot_name builder' -d /home/users/builder -m -g users -s /bin/sh builder"
cbe88683
MM
183chr "cat > /etc/resolv.conf" < /etc/resolv.conf
184chr "cat > /etc/mtab" < /dev/null
4f8777fa 185chr "mkdir -p /spools/ready/" < /dev/null
8e75c308 186chr "mkdir -p /spools/poldek/" < /dev/null
cbe88683 187
465b0f80 188
abf36701
MM
189case $chroot_type in
190 src )
cbe88683
MM
191 install_SPECS_builder
192 ;;
abf36701 193 bin )
465b0f80
MM
194 install_build_tree
195 ;;
cbe88683 196esac
This page took 0.053844 seconds and 4 git commands to generate.