contrib/dockerdeb
author Jun Wu <quark@fb.com>
Sun, 10 Apr 2016 03:14:32 +0100
changeset 28854 ddef14468952
parent 27210 9b86d29867a5
child 28987 023f47c5ce79
permissions -rwxr-xr-x
chg: add fchdirx as a utility function As part of the series to support long socket paths, we need to use fchdir and check its result in several places. Make it a utility function.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
24973
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
     1
#!/bin/bash -eu
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
     2
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
     3
. $(dirname $0)/dockerlib.sh
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
     4
. $(dirname $0)/packagelib.sh
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
     5
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
     6
BUILDDIR=$(dirname $0)
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
     7
export ROOTDIR=$(cd $BUILDDIR/..; pwd)
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
     8
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
     9
checkdocker
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    10
27210
9b86d29867a5 builddeb: add --distid option to specify Distributor ID
Anton Shestakov <av6@dwimlabs.net>
parents: 27209
diff changeset
    11
DISTID="$1"
9b86d29867a5 builddeb: add --distid option to specify Distributor ID
Anton Shestakov <av6@dwimlabs.net>
parents: 27209
diff changeset
    12
CODENAME="$2"
9b86d29867a5 builddeb: add --distid option to specify Distributor ID
Anton Shestakov <av6@dwimlabs.net>
parents: 27209
diff changeset
    13
PLATFORM="$1-$2"
24973
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    14
shift # extra params are passed to build process
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    15
26148
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26108
diff changeset
    16
OUTPUTDIR=${OUTPUTDIR:=$ROOTDIR/packages/$PLATFORM}
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26108
diff changeset
    17
24973
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    18
initcontainer $PLATFORM
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    19
26148
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26108
diff changeset
    20
# debuild only appears to be able to save built debs etc to .., so we
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26108
diff changeset
    21
# have to share the .. of the current directory with the docker
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26108
diff changeset
    22
# container and hope it's writable. Whee.
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26108
diff changeset
    23
dn=$(basename $PWD)
24973
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    24
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    25
if [ $(uname) = "Darwin" ] ; then
26148
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26108
diff changeset
    26
    $DOCKER run -u $DBUILDUSER --rm -v $PWD/..:/mnt $CONTAINER \
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26108
diff changeset
    27
            sh -c "cd /mnt/$dn && make clean && make local"
24973
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    28
fi
26148
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26108
diff changeset
    29
$DOCKER run -u $DBUILDUSER --rm -v $PWD/..:/mnt $CONTAINER \
27210
9b86d29867a5 builddeb: add --distid option to specify Distributor ID
Anton Shestakov <av6@dwimlabs.net>
parents: 27209
diff changeset
    30
  sh -c "cd /mnt/$dn && DEB_BUILD_OPTIONS='${DEB_BUILD_OPTIONS:=}' contrib/builddeb --build --distid $DISTID --codename $CODENAME"
9b86d29867a5 builddeb: add --distid option to specify Distributor ID
Anton Shestakov <av6@dwimlabs.net>
parents: 27209
diff changeset
    31
contrib/builddeb --cleanup --distid $DISTID --codename $CODENAME
24973
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    32
if [ $(uname) = "Darwin" ] ; then
26148
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26108
diff changeset
    33
    $DOCKER run -u $DBUILDUSER --rm -v $PWD/..:/mnt $CONTAINER \
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26108
diff changeset
    34
            sh -c "cd /mnt/$dn && make clean"
24973
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    35
fi