##// END OF EJS Templates
rust-status: cap the number of concurrent threads to 16...
rust-status: cap the number of concurrent threads to 16 During benchmarking it was determined that the use of more threads is very advantageous... until we use more than 16. This is most likely due to some resource contention (thrashing, etc.). Until we have time to figure out and fix the underlying cause, let's just cap at 16 threads. Differential Revision: https://phab.mercurial-scm.org/D12384

File last commit:

r49155:5d08b289 6.0 stable
r49828:f8025bfc stable
Show More
mercurial.spec
174 lines | 5.0 KiB | text/x-rpm-spec | RPMSpecLexer
Gregory Szorc
packaging: move mercurial.spec to contrib/packaging/...
r38027 %global emacs_lispdir %{_datadir}/emacs/site-lisp
%define withpython %{nil}
Mads Kiilerich
packaging: use "python3" for fedora29 ... and as buildrpm default...
r43675 %global pythonexe python3
Mathias De Mare
packaging: switch centos 7 packaging to python 3...
r46440 %global pythondocutils python3-docutils
Mads Kiilerich
packaging: fix docker-centos5 - use pythonexe and set to "python" as before...
r43673
Gregory Szorc
packaging: move mercurial.spec to contrib/packaging/...
r38027 %if "%{?withpython}"
%global pythonver %{withpython}
%global pythonname Python-%{withpython}
%global docutilsname docutils-0.14
%global docutilsmd5 c53768d63db3873b7d452833553469de
%global pythonhg python-hg
%global hgpyprefix /opt/%{pythonhg}
# byte compilation will fail on some some Python /test/ files
%global _python_bytecompile_errors_terminate_build 0
%else
Mads Kiilerich
packaging: be explicit about Python version in rpm spec...
r43649 %global pythonver %(%{pythonexe} -c 'import sys;print(".".join(map(str, sys.version_info[:2])))')
Gregory Szorc
packaging: move mercurial.spec to contrib/packaging/...
r38027
%endif
Summary: A fast, lightweight Source Control Management system
Name: mercurial
Version: snapshot
Release: 0
License: GPLv2+
Mathias De Mare
packaging: make rpm relocatable...
r49155 Prefix: /
Gregory Szorc
packaging: move mercurial.spec to contrib/packaging/...
r38027 Group: Development/Tools
URL: https://mercurial-scm.org/
Source0: %{name}-%{version}-%{release}.tar.gz
%if "%{?withpython}"
Source1: %{pythonname}.tgz
Source2: %{docutilsname}.tar.gz
%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildRequires: make, gcc, gettext
%if "%{?withpython}"
BuildRequires: readline-devel, openssl-devel, ncurses-devel, zlib-devel, bzip2-devel
%else
Mathias De Mare
packaging: switch centos 7 packaging to python 3...
r46440 BuildRequires: %{pythonexe} >= %{pythonver}, %{pythonexe}-devel, %{pythondocutils}
Mads Kiilerich
packaging: use "python3" for fedora29 ... and as buildrpm default...
r43675 Requires: %{pythonexe} >= %{pythonver}
Gregory Szorc
packaging: move mercurial.spec to contrib/packaging/...
r38027 %endif
# The hgk extension uses the wish tcl interpreter, but we don't enforce it
#Requires: tk
%description
Mercurial is a fast, lightweight source control management system designed
for efficient handling of very large distributed projects.
%prep
%if "%{?withpython}"
%setup -q -n mercurial-%{version}-%{release} -a1 -a2
# despite the comments in cgi.py, we do this to prevent rpmdeps from picking /usr/local/bin/python up
Mads Kiilerich
packaging: be explicit about Python version in rpm spec...
r43649 sed -i '1c#! /usr/bin/env %{pythonexe}' %{pythonname}/Lib/cgi.py
Gregory Szorc
packaging: move mercurial.spec to contrib/packaging/...
r38027 %else
%setup -q -n mercurial-%{version}-%{release}
%endif
%build
Mads Kiilerich
packaging: introduce Python3 support as buildrpm --python3...
r43650 export HGPYTHON3=1
Gregory Szorc
packaging: move mercurial.spec to contrib/packaging/...
r38027 %if "%{?withpython}"
PYPATH=$PWD/%{pythonname}
cd $PYPATH
./configure --prefix=%{hgpyprefix}
make all %{?_smp_mflags}
cd -
cd %{docutilsname}
LD_LIBRARY_PATH=$PYPATH $PYPATH/python setup.py build
cd -
# verify Python environment
LD_LIBRARY_PATH=$PYPATH PYTHONPATH=$PWD/%{docutilsname} $PYPATH/python -c 'import sys, zlib, bz2, ssl, curses, readline'
# set environment for make
export PATH=$PYPATH:$PATH
export LD_LIBRARY_PATH=$PYPATH
export CFLAGS="-L $PYPATH"
export PYTHONPATH=$PWD/%{docutilsname}
%endif
Mads Kiilerich
packaging: be explicit about Python version in rpm spec...
r43649 make all PYTHON=%{pythonexe}
Gregory Szorc
packaging: move mercurial.spec to contrib/packaging/...
r38027 make -C contrib/chg
Mads Kiilerich
packaging: be explicit about Python version in rpm spec...
r43649 sed -i -e '1s|#!/usr/bin/env python$|#!/usr/bin/env %{pythonexe}|' contrib/hg-ssh
Gregory Szorc
packaging: move mercurial.spec to contrib/packaging/...
r38027 %install
rm -rf $RPM_BUILD_ROOT
Mads Kiilerich
packaging: introduce Python3 support as buildrpm --python3...
r43650 export HGPYTHON3=1
Gregory Szorc
packaging: move mercurial.spec to contrib/packaging/...
r38027 %if "%{?withpython}"
PYPATH=$PWD/%{pythonname}
cd $PYPATH
make install DESTDIR=$RPM_BUILD_ROOT
# these .a are not necessary and they are readonly and strip fails - kill them!
rm -f %{buildroot}%{hgpyprefix}/lib/{,python2.*/config}/libpython2.*.a
cd -
cd %{docutilsname}
LD_LIBRARY_PATH=$PYPATH $PYPATH/python setup.py install --root="$RPM_BUILD_ROOT"
cd -
Mathias De Mare
Backed out changeset 9b8f326731ac...
r48266 PATH=$PYPATH:$PATH LD_LIBRARY_PATH=$PYPATH make install PYTHON=%{pythonexe} DESTDIR=$RPM_BUILD_ROOT PREFIX=%{hgpyprefix} MANDIR=%{_mandir} PURE="--rust"
Gregory Szorc
packaging: move mercurial.spec to contrib/packaging/...
r38027 mkdir -p $RPM_BUILD_ROOT%{_bindir}
( cd $RPM_BUILD_ROOT%{_bindir}/ && ln -s ../..%{hgpyprefix}/bin/hg . )
( cd $RPM_BUILD_ROOT%{_bindir}/ && ln -s ../..%{hgpyprefix}/bin/python2.? %{pythonhg} )
%else
Mathias De Mare
Backed out changeset 9b8f326731ac...
r48266 make install PYTHON=%{pythonexe} DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} MANDIR=%{_mandir} PURE="--rust"
Gregory Szorc
packaging: move mercurial.spec to contrib/packaging/...
r38027
%endif
install -m 755 contrib/chg/chg $RPM_BUILD_ROOT%{_bindir}/
install -m 755 contrib/hgk $RPM_BUILD_ROOT%{_bindir}/
install -m 755 contrib/hg-ssh $RPM_BUILD_ROOT%{_bindir}/
bash_completion_dir=$RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
mkdir -p $bash_completion_dir
install -m 644 contrib/bash_completion $bash_completion_dir/mercurial.sh
zsh_completion_dir=$RPM_BUILD_ROOT%{_datadir}/zsh/site-functions
mkdir -p $zsh_completion_dir
install -m 644 contrib/zsh_completion $zsh_completion_dir/_mercurial
mkdir -p $RPM_BUILD_ROOT%{emacs_lispdir}
install -m 644 contrib/mercurial.el $RPM_BUILD_ROOT%{emacs_lispdir}/
install -m 644 contrib/mq.el $RPM_BUILD_ROOT%{emacs_lispdir}/
mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/mercurial/hgrc.d
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
Mads Kiilerich
packaging: also include hgweb.wsgi in rpms
r43660 %doc CONTRIBUTORS COPYING doc/README doc/hg*.txt doc/hg*.html *.cgi contrib/*.fcgi contrib/*.wsgi
Gregory Szorc
packaging: move mercurial.spec to contrib/packaging/...
r38027 %doc %attr(644,root,root) %{_mandir}/man?/hg*
%doc %attr(644,root,root) contrib/*.svg
%dir %{_datadir}/zsh/
%dir %{_datadir}/zsh/site-functions/
%{_datadir}/zsh/site-functions/_mercurial
%dir %{_datadir}/emacs/site-lisp/
%{_datadir}/emacs/site-lisp/mercurial.el
%{_datadir}/emacs/site-lisp/mq.el
%{_bindir}/hg
%{_bindir}/chg
%{_bindir}/hgk
%{_bindir}/hg-ssh
%dir %{_sysconfdir}/bash_completion.d/
%config(noreplace) %{_sysconfdir}/bash_completion.d/mercurial.sh
%dir %{_sysconfdir}/mercurial
%dir %{_sysconfdir}/mercurial/hgrc.d
%if "%{?withpython}"
%{_bindir}/%{pythonhg}
%{hgpyprefix}
%else
%{_libdir}/python%{pythonver}/site-packages/%{name}-*-py%{pythonver}.egg-info
%{_libdir}/python%{pythonver}/site-packages/%{name}
%{_libdir}/python%{pythonver}/site-packages/hgext
%{_libdir}/python%{pythonver}/site-packages/hgext3rd
%{_libdir}/python%{pythonver}/site-packages/hgdemandimport
%endif