Mercurial > hg
annotate contrib/packaging/builddeb @ 40103:01425e3c2645
packaging: print full path to the packages when builddeb finishes successfully
author | muxator <a.mux@inwind.it> |
---|---|
date | Tue, 09 Oct 2018 21:40:49 +0200 |
parents | f9c5f7b048b0 |
children | 338230555429 |
rev | line source |
---|---|
24971
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
1 #!/bin/sh -e |
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
2 # |
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
3 # Build a Mercurial debian package from the current repo |
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
4 # |
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
5 # Tested on Jessie (stable as of original script authoring.) |
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
6 |
38006
64b086f0ebb5
packaging: move builddeb into contrib/packaging/
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38005
diff
changeset
|
7 . $(dirname $0)/packagelib.sh |
24972
56c64c91b429
packaging: extract packagelib for common code from builddeb and buildrpm
Augie Fackler <augie@google.com>
parents:
24971
diff
changeset
|
8 |
38013
917f635b5c6a
packaging: make packaging scripts less reliant on pwd
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38009
diff
changeset
|
9 ROOTDIR=$(cd $(dirname $0)/../.. > /dev/null; pwd) |
917f635b5c6a
packaging: make packaging scripts less reliant on pwd
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38009
diff
changeset
|
10 |
24971
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
11 BUILD=1 |
26148
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
12 CLEANUP=1 |
27212
ef9301ce6046
builddeb: read default distribution and codename from lsb_release
Anton Shestakov <av6@dwimlabs.net>
parents:
27211
diff
changeset
|
13 DISTID=`(lsb_release -is 2> /dev/null | tr '[:upper:]' '[:lower:]') || echo debian` |
ef9301ce6046
builddeb: read default distribution and codename from lsb_release
Anton Shestakov <av6@dwimlabs.net>
parents:
27211
diff
changeset
|
14 CODENAME=`lsb_release -cs 2> /dev/null || echo unknown` |
28994
8797f03db5b6
builddeb: add flag for a source-only deb
Sean Farley <sean@farley.io>
parents:
28993
diff
changeset
|
15 DEBFLAGS=-b |
24971
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
16 while [ "$1" ]; do |
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
17 case "$1" in |
27210
9b86d29867a5
builddeb: add --distid option to specify Distributor ID
Anton Shestakov <av6@dwimlabs.net>
parents:
27209
diff
changeset
|
18 --distid ) |
9b86d29867a5
builddeb: add --distid option to specify Distributor ID
Anton Shestakov <av6@dwimlabs.net>
parents:
27209
diff
changeset
|
19 shift |
9b86d29867a5
builddeb: add --distid option to specify Distributor ID
Anton Shestakov <av6@dwimlabs.net>
parents:
27209
diff
changeset
|
20 DISTID="$1" |
9b86d29867a5
builddeb: add --distid option to specify Distributor ID
Anton Shestakov <av6@dwimlabs.net>
parents:
27209
diff
changeset
|
21 shift |
9b86d29867a5
builddeb: add --distid option to specify Distributor ID
Anton Shestakov <av6@dwimlabs.net>
parents:
27209
diff
changeset
|
22 ;; |
27209
7fbab10f812f
builddeb: rename --release option to --codename
Anton Shestakov <av6@dwimlabs.net>
parents:
26833
diff
changeset
|
23 --codename ) |
26108
05306b9359d3
builddeb: rework how output dir and platform are specified
Augie Fackler <augie@google.com>
parents:
26090
diff
changeset
|
24 shift |
27209
7fbab10f812f
builddeb: rename --release option to --codename
Anton Shestakov <av6@dwimlabs.net>
parents:
26833
diff
changeset
|
25 CODENAME="$1" |
26108
05306b9359d3
builddeb: rework how output dir and platform are specified
Augie Fackler <augie@google.com>
parents:
26090
diff
changeset
|
26 shift |
05306b9359d3
builddeb: rework how output dir and platform are specified
Augie Fackler <augie@google.com>
parents:
26090
diff
changeset
|
27 ;; |
26148
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
28 --cleanup ) |
24971
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
29 shift |
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
30 BUILD= |
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
31 ;; |
26148
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
32 --build ) |
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
33 shift |
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
34 CLEANUP= |
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
35 ;; |
28994
8797f03db5b6
builddeb: add flag for a source-only deb
Sean Farley <sean@farley.io>
parents:
28993
diff
changeset
|
36 --source-only ) |
8797f03db5b6
builddeb: add flag for a source-only deb
Sean Farley <sean@farley.io>
parents:
28993
diff
changeset
|
37 shift |
8797f03db5b6
builddeb: add flag for a source-only deb
Sean Farley <sean@farley.io>
parents:
28993
diff
changeset
|
38 DEBFLAGS=-S |
8797f03db5b6
builddeb: add flag for a source-only deb
Sean Farley <sean@farley.io>
parents:
28993
diff
changeset
|
39 ;; |
24971
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
40 * ) |
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
41 echo "Invalid parameter $1!" 1>&2 |
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
42 exit 1 |
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
43 ;; |
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
44 esac |
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
45 done |
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
46 |
26148
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
47 trap "if [ '$CLEANUP' ] ; then rm -r '$PWD/debian' ; fi" EXIT |
26108
05306b9359d3
builddeb: rework how output dir and platform are specified
Augie Fackler <augie@google.com>
parents:
26090
diff
changeset
|
48 |
24971
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
49 set -u |
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
50 |
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
51 if [ ! -d .hg ]; then |
40102
f9c5f7b048b0
packaging: print more specific error messages when builddeb fails
muxator <a.mux@inwind.it>
parents:
38013
diff
changeset
|
52 printf "You are inside %s, which is not the root of a Mercurial repository\n" $(pwd) 1>&2 |
24971
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
53 exit 1 |
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
54 fi |
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
55 |
24972
56c64c91b429
packaging: extract packagelib for common code from builddeb and buildrpm
Augie Fackler <augie@google.com>
parents:
24971
diff
changeset
|
56 gethgversion |
26833
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26148
diff
changeset
|
57 debver="$version" |
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26148
diff
changeset
|
58 if [ -n "$type" ] ; then |
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26148
diff
changeset
|
59 debver="$debver~$type" |
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26148
diff
changeset
|
60 fi |
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26148
diff
changeset
|
61 if [ -n "$distance" ] ; then |
29045
52f71214efce
builddeb: use codename in version
Sean Farley <sean@farley.io>
parents:
28994
diff
changeset
|
62 debver="$debver+$distance-$CODENAME-$node" |
29093
c4f0e764b231
builddeb: add distroseries to tagged versions
Sean Farley <sean@farley.io>
parents:
29046
diff
changeset
|
63 elif [ "$DEBFLAGS" = "-S" ] ; then |
c4f0e764b231
builddeb: add distroseries to tagged versions
Sean Farley <sean@farley.io>
parents:
29046
diff
changeset
|
64 # for building a ppa (--source-only) for a release (distance == 0), we need |
c4f0e764b231
builddeb: add distroseries to tagged versions
Sean Farley <sean@farley.io>
parents:
29046
diff
changeset
|
65 # to version the distroseries so that we can upload to launchpad |
c4f0e764b231
builddeb: add distroseries to tagged versions
Sean Farley <sean@farley.io>
parents:
29046
diff
changeset
|
66 debver="$debver~${CODENAME}1" |
26833
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26148
diff
changeset
|
67 fi |
24971
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
68 |
26148
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
69 control=debian/control |
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
70 changelog=debian/changelog |
24971
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
71 |
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
72 if [ "$BUILD" ]; then |
26148
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
73 if [ -d debian ] ; then |
40102
f9c5f7b048b0
packaging: print more specific error messages when builddeb fails
muxator <a.mux@inwind.it>
parents:
38013
diff
changeset
|
74 printf "Error! debian control directory already exists at %s/debian\n" $(pwd) |
26148
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
75 exit 1 |
24971
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
76 fi |
26148
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
77 |
38013
917f635b5c6a
packaging: make packaging scripts less reliant on pwd
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38009
diff
changeset
|
78 cp -r "$ROOTDIR"/contrib/packaging/debian debian |
26148
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
79 |
28988 | 80 sed -i.tmp "s/__VERSION__/$debver/" $changelog |
81 sed -i.tmp "s/__DATE__/$(date --rfc-2822)/" $changelog | |
28989
a8256e3701be
builddeb: use the os codename instead of 'unstable'
Sean Farley <sean@farley.io>
parents:
28988
diff
changeset
|
82 sed -i.tmp "s/__CODENAME__/$CODENAME/" $changelog |
26148
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
83 rm $changelog.tmp |
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
84 |
28993
837119bf7f01
builddeb: create source archive for ubuntu
Sean Farley <sean@farley.io>
parents:
28992
diff
changeset
|
85 # remove the node from the version string |
837119bf7f01
builddeb: create source archive for ubuntu
Sean Farley <sean@farley.io>
parents:
28992
diff
changeset
|
86 SRCFILE="mercurial_$(echo $debver | sed "s,-$node,,").orig.tar.gz" |
38013
917f635b5c6a
packaging: make packaging scripts less reliant on pwd
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38009
diff
changeset
|
87 "$ROOTDIR/hg" archive $SRCFILE |
28993
837119bf7f01
builddeb: create source archive for ubuntu
Sean Farley <sean@farley.io>
parents:
28992
diff
changeset
|
88 mv $SRCFILE .. |
28994
8797f03db5b6
builddeb: add flag for a source-only deb
Sean Farley <sean@farley.io>
parents:
28993
diff
changeset
|
89 debuild -us -uc -i -I $DEBFLAGS |
26148
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
90 if [ $? != 0 ]; then |
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
91 echo 'debuild failed!' |
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
92 exit 1 |
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
93 fi |
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
94 |
24971
ab75baaf81d5
builddeb: new script for building a deb package
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
95 fi |
26148
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
96 if [ "$CLEANUP" ] ; then |
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
97 echo |
27210
9b86d29867a5
builddeb: add --distid option to specify Distributor ID
Anton Shestakov <av6@dwimlabs.net>
parents:
27209
diff
changeset
|
98 OUTPUTDIR=${OUTPUTDIR:=packages/$DISTID-$CODENAME} |
27212
ef9301ce6046
builddeb: read default distribution and codename from lsb_release
Anton Shestakov <av6@dwimlabs.net>
parents:
27211
diff
changeset
|
99 mkdir -p "$OUTPUTDIR" |
26148
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
100 find ../mercurial*.deb ../mercurial_*.build ../mercurial_*.changes \ |
28991
1967c6b714e6
builddeb: copy over .gz and .dsc files
Sean Farley <sean@farley.io>
parents:
28990
diff
changeset
|
101 ../mercurial*.dsc ../mercurial*.gz \ |
28990
62c245c59433
builddeb: ignore errors about find not finding files
Sean Farley <sean@farley.io>
parents:
28989
diff
changeset
|
102 -type f -newer $control -print0 2>/dev/null | \ |
26148
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
103 xargs -Inarf -0 mv narf "$OUTPUTDIR" |
26833
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26148
diff
changeset
|
104 echo "Built packages for $debver:" |
40103
01425e3c2645
packaging: print full path to the packages when builddeb finishes successfully
muxator <a.mux@inwind.it>
parents:
40102
diff
changeset
|
105 find "$PWD"/"$OUTPUTDIR" -type f -newer $control -name '*.deb' |
26148
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
106 fi |