# HG changeset patch # User Gregory Szorc # Date 1526146716 25200 # Node ID c1a028d150059e2dcff2efa73ffdbca7e22589a7 # Parent 64b086f0ebb5b6ac9037a951719374daaa6914d4 packaging: move mercurial.spec to contrib/packaging/ Differential Revision: https://phab.mercurial-scm.org/D3545 diff -r 64b086f0ebb5 -r c1a028d15005 contrib/buildrpm --- a/contrib/buildrpm Sat May 12 10:31:34 2018 -0700 +++ b/contrib/buildrpm Sat May 12 10:38:36 2018 -0700 @@ -37,7 +37,7 @@ cd "`dirname $0`/.." -specfile=$PWD/contrib/mercurial.spec +specfile=$PWD/contrib/packaging/mercurial.spec if [ ! -f $specfile ]; then echo "Cannot find $specfile!" 1>&2 exit 1 diff -r 64b086f0ebb5 -r c1a028d15005 contrib/mercurial.spec --- a/contrib/mercurial.spec Sat May 12 10:31:34 2018 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,164 +0,0 @@ -%global emacs_lispdir %{_datadir}/emacs/site-lisp - -%define withpython %{nil} - -%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 - -%global pythonver %(python -c 'import sys;print ".".join(map(str, sys.version_info[:2]))') - -%endif - -Summary: A fast, lightweight Source Control Management system -Name: mercurial -Version: snapshot -Release: 0 -License: GPLv2+ -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 -BuildRequires: python >= 2.7, python-devel, python-docutils >= 0.5 -Requires: python >= 2.7 -%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 -sed -i '1c#! /usr/bin/env python' %{pythonname}/Lib/cgi.py -%else -%setup -q -n mercurial-%{version}-%{release} -%endif - -%build - -%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 - -make all -make -C contrib/chg - -%install -rm -rf $RPM_BUILD_ROOT - -%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 - - -PATH=$PYPATH:$PATH LD_LIBRARY_PATH=$PYPATH make install DESTDIR=$RPM_BUILD_ROOT PREFIX=%{hgpyprefix} MANDIR=%{_mandir} -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 - -make install DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} MANDIR=%{_mandir} - -%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,-) -%doc CONTRIBUTORS COPYING doc/README doc/hg*.txt doc/hg*.html *.cgi contrib/*.fcgi -%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 diff -r 64b086f0ebb5 -r c1a028d15005 contrib/packaging/mercurial.spec --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contrib/packaging/mercurial.spec Sat May 12 10:38:36 2018 -0700 @@ -0,0 +1,164 @@ +%global emacs_lispdir %{_datadir}/emacs/site-lisp + +%define withpython %{nil} + +%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 + +%global pythonver %(python -c 'import sys;print ".".join(map(str, sys.version_info[:2]))') + +%endif + +Summary: A fast, lightweight Source Control Management system +Name: mercurial +Version: snapshot +Release: 0 +License: GPLv2+ +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 +BuildRequires: python >= 2.7, python-devel, python-docutils >= 0.5 +Requires: python >= 2.7 +%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 +sed -i '1c#! /usr/bin/env python' %{pythonname}/Lib/cgi.py +%else +%setup -q -n mercurial-%{version}-%{release} +%endif + +%build + +%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 + +make all +make -C contrib/chg + +%install +rm -rf $RPM_BUILD_ROOT + +%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 - + +PATH=$PYPATH:$PATH LD_LIBRARY_PATH=$PYPATH make install DESTDIR=$RPM_BUILD_ROOT PREFIX=%{hgpyprefix} MANDIR=%{_mandir} +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 + +make install DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} MANDIR=%{_mandir} + +%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,-) +%doc CONTRIBUTORS COPYING doc/README doc/hg*.txt doc/hg*.html *.cgi contrib/*.fcgi +%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