+++ /dev/null
-#!/bin/sh
-
-DIST="th"
-DISTTAG="PLD 3.0 (Th)"
-
-die () {
- echo "$0: $*" 1>&2
- cat 1>&2 <<EOF
-USAGE: $0 name1=val2 name2=val2 ...
-
-Variables:
- chroot_type=src or chroot_type=bin (required)
- chroot_dir=/path/to/chroot (required)
- arch=i386 (required)
- git_server=git://<host>/<project> (required in src builder)
- git_user=<name> (required in src builder)
- builder_uid=2000 (optional, uid of builder user
- in chroot; defaults to current uid)
-EOF
- exit 1
-}
-
-default_config () {
- builder_pkgs="rpm-build poldek pwdutils net-tools which rpm-perlprov rpm-php-pearprov rpm-pythonprov bash vim"
- builder_uid=`id -u`
- dist_url="ftp://ftp.$DIST.pld-linux.org"
-
- case "$chroot_type" in
- src )
- builder_arch_pkgs="wget gawk git-core"
- ;;
- bin )
- builder_arch_pkgs="mount"
- ;;
- esac
-}
-
-check_conf () {
- test "$chroot_dir" || die "no chroot_dir"
- test "$arch" || die "no arch"
- test "$dist_url" || die "no dist_url"
-
- case "$chroot_type" in
- src )
- test "$git_server" || die "no git_server"
- test "$git_user" || die "no git_user"
- ;;
- bin )
- ;;
- * )
- die "evil chroot_type: $chroot_type"
- ;;
- esac
-}
-
-poldek_src () {
- if test "$1" ; then
- cat <<EOF
-[source]
-name=local
-type=pndir
-path=/spools/ready
-pri=1
-EOF
- fi
- cat <<EOF
-[source]
-name=main
-type=pndir
-path=$dist_url/dists/$DIST/PLD/$arch/RPMS/
-pri=6
-
-[source]
-name=main
-type=pndir
-path=$dist_url/dists/$DIST/PLD/noarch/RPMS/
-pri=6
-
-EOF
-}
-
-common_poldek_opt () {
- cat <<EOF
-[global]
-particle_install = no
-greedy = yes
-rpmdef = _excludedocs 1
-EOF
-}
-
-chr() {
- sudo chroot $chroot_dir su - root -c "$*"
-}
-
-chb() {
- sudo chroot $chroot_dir su - builder -c "$*"
-}
-
-install_SPECS_builder () {
- chr "mknod /dev/random -m 644 c 1 8"
- chr "mknod /dev/urandom -m 644 c 1 9"
- cat >install-specs <<EOF
-set -x
-rm -rf rpm
-mkdir rpm
-cd rpm
-git clone $git_server/rpm-build-tools rpm-build-tools
-./rpm-build-tools/builder.sh --init-rpm-dir
-echo "%packager PLD bug tracking system ( http://bugs.pld-linux.org/ )">~/.rpmmacros
-echo "%vendor PLD">>~/.rpmmacros
-echo "%distribution $DISTTAG">>~/.rpmmacros
-git config --global user.name $git_user
-git config --global user.email ${git_user}@pld-linux.org
-EOF
- chb "sh" < install-specs
- rm install-specs
- echo "WARNING: Do not forget to install ssh keys to access git repo"
-}
-
-install_build_tree () {
- cat >install-bt <<EOF
-set -x
-rm -rf rpm
-mkdir rpm
-cd rpm
-mkdir SPECS SOURCES SRPMS RPMS BUILD
-echo "%packager PLD bug tracking system ( http://bugs.pld-linux.org/ )">~/.rpmmacros
-echo "%vendor PLD">>~/.rpmmacros
-echo "%distribution $DISTTAG">>~/.rpmmacros
-EOF
- chb "sh" < install-bt
- rm install-bt
-}
-
-
-
-
-eval "$*" || usage
-default_config
-eval "$*"
-check_conf
-
-rm -rf tmp-chroot
-mkdir tmp-chroot
-cd tmp-chroot
-
-cat >poldek.conf <<EOF
-$(poldek_src)
-$(common_poldek_opt)
-cachedir = $chroot_dir/spools/poldek
-keep_downloads = no
-EOF
-
-cat > install-$chroot_name.sh <<EOF
-#!/bin/sh
-set -x
-cd $PWD
-rm -rf $chroot_dir
-mkdir -p $chroot_dir/spools/poldek
-mkdir $chroot_dir/dev
-mknod $chroot_dir/dev/null -m 666 c 1 3
-rpm --root $chroot_dir --initdb
-poldek --conf poldek.conf --root $chroot_dir -i\
- $builder_pkgs $builder_arch_pkgs
-EOF
-chmod 755 install-$chroot_name.sh
-
-echo "About to remove '$chroot_dir' and install it again, using"
-echo "install-$chroot_name.sh:"
-echo
-cat install-$chroot_name.sh
-echo
-cat <<EOF
-what to do?
- r) the script was already ran; continue,
- s) run it using sudo,
- a) abort"
-EOF
-echo -n "[r/s/a]: "
-read ans
-case "$ans" in
- r )
- ;;
- s )
- sudo ./install-$chroot_name.sh
- ;;
- * )
- echo "bye"
- exit 1
-esac
-
-chr "ldconfig"
-
-echo "OK"
-echo "installing conf..."
-cat >poldek.conf <<EOF
-$(poldek_src local)
-$(common_poldek_opt)
-cachedir = /spools/poldek
-keep_downloads = no
-EOF
-
-chr "useradd -u "$builder_uid" -c 'PLD $chroot_name builder' -d /home/users/builder -m -g users -s /bin/sh builder"
-chr "cat > /etc/resolv.conf" < /etc/resolv.conf
-chr "cat > /etc/mtab" < /dev/null
-chr "mkdir -p /spools/ready/" < /dev/null
-chr "mkdir -p /spools/poldek/" < /dev/null
-chr "sed -e 's,^\(root:.*\)/bin/sh$,\1/bin/bash,' -i~ /etc/passwd"
-
-
-case $chroot_type in
- src )
- install_SPECS_builder
- ;;
- bin )
- install_build_tree
- ;;
-esac