2014-05-30 16:14:33 +04:00
#!/bin/bash -e
2014-05-08 02:58:13 +04:00
BUILDDIR=$(dirname $0)
ROOTDIR=$(cd $BUILDDIR/..; pwd)
2014-05-30 16:14:33 +04:00
if which docker.io >> /dev/null 2>&1 ; then
2014-05-08 02:58:13 +04:00
DOCKER=docker.io
2014-05-30 16:14:33 +04:00
elif which docker >> /dev/null 2>&1 ; then
2014-05-30 03:01:39 +04:00
DOCKER=docker
2014-05-30 16:14:33 +04:00
else
echo "Error: docker must be installed"
exit 1
2014-05-08 02:58:13 +04:00
fi
2014-05-30 16:14:33 +04:00
$DOCKER -h 2> /dev/null | grep -q Jansens && { echo "Error: $DOCKER is the Docking System Tray - install docker.io instead"; exit 1; }
$DOCKER version | grep -q "^Client version:" || { echo "Error: unexpected output from \"$DOCKER version\""; exit 1; }
$DOCKER version | grep -q "^Server version:" || { echo "Error: could not get docker server version - check it is running and your permissions"; exit 1; }
2014-05-30 16:14:33 +04:00
PLATFORM="$1"
[ "$PLATFORM" ] || { echo "Error: platform name must be specified"; exit 1; }
2014-05-15 03:48:37 +04:00
shift # extra params are passed to buildrpm
2014-05-30 16:14:33 +04:00
DFILE="$ROOTDIR/contrib/docker/$PLATFORM"
[ -f "$DFILE" ] || { echo "Error: docker file $DFILE not found"; exit 1; }
CONTAINER="hg-dockerrpm-$PLATFORM"
2014-05-30 16:14:33 +04:00
DBUILDUSER=build
(
cat $DFILE
echo RUN groupadd $DBUILDUSER -g `id -g`
echo RUN useradd $DBUILDUSER -u `id -u` -g $DBUILDUSER
) | $DOCKER build --tag $CONTAINER -
2014-05-30 16:14:33 +04:00
RPMBUILDDIR=$ROOTDIR/packages/$PLATFORM
2014-05-15 03:48:37 +04:00
contrib/buildrpm --rpmbuilddir $RPMBUILDDIR --prepare $*
2014-05-30 16:14:33 +04:00
DSHARED=/mnt/shared
$DOCKER run -u $DBUILDUSER --rm -v $RPMBUILDDIR:$DSHARED $CONTAINER \
rpmbuild --define "_topdir $DSHARED" -ba $DSHARED/SPECS/mercurial.spec --clean
2014-08-31 15:41:09 +04:00
$DOCKER run -u $DBUILDUSER --rm -v $RPMBUILDDIR:$DSHARED $CONTAINER \
createrepo $DSHARED
cat << EOF > $RPMBUILDDIR/mercurial.repo
# Place this file in /etc/yum.repos.d/mercurial.repo
[mercurial]
name=Mercurial packages for $NAME
# baseurl=file://$RPMBUILDDIR/
baseurl=http://hg.example.com/build/$NAME/
skip_if_unavailable=True
gpgcheck=0
enabled=1
EOF
echo
echo "Build complete - results can be found in $RPMBUILDDIR"