[PATCH 16 of 22] dockerrpm: prepare source outside docker and just run rpmbuild inside docker

Mads Kiilerich mads at kiilerich.com
Mon May 19 21:10:11 CDT 2014


# HG changeset patch
# User Mads Kiilerich <madski at unity3d.com>
# Date 1400551681 -7200
#      Tue May 20 04:08:01 2014 +0200
# Node ID 9bb7bfeec498683597b167d0aa55422f1c36fc8a
# Parent  faa57fbb78d29a730fa2764fec50211dfc70c5b4
dockerrpm: prepare source outside docker and just run rpmbuild inside docker

Simplifies the rpm build process.

We will use platform specific rpmbuild directories and will not clean them and
will drop the explicit copy to build directory.

diff --git a/contrib/dockerrpm b/contrib/dockerrpm
--- a/contrib/dockerrpm
+++ b/contrib/dockerrpm
@@ -27,5 +27,10 @@ cat $DFILE
 echo RUN groupadd $DBUILDUSER -g `id -g`
 echo RUN useradd $DBUILDUSER -u `id -u` -g $DBUILDUSER
 ) | $DOCKER build --tag $CONTAINER -
-$DOCKER run -u $DBUILDUSER --rm -v $ROOTDIR:/hg $CONTAINER bash -c \
-    "cp -a hg hg-build; cd hg-build; make clean local $1; cp build/$1/* /hg/build/$1/"
+
+RPMBUILD=$ROOTDIR/build/$1
+contrib/buildrpm --rpmbuilddir $RPMBUILD --prepare
+
+DSHARED=/mnt/shared
+$DOCKER run -u $DBUILDUSER --rm -v $RPMBUILD:$DSHARED $CONTAINER \
+    rpmbuild --define "_topdir $DSHARED" -ba $DSHARED/SPECS/mercurial.spec --clean


More information about the Mercurial-devel mailing list