contrib/packaging/dockerrpm
author Martin von Zweigbergk <martinvonz@google.com>
Fri, 01 Feb 2019 22:52:09 -0800
changeset 41577 5f827e9ce870
parent 41234 4c0d4bbdc395
child 43355 433cdcb37321
permissions -rwxr-xr-x
status: if ui.relative-paths=no, don't use relative paths even with patterns Without ui.relative-paths or command.status.relative set, you get this behavior: hgext$ hg st M hgext/narrow/narrowrepo.py hgext$ hg st . M narrow/narrowrepo.py hgext$ hg st narrow M narrow/narrowrepo.py I think it's surprising that some of those produce relative paths. I suspect it works that way because "hg st ." was an easy way of getting relative paths. Perhaps not much thought was given to how it should behave when the pattern was not ".". It also feels wrong to conflate the request for relative patterns with matching of of patterns. Since we can now start fresh and define the behavior of ui.relative-paths as we want, I suggest we make ui.relative-paths=no consistently not give relative paths. So that's what this paths starts doing for `hg status`. Differential Revision: https://phab.mercurial-scm.org/D5802
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
22438
f5abb231b80a dockerrpm: check that docker is running correctly before building
Mads Kiilerich <madski@unity3d.com>
parents: 21642
diff changeset
     1
#!/bin/bash -e
21255
62a2749895e4 build: initial support for in-tree autobuilding recipes
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     2
62a2749895e4 build: initial support for in-tree autobuilding recipes
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     3
BUILDDIR=$(dirname $0)
38004
1868db0d1515 packaging: move some docker scripts into contrib/packaging/
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33597
diff changeset
     4
export ROOTDIR=$(cd $BUILDDIR/../..; pwd)
21255
62a2749895e4 build: initial support for in-tree autobuilding recipes
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     5
22439
d2a00ced3cce dockerrpm: better handling of specification of docker name
Mads Kiilerich <madski@unity3d.com>
parents: 22438
diff changeset
     6
PLATFORM="$1"
22443
d8818616c45e docker: add CentOS 5
Mads Kiilerich <madski@unity3d.com>
parents: 22441
diff changeset
     7
shift # extra params are passed to buildrpm
22439
d2a00ced3cce dockerrpm: better handling of specification of docker name
Mads Kiilerich <madski@unity3d.com>
parents: 22438
diff changeset
     8
38458
e5916f1236f3 packaging: replace dockerlib.sh with a Python script
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38457
diff changeset
     9
DOCKER=$($BUILDDIR/hg-docker docker-path)
e5916f1236f3 packaging: replace dockerlib.sh with a Python script
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38457
diff changeset
    10
e5916f1236f3 packaging: replace dockerlib.sh with a Python script
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38457
diff changeset
    11
CONTAINER=hg-docker-$PLATFORM
e5916f1236f3 packaging: replace dockerlib.sh with a Python script
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38457
diff changeset
    12
41234
4c0d4bbdc395 packaging: allow running packaging with custom uid+gid for CentOS
Mathias De Mare <mathias.de_mare@nokia.com>
parents: 38458
diff changeset
    13
if [[ -z "${HG_DOCKER_OWN_USER}" ]]; then
4c0d4bbdc395 packaging: allow running packaging with custom uid+gid for CentOS
Mathias De Mare <mathias.de_mare@nokia.com>
parents: 38458
diff changeset
    14
    DOCKERUID=1000
4c0d4bbdc395 packaging: allow running packaging with custom uid+gid for CentOS
Mathias De Mare <mathias.de_mare@nokia.com>
parents: 38458
diff changeset
    15
    DOCKERGID=1000
4c0d4bbdc395 packaging: allow running packaging with custom uid+gid for CentOS
Mathias De Mare <mathias.de_mare@nokia.com>
parents: 38458
diff changeset
    16
else
4c0d4bbdc395 packaging: allow running packaging with custom uid+gid for CentOS
Mathias De Mare <mathias.de_mare@nokia.com>
parents: 38458
diff changeset
    17
    DOCKERUID=$(id -u)
4c0d4bbdc395 packaging: allow running packaging with custom uid+gid for CentOS
Mathias De Mare <mathias.de_mare@nokia.com>
parents: 38458
diff changeset
    18
    DOCKERGID=$(id -g)
4c0d4bbdc395 packaging: allow running packaging with custom uid+gid for CentOS
Mathias De Mare <mathias.de_mare@nokia.com>
parents: 38458
diff changeset
    19
fi
4c0d4bbdc395 packaging: allow running packaging with custom uid+gid for CentOS
Mathias De Mare <mathias.de_mare@nokia.com>
parents: 38458
diff changeset
    20
4c0d4bbdc395 packaging: allow running packaging with custom uid+gid for CentOS
Mathias De Mare <mathias.de_mare@nokia.com>
parents: 38458
diff changeset
    21
$BUILDDIR/hg-docker build --build-arg UID=$DOCKERUID --build-arg GID=$DOCKERGID $BUILDDIR/docker/$PLATFORM $CONTAINER
22440
cf7b5c011737 dockerrpm: run docker build process as the current user, not as root
Mads Kiilerich <madski@unity3d.com>
parents: 22439
diff changeset
    22
22441
bb9a06d14857 dockerrpm: prepare source outside docker and just run rpmbuild inside docker
Mads Kiilerich <madski@unity3d.com>
parents: 22440
diff changeset
    23
RPMBUILDDIR=$ROOTDIR/packages/$PLATFORM
38013
917f635b5c6a packaging: make packaging scripts less reliant on pwd
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38008
diff changeset
    24
$ROOTDIR/contrib/packaging/buildrpm --rpmbuilddir $RPMBUILDDIR --prepare $*
22441
bb9a06d14857 dockerrpm: prepare source outside docker and just run rpmbuild inside docker
Mads Kiilerich <madski@unity3d.com>
parents: 22440
diff changeset
    25
bb9a06d14857 dockerrpm: prepare source outside docker and just run rpmbuild inside docker
Mads Kiilerich <madski@unity3d.com>
parents: 22440
diff changeset
    26
DSHARED=/mnt/shared
38457
11eda1f1b6e7 packaging: consistently create build user in Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38013
diff changeset
    27
DBUILDUSER=build
11eda1f1b6e7 packaging: consistently create build user in Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38013
diff changeset
    28
33597
a3ac1ea611ce docker: pass proxy arguments to docker process
Mathias De Maré <mathias.de_mare@nokia.com>
parents: 27788
diff changeset
    29
$DOCKER run -e http_proxy -e https_proxy -u $DBUILDUSER --rm -v $RPMBUILDDIR:$DSHARED $CONTAINER \
22441
bb9a06d14857 dockerrpm: prepare source outside docker and just run rpmbuild inside docker
Mads Kiilerich <madski@unity3d.com>
parents: 22440
diff changeset
    30
    rpmbuild --define "_topdir $DSHARED" -ba $DSHARED/SPECS/mercurial.spec --clean
22444
49ea49823769 dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents: 22443
diff changeset
    31
33597
a3ac1ea611ce docker: pass proxy arguments to docker process
Mathias De Maré <mathias.de_mare@nokia.com>
parents: 27788
diff changeset
    32
$DOCKER run -e http_proxy -e https_proxy -u $DBUILDUSER --rm -v $RPMBUILDDIR:$DSHARED $CONTAINER \
22444
49ea49823769 dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents: 22443
diff changeset
    33
    createrepo $DSHARED
49ea49823769 dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents: 22443
diff changeset
    34
49ea49823769 dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents: 22443
diff changeset
    35
cat << EOF > $RPMBUILDDIR/mercurial.repo
49ea49823769 dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents: 22443
diff changeset
    36
# Place this file in /etc/yum.repos.d/mercurial.repo
49ea49823769 dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents: 22443
diff changeset
    37
[mercurial]
23124
4c490626af13 buildrpm: fix use of invalid $PLATFORM in mercurial.repo
Mads Kiilerich <madski@unity3d.com>
parents: 22444
diff changeset
    38
name=Mercurial packages for $PLATFORM
22444
49ea49823769 dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents: 22443
diff changeset
    39
# baseurl=file://$RPMBUILDDIR/
23124
4c490626af13 buildrpm: fix use of invalid $PLATFORM in mercurial.repo
Mads Kiilerich <madski@unity3d.com>
parents: 22444
diff changeset
    40
baseurl=http://hg.example.com/build/$PLATFORM/
22444
49ea49823769 dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents: 22443
diff changeset
    41
skip_if_unavailable=True
49ea49823769 dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents: 22443
diff changeset
    42
gpgcheck=0
49ea49823769 dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents: 22443
diff changeset
    43
enabled=1
49ea49823769 dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents: 22443
diff changeset
    44
EOF
49ea49823769 dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents: 22443
diff changeset
    45
49ea49823769 dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents: 22443
diff changeset
    46
echo
49ea49823769 dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents: 22443
diff changeset
    47
echo "Build complete - results can be found in $RPMBUILDDIR"