summaryrefslogblamecommitdiff
path: root/build
blob: 62ba7a161c98112830cb4aff84399f308bda4979 (plain) (tree)
1
2
3
4
5
6
7
8
9
10



                                                                      
                                                                




                                             
                                                 

 



                                                               

                      


                                                             
































                                                                                      










                                                                            
 
 






                                                           
                                   









                                                                                  
#!/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

# stretch needs --only-source (at least for rkward source packages), jessie 
# does not know this argument
if [ $DIST == "jessie" ]; then
  apt-get build-dep $pkg
  apt-get source $pkg
fi
if [ $DIST == "stretch" ]; then
  apt --only-source build-dep $pkg
  apt --only-source source $pkg
fi


# Move sources to $DIST directory to enable parallel builds
mkdir -p $DIST
mv $pkg\_* $DIST
mv $pkg-* $DIST

cd $DIST/$pkg-*

debuild --no-lintian -ui -uc -us -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

Contact - Imprint