I'm packaging cmake https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=184467 and I'd like to ship the emacs .el file and vim .vim files. Currently, I have:
%package emacs Summary: Emacs support for cmake Group: Development/Tools Requires: %{name} = %{version}-%{release} Requires: %{_datadir}/emacs/site-lisp
%description emacs %{summary}.
%package vim Summary: Vim support for cmake Group: Development/Tools Requires: %{name} = %{version}-%{release} Requires: %{_datadir}/vim/vim64/syntax, %{_datadir}/vim/vim64/indent
%description vim %{summary}.
%files emacs %defattr(-,root,root,-) %{_datadir}/emacs/site-lisp/cmake-mode.el
%files vim %defattr(-,root,root,-) %{_datadir}/vim/vim64/syntax/cmake.vim %{_datadir}/vim/vim64/indent/cmake.vim
Which I believe is the pedantically correct way to do it, but cumbersome as folks need to know to install the -emacs or -vim package as desired. I do want to avoid requiring emacs and vim in the main package though.
Some suggestions have been:
- Another simplistic approach is to 1. install the files to /usr/share/emacs/site-lisp 2. include these in the main pkg (ie, no subpkg) 3. Add no additional/special Requires wrt emacs.
It's simple and it works (when emacs is installed, or any other package that "owns" /usr/share/emacs/site-lisp). At worst, when emacs is not installed, you have files installed into an unowned dir. IMO, the benefits of this approach (mostly it's simplicity) outweigh the disadvantage of installing files into a potentially unowned dir (site-lisp).
- Another possibility is to own "/usr/share/emacs". Several other packages do this.
The second is discouraged in the Fedora Extras Packaging Guidelines except for a "good reason".
I like the first, but don't know what the issues with unowned directories are. The packaging guidelines don't seem to address this directly.
packaging@lists.fedoraproject.org