summaryrefslogtreecommitdiff
path: root/tools/build-release.sh
diff options
context:
space:
mode:
authorAndoni Morales Alastruey <ylatuya@gmail.com>2012-11-14 17:33:32 +0100
committerAndoni Morales Alastruey <ylatuya@gmail.com>2012-11-14 17:33:32 +0100
commit687bea1ead80280cadff68c46936654f9ad2e771 (patch)
tree9001b185328a6de76633674c60fcfbf860739724 /tools/build-release.sh
parent337cfdd44bbe460ad3806c8c76ce10661d42645b (diff)
Add a new tool to build release for other distros
Diffstat (limited to 'tools/build-release.sh')
-rw-r--r--tools/build-release.sh81
1 files changed, 81 insertions, 0 deletions
diff --git a/tools/build-release.sh b/tools/build-release.sh
new file mode 100644
index 00000000..d5a83c20
--- /dev/null
+++ b/tools/build-release.sh
@@ -0,0 +1,81 @@
+#!/bin/sh
+# usage:
+# $ sudo sh tools/build-release.sh ~/cerbero/roots redhat fedora 16 x86_64 username
+# $ sudo sh tools/build-release.sh ~/cerbero/roots debian debian squeeze i386 username
+set -e
+
+CHROOT_PREFIX=$1
+DISTRO_FAMILY=$2
+DISTRO=$3
+DISTRO_VERSION=$4
+ARCH=$5
+USER=$6
+
+CHROOT_PATH=$CHROOT_PREFIX/$DISTRO-$DISTRO_VERSION-$ARCH
+BASEDIR=$(dirname $0)
+
+die() {
+ echo "ERROR: $@"
+ exit 1
+}
+
+sh $BASEDIR/bootstrap-$DISTRO_FAMILY.sh $CHROOT_PREFIX $DISTRO $DISTRO_VERSION $ARCH $USER
+
+cerbero_distro=`echo $DISTRO_FAMILY | awk '{print toupper($0)}'`
+cerbero_distro_version=`echo "$DISTRO"_"$DISTRO_VERSION" | awk '{print toupper($0)}'`
+
+cp /etc/resolv.conf $CHROOT_PATH/etc/resolv.conf
+cp /etc/hosts $CHROOT_PATH/etc/hosts
+hostname=$USER-$DISTRO-$DISTRO_VERSION-$ARCH-chroot
+# hostnames cannot contain _
+hostname=$(echo $hostname | sed s/'_'/'-'/g)
+#echo $hostname > $CHROOT_PATH/etc/hostname
+#chroot $CHROOT_PATH hostname $hostname
+echo $hostname > $CHROOT_PATH/etc/debian_chroot
+
+userid=$(grep $USER /etc/passwd | cut -d: -f3)
+echo "$USER:x:$userid:$userid:$USER,,,:/home/$USER:/bin/bash" >> $CHROOT_PATH/etc/passwd
+echo "$USER::15460::::::" >> $CHROOT_PATH/etc/shadow
+echo "$USER:x:$userid:" >> $CHROOT_PATH/etc/group
+echo "$USER ALL=NOPASSWD: ALL" >> $CHROOT_PATH/etc/sudoers
+
+echo "copying user git/ssh/gpg configurations"
+mkdir -p $CHROOT_PATH/home/$USER
+
+cp -f /home/$USER/.gitconfig $CHROOT_PATH/home/$USER/
+cp -rf /home/$USER/.ssh $CHROOT_PATH/home/$USER/
+chmod -R 700 $CHROOT_PATH/home/$USER/.ssh/
+cp -rf /home/$USER/.gnupg $CHROOT_PATH/home/$USER/
+chmod -R 700 $CHROOT_PATH/home/$USER/.gnupg/
+
+echo "copying vim configuration files and installing/setting vim as default editor"
+cp -f /home/$USER/.vimrc $CHROOT_PATH/home/$USER/
+cp -rf /home/$USER/.vim $CHROOT_PATH/home/$USER/
+
+echo "generating cerbero tarball"
+make dist-tarball
+echo "extracting tarball at $CHROOT_PATH/home/$USER/git"
+mkdir -p $CHROOT_PATH/home/$USER/git
+tar --bzip2 -xvf dist/cerbero-0.1.0.tar.bz2 -C $CHROOT_PATH/home/$USER/git/
+cp -rf .git $CHROOT_PATH/home/$USER/git/cerbero-0.1.0/
+
+echo "generating $CHROOT_PATH/home/$USER/.cerbero/cerbero.cdc from template"
+mkdir -p $CHROOT_PATH/home/$USER/.cerbero
+cp -f tools/cerbero.cbc.template $CHROOT_PATH/home/$USER/.cerbero/cerbero.cbc
+echo "distro = Distro.$cerbero_distro" >> $CHROOT_PATH/home/$USER/.cerbero/cerbero.cbc
+echo "distro_version = DistroVersion.$cerbero_distro_version" >> $CHROOT_PATH/home/$USER/.cerbero/cerbero.cbc
+sudo mkdir -p $CHROOT_PATH/opt/gstreamer-sdk
+
+echo "fixing permissions"
+chown -R $USER:$USER $CHROOT_PATH/home/$USER
+chown -R $USER:$USER $CHROOT_PATH/opt/gstreamer-sdk
+
+echo "mounting /proc and /sys"
+mount -o bind /proc $CHROOT_PATH/proc
+mount -o bind /sys $CHROOT_PATH/sys
+
+echo "chroot created"
+
+echo "starting the build"
+echo "cd ~/git/cerbero-0.1.0 && ./cerbero-uninstalled bootstrap && ./cerbero-uninstalled package gstreamer-sdk" > $CHROOT_PATH/home/$USER/run_package
+chroot $CHROOT_PATH su $USER /home/$USER/run_package