Mercurial > hg
annotate contrib/buildrpm @ 30706:2e4862646f02
repair: speed up stripping of many roots
repair.strip() expects a set of root revisions to strip. It then
builds the full set of descedants by walking the descandants of
each. It is rare that more than a few roots get passed in, but if that
happens, it will wastefully walk the changelog for each root. So let's
just walk it once.
I noticed this because the narrowhg extension was passing not only
roots, but all the commits to strip. When there were tens of thousands
of commits to strip, this resulted in quadratic behavior with that
extension.
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Wed, 04 Jan 2017 10:07:12 -0800 |
parents | e7bd55db011b |
children | 5aac617a028d |
rev | line source |
---|---|
27878
e7bd55db011b
buildrpm: use bash shebang, since we use bash features in the script
Mathias De Maré <mathias.demare@gmail.com>
parents:
27788
diff
changeset
|
1 #!/bin/bash -e |
564 | 2 # |
21638
5337cb17fa1f
buildrpm: various minor cleanup
Mads Kiilerich <madski@unity3d.com>
parents:
9814
diff
changeset
|
3 # Build a Mercurial RPM from the current repo |
564 | 4 # |
8867
ff817723280a
contrib/buildrpm: Support python 2.4 and 2.6
Mads Kiilerich <mads@kiilerich.com>
parents:
7431
diff
changeset
|
5 # Tested on |
21638
5337cb17fa1f
buildrpm: various minor cleanup
Mads Kiilerich <madski@unity3d.com>
parents:
9814
diff
changeset
|
6 # - Fedora 20 |
5337cb17fa1f
buildrpm: various minor cleanup
Mads Kiilerich <madski@unity3d.com>
parents:
9814
diff
changeset
|
7 # - CentOS 5 |
5337cb17fa1f
buildrpm: various minor cleanup
Mads Kiilerich <madski@unity3d.com>
parents:
9814
diff
changeset
|
8 # - centOS 6 |
564 | 9 |
24972
56c64c91b429
packaging: extract packagelib for common code from builddeb and buildrpm
Augie Fackler <augie@google.com>
parents:
24730
diff
changeset
|
10 . $(dirname $0)/packagelib.sh |
56c64c91b429
packaging: extract packagelib for common code from builddeb and buildrpm
Augie Fackler <augie@google.com>
parents:
24730
diff
changeset
|
11 |
22435
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
12 BUILD=1 |
22437
9e2e4fc524fd
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com>
parents:
22436
diff
changeset
|
13 RPMBUILDDIR="$PWD/rpmbuild" |
22435
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
14 while [ "$1" ]; do |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
15 case "$1" in |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
16 --prepare ) |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
17 shift |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
18 BUILD= |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
19 ;; |
22436
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
20 --withpython | --with-python) |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
21 shift |
26735
ec74ea542201
contrib: offer Python 2.7.10
Mads Kiilerich <madski@unity3d.com>
parents:
26139
diff
changeset
|
22 PYTHONVER=2.7.10 |
ec74ea542201
contrib: offer Python 2.7.10
Mads Kiilerich <madski@unity3d.com>
parents:
26139
diff
changeset
|
23 PYTHONMD5=d7547558fd673bd9d38e2108c6b42521 |
22436
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
24 ;; |
22437
9e2e4fc524fd
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com>
parents:
22436
diff
changeset
|
25 --rpmbuilddir ) |
9e2e4fc524fd
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com>
parents:
22436
diff
changeset
|
26 shift |
9e2e4fc524fd
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com>
parents:
22436
diff
changeset
|
27 RPMBUILDDIR="$1" |
9e2e4fc524fd
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com>
parents:
22436
diff
changeset
|
28 shift |
9e2e4fc524fd
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com>
parents:
22436
diff
changeset
|
29 ;; |
22435
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
30 * ) |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
31 echo "Invalid parameter $1!" 1>&2 |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
32 exit 1 |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
33 ;; |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
34 esac |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
35 done |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
36 |
9811
c92ac5a56f69
buildrpm: enable to start the script from anywhere
Gilles Moris <gilles.moris@free.fr>
parents:
9810
diff
changeset
|
37 cd "`dirname $0`/.." |
7431
3d827cc616b6
buildrpm: complain when hg command isn't available
Mads Kiilerich <mads@kiilerich.com>
parents:
7277
diff
changeset
|
38 |
22436
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
39 specfile=$PWD/contrib/mercurial.spec |
9812
dd2c95fc4fe5
buildrpm: cleanup script
Gilles Moris <gilles.moris@free.fr>
parents:
9811
diff
changeset
|
40 if [ ! -f $specfile ]; then |
dd2c95fc4fe5
buildrpm: cleanup script
Gilles Moris <gilles.moris@free.fr>
parents:
9811
diff
changeset
|
41 echo "Cannot find $specfile!" 1>&2 |
dd2c95fc4fe5
buildrpm: cleanup script
Gilles Moris <gilles.moris@free.fr>
parents:
9811
diff
changeset
|
42 exit 1 |
dd2c95fc4fe5
buildrpm: cleanup script
Gilles Moris <gilles.moris@free.fr>
parents:
9811
diff
changeset
|
43 fi |
564 | 44 |
9812
dd2c95fc4fe5
buildrpm: cleanup script
Gilles Moris <gilles.moris@free.fr>
parents:
9811
diff
changeset
|
45 if [ ! -d .hg ]; then |
564 | 46 echo 'You are not inside a Mercurial repository!' 1>&2 |
47 exit 1 | |
48 fi | |
49 | |
24972
56c64c91b429
packaging: extract packagelib for common code from builddeb and buildrpm
Augie Fackler <augie@google.com>
parents:
24730
diff
changeset
|
50 gethgversion |
9809
ce145bf2ca5e
buildrpm: build from working dir parent and use hg version for RPM versioning
Gilles Moris <gilles.moris@free.fr>
parents:
8906
diff
changeset
|
51 |
26833
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26735
diff
changeset
|
52 # TODO: handle distance/node set, and type set |
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26735
diff
changeset
|
53 |
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26735
diff
changeset
|
54 if [ -z "$type" ] ; then |
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26735
diff
changeset
|
55 release=1 |
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26735
diff
changeset
|
56 else |
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26735
diff
changeset
|
57 release=0.9_$type |
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26735
diff
changeset
|
58 fi |
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26735
diff
changeset
|
59 |
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26735
diff
changeset
|
60 if [ -n "$distance" ] ; then |
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26735
diff
changeset
|
61 release=$release+$distance_$node |
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26735
diff
changeset
|
62 fi |
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26735
diff
changeset
|
63 |
22436
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
64 if [ "$PYTHONVER" ]; then |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
65 release=$release+$PYTHONVER |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
66 RPMPYTHONVER=$PYTHONVER |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
67 else |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
68 RPMPYTHONVER=%{nil} |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
69 fi |
564 | 70 |
27788
d713fa934fb9
buildrpm: move creation of RPM directories from dockerrpm
Mathias De Maré <mathias.demare@gmail.com>
parents:
26833
diff
changeset
|
71 mkdir -p $RPMBUILDDIR/{SOURCES,BUILD,SRPMS,RPMS} |
22437
9e2e4fc524fd
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com>
parents:
22436
diff
changeset
|
72 $HG archive -t tgz $RPMBUILDDIR/SOURCES/mercurial-$version-$release.tar.gz |
22436
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
73 if [ "$PYTHONVER" ]; then |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
74 ( |
24730
aa8e5c6d953b
rpms: create missing builds dir if it doesn't exist
Mads Kiilerich <madski@unity3d.com>
parents:
23881
diff
changeset
|
75 mkdir -p build |
22436
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
76 cd build |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
77 PYTHON_SRCFILE=Python-$PYTHONVER.tgz |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
78 [ -f $PYTHON_SRCFILE ] || curl -Lo $PYTHON_SRCFILE http://www.python.org/ftp/python/$PYTHONVER/$PYTHON_SRCFILE |
23141
a440166d03fc
contrib: buildrpm checking of md5 checksums of downloaded Python and Docutils
Mads Kiilerich <madski@unity3d.com>
parents:
22437
diff
changeset
|
79 if [ "$PYTHONMD5" ]; then |
a440166d03fc
contrib: buildrpm checking of md5 checksums of downloaded Python and Docutils
Mads Kiilerich <madski@unity3d.com>
parents:
22437
diff
changeset
|
80 echo "$PYTHONMD5 $PYTHON_SRCFILE" | md5sum -w -c |
a440166d03fc
contrib: buildrpm checking of md5 checksums of downloaded Python and Docutils
Mads Kiilerich <madski@unity3d.com>
parents:
22437
diff
changeset
|
81 fi |
22437
9e2e4fc524fd
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com>
parents:
22436
diff
changeset
|
82 ln -f $PYTHON_SRCFILE $RPMBUILDDIR/SOURCES/$PYTHON_SRCFILE |
22436
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
83 |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
84 DOCUTILSVER=`sed -ne "s/^%global docutilsname docutils-//p" $specfile` |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
85 DOCUTILS_SRCFILE=docutils-$DOCUTILSVER.tar.gz |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
86 [ -f $DOCUTILS_SRCFILE ] || curl -Lo $DOCUTILS_SRCFILE http://downloads.sourceforge.net/project/docutils/docutils/$DOCUTILSVER/$DOCUTILS_SRCFILE |
23141
a440166d03fc
contrib: buildrpm checking of md5 checksums of downloaded Python and Docutils
Mads Kiilerich <madski@unity3d.com>
parents:
22437
diff
changeset
|
87 DOCUTILSMD5=`sed -ne "s/^%global docutilsmd5 //p" $specfile` |
a440166d03fc
contrib: buildrpm checking of md5 checksums of downloaded Python and Docutils
Mads Kiilerich <madski@unity3d.com>
parents:
22437
diff
changeset
|
88 if [ "$DOCUTILSMD5" ]; then |
a440166d03fc
contrib: buildrpm checking of md5 checksums of downloaded Python and Docutils
Mads Kiilerich <madski@unity3d.com>
parents:
22437
diff
changeset
|
89 echo "$DOCUTILSMD5 $DOCUTILS_SRCFILE" | md5sum -w -c |
a440166d03fc
contrib: buildrpm checking of md5 checksums of downloaded Python and Docutils
Mads Kiilerich <madski@unity3d.com>
parents:
22437
diff
changeset
|
90 fi |
22437
9e2e4fc524fd
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com>
parents:
22436
diff
changeset
|
91 ln -f $DOCUTILS_SRCFILE $RPMBUILDDIR/SOURCES/$DOCUTILS_SRCFILE |
22436
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
92 ) |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
93 fi |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
94 |
26139
f643b6863382
buildrpm: mkdir -p two needed directories (issue4779)
Augie Fackler <augie@google.com>
parents:
24972
diff
changeset
|
95 mkdir -p $RPMBUILDDIR/SPECS |
22437
9e2e4fc524fd
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com>
parents:
22436
diff
changeset
|
96 rpmspec=$RPMBUILDDIR/SPECS/mercurial.spec |
9813
2059795bb5d0
buildrpm: build full RPM package including sources
Gilles Moris <gilles.moris@free.fr>
parents:
9812
diff
changeset
|
97 |
9812
dd2c95fc4fe5
buildrpm: cleanup script
Gilles Moris <gilles.moris@free.fr>
parents:
9811
diff
changeset
|
98 sed -e "s,^Version:.*,Version: $version," \ |
564 | 99 -e "s,^Release:.*,Release: $release," \ |
9813
2059795bb5d0
buildrpm: build full RPM package including sources
Gilles Moris <gilles.moris@free.fr>
parents:
9812
diff
changeset
|
100 $specfile > $rpmspec |
564 | 101 |
9814
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
102 echo >> $rpmspec |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
103 echo "%changelog" >> $rpmspec |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
104 |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
105 if echo $version | grep '+' > /dev/null 2>&1; then |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
106 latesttag="`echo $version | sed -e 's/+.*//'`" |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
107 $HG log -r .:"$latesttag" -fM \ |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
108 --template '{date|hgdate}\t{author}\t{desc|firstline}\n' | python -c ' |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
109 import sys, time |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
110 |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
111 def datestr(date, format): |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
112 return time.strftime(format, time.gmtime(float(date[0]) - date[1])) |
4754
e5e6dd8ba6bb
buildrpm: auto-generate %changelog in .spec file
Adam Spiers <hg@adamspiers.org>
parents:
564
diff
changeset
|
113 |
9814
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
114 changelog = [] |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
115 for l in sys.stdin.readlines(): |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
116 tok = l.split("\t") |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
117 hgdate = tuple(int(v) for v in tok[0].split()) |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
118 changelog.append((datestr(hgdate, "%F"), tok[1], hgdate, tok[2])) |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
119 prevtitle = "" |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
120 for l in sorted(changelog, reverse=True): |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
121 title = "* %s %s" % (datestr(l[2], "%a %b %d %Y"), l[1]) |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
122 if prevtitle != title: |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
123 prevtitle = title |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
124 print |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
125 print title |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
126 print "- %s" % l[3].strip() |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
127 ' >> $rpmspec |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
128 |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
129 else |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
130 |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
131 $HG log \ |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
132 --template '{date|hgdate}\t{author}\t{desc|firstline}\n' \ |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
133 .hgtags | python -c ' |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
134 import sys, time |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
135 |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
136 def datestr(date, format): |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
137 return time.strftime(format, time.gmtime(float(date[0]) - date[1])) |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
138 |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
139 for l in sys.stdin.readlines(): |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
140 tok = l.split("\t") |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
141 hgdate = tuple(int(v) for v in tok[0].split()) |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
142 print "* %s %s\n- %s" % (datestr(hgdate, "%a %b %d %Y"), tok[1], tok[2]) |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
143 ' >> $rpmspec |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
144 |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
145 fi |
4754
e5e6dd8ba6bb
buildrpm: auto-generate %changelog in .spec file
Adam Spiers <hg@adamspiers.org>
parents:
564
diff
changeset
|
146 |
22436
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
147 sed -i \ |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
148 -e "s/^%define withpython.*$/%define withpython $RPMPYTHONVER/" \ |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
149 $rpmspec |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
150 |
22435
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
151 if [ "$BUILD" ]; then |
22437
9e2e4fc524fd
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com>
parents:
22436
diff
changeset
|
152 rpmbuild --define "_topdir $RPMBUILDDIR" -ba $rpmspec --clean |
22435
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
153 if [ $? = 0 ]; then |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
154 echo |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
155 echo "Built packages for $version-$release:" |
22437
9e2e4fc524fd
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com>
parents:
22436
diff
changeset
|
156 find $RPMBUILDDIR/*RPMS/ -type f -newer $rpmspec |
22435
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
157 fi |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
158 else |
22437
9e2e4fc524fd
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com>
parents:
22436
diff
changeset
|
159 echo "Prepared sources for $version-$release $rpmspec are in $RPMBUILDDIR/SOURCES/ - use like:" |
9e2e4fc524fd
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com>
parents:
22436
diff
changeset
|
160 echo "rpmbuild --define '_topdir $RPMBUILDDIR' -ba $rpmspec --clean" |
564 | 161 fi |