blob: ee53ec83af70ac0441a449f4aaecc49a586f3469 (
plain) (
tree)
|
|
#!/bin/bash
# Script to facilitate building r-base binaries for CRAN in a chroot
# Matching CRAN sources must be in /etc/apt/sources.list of the chroot
# TBD: Check if the build already exists in the local repository
usage()
{
echo "Usage: ./build [options] sourcepackage"
echo "Options:"
echo " -s, --skip Skip apt-get update/upgrade"
}
command -v lsb_release >/dev/null 2>&1 || {
echo "Could not find lsb_release. Please install lsb-release"
exit 1
}
DIST=`lsb_release -cs`
# URL of the local CRAN repo for checking for existing builds
localcran="http://tux/r-cran/$DIST-cran34/"
skip=false
while test -n "${1}"; do
case "$1" in
-s | --skip)
skip=true
shift
;;
-*)
echo "Error: Unknown option: $1" >&2
usage
exit 1
;;
*) # No more options
break
;;
esac
done
# Positional argument
if [ $# -lt 1 ]; then usage; exit 1; fi
pkg=$1
if ls $pkg-* 1> /dev/null 2>&1
then
echo "Please check if sources from previous backport or build need to be cleaned up"
exit 1
fi
if [ "$skip" = false ]
then
apt-get update
apt-get upgrade
fi
apt --only-source build-dep $pkg
apt --only-source source $pkg
# Move sources to $DIST directory to enable parallel builds
mkdir -p $DIST
mv $pkg\_* $DIST
mv $pkg-* $DIST
cd $DIST/$pkg-*
dpkg-buildpackage -B
cd ../..
keep=false # We do not want to keep local sources for binary builds
# Clean sources from $DIST directory
if [ "$keep" = false ]
then
rm -f $DIST/$pkg\_*.{dsc,changes,diff.gz,tgz,tar.gz,tar.xz}
#rm -rf $DIST/$pkg-* # This removes e.g. r-base-core* debs which is not intended
fi
|