view contrib/packaging/dockerrpm @ 45983:97205cf0ee4d

packaging: don't use plain 'python' if another python has been specified Before this change, packaging on CentOS 8 failed because 'python' is used instead of 'python3'. Change was tested with: - make docker-centos7 - make docker-centos8 - make docker-ubuntu-bionic Differential Revision: https://phab.mercurial-scm.org/D9464
author Mathias De Mare <mathias.de_mare@nokia.com>
date Mon, 30 Nov 2020 10:18:36 +0100
parents e66a3bfcb19b
children 4713bcf78037
line wrap: on
line source

#!/bin/bash -e

BUILDDIR=$(dirname $0)
export ROOTDIR=$(cd $BUILDDIR/../..; pwd)

PLATFORM="$1"
shift # extra params are passed to buildrpm

DOCKERFILE="$PLATFORM"
OS_RELEASE="${PLATFORM//[a-z]/}"
case "$PLATFORM" in
fedora*)
    DOCKERFILE="${PLATFORM//[0-9]/}.template"
    ;;
esac

DOCKER=$($BUILDDIR/hg-docker docker-path)

CONTAINER=hg-docker-$PLATFORM

if [[ -z "${HG_DOCKER_OWN_USER}" ]]; then
    DOCKERUID=1000
    DOCKERGID=1000
else
    DOCKERUID=$(id -u)
    DOCKERGID=$(id -g)
fi

$BUILDDIR/hg-docker build \
    --build-arg UID=$DOCKERUID \
    --build-arg GID=$DOCKERGID \
    --build-arg OS_RELEASE=${OS_RELEASE:-latest} \
    $BUILDDIR/docker/$DOCKERFILE $CONTAINER

RPMBUILDDIR=$ROOTDIR/packages/$PLATFORM
mkdir -p $RPMBUILDDIR
$ROOTDIR/contrib/packaging/buildrpm --rpmbuilddir $RPMBUILDDIR --prepare $*

DSHARED=/mnt/shared
DBUILDUSER=build

$DOCKER run -e http_proxy -e https_proxy -u $DBUILDUSER --rm -v $RPMBUILDDIR:$DSHARED $CONTAINER \
    rpmbuild --define "_topdir $DSHARED" -ba $DSHARED/SPECS/mercurial.spec --clean

$DOCKER run -e http_proxy -e https_proxy -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 $PLATFORM
# baseurl=file://$RPMBUILDDIR/
baseurl=http://hg.example.com/build/$PLATFORM/
skip_if_unavailable=True
gpgcheck=0
enabled=1
EOF

echo
echo "Build complete - results can be found in $RPMBUILDDIR"