Proposal ocaml guidelines

Nigel Jones dev at nigelj.com
Fri May 4 11:07:12 UTC 2007


Richard W.M. Jones wrote:
> Nigel Jones wrote:
>> Sorry to come into the discussion a bit later than expected.
>> Richard W.M. Jones wrote:
>>> Hans de Goede wrote:
>>>> The proposal I mailed to the list yesterday is now available here:
>>>> http://fedoraproject.org/wiki/PackagingDrafts/OCaml
>>> What's the thinking behind removing *.mli by default?  Even in packages
>>> which are well documented, the *.mli files are the definitive reference
>>> for programmers.  I think they should always be in the -devel
>>> subpackage.
>> I replaced it in ocaml-SDL and ocaml-camlimages with ocamldoc generated
>> html references, which seems to be pretty much the same as the
>> individual mli files.
> 
> But I wanna use 'less'!
> 
> Seriously, I don't want to fire up a browser just to check an interface.
>  Even the text mode browsers have serious UI problems compared to
> 'less /usr/lib/ocaml/3.08.3/list.mli'.
> 
> Is there any reason why *.mli files can't be included in a -devel
> package?  I'm not talking about the main library package where it would
> add bloat, but in a package which would only need to be installed by
> developers.
Technically, if we are going to package developer documentation, they
should be in a noarch -doc package (i.e. ocaml-camlimages-doc).

What I'd suggest is:
Packager splits out .mli files from build, compresses and gunzips them,
and creates a spec file, something to the tune of:

----
[njones at ip-96 SPECS]$ cat ocaml-camlimages-doc.spec
Name:           ocaml-camlimages-doc
Version:        2.2.0
Release:        1%{?dist}
Summary:        Developer Documentation for ocaml-camlimages

Group:          Documentation
License:        LGPL
URL:            -
Source0:        ocaml-camlimages-doc-2.2.0.tar.gz
BuildRoot:
%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch:      noarch
BuildRequires:  texinfo ocaml ocaml-ocamldoc ocaml-camlimages-devel

%description
Dev Docu....

%prep
%setup -q


%build
ocamldoc.opt -texi -I /usr/lib/ocaml/lablgtk2/ \
-I /usr/lib/ocaml/camlimages/ -t "camlimages" \
-info-section "Ocaml Libraries" -intf *.*
makeinfo ocamldoc.texi
gzip camlimages.info

%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/usr/lib/ocaml/camlimages
mkdir -p $RPM_BUILD_ROOT/usr/share/info
cp -p *.mli $RPM_BUILD_ROOT/usr/lib/ocaml/camlimages/
cp -p *.info.gz $RPM_BUILD_ROOT/usr/share/info

%clean
rm -rf $RPM_BUILD_ROOT

%post
/sbin/install-info \
    --entry "* camlimages: (camlimages).        OCaml image processing
library" \
    --section "Ocaml Libraries" \
    %{_infodir}/camlimages.info \
    %{_infodir}/dir 2>/dev/null || :


%preun
if [ $1 -eq 0 ]; then
  /sbin/install-info --delete %{_infodir}/camlimages.info
%{_infodir}/dir 2>/dev/null || :
fi

%files
%defattr(-,root,root,-)
/usr/lib/ocaml/camlimages/*.mli
%{_infodir}/*


%changelog
----

This satisfies the answer of "I want my mli files" and "I want something
a bit more meaty".

I agree that html documentation wasn't the best choice, but this could work.

N.J.




More information about the fedora-devel-list mailing list