author | Martin von Zweigbergk <martinvonz@google.com> |
Thu, 07 Jan 2021 12:26:32 -0800 | |
changeset 46272 | a68d3386138c |
parent 45983 | 97205cf0ee4d |
permissions | -rwxr-xr-x |
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 |
# |
43344
825f8f42333a
packaging: drop outdated buildrpm "tested on" comment
Mads Kiilerich <mads@kiilerich.com>
parents:
43342
diff
changeset
|
3 |
# Build a Mercurial RPM from the current repo, mainly for Fedora/CentOS/RHEL |
564 | 4 |
|
38008
b7cd9e94c259
packaging: move buildrpm to contrib/packaging/
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38007
diff
changeset
|
5 |
. $(dirname $0)/packagelib.sh |
24972
56c64c91b429
packaging: extract packagelib for common code from builddeb and buildrpm
Augie Fackler <augie@google.com>
parents:
24730
diff
changeset
|
6 |
|
22435
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
7 |
BUILD=1 |
22437
9e2e4fc524fd
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com>
parents:
22436
diff
changeset
|
8 |
RPMBUILDDIR="$PWD/rpmbuild" |
43358
518655314fc5
packaging: use "python3" for fedora29 ... and as buildrpm default
Mads Kiilerich <mads@kiilerich.com>
parents:
43357
diff
changeset
|
9 |
PYTHONEXE=python3 |
45836
de1f4c431619
packaging: switch centos 7 packaging to python 3
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
43358
diff
changeset
|
10 |
DOCUTILSPACKAGE=python3-docutils |
33686
5aac617a028d
buildrpm: do not break in presence of custom user configs
muxator <a.mux@inwind.it>
parents:
27878
diff
changeset
|
11 |
|
22435
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
12 |
while [ "$1" ]; do |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
13 |
case "$1" in |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
14 |
--prepare ) |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
15 |
shift |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
16 |
BUILD= |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
17 |
;; |
43357
90dc0d3111d0
packaging: use "--python python" for centos7 to avoid explicit "python2"
Mads Kiilerich <mads@kiilerich.com>
parents:
43356
diff
changeset
|
18 |
--python) |
43342
a6dcac6454c1
packaging: introduce Python3 support as buildrpm --python3
Mads Kiilerich <mads@kiilerich.com>
parents:
43340
diff
changeset
|
19 |
shift |
43357
90dc0d3111d0
packaging: use "--python python" for centos7 to avoid explicit "python2"
Mads Kiilerich <mads@kiilerich.com>
parents:
43356
diff
changeset
|
20 |
PYTHONEXE=$1 |
90dc0d3111d0
packaging: use "--python python" for centos7 to avoid explicit "python2"
Mads Kiilerich <mads@kiilerich.com>
parents:
43356
diff
changeset
|
21 |
shift |
43342
a6dcac6454c1
packaging: introduce Python3 support as buildrpm --python3
Mads Kiilerich <mads@kiilerich.com>
parents:
43340
diff
changeset
|
22 |
;; |
22436
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
23 |
--withpython | --with-python) |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
24 |
shift |
42191
ae68418cc3a1
buildrpm: bump bundled Python version to 2.7.16 when building for centos{5,6}
Antonio Muci <a.mux@inwind.it>
parents:
39455
diff
changeset
|
25 |
PYTHONVER=2.7.16 |
ae68418cc3a1
buildrpm: bump bundled Python version to 2.7.16 when building for centos{5,6}
Antonio Muci <a.mux@inwind.it>
parents:
39455
diff
changeset
|
26 |
PYTHONMD5=f1a2ace631068444831d01485466ece0 |
43356
5989f697890a
packaging: fix docker-centos5 - use pythonexe and set to "python" as before
Mads Kiilerich <mads@kiilerich.com>
parents:
43345
diff
changeset
|
27 |
PYTHONEXE=python |
22436
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
28 |
;; |
45836
de1f4c431619
packaging: switch centos 7 packaging to python 3
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
43358
diff
changeset
|
29 |
--docutilspackage) |
de1f4c431619
packaging: switch centos 7 packaging to python 3
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
43358
diff
changeset
|
30 |
shift |
de1f4c431619
packaging: switch centos 7 packaging to python 3
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
43358
diff
changeset
|
31 |
DOCUTILSPACKAGE="$1" |
de1f4c431619
packaging: switch centos 7 packaging to python 3
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
43358
diff
changeset
|
32 |
shift |
de1f4c431619
packaging: switch centos 7 packaging to python 3
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
43358
diff
changeset
|
33 |
;; |
22437
9e2e4fc524fd
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com>
parents:
22436
diff
changeset
|
34 |
--rpmbuilddir ) |
9e2e4fc524fd
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com>
parents:
22436
diff
changeset
|
35 |
shift |
9e2e4fc524fd
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com>
parents:
22436
diff
changeset
|
36 |
RPMBUILDDIR="$1" |
9e2e4fc524fd
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com>
parents:
22436
diff
changeset
|
37 |
shift |
9e2e4fc524fd
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com>
parents:
22436
diff
changeset
|
38 |
;; |
22435
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
39 |
* ) |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
40 |
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
|
41 |
exit 1 |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
42 |
;; |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
43 |
esac |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
44 |
done |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
45 |
|
38008
b7cd9e94c259
packaging: move buildrpm to contrib/packaging/
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38007
diff
changeset
|
46 |
cd "`dirname $0`/../.." |
7431
3d827cc616b6
buildrpm: complain when hg command isn't available
Mads Kiilerich <mads@kiilerich.com>
parents:
7277
diff
changeset
|
47 |
|
38007
c1a028d15005
packaging: move mercurial.spec to contrib/packaging/
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38005
diff
changeset
|
48 |
specfile=$PWD/contrib/packaging/mercurial.spec |
9812
dd2c95fc4fe5
buildrpm: cleanup script
Gilles Moris <gilles.moris@free.fr>
parents:
9811
diff
changeset
|
49 |
if [ ! -f $specfile ]; then |
dd2c95fc4fe5
buildrpm: cleanup script
Gilles Moris <gilles.moris@free.fr>
parents:
9811
diff
changeset
|
50 |
echo "Cannot find $specfile!" 1>&2 |
dd2c95fc4fe5
buildrpm: cleanup script
Gilles Moris <gilles.moris@free.fr>
parents:
9811
diff
changeset
|
51 |
exit 1 |
dd2c95fc4fe5
buildrpm: cleanup script
Gilles Moris <gilles.moris@free.fr>
parents:
9811
diff
changeset
|
52 |
fi |
564 | 53 |
|
9812
dd2c95fc4fe5
buildrpm: cleanup script
Gilles Moris <gilles.moris@free.fr>
parents:
9811
diff
changeset
|
54 |
if [ ! -d .hg ]; then |
564 | 55 |
echo 'You are not inside a Mercurial repository!' 1>&2 |
56 |
exit 1 |
|
57 |
fi |
|
58 |
||
45983
97205cf0ee4d
packaging: don't use plain 'python' if another python has been specified
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
45836
diff
changeset
|
59 |
gethgversion $PYTHONEXE |
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
|
60 |
|
26833
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26735
diff
changeset
|
61 |
if [ -z "$type" ] ; then |
43345
dc3fe251de72
packaging: fix buildrpm whitespace
Mads Kiilerich <mads@kiilerich.com>
parents:
43344
diff
changeset
|
62 |
release=1 |
26833
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26735
diff
changeset
|
63 |
else |
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26735
diff
changeset
|
64 |
release=0.9_$type |
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26735
diff
changeset
|
65 |
fi |
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26735
diff
changeset
|
66 |
|
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26735
diff
changeset
|
67 |
if [ -n "$distance" ] ; then |
39454
c68cfc55af9d
buildrpm: fix embarassing bug in shell variable expansions
Augie Fackler <raf@durin42.com>
parents:
38008
diff
changeset
|
68 |
release=$release+${distance}_${node} |
26833
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26735
diff
changeset
|
69 |
fi |
6474b64045fb
packaging: rework version detection and declaration (issue4912)
Augie Fackler <augie@google.com>
parents:
26735
diff
changeset
|
70 |
|
22436
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
71 |
if [ "$PYTHONVER" ]; then |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
72 |
release=$release+$PYTHONVER |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
73 |
RPMPYTHONVER=$PYTHONVER |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
74 |
else |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
75 |
RPMPYTHONVER=%{nil} |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
76 |
fi |
564 | 77 |
|
27788
d713fa934fb9
buildrpm: move creation of RPM directories from dockerrpm
Mathias De Maré <mathias.demare@gmail.com>
parents:
26833
diff
changeset
|
78 |
mkdir -p $RPMBUILDDIR/{SOURCES,BUILD,SRPMS,RPMS} |
45983
97205cf0ee4d
packaging: don't use plain 'python' if another python has been specified
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
45836
diff
changeset
|
79 |
$PYTHONEXE $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
|
80 |
if [ "$PYTHONVER" ]; then |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
81 |
( |
24730
aa8e5c6d953b
rpms: create missing builds dir if it doesn't exist
Mads Kiilerich <madski@unity3d.com>
parents:
23881
diff
changeset
|
82 |
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
|
83 |
cd build |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
84 |
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
|
85 |
[ -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
|
86 |
if [ "$PYTHONMD5" ]; then |
a440166d03fc
contrib: buildrpm checking of md5 checksums of downloaded Python and Docutils
Mads Kiilerich <madski@unity3d.com>
parents:
22437
diff
changeset
|
87 |
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
|
88 |
fi |
22437
9e2e4fc524fd
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com>
parents:
22436
diff
changeset
|
89 |
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
|
90 |
|
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
91 |
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
|
92 |
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
|
93 |
[ -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
|
94 |
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
|
95 |
if [ "$DOCUTILSMD5" ]; then |
a440166d03fc
contrib: buildrpm checking of md5 checksums of downloaded Python and Docutils
Mads Kiilerich <madski@unity3d.com>
parents:
22437
diff
changeset
|
96 |
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
|
97 |
fi |
22437
9e2e4fc524fd
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com>
parents:
22436
diff
changeset
|
98 |
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
|
99 |
) |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
100 |
fi |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
101 |
|
26139
f643b6863382
buildrpm: mkdir -p two needed directories (issue4779)
Augie Fackler <augie@google.com>
parents:
24972
diff
changeset
|
102 |
mkdir -p $RPMBUILDDIR/SPECS |
22437
9e2e4fc524fd
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com>
parents:
22436
diff
changeset
|
103 |
rpmspec=$RPMBUILDDIR/SPECS/mercurial.spec |
9813
2059795bb5d0
buildrpm: build full RPM package including sources
Gilles Moris <gilles.moris@free.fr>
parents:
9812
diff
changeset
|
104 |
|
9812
dd2c95fc4fe5
buildrpm: cleanup script
Gilles Moris <gilles.moris@free.fr>
parents:
9811
diff
changeset
|
105 |
sed -e "s,^Version:.*,Version: $version," \ |
564 | 106 |
-e "s,^Release:.*,Release: $release," \ |
43342
a6dcac6454c1
packaging: introduce Python3 support as buildrpm --python3
Mads Kiilerich <mads@kiilerich.com>
parents:
43340
diff
changeset
|
107 |
-e "s/^%global pythonexe .*/%global pythonexe $PYTHONEXE/" \ |
9813
2059795bb5d0
buildrpm: build full RPM package including sources
Gilles Moris <gilles.moris@free.fr>
parents:
9812
diff
changeset
|
108 |
$specfile > $rpmspec |
564 | 109 |
|
9814
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
110 |
echo >> $rpmspec |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
111 |
echo "%changelog" >> $rpmspec |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
112 |
|
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
113 |
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
|
114 |
latesttag="`echo $version | sed -e 's/+.*//'`" |
45983
97205cf0ee4d
packaging: don't use plain 'python' if another python has been specified
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
45836
diff
changeset
|
115 |
$PYTHONEXE $HG log -r .:"$latesttag" -fM \ |
9814
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
116 |
--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
|
117 |
import sys, time |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
118 |
|
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
119 |
def datestr(date, format): |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
120 |
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
|
121 |
|
9814
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
122 |
changelog = [] |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
123 |
for l in sys.stdin.readlines(): |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
124 |
tok = l.split("\t") |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
125 |
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
|
126 |
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
|
127 |
prevtitle = "" |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
128 |
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
|
129 |
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
|
130 |
if prevtitle != title: |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
131 |
prevtitle = title |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
132 |
|
43340
e0812b032bcc
packaging: make python snippets in rpm building python3 compatible
Mads Kiilerich <mads@kiilerich.com>
parents:
42191
diff
changeset
|
133 |
print(title) |
e0812b032bcc
packaging: make python snippets in rpm building python3 compatible
Mads Kiilerich <mads@kiilerich.com>
parents:
42191
diff
changeset
|
134 |
print("- %s" % l[3].strip()) |
9814
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
135 |
' >> $rpmspec |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
136 |
|
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
137 |
else |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
138 |
|
45983
97205cf0ee4d
packaging: don't use plain 'python' if another python has been specified
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
45836
diff
changeset
|
139 |
$PYTHONEXE $HG log \ |
9814
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
140 |
--template '{date|hgdate}\t{author}\t{desc|firstline}\n' \ |
45983
97205cf0ee4d
packaging: don't use plain 'python' if another python has been specified
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
45836
diff
changeset
|
141 |
.hgtags | $PYTHONEXE -c ' |
9814
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
142 |
import sys, time |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
143 |
|
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
144 |
def datestr(date, format): |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
145 |
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
|
146 |
|
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
147 |
for l in sys.stdin.readlines(): |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
148 |
tok = l.split("\t") |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
149 |
hgdate = tuple(int(v) for v in tok[0].split()) |
43340
e0812b032bcc
packaging: make python snippets in rpm building python3 compatible
Mads Kiilerich <mads@kiilerich.com>
parents:
42191
diff
changeset
|
150 |
print("* %s %s\n- %s" % (datestr(hgdate, "%a %b %d %Y"), tok[1], tok[2])) |
9814
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
151 |
' >> $rpmspec |
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
152 |
|
5070e4d57276
buildrpm: enhance changelog of the RPM file
Gilles Moris <gilles.moris@free.fr>
parents:
9813
diff
changeset
|
153 |
fi |
4754
e5e6dd8ba6bb
buildrpm: auto-generate %changelog in .spec file
Adam Spiers <hg@adamspiers.org>
parents:
564
diff
changeset
|
154 |
|
22436
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
155 |
sed -i \ |
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
156 |
-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
|
157 |
$rpmspec |
45836
de1f4c431619
packaging: switch centos 7 packaging to python 3
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
43358
diff
changeset
|
158 |
sed -i \ |
de1f4c431619
packaging: switch centos 7 packaging to python 3
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
43358
diff
changeset
|
159 |
-e "s/^%global pythondocutils.*$/%global pythondocutils $DOCUTILSPACKAGE/" \ |
de1f4c431619
packaging: switch centos 7 packaging to python 3
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
43358
diff
changeset
|
160 |
$rpmspec |
22436
96d95b75a63b
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com>
parents:
22435
diff
changeset
|
161 |
|
22435
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
162 |
if [ "$BUILD" ]; then |
22437
9e2e4fc524fd
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com>
parents:
22436
diff
changeset
|
163 |
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
|
164 |
if [ $? = 0 ]; then |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
165 |
echo |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
166 |
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
|
167 |
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
|
168 |
fi |
4c4385eb26bc
buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com>
parents:
21641
diff
changeset
|
169 |
else |
22437
9e2e4fc524fd
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com>
parents:
22436
diff
changeset
|
170 |
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
|
171 |
echo "rpmbuild --define '_topdir $RPMBUILDDIR' -ba $rpmspec --clean" |
564 | 172 |
fi |