##// END OF EJS Templates
packaging: don't write files for templatized Dockerfiles...
Gregory Szorc -
r38477:c8ef9d89 default
parent child Browse files
Show More
@@ -1,70 +1,68 b''
1 1 syntax: glob
2 2
3 3 *.elc
4 4 *.tmp
5 5 *.orig
6 6 *.rej
7 7 *~
8 8 *.mergebackup
9 9 *.o
10 10 *.so
11 11 *.dll
12 12 *.exe
13 13 *.pyd
14 14 *.pyc
15 15 *.pyo
16 16 *$py.class
17 17 *.swp
18 18 *.prof
19 19 *.zip
20 20 \#*\#
21 21 .\#*
22 22 tests/.coverage*
23 23 tests/.testtimes*
24 24 tests/.hypothesis
25 25 tests/hypothesis-generated
26 26 tests/annotated
27 27 tests/exceptions
28 28 tests/*.err
29 29 tests/htmlcov
30 30 build
31 31 contrib/chg/chg
32 32 contrib/hgsh/hgsh
33 33 contrib/vagrant/.vagrant
34 contrib/packaging/docker/debian-*
35 contrib/packaging/docker/ubuntu-*
36 34 dist
37 35 packages
38 36 doc/common.txt
39 37 doc/*.[0-9]
40 38 doc/*.[0-9].txt
41 39 doc/*.[0-9].gendoc.txt
42 40 doc/*.[0-9].{x,ht}ml
43 41 MANIFEST
44 42 MANIFEST.in
45 43 patches
46 44 mercurial/__modulepolicy__.py
47 45 mercurial/__version__.py
48 46 mercurial/hgpythonlib.h
49 47 mercurial.egg-info
50 48 .DS_Store
51 49 tags
52 50 cscope.*
53 51 .idea/*
54 52 .asv/*
55 53 i18n/hg.pot
56 54 locale/*/LC_MESSAGES/hg.mo
57 55 hgext/__index__.py
58 56
59 57 rust/target/
60 58
61 59 # Generated wheels
62 60 wheelhouse/
63 61
64 62 syntax: regexp
65 63 ^\.pc/
66 64 ^\.(pydev)?project
67 65
68 66 # hackable windows distribution additions
69 67 ^hg-python
70 68 ^hg.py$
@@ -1,167 +1,161 b''
1 1 $(eval HGROOT := $(shell cd ../..; pwd))
2 2
3 3 help:
4 4 @echo 'Packaging Make Targets'
5 5 @echo ''
6 6 @echo 'docker-centos-{5, 6, 7}'
7 7 @echo ' Build an RPM for a specific CentOS version using Docker.'
8 8 @echo ''
9 9 @echo 'docker-debian-{jessie, stretch}'
10 10 @echo ' Build Debian packages specific to a Debian distro using Docker.'
11 11 @echo ''
12 12 @echo 'docker-fedora-{20, 21}'
13 13 @echo ' Build an RPM for a specific Fedora version using Docker.'
14 14 @echo ''
15 15 @echo 'docker-ubuntu-{trusty, xenial, artful, bionic}'
16 16 @echo ' Build Debian package specific to an Ubuntu distro using Docker.'
17 17 @echo ''
18 18 @echo 'docker-ubuntu-{trusty, xenial, artful, bionic}-ppa'
19 19 @echo ' Build a source-only Debian package specific to an Ubuntu distro'
20 20 @echo ' using Docker.'
21 21 @echo ''
22 22 @echo 'linux-wheels'
23 23 @echo ' Build Linux manylinux wheels using Docker.'
24 24 @echo ''
25 25 @echo 'linux-wheels-{x86_64, i686}'
26 26 @echo ' Build Linux manylinux wheels for a specific architecture using Docker'
27 27 @echo ''
28 28 @echo 'deb'
29 29 @echo ' Build a Debian package locally targeting the current system'
30 30 @echo ''
31 31 @echo 'ppa'
32 32 @echo ' Build a Debian source package locally targeting the current system'
33 33 @echo ''
34 34 @echo 'centos-{5, 6, 7}'
35 35 @echo ' Build an RPM for a specific CentOS version locally'
36 36 @echo ''
37 37 @echo 'fedora-{20, 21}'
38 38 @echo ' Build an RPM for a specific Fedora version locally'
39 39
40 40 .PHONY: help
41 41
42 42 .PHONY: deb
43 43 deb:
44 44 ./builddeb
45 45
46 46 .PHONY: ppa
47 47 ppa:
48 48 ./builddeb --source-only
49 49
50 docker/debian-%: docker/debian.template
51 sed "s/__CODENAME__/$*/" $< > $@
52
53 50 .PHONY: docker-debian-jessie
54 docker-debian-jessie: docker/debian-jessie
51 docker-debian-jessie:
55 52 ./dockerdeb debian jessie
56 53
57 54 .PHONY: docker-debian-stretch
58 docker-debian-stretch: docker/debian-stretch
55 docker-debian-stretch:
59 56 ./dockerdeb debian stretch
60 57
61 docker/ubuntu-%: docker/ubuntu.template
62 sed "s/__CODENAME__/$*/" $< > $@
63
64 58 .PHONY: docker-ubuntu-trusty
65 docker-ubuntu-trusty: docker/ubuntu-trusty
59 docker-ubuntu-trusty:
66 60 ./dockerdeb ubuntu trusty
67 61
68 62 .PHONY: docker-ubuntu-trusty-ppa
69 docker-ubuntu-trusty-ppa: docker/ubuntu-trusty
63 docker-ubuntu-trusty-ppa:
70 64 ./dockerdeb ubuntu trusty --source-only
71 65
72 66 .PHONY: docker-ubuntu-xenial
73 docker-ubuntu-xenial: docker/ubuntu-xenial
67 docker-ubuntu-xenial:
74 68 ./dockerdeb ubuntu xenial
75 69
76 70 .PHONY: docker-ubuntu-xenial-ppa
77 docker-ubuntu-xenial-ppa: docker/ubuntu-xenial
71 docker-ubuntu-xenial-ppa:
78 72 ./dockerdeb ubuntu xenial --source-only
79 73
80 74 .PHONY: docker-ubuntu-artful
81 docker-ubuntu-artful: docker/ubuntu-artful
75 docker-ubuntu-artful:
82 76 ./dockerdeb ubuntu artful
83 77
84 78 .PHONY: docker-ubuntu-artful-ppa
85 docker-ubuntu-artful-ppa: docker/ubuntu-artful
79 docker-ubuntu-artful-ppa:
86 80 ./dockerdeb ubuntu artful --source-only
87 81
88 82 .PHONY: docker-ubuntu-bionic
89 docker-ubuntu-bionic: docker/ubuntu-bionic
83 docker-ubuntu-bionic:
90 84 ./dockerdeb ubuntu bionic
91 85
92 86 .PHONY: docker-ubuntu-bionic-ppa
93 docker-ubuntu-bionic-ppa: docker/ubuntu-bionic
87 docker-ubuntu-bionic-ppa:
94 88 ./dockerdeb ubuntu bionic --source-only
95 89
96 90 .PHONY: fedora20
97 91 fedora20:
98 92 mkdir -p $(HGROOT)/packages/fedora20
99 93 ./buildrpm
100 94 cp $(HGROOT)/rpmbuild/RPMS/*/* $(HGROOT)/packages/fedora20
101 95 cp $(HGROOT)/rpmbuild/SRPMS/* $(HGROOT)/packages/fedora20
102 96 rm -rf $(HGROOT)/rpmbuild
103 97
104 98 .PHONY: docker-fedora20
105 99 docker-fedora20:
106 100 mkdir -p $(HGROOT)/packages/fedora20
107 101 ./dockerrpm fedora20
108 102
109 103 .PHONY: fedora21
110 104 fedora21:
111 105 mkdir -p $(HGROOT)/packages/fedora21
112 106 ./buildrpm
113 107 cp $(HGROOT)/rpmbuild/RPMS/*/* $(HGROOT)/packages/fedora21
114 108 cp $(HGROOT)/rpmbuild/SRPMS/* $(HGROOT)/packages/fedora21
115 109 rm -rf $(HGROOT)/rpmbuild
116 110
117 111 .PHONY: docker-fedora21
118 112 docker-fedora21:
119 113 mkdir -p $(HGROOT)packages/fedora21
120 114 ./dockerrpm fedora21
121 115
122 116 .PHONY: centos5
123 117 centos5:
124 118 mkdir -p $(HGROOT)/packages/centos5
125 119 ./buildrpm --withpython
126 120 cp $(HGROOT)/rpmbuild/RPMS/*/* $(HGROOT)/packages/centos5
127 121 cp $(HGROOT)/rpmbuild/SRPMS/* $(HGROOT)/packages/centos5
128 122
129 123 .PHONY: docker-centos5
130 124 docker-centos5:
131 125 mkdir -p $(HGROOT)/packages/centos5
132 126 ./dockerrpm centos5 --withpython
133 127
134 128 .PHONY: centos6
135 129 centos6:
136 130 mkdir -p $(HGROOT)/packages/centos6
137 131 ./buildrpm --withpython
138 132 cp $(HGROOT)/rpmbuild/RPMS/*/* $(HGROOT)/packages/centos6
139 133 cp $(HGROOT)/rpmbuild/SRPMS/* $(HGROOT)/packages/centos6
140 134
141 135 .PHONY: docker-centos6
142 136 docker-centos6:
143 137 mkdir -p $(HGROOT)/packages/centos6
144 138 ./dockerrpm centos6 --withpython
145 139
146 140 .PHONY: centos7
147 141 centos7:
148 142 mkdir -p $(HGROOT)/packages/centos7
149 143 ./buildrpm
150 144 cp $(HGROOT)/rpmbuild/RPMS/*/* $(HGROOT)/packages/centos7
151 145 cp $(HGROOT)/rpmbuild/SRPMS/* $(HGROOT)/packages/centos7
152 146
153 147 .PHONY: docker-centos7
154 148 docker-centos7:
155 149 mkdir -p $(HGROOT)/packages/centos7
156 150 ./dockerrpm centos7
157 151
158 152 .PHONY: linux-wheels
159 153 linux-wheels: linux-wheels-x86_64 linux-wheels-i686
160 154
161 155 .PHONY: linux-wheels-x86_64
162 156 linux-wheels-x86_64:
163 157 docker run -e "HGTEST_JOBS=$(shell nproc)" --rm -ti -v `pwd`/../..:/src quay.io/pypa/manylinux1_x86_64 /src/contrib/packaging/build-linux-wheels.sh
164 158
165 159 .PHONY: linux-wheels-i686
166 160 linux-wheels-i686:
167 161 docker run -e "HGTEST_JOBS=$(shell nproc)" --rm -ti -v `pwd`/../..:/src quay.io/pypa/manylinux1_i686 linux32 /src/contrib/packaging/build-linux-wheels.sh
@@ -1,16 +1,16 b''
1 FROM debian:__CODENAME__
1 FROM debian:%CODENAME%
2 2
3 3 RUN groupadd -g 1000 build && \
4 4 useradd -u 1000 -g 1000 -s /bin/bash -d /build -m build
5 5
6 6 RUN apt-get update && apt-get install -y \
7 7 build-essential \
8 8 debhelper \
9 9 devscripts \
10 10 dh-python \
11 11 less \
12 12 python \
13 13 python-all-dev \
14 14 python-docutils \
15 15 unzip \
16 16 zip
@@ -1,16 +1,16 b''
1 FROM ubuntu:__CODENAME__
1 FROM ubuntu:%CODENAME%
2 2
3 3 RUN groupadd -g 1000 build && \
4 4 useradd -u 1000 -g 1000 -s /bin/bash -d /build -m build
5 5
6 6 RUN apt-get update && apt-get install -y \
7 7 build-essential \
8 8 debhelper \
9 9 devscripts \
10 10 dh-python \
11 11 less \
12 12 python \
13 13 python-all-dev \
14 14 python-docutils \
15 15 unzip \
16 16 zip
@@ -1,37 +1,40 b''
1 1 #!/bin/bash -eu
2 2
3 3 . $(dirname $0)/packagelib.sh
4 4
5 5 BUILDDIR=$(dirname $0)
6 6 export ROOTDIR=$(cd $BUILDDIR/../.. > /dev/null; pwd)
7 7
8 8 DISTID="$1"
9 9 CODENAME="$2"
10 10 PLATFORM="$1-$2"
11 11 shift; shift # extra params are passed to build process
12 12
13 13 OUTPUTDIR=${OUTPUTDIR:=$ROOTDIR/packages/$PLATFORM}
14 14 CONTAINER=hg-docker-$PLATFORM
15 15
16 16 DOCKER=$($BUILDDIR/hg-docker docker-path)
17 17
18 $BUILDDIR/hg-docker build $BUILDDIR/docker/$PLATFORM $CONTAINER
18 $BUILDDIR/hg-docker build \
19 --build-arg CODENAME=$CODENAME \
20 $BUILDDIR/docker/$DISTID.template \
21 $CONTAINER
19 22
20 23 # debuild only appears to be able to save built debs etc to .., so we
21 24 # have to share the .. of the current directory with the docker
22 25 # container and hope it's writable. Whee.
23 26 dn=$(basename $ROOTDIR)
24 27
25 28 DBUILDUSER=build
26 29
27 30 if [ $(uname) = "Darwin" ] ; then
28 31 $DOCKER run -u $DBUILDUSER --rm -v $PWD/..:/mnt $CONTAINER \
29 32 sh -c "cd /mnt/$dn && make clean && make local"
30 33 fi
31 34 $DOCKER run -u $DBUILDUSER --rm -v $ROOTDIR/..:/mnt $CONTAINER \
32 35 sh -c "cd /mnt/$dn && DEB_BUILD_OPTIONS='${DEB_BUILD_OPTIONS:=}' contrib/packaging/builddeb --build --distid $DISTID --codename $CODENAME $@"
33 36 contrib/packaging/builddeb --cleanup --distid $DISTID --codename $CODENAME
34 37 if [ $(uname) = "Darwin" ] ; then
35 38 $DOCKER run -u $DBUILDUSER --rm -v $PWD/..:/mnt $CONTAINER \
36 39 sh -c "cd /mnt/$dn && make clean"
37 40 fi
General Comments 0
You need to be logged in to leave comments. Login now