Fix to comply with emacs packaging guidelines

This commit is contained in:
Neal Becker 2008-04-08 14:33:59 +00:00
parent 5e35fe96e3
commit adcde5c189

View File

@ -1,7 +1,7 @@
Summary: A fast, lightweight distributed source control management system
Name: mercurial
Version: 1.0
Release: 4%{?dist}
Release: 6%{?dist}
License: GPLv2
Group: Development/Tools
URL: http://www.selenic.com/mercurial/
@ -20,19 +20,83 @@ Quick start: http://www.selenic.com/mercurial/wiki/index.cgi/QuickStart
Tutorial: http://www.selenic.com/mercurial/wiki/index.cgi/Tutorial
Extensions: http://www.selenic.com/mercurial/wiki/index.cgi/CategoryExtension
%package emacs
%define pkg mercurial
#%define pkgname Foo
# If the emacs-el package has installed a pkgconfig file, use that to determine
# install locations and Emacs version at build time, otherwise set defaults.
%if %($(pkg-config emacs) ; echo $?)
%define emacs_version 22.1
%define emacs_lispdir %{_datadir}/emacs/site-lisp
%define emacs_startdir %{_datadir}/emacs/site-lisp/site-start.d
%else
%define emacs_version %(pkg-config emacs --modversion)
%define emacs_lispdir %(pkg-config emacs --variable sitepkglispdir)
%define emacs_startdir %(pkg-config emacs --variable sitestartdir)
%endif
# If the xemacs-devel package has installed a pkgconfig file, use that to determine
# install locations and Emacs version at build time, otherwise set defaults.
%if %($(pkg-config xemacs) ; echo $?)
%define xemacs_version 21.5
%define xemacs_lispdir %{_datadir}/xemacs/site-packages
%define xemacs_startdir %{_datadir}/xemacs/site-packages/site-start.d
%else
%define xemacs_version %(pkg-config xemacs --modversion)
%define xemacs_lispdir %(pkg-config xemacs --variable sitepkglispdir)
%define xemacs_startdir %(pkg-config xemacs --variable sitestartdir)
%endif
%package -n emacs-%{pkg}
Summary: Mercurial version control system support for Emacs
Group: Applications/Editors
Requires: hg = %{version}-%{release}, emacs-common
Requires: emacs(bin) >= %{emacs_version}
%description emacs
%{summary}.
%description -n emacs-%{pkg}
Contains byte compiled elisp packages for %{pkg}.
To get started: start emacs, load hg-mode with M-x hg-mode, and show
help with C-c h h
%package -n emacs-%{pkg}-el
Summary: Elisp source files for %{pkg} under GNU Emacs
Group: Development/Tools
Requires: emacs-%{pkg} = %{version}-%{release}
%description -n emacs-%{pkg}-el
This package contains the elisp source files for %{pkg} under GNU Emacs. You
do not need to install this package to run %{pkg}. Install the emacs-%{pkg}
package to use %{pkg} with GNU Emacs.
%package -n xemacs-%{pkg}
Summary: Compiled elisp files to run %{pkg} under XEmacs
Group: Development/Tools
Requires: xemacs(bin) >= %{xemacs_version}
%description -n xemacs-%{pkg}
This package contains the byte compiled elisp packages to use %{pkg} with
XEmacs.
To get started: start xemacs, load hg-mode with M-x hg-mode, and show
help with C-c h h
%package -n xemacs-%{pkg}-el
Summary: Elisp source files for %{pkg} under XEmacs
Group: Development/Tools
Requires: xemacs-%{pkg} = %{version}-%{release}
%description -n xemacs-%{pkg}-el
This package contains the elisp source files for %{pkg} under XEmacs. You do
not need to install this package to run %{pkg}. Install the xemacs-%{pkg}
package to use %{pkg} with XEmacs.
%package hgk
Summary: Hgk interface for mercurial
Group: Development/Tools
Requires: hg = %{version}-%{release}, tk
%description hgk
A Mercurial extension for displaying the change history graphically
using Tcl/Tk. Displays branches and merges in an easily
@ -53,6 +117,9 @@ rm -rf $RPM_BUILD_ROOT
python setup.py install -O1 --root $RPM_BUILD_ROOT --prefix %{_prefix} --record=%{name}.files
make install-doc DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir}
grep -v 'hgk.py*' < %{name}.files > %{name}-base.files
grep 'hgk.py*' < %{name}.files > %{name}-hgk.files
install contrib/hgk $RPM_BUILD_ROOT%{_bindir}
install contrib/convert-repo $RPM_BUILD_ROOT%{_bindir}/mercurial-convert-repo
install contrib/hg-ssh $RPM_BUILD_ROOT%{_bindir}
@ -66,25 +133,43 @@ 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
lisp_dir=$RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp
mkdir -p $lisp_dir
install -m 644 contrib/mercurial.el $lisp_dir
xlisp_dir=$RPM_BUILD_ROOT%{_datadir}/xemacs/site-packages/lisp
mkdir -p $xlisp_dir
install -m 644 contrib/mercurial.el $xlisp_dir
mkdir -p $RPM_BUILD_ROOT%{emacs_lispdir}
mkdir -p $RPM_BUILD_ROOT%{xemacs_lispdir}
pushd contrib
for file in mercurial.el mq.el; do
emacs -batch --no-site-file -f batch-byte-compile $file
install -m 644 $file ${file}c $RPM_BUILD_ROOT%{emacs_lispdir}
rm ${file}c
xemacs -batch -l mercurial.el --no-site-file -f batch-byte-compile $file
install -m 644 $file ${file}c $RPM_BUILD_ROOT%{xemacs_lispdir}
rm ${file}c
done
popd
mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/mercurial/hgrc.d
mkdir -p $lisp_dir/site-start.d/ && install -m644 %SOURCE1 $lisp_dir/site-start.d/
mkdir -p $xlisp_dir/site-start.d/ && install -m644 %SOURCE1 $xlisp_dir/site-start.d/
mkdir -p $RPM_BUILD_ROOT%{emacs_startdir} && install -m644 %SOURCE1 $RPM_BUILD_ROOT%{emacs_startdir}
mkdir -p $RPM_BUILD_ROOT%{xemacs_startdir} && install -m644 %SOURCE1 $RPM_BUILD_ROOT%{xemacs_startdir}
cat >hgk.rc <<EOF
[extensions]
# enable hgk extension ('hg help' shows 'view' as a command)
hgk=
EOF
install hgk.rc $RPM_BUILD_ROOT/%{_sysconfdir}/mercurial/hgrc.d
install contrib/mergetools.hgrc $RPM_BUILD_ROOT%{_sysconfdir}/mercurial/hgrc.d
%clean
rm -rf $RPM_BUILD_ROOT
%files -f %{name}.files
%files -f %{name}-base.files
%defattr(-,root,root,-)
%doc CONTRIBUTORS COPYING doc/README doc/hg*.txt doc/hg*.html doc/ja *.cgi contrib/*.fcgi
%doc %attr(644,root,root) %{_mandir}/man?/hg*.gz
%doc %attr(644,root,root) contrib/*.svg contrib/*.hgrc
%doc %attr(644,root,root) contrib/*.svg contrib/sample.hgrc
%{_sysconfdir}/bash_completion.d/mercurial.sh
%{_datadir}/zsh/site-functions/_mercurial
%{_bindir}/hg-ssh
@ -93,20 +178,39 @@ rm -rf $RPM_BUILD_ROOT
%{_bindir}/mercurial-convert-repo
%dir %{_sysconfdir}/mercurial
%dir %{_sysconfdir}/mercurial/hgrc.d
%{_sysconfdir}/mercurial/hgrc.d/mergetools.hgrc
%files emacs
%{_datadir}/emacs/site-lisp/mercurial.el
%{_datadir}/xemacs/site-packages/lisp/mercurial.el
%{_datadir}/emacs/site-lisp/site-start.d/*
%{_datadir}/xemacs/site-packages/lisp/site-start.d/*
%files -n emacs-%{pkg}
%{emacs_lispdir}/*.elc
%{emacs_startdir}/*.el
%files hgk
%files -n emacs-%{pkg}-el
%{emacs_lispdir}/*.el
%files -n xemacs-%{pkg}
%{xemacs_lispdir}/*.elc
%{xemacs_startdir}/*.el
%files -n xemacs-%{pkg}-el
%{xemacs_lispdir}/*.el
%files hgk -f %{name}-hgk.files
%{_bindir}/hgk
%{_sysconfdir}/mercurial/hgrc.d/hgk.rc
#%check
#cd tests && python run-tests.py
%changelog
* Tue Apr 8 2008 Neal Becker <ndbecker2@gmail.com> - 1.0-6
- fix to comply with emacs packaging guidelines
* Thu Mar 27 2008 Neal Becker <ndbecker2@gmail.com> - 1.0-5
- Move hgk-related py files to hgk
- Put mergetools.hgrc in /etc/mercurial/hgrc.d
- Add hgk.rc and put in /etc/mercurial/hgrc.d
* Wed Mar 26 2008 Neal Becker <ndbecker2@gmail.com> - 1.0-4
- Rename mercurial-site-start -> mercurial-site-start.el