Show More
@@ -14,6 +14,10 b' while [ "$1" ]; do' | |||||
14 | shift |
|
14 | shift | |
15 | BUILD= |
|
15 | BUILD= | |
16 | ;; |
|
16 | ;; | |
|
17 | --withpython | --with-python) | |||
|
18 | shift | |||
|
19 | PYTHONVER=2.7.8 | |||
|
20 | ;; | |||
17 | * ) |
|
21 | * ) | |
18 | echo "Invalid parameter $1!" 1>&2 |
|
22 | echo "Invalid parameter $1!" 1>&2 | |
19 | exit 1 |
|
23 | exit 1 | |
@@ -23,7 +27,7 b' done' | |||||
23 |
|
27 | |||
24 | cd "`dirname $0`/.." |
|
28 | cd "`dirname $0`/.." | |
25 |
|
29 | |||
26 | specfile=contrib/mercurial.spec |
|
30 | specfile=$PWD/contrib/mercurial.spec | |
27 | if [ ! -f $specfile ]; then |
|
31 | if [ ! -f $specfile ]; then | |
28 | echo "Cannot find $specfile!" 1>&2 |
|
32 | echo "Cannot find $specfile!" 1>&2 | |
29 | exit 1 |
|
33 | exit 1 | |
@@ -56,8 +60,28 b' else' | |||||
56 | version=`echo $hgversion | sed -e 's/+.*//'` |
|
60 | version=`echo $hgversion | sed -e 's/+.*//'` | |
57 | release='0' |
|
61 | release='0' | |
58 | fi |
|
62 | fi | |
|
63 | if [ "$PYTHONVER" ]; then | |||
|
64 | release=$release+$PYTHONVER | |||
|
65 | RPMPYTHONVER=$PYTHONVER | |||
|
66 | else | |||
|
67 | RPMPYTHONVER=%{nil} | |||
|
68 | fi | |||
59 |
|
69 | |||
60 | $HG archive -t tgz $rpmdir/SOURCES/mercurial-$version-$release.tar.gz |
|
70 | $HG archive -t tgz $rpmdir/SOURCES/mercurial-$version-$release.tar.gz | |
|
71 | if [ "$PYTHONVER" ]; then | |||
|
72 | ( | |||
|
73 | cd build | |||
|
74 | PYTHON_SRCFILE=Python-$PYTHONVER.tgz | |||
|
75 | [ -f $PYTHON_SRCFILE ] || curl -Lo $PYTHON_SRCFILE http://www.python.org/ftp/python/$PYTHONVER/$PYTHON_SRCFILE | |||
|
76 | ln -f $PYTHON_SRCFILE $rpmdir/SOURCES/$PYTHON_SRCFILE | |||
|
77 | ||||
|
78 | DOCUTILSVER=`sed -ne "s/^%global docutilsname docutils-//p" $specfile` | |||
|
79 | DOCUTILS_SRCFILE=docutils-$DOCUTILSVER.tar.gz | |||
|
80 | [ -f $DOCUTILS_SRCFILE ] || curl -Lo $DOCUTILS_SRCFILE http://downloads.sourceforge.net/project/docutils/docutils/$DOCUTILSVER/$DOCUTILS_SRCFILE | |||
|
81 | ln -f $DOCUTILS_SRCFILE $rpmdir/SOURCES/$DOCUTILS_SRCFILE | |||
|
82 | ) | |||
|
83 | fi | |||
|
84 | ||||
61 | rpmspec=$rpmdir/SPECS/mercurial.spec |
|
85 | rpmspec=$rpmdir/SPECS/mercurial.spec | |
62 |
|
86 | |||
63 | sed -e "s,^Version:.*,Version: $version," \ |
|
87 | sed -e "s,^Version:.*,Version: $version," \ | |
@@ -109,6 +133,10 b' for l in sys.stdin.readlines():' | |||||
109 |
|
133 | |||
110 | fi |
|
134 | fi | |
111 |
|
135 | |||
|
136 | sed -i \ | |||
|
137 | -e "s/^%define withpython.*$/%define withpython $RPMPYTHONVER/" \ | |||
|
138 | $rpmspec | |||
|
139 | ||||
112 | if [ "$BUILD" ]; then |
|
140 | if [ "$BUILD" ]; then | |
113 | rpmbuild --define "_topdir $rpmdir" -ba $rpmspec --clean |
|
141 | rpmbuild --define "_topdir $rpmdir" -ba $rpmspec --clean | |
114 | if [ $? = 0 ]; then |
|
142 | if [ $? = 0 ]; then |
@@ -1,6 +1,23 b'' | |||||
1 | %global emacs_lispdir %{_datadir}/emacs/site-lisp |
|
1 | %global emacs_lispdir %{_datadir}/emacs/site-lisp | |
|
2 | ||||
|
3 | %define withpython %{nil} | |||
|
4 | ||||
|
5 | %if "%{?withpython}" | |||
|
6 | ||||
|
7 | %global pythonver %{withpython} | |||
|
8 | %global pythonname Python-%{withpython} | |||
|
9 | %global docutilsname docutils-0.11 | |||
|
10 | %global pythonhg python-hg | |||
|
11 | %global hgpyprefix /usr/%{pythonhg} | |||
|
12 | # byte compilation will fail on some some Python /test/ files | |||
|
13 | %global _python_bytecompile_errors_terminate_build 0 | |||
|
14 | ||||
|
15 | %else | |||
|
16 | ||||
2 | %global pythonver %(python -c 'import sys;print ".".join(map(str, sys.version_info[:2]))') |
|
17 | %global pythonver %(python -c 'import sys;print ".".join(map(str, sys.version_info[:2]))') | |
3 |
|
18 | |||
|
19 | %endif | |||
|
20 | ||||
4 | Summary: A fast, lightweight Source Control Management system |
|
21 | Summary: A fast, lightweight Source Control Management system | |
5 | Name: mercurial |
|
22 | Name: mercurial | |
6 | Version: snapshot |
|
23 | Version: snapshot | |
@@ -9,11 +26,19 b' License: GPLv2+' | |||||
9 | Group: Development/Tools |
|
26 | Group: Development/Tools | |
10 | URL: http://mercurial.selenic.com/ |
|
27 | URL: http://mercurial.selenic.com/ | |
11 | Source0: %{name}-%{version}-%{release}.tar.gz |
|
28 | Source0: %{name}-%{version}-%{release}.tar.gz | |
|
29 | %if "%{?withpython}" | |||
|
30 | Source1: %{pythonname}.tgz | |||
|
31 | Source2: %{docutilsname}.tar.gz | |||
|
32 | %endif | |||
12 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root |
|
33 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root | |
13 |
|
34 | |||
14 | BuildRequires: python >= 2.4, python-devel, make, gcc, python-docutils >= 0.5, gettext |
|
35 | BuildRequires: make, gcc, gettext | |
15 | Provides: hg = %{version}-%{release} |
|
36 | %if "%{?withpython}" | |
|
37 | BuildRequires: readline-devel, openssl-devel, ncurses-devel, zlib-devel, bzip2-devel | |||
|
38 | %else | |||
|
39 | BuildRequires: python >= 2.4, python-devel, python-docutils >= 0.5 | |||
16 | Requires: python >= 2.4 |
|
40 | Requires: python >= 2.4 | |
|
41 | %endif | |||
17 | # The hgk extension uses the wish tcl interpreter, but we don't enforce it |
|
42 | # The hgk extension uses the wish tcl interpreter, but we don't enforce it | |
18 | #Requires: tk |
|
43 | #Requires: tk | |
19 |
|
44 | |||
@@ -22,15 +47,69 b' Mercurial is a fast, lightweight source ' | |||||
22 | for efficient handling of very large distributed projects. |
|
47 | for efficient handling of very large distributed projects. | |
23 |
|
48 | |||
24 | %prep |
|
49 | %prep | |
|
50 | ||||
|
51 | %if "%{?withpython}" | |||
|
52 | %setup -q -n mercurial-%{version}-%{release} -a1 -a2 | |||
|
53 | # despite the comments in cgi.py, we do this to prevent rpmdeps from picking /usr/local/bin/python up | |||
|
54 | sed -i '1c#! /usr/bin/env python' %{pythonname}/Lib/cgi.py | |||
|
55 | %else | |||
25 | %setup -q -n mercurial-%{version}-%{release} |
|
56 | %setup -q -n mercurial-%{version}-%{release} | |
|
57 | %endif | |||
26 |
|
58 | |||
27 | %build |
|
59 | %build | |
|
60 | ||||
|
61 | %if "%{?withpython}" | |||
|
62 | ||||
|
63 | PYPATH=$PWD/%{pythonname} | |||
|
64 | cd $PYPATH | |||
|
65 | ./configure --prefix=%{hgpyprefix} | |||
|
66 | make all %{?_smp_mflags} | |||
|
67 | cd - | |||
|
68 | ||||
|
69 | cd %{docutilsname} | |||
|
70 | LD_LIBRARY_PATH=$PYPATH $PYPATH/python setup.py build | |||
|
71 | cd - | |||
|
72 | ||||
|
73 | # verify Python environment | |||
|
74 | LD_LIBRARY_PATH=$PYPATH PYTHONPATH=$PWD/%{docutilsname} $PYPATH/python -c 'import sys, zlib, bz2, ssl, curses, readline' | |||
|
75 | ||||
|
76 | # set environment for make | |||
|
77 | export PATH=$PYPATH:$PATH | |||
|
78 | export LD_LIBRARY_PATH=$PYPATH | |||
|
79 | export CFLAGS="-L $PYPATH" | |||
|
80 | export PYTHONPATH=$PWD/%{docutilsname} | |||
|
81 | ||||
|
82 | %endif | |||
|
83 | ||||
28 | make all |
|
84 | make all | |
29 |
|
85 | |||
30 | %install |
|
86 | %install | |
31 | rm -rf $RPM_BUILD_ROOT |
|
87 | rm -rf $RPM_BUILD_ROOT | |
|
88 | ||||
|
89 | %if "%{?withpython}" | |||
|
90 | ||||
|
91 | PYPATH=$PWD/%{pythonname} | |||
|
92 | cd $PYPATH | |||
|
93 | make install DESTDIR=$RPM_BUILD_ROOT | |||
|
94 | # these .a are not necessary and they are readonly and strip fails - kill them! | |||
|
95 | rm -f %{buildroot}%{hgpyprefix}/lib/{,python2.*/config}/libpython2.*.a | |||
|
96 | cd - | |||
|
97 | ||||
|
98 | cd %{docutilsname} | |||
|
99 | LD_LIBRARY_PATH=$PYPATH $PYPATH/python setup.py install --root="$RPM_BUILD_ROOT" | |||
|
100 | cd - | |||
|
101 | ||||
|
102 | PATH=$PYPATH:$PATH LD_LIBRARY_PATH=$PYPATH make install DESTDIR=$RPM_BUILD_ROOT PREFIX=%{hgpyprefix} MANDIR=%{_mandir} | |||
|
103 | mkdir -p $RPM_BUILD_ROOT%{_bindir} | |||
|
104 | ( cd $RPM_BUILD_ROOT%{_bindir}/ && ln -s ../..%{hgpyprefix}/bin/hg . ) | |||
|
105 | ( cd $RPM_BUILD_ROOT%{_bindir}/ && ln -s ../..%{hgpyprefix}/bin/python2.? %{pythonhg} ) | |||
|
106 | ||||
|
107 | %else | |||
|
108 | ||||
32 | make install DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} MANDIR=%{_mandir} |
|
109 | make install DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} MANDIR=%{_mandir} | |
33 |
|
110 | |||
|
111 | %endif | |||
|
112 | ||||
34 | install -m 755 contrib/hgk $RPM_BUILD_ROOT%{_bindir}/ |
|
113 | install -m 755 contrib/hgk $RPM_BUILD_ROOT%{_bindir}/ | |
35 | install -m 755 contrib/hg-ssh $RPM_BUILD_ROOT%{_bindir}/ |
|
114 | install -m 755 contrib/hg-ssh $RPM_BUILD_ROOT%{_bindir}/ | |
36 |
|
115 | |||
@@ -71,8 +150,13 b' rm -rf $RPM_BUILD_ROOT' | |||||
71 | %dir %{_sysconfdir}/mercurial |
|
150 | %dir %{_sysconfdir}/mercurial | |
72 | %dir %{_sysconfdir}/mercurial/hgrc.d |
|
151 | %dir %{_sysconfdir}/mercurial/hgrc.d | |
73 | %config(noreplace) %{_sysconfdir}/mercurial/hgrc.d/mergetools.rc |
|
152 | %config(noreplace) %{_sysconfdir}/mercurial/hgrc.d/mergetools.rc | |
|
153 | %if "%{?withpython}" | |||
|
154 | %{_bindir}/%{pythonhg} | |||
|
155 | %{hgpyprefix} | |||
|
156 | %else | |||
74 | %if "%{?pythonver}" != "2.4" |
|
157 | %if "%{?pythonver}" != "2.4" | |
75 | %{_libdir}/python%{pythonver}/site-packages/%{name}-*-py%{pythonver}.egg-info |
|
158 | %{_libdir}/python%{pythonver}/site-packages/%{name}-*-py%{pythonver}.egg-info | |
76 | %endif |
|
159 | %endif | |
77 | %{_libdir}/python%{pythonver}/site-packages/%{name} |
|
160 | %{_libdir}/python%{pythonver}/site-packages/%{name} | |
78 | %{_libdir}/python%{pythonver}/site-packages/hgext |
|
161 | %{_libdir}/python%{pythonver}/site-packages/hgext | |
|
162 | %endif |
General Comments 0
You need to be logged in to leave comments.
Login now