9 USAGE: $0 name1=val2 name2=val2 ...
12 chroot_type=src or chroot_type=bin (required)
13 chroot_dir=/path/to/chroot (required)
15 git_server=git://<host>/<project> (required in src builder)
16 git_user=<name> (required in src builder)
17 builder_uid=2000 (optional, uid of builder user
18 in chroot; defaults to current uid)
24 builder_pkgs="rpm-build poldek pwdutils net-tools which rpm-perlprov rpm-php-pearprov rpm-pythonprov bash vim"
26 dist_url="ftp://ftp.$DIST.pld-linux.org"
28 case "$chroot_type" in
30 builder_arch_pkgs="wget gawk git-core"
33 builder_arch_pkgs="mount"
39 test "$chroot_dir" || die "no chroot_dir"
40 test "$arch" || die "no arch"
41 test "$dist_url" || die "no dist_url"
43 case "$chroot_type" in
45 test "$git_server" || die "no git_server"
46 test "$git_user" || die "no git_user"
51 die "evil chroot_type: $chroot_type"
70 path=$dist_url/dists/$DIST/PLD/$arch/RPMS/
76 path=$dist_url/dists/$DIST/PLD/noarch/RPMS/
82 common_poldek_opt () {
87 rpmdef = _excludedocs 1
92 sudo chroot $chroot_dir su - root -c "$*"
96 sudo chroot $chroot_dir su - builder -c "$*"
99 install_SPECS_builder () {
100 chr "mknod /dev/random -m 644 c 1 8"
101 chr "mknod /dev/urandom -m 644 c 1 9"
102 cat >install-specs <<EOF
107 git clone $git_server/rpm-build-tools rpm-build-tools
108 ./rpm-build-tools/builder.sh --init-rpm-dir
109 echo "%packager PLD bug tracking system ( http://bugs.pld-linux.org/ )">~/.rpmmacros
110 echo "%vendor PLD">>~/.rpmmacros
111 echo "%distribution $DISTTAG">>~/.rpmmacros
112 git config --global user.name $git_user
113 git config --global user.email ${git_user}@pld-linux.org
115 chb "sh" < install-specs
117 echo "WARNING: Do not forget to install ssh keys to access git repo"
120 install_build_tree () {
121 cat >install-bt <<EOF
126 mkdir SPECS SOURCES SRPMS RPMS BUILD
127 echo "%packager PLD bug tracking system ( http://bugs.pld-linux.org/ )">~/.rpmmacros
128 echo "%vendor PLD">>~/.rpmmacros
129 echo "%distribution $DISTTAG">>~/.rpmmacros
131 chb "sh" < install-bt
147 cat >poldek.conf <<EOF
150 cachedir = $chroot_dir/spools/poldek
154 cat > install-$chroot_name.sh <<EOF
159 mkdir -p $chroot_dir/spools/poldek
160 mkdir $chroot_dir/dev
161 mknod $chroot_dir/dev/null -m 666 c 1 3
162 rpm --root $chroot_dir --initdb
163 poldek --conf poldek.conf --root $chroot_dir --ask -i\
164 $builder_pkgs $builder_arch_pkgs
166 chmod 755 install-$chroot_name.sh
168 echo "About to remove '$chroot_dir' and install it again, using"
169 echo "install-$chroot_name.sh:"
171 cat install-$chroot_name.sh
175 r) the script was already ran; continue,
176 s) run it using sudo,
185 sudo ./install-$chroot_name.sh
195 echo "installing conf..."
196 cat >poldek.conf <<EOF
199 cachedir = /spools/poldek
203 chr "useradd -u "$builder_uid" -c 'PLD $chroot_name builder' -d /home/users/builder -m -g users -s /bin/sh builder"
204 chr "cat > /etc/resolv.conf" < /etc/resolv.conf
205 chr "cat > /etc/mtab" < /dev/null
206 chr "mkdir -p /spools/ready/" < /dev/null
207 chr "mkdir -p /spools/poldek/" < /dev/null
208 chr "sed -e 's,^\(root:.*\)/bin/sh$,\1/bin/bash,' -i~ /etc/passwd"
213 install_SPECS_builder