##// END OF EJS Templates
packaging: be explicit about Python version in rpm spec...
Mads Kiilerich -
r43649:92a51a45 stable
parent child Browse files
Show More
@@ -1,164 +1,167 b''
1 %global emacs_lispdir %{_datadir}/emacs/site-lisp
1 %global emacs_lispdir %{_datadir}/emacs/site-lisp
2
2
3 %define withpython %{nil}
3 %define withpython %{nil}
4
4
5 %if "%{?withpython}"
5 %if "%{?withpython}"
6
6
7 %global pythonver %{withpython}
7 %global pythonver %{withpython}
8 %global pythonname Python-%{withpython}
8 %global pythonname Python-%{withpython}
9 %global docutilsname docutils-0.14
9 %global docutilsname docutils-0.14
10 %global docutilsmd5 c53768d63db3873b7d452833553469de
10 %global docutilsmd5 c53768d63db3873b7d452833553469de
11 %global pythonhg python-hg
11 %global pythonhg python-hg
12 %global hgpyprefix /opt/%{pythonhg}
12 %global hgpyprefix /opt/%{pythonhg}
13 # byte compilation will fail on some some Python /test/ files
13 # byte compilation will fail on some some Python /test/ files
14 %global _python_bytecompile_errors_terminate_build 0
14 %global _python_bytecompile_errors_terminate_build 0
15
15
16 %else
16 %else
17
17
18 %global pythonver %(python -c 'import sys;print(".".join(map(str, sys.version_info[:2])))')
18 %global pythonexe python2
19 %global pythonver %(%{pythonexe} -c 'import sys;print(".".join(map(str, sys.version_info[:2])))')
19
20
20 %endif
21 %endif
21
22
22 Summary: A fast, lightweight Source Control Management system
23 Summary: A fast, lightweight Source Control Management system
23 Name: mercurial
24 Name: mercurial
24 Version: snapshot
25 Version: snapshot
25 Release: 0
26 Release: 0
26 License: GPLv2+
27 License: GPLv2+
27 Group: Development/Tools
28 Group: Development/Tools
28 URL: https://mercurial-scm.org/
29 URL: https://mercurial-scm.org/
29 Source0: %{name}-%{version}-%{release}.tar.gz
30 Source0: %{name}-%{version}-%{release}.tar.gz
30 %if "%{?withpython}"
31 %if "%{?withpython}"
31 Source1: %{pythonname}.tgz
32 Source1: %{pythonname}.tgz
32 Source2: %{docutilsname}.tar.gz
33 Source2: %{docutilsname}.tar.gz
33 %endif
34 %endif
34 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
35 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
35
36
36 BuildRequires: make, gcc, gettext
37 BuildRequires: make, gcc, gettext
37 %if "%{?withpython}"
38 %if "%{?withpython}"
38 BuildRequires: readline-devel, openssl-devel, ncurses-devel, zlib-devel, bzip2-devel
39 BuildRequires: readline-devel, openssl-devel, ncurses-devel, zlib-devel, bzip2-devel
39 %else
40 %else
40 BuildRequires: python >= 2.7, python-devel, python-docutils >= 0.5
41 BuildRequires: python >= 2.7, python-devel, python-docutils >= 0.5
41 Requires: python >= 2.7
42 Requires: python >= 2.7
42 %endif
43 %endif
43 # The hgk extension uses the wish tcl interpreter, but we don't enforce it
44 # The hgk extension uses the wish tcl interpreter, but we don't enforce it
44 #Requires: tk
45 #Requires: tk
45
46
46 %description
47 %description
47 Mercurial is a fast, lightweight source control management system designed
48 Mercurial is a fast, lightweight source control management system designed
48 for efficient handling of very large distributed projects.
49 for efficient handling of very large distributed projects.
49
50
50 %prep
51 %prep
51
52
52 %if "%{?withpython}"
53 %if "%{?withpython}"
53 %setup -q -n mercurial-%{version}-%{release} -a1 -a2
54 %setup -q -n mercurial-%{version}-%{release} -a1 -a2
54 # despite the comments in cgi.py, we do this to prevent rpmdeps from picking /usr/local/bin/python up
55 # despite the comments in cgi.py, we do this to prevent rpmdeps from picking /usr/local/bin/python up
55 sed -i '1c#! /usr/bin/env python' %{pythonname}/Lib/cgi.py
56 sed -i '1c#! /usr/bin/env %{pythonexe}' %{pythonname}/Lib/cgi.py
56 %else
57 %else
57 %setup -q -n mercurial-%{version}-%{release}
58 %setup -q -n mercurial-%{version}-%{release}
58 %endif
59 %endif
59
60
60 %build
61 %build
61
62
62 %if "%{?withpython}"
63 %if "%{?withpython}"
63
64
64 PYPATH=$PWD/%{pythonname}
65 PYPATH=$PWD/%{pythonname}
65 cd $PYPATH
66 cd $PYPATH
66 ./configure --prefix=%{hgpyprefix}
67 ./configure --prefix=%{hgpyprefix}
67 make all %{?_smp_mflags}
68 make all %{?_smp_mflags}
68 cd -
69 cd -
69
70
70 cd %{docutilsname}
71 cd %{docutilsname}
71 LD_LIBRARY_PATH=$PYPATH $PYPATH/python setup.py build
72 LD_LIBRARY_PATH=$PYPATH $PYPATH/python setup.py build
72 cd -
73 cd -
73
74
74 # verify Python environment
75 # verify Python environment
75 LD_LIBRARY_PATH=$PYPATH PYTHONPATH=$PWD/%{docutilsname} $PYPATH/python -c 'import sys, zlib, bz2, ssl, curses, readline'
76 LD_LIBRARY_PATH=$PYPATH PYTHONPATH=$PWD/%{docutilsname} $PYPATH/python -c 'import sys, zlib, bz2, ssl, curses, readline'
76
77
77 # set environment for make
78 # set environment for make
78 export PATH=$PYPATH:$PATH
79 export PATH=$PYPATH:$PATH
79 export LD_LIBRARY_PATH=$PYPATH
80 export LD_LIBRARY_PATH=$PYPATH
80 export CFLAGS="-L $PYPATH"
81 export CFLAGS="-L $PYPATH"
81 export PYTHONPATH=$PWD/%{docutilsname}
82 export PYTHONPATH=$PWD/%{docutilsname}
82
83
83 %endif
84 %endif
84
85
85 make all
86 make all PYTHON=%{pythonexe}
86 make -C contrib/chg
87 make -C contrib/chg
87
88
89 sed -i -e '1s|#!/usr/bin/env python$|#!/usr/bin/env %{pythonexe}|' contrib/hg-ssh
90
88 %install
91 %install
89 rm -rf $RPM_BUILD_ROOT
92 rm -rf $RPM_BUILD_ROOT
90
93
91 %if "%{?withpython}"
94 %if "%{?withpython}"
92
95
93 PYPATH=$PWD/%{pythonname}
96 PYPATH=$PWD/%{pythonname}
94 cd $PYPATH
97 cd $PYPATH
95 make install DESTDIR=$RPM_BUILD_ROOT
98 make install DESTDIR=$RPM_BUILD_ROOT
96 # these .a are not necessary and they are readonly and strip fails - kill them!
99 # these .a are not necessary and they are readonly and strip fails - kill them!
97 rm -f %{buildroot}%{hgpyprefix}/lib/{,python2.*/config}/libpython2.*.a
100 rm -f %{buildroot}%{hgpyprefix}/lib/{,python2.*/config}/libpython2.*.a
98 cd -
101 cd -
99
102
100 cd %{docutilsname}
103 cd %{docutilsname}
101 LD_LIBRARY_PATH=$PYPATH $PYPATH/python setup.py install --root="$RPM_BUILD_ROOT"
104 LD_LIBRARY_PATH=$PYPATH $PYPATH/python setup.py install --root="$RPM_BUILD_ROOT"
102 cd -
105 cd -
103
106
104 PATH=$PYPATH:$PATH LD_LIBRARY_PATH=$PYPATH make install DESTDIR=$RPM_BUILD_ROOT PREFIX=%{hgpyprefix} MANDIR=%{_mandir}
107 PATH=$PYPATH:$PATH LD_LIBRARY_PATH=$PYPATH make install PYTHON=%{pythonexe} DESTDIR=$RPM_BUILD_ROOT PREFIX=%{hgpyprefix} MANDIR=%{_mandir}
105 mkdir -p $RPM_BUILD_ROOT%{_bindir}
108 mkdir -p $RPM_BUILD_ROOT%{_bindir}
106 ( cd $RPM_BUILD_ROOT%{_bindir}/ && ln -s ../..%{hgpyprefix}/bin/hg . )
109 ( cd $RPM_BUILD_ROOT%{_bindir}/ && ln -s ../..%{hgpyprefix}/bin/hg . )
107 ( cd $RPM_BUILD_ROOT%{_bindir}/ && ln -s ../..%{hgpyprefix}/bin/python2.? %{pythonhg} )
110 ( cd $RPM_BUILD_ROOT%{_bindir}/ && ln -s ../..%{hgpyprefix}/bin/python2.? %{pythonhg} )
108
111
109 %else
112 %else
110
113
111 make install DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} MANDIR=%{_mandir}
114 make install PYTHON=%{pythonexe} DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} MANDIR=%{_mandir}
112
115
113 %endif
116 %endif
114
117
115 install -m 755 contrib/chg/chg $RPM_BUILD_ROOT%{_bindir}/
118 install -m 755 contrib/chg/chg $RPM_BUILD_ROOT%{_bindir}/
116 install -m 755 contrib/hgk $RPM_BUILD_ROOT%{_bindir}/
119 install -m 755 contrib/hgk $RPM_BUILD_ROOT%{_bindir}/
117 install -m 755 contrib/hg-ssh $RPM_BUILD_ROOT%{_bindir}/
120 install -m 755 contrib/hg-ssh $RPM_BUILD_ROOT%{_bindir}/
118
121
119 bash_completion_dir=$RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
122 bash_completion_dir=$RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
120 mkdir -p $bash_completion_dir
123 mkdir -p $bash_completion_dir
121 install -m 644 contrib/bash_completion $bash_completion_dir/mercurial.sh
124 install -m 644 contrib/bash_completion $bash_completion_dir/mercurial.sh
122
125
123 zsh_completion_dir=$RPM_BUILD_ROOT%{_datadir}/zsh/site-functions
126 zsh_completion_dir=$RPM_BUILD_ROOT%{_datadir}/zsh/site-functions
124 mkdir -p $zsh_completion_dir
127 mkdir -p $zsh_completion_dir
125 install -m 644 contrib/zsh_completion $zsh_completion_dir/_mercurial
128 install -m 644 contrib/zsh_completion $zsh_completion_dir/_mercurial
126
129
127 mkdir -p $RPM_BUILD_ROOT%{emacs_lispdir}
130 mkdir -p $RPM_BUILD_ROOT%{emacs_lispdir}
128 install -m 644 contrib/mercurial.el $RPM_BUILD_ROOT%{emacs_lispdir}/
131 install -m 644 contrib/mercurial.el $RPM_BUILD_ROOT%{emacs_lispdir}/
129 install -m 644 contrib/mq.el $RPM_BUILD_ROOT%{emacs_lispdir}/
132 install -m 644 contrib/mq.el $RPM_BUILD_ROOT%{emacs_lispdir}/
130
133
131 mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/mercurial/hgrc.d
134 mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/mercurial/hgrc.d
132
135
133 %clean
136 %clean
134 rm -rf $RPM_BUILD_ROOT
137 rm -rf $RPM_BUILD_ROOT
135
138
136 %files
139 %files
137 %defattr(-,root,root,-)
140 %defattr(-,root,root,-)
138 %doc CONTRIBUTORS COPYING doc/README doc/hg*.txt doc/hg*.html *.cgi contrib/*.fcgi
141 %doc CONTRIBUTORS COPYING doc/README doc/hg*.txt doc/hg*.html *.cgi contrib/*.fcgi
139 %doc %attr(644,root,root) %{_mandir}/man?/hg*
142 %doc %attr(644,root,root) %{_mandir}/man?/hg*
140 %doc %attr(644,root,root) contrib/*.svg
143 %doc %attr(644,root,root) contrib/*.svg
141 %dir %{_datadir}/zsh/
144 %dir %{_datadir}/zsh/
142 %dir %{_datadir}/zsh/site-functions/
145 %dir %{_datadir}/zsh/site-functions/
143 %{_datadir}/zsh/site-functions/_mercurial
146 %{_datadir}/zsh/site-functions/_mercurial
144 %dir %{_datadir}/emacs/site-lisp/
147 %dir %{_datadir}/emacs/site-lisp/
145 %{_datadir}/emacs/site-lisp/mercurial.el
148 %{_datadir}/emacs/site-lisp/mercurial.el
146 %{_datadir}/emacs/site-lisp/mq.el
149 %{_datadir}/emacs/site-lisp/mq.el
147 %{_bindir}/hg
150 %{_bindir}/hg
148 %{_bindir}/chg
151 %{_bindir}/chg
149 %{_bindir}/hgk
152 %{_bindir}/hgk
150 %{_bindir}/hg-ssh
153 %{_bindir}/hg-ssh
151 %dir %{_sysconfdir}/bash_completion.d/
154 %dir %{_sysconfdir}/bash_completion.d/
152 %config(noreplace) %{_sysconfdir}/bash_completion.d/mercurial.sh
155 %config(noreplace) %{_sysconfdir}/bash_completion.d/mercurial.sh
153 %dir %{_sysconfdir}/mercurial
156 %dir %{_sysconfdir}/mercurial
154 %dir %{_sysconfdir}/mercurial/hgrc.d
157 %dir %{_sysconfdir}/mercurial/hgrc.d
155 %if "%{?withpython}"
158 %if "%{?withpython}"
156 %{_bindir}/%{pythonhg}
159 %{_bindir}/%{pythonhg}
157 %{hgpyprefix}
160 %{hgpyprefix}
158 %else
161 %else
159 %{_libdir}/python%{pythonver}/site-packages/%{name}-*-py%{pythonver}.egg-info
162 %{_libdir}/python%{pythonver}/site-packages/%{name}-*-py%{pythonver}.egg-info
160 %{_libdir}/python%{pythonver}/site-packages/%{name}
163 %{_libdir}/python%{pythonver}/site-packages/%{name}
161 %{_libdir}/python%{pythonver}/site-packages/hgext
164 %{_libdir}/python%{pythonver}/site-packages/hgext
162 %{_libdir}/python%{pythonver}/site-packages/hgext3rd
165 %{_libdir}/python%{pythonver}/site-packages/hgext3rd
163 %{_libdir}/python%{pythonver}/site-packages/hgdemandimport
166 %{_libdir}/python%{pythonver}/site-packages/hgdemandimport
164 %endif
167 %endif
General Comments 0
You need to be logged in to leave comments. Login now