Show More
@@ -0,0 +1,76 b'' | |||||
|
1 | #!/bin/sh -e | |||
|
2 | # | |||
|
3 | # Build a Mercurial debian package from the current repo | |||
|
4 | # | |||
|
5 | # Tested on Jessie (stable as of original script authoring.) | |||
|
6 | ||||
|
7 | BUILD=1 | |||
|
8 | DEBBUILDDIR="$PWD/debbuild" | |||
|
9 | while [ "$1" ]; do | |||
|
10 | case "$1" in | |||
|
11 | --prepare ) | |||
|
12 | shift | |||
|
13 | BUILD= | |||
|
14 | ;; | |||
|
15 | --debbuilddir ) | |||
|
16 | shift | |||
|
17 | DEBBUILDDIR="$1" | |||
|
18 | shift | |||
|
19 | ;; | |||
|
20 | * ) | |||
|
21 | echo "Invalid parameter $1!" 1>&2 | |||
|
22 | exit 1 | |||
|
23 | ;; | |||
|
24 | esac | |||
|
25 | done | |||
|
26 | ||||
|
27 | set -u | |||
|
28 | ||||
|
29 | rm -rf $DEBBUILDDIR | |||
|
30 | mkdir -p $DEBBUILDDIR | |||
|
31 | ||||
|
32 | if [ ! -d .hg ]; then | |||
|
33 | echo 'You are not inside a Mercurial repository!' 1>&2 | |||
|
34 | exit 1 | |||
|
35 | fi | |||
|
36 | ||||
|
37 | # build local hg and use it | |||
|
38 | python setup.py build_py -c -d . | |||
|
39 | HG="$PWD/hg" | |||
|
40 | ||||
|
41 | $HG version > /dev/null || { echo 'abort: hg version failed!'; exit 1 ; } | |||
|
42 | ||||
|
43 | hgversion=`$HG version | sed -ne 's/.*(version \(.*\))$/\1/p'` | |||
|
44 | ||||
|
45 | if echo $hgversion | grep -- '-' > /dev/null 2>&1; then | |||
|
46 | # nightly build case, version is like 1.3.1+250-20b91f91f9ca | |||
|
47 | version=`echo $hgversion | cut -d- -f1` | |||
|
48 | release=`echo $hgversion | cut -d- -f2 | sed -e 's/+.*//'` | |||
|
49 | else | |||
|
50 | # official tag, version is like 1.3.1 | |||
|
51 | version=`echo $hgversion | sed -e 's/+.*//'` | |||
|
52 | release='0' | |||
|
53 | fi | |||
|
54 | ||||
|
55 | cp -r $PWD/contrib/debian $DEBBUILDDIR/DEBIAN | |||
|
56 | chmod -R 0755 $DEBBUILDDIR/DEBIAN | |||
|
57 | ||||
|
58 | control=$DEBBUILDDIR/DEBIAN/control | |||
|
59 | ||||
|
60 | # This looks like sed -i, but sed -i behaves just differently enough | |||
|
61 | # between BSD and GNU sed that I gave up and did the dumb thing. | |||
|
62 | sed "s/__VERSION__/$version/" < $control > $control.tmp | |||
|
63 | mv $control.tmp $control | |||
|
64 | ||||
|
65 | if [ "$BUILD" ]; then | |||
|
66 | dpkg-deb --build $DEBBUILDDIR | |||
|
67 | mv $DEBBUILDDIR.deb $DEBBUILDDIR/mercurial-$version-$release.deb | |||
|
68 | if [ $? = 0 ]; then | |||
|
69 | echo | |||
|
70 | echo "Built packages for $version-$release:" | |||
|
71 | find $DEBBUILDDIR/ -type f -newer $control | |||
|
72 | fi | |||
|
73 | else | |||
|
74 | echo "Prepared sources for $version-$release $control are in $DEBBUILDDIR - use like:" | |||
|
75 | echo "dpkg-deb --build $DEBBUILDDIR" | |||
|
76 | fi |
@@ -0,0 +1,9 b'' | |||||
|
1 | Package: mercurial | |||
|
2 | Version: __VERSION__ | |||
|
3 | Section: vcs | |||
|
4 | Priority: optional | |||
|
5 | Architecture: all | |||
|
6 | Depends: python | |||
|
7 | Conflicts: mercurial-common | |||
|
8 | Maintainer: Mercurial Developers <mercurial-devel@selenic.com> | |||
|
9 | Description: Mercurial (probably nightly) package built by upstream. |
@@ -157,6 +157,12 b' osx:' | |||||
157 | N=`cd dist && echo mercurial-*.mpkg | sed 's,\.mpkg$$,,'` && hdiutil create -srcfolder dist/$$N.mpkg/ -scrub -volname "$$N" -ov packages/osx/$$N.dmg |
|
157 | N=`cd dist && echo mercurial-*.mpkg | sed 's,\.mpkg$$,,'` && hdiutil create -srcfolder dist/$$N.mpkg/ -scrub -volname "$$N" -ov packages/osx/$$N.dmg | |
158 | rm -rf dist/mercurial-*.mpkg |
|
158 | rm -rf dist/mercurial-*.mpkg | |
159 |
|
159 | |||
|
160 | debian-jessie: | |||
|
161 | mkdir -p packages/debian-jessie | |||
|
162 | contrib/builddeb | |||
|
163 | mv debbuild/*.deb packages/debian-jessie | |||
|
164 | rm -rf debbuild | |||
|
165 | ||||
160 | fedora20: |
|
166 | fedora20: | |
161 | mkdir -p packages/fedora20 |
|
167 | mkdir -p packages/fedora20 | |
162 | contrib/buildrpm |
|
168 | contrib/buildrpm |
General Comments 0
You need to be logged in to leave comments.
Login now