Add new development subpackage. Install all compiled dune libraries.

This commit is contained in:
Ben Rosser 2019-08-06 14:33:41 -04:00
parent f1b8e426d5
commit e1c4ce182d

View File

@ -1,6 +1,6 @@
Name: ocaml-dune
Version: 1.10.0
Release: 4%{?dist}
Release: 5%{?dist}
Summary: A composable build system for OCaml
%global libname %(echo %{name} | sed -e 's/^ocaml-//')
@ -11,7 +11,6 @@ License: MIT and LGPLv2 with exceptions and ISC
URL: https://dune.build
Source0: https://github.com/ocaml/%{libname}/archive/%{version}/%{libname}-%{version}.tar.gz
BuildRequires: ocaml >= 4.02.3
BuildRequires: ocaml-findlib-devel
@ -49,6 +48,14 @@ adapted to the open source world. It has matured over a long time and is used
daily by hundred of developers, which means that it is highly tested and
productive.
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?isa} = %{version}-%{release}
%description devel
The %{name}-devel package contains libraries and
signature files for developing applications that use %{name}.
%package doc
Summary: HTML documentation for %{name}
Requires: %{name} = %{version}-%{release}
@ -82,6 +89,17 @@ ln -sfvbn dune %{buildroot}%{_bindir}/jbuilder
cp -av _boot/default/doc/*.1 %{buildroot}%{_mandir}/man1/
cp -av _boot/default/doc/*.5 %{buildroot}%{_mandir}/man5/
# Dune also has libraries now, which need to be installed via the standard way.
mkdir -p %{buildroot}%{_libdir}/ocaml/%{libname}/
cp -aLr _boot/install/default/lib/%{libname}/* %{buildroot}%{_libdir}/ocaml/%{libname}/
# Remove *.ml files from installation.
# This is a little annoying. ocaml/dune has a bunch of subdirectories that actually contain code.
# But the "_wp" subdirectory *itself* contains subdirectories with compiled code.
# So I've special-cased that one.
rm -fv %{buildroot}%{_libdir}/ocaml/%{libname}/*/*.ml
rm -fv %{buildroot}%{_libdir}/ocaml/%{libname}/_wp/*/*.ml
# Install documentation by way of pkgdocdir.
mkdir -p %{buildroot}%{_pkgdocdir}/
cp -ar README.md CHANGES.md doc/_build/* %{buildroot}%{_pkgdocdir}/
@ -99,6 +117,30 @@ cp -ar README.md CHANGES.md doc/_build/* %{buildroot}%{_pkgdocdir}/
%{_bindir}/dune
%{_mandir}/man*/dune*
%dir %{_pkgdocdir}
%{_libdir}/ocaml/%{libname}
%ifarch %{ocaml_native_compiler}
%exclude %{_libdir}/ocaml/%{libname}/*/*.a
%exclude %{_libdir}/ocaml/%{libname}/*/*.cmxa
%exclude %{_libdir}/ocaml/%{libname}/*/*.cmx
%exclude %{_libdir}/ocaml/%{libname}/_wp/*/*.a
%exclude %{_libdir}/ocaml/%{libname}/_wp/*/*.cmxa
%exclude %{_libdir}/ocaml/%{libname}/_wp/*/*.cmx
%endif
%exclude %{_libdir}/ocaml/%{libname}/*/*.mli
%exclude %{_libdir}/ocaml/%{libname}/_wp/*/*.mli
%files devel
%ifarch %{ocaml_native_compiler}
%{_libdir}/ocaml/%{libname}/*/*.a
%{_libdir}/ocaml/%{libname}/*/*.cmxa
%{_libdir}/ocaml/%{libname}/*/*.cmx
%{_libdir}/ocaml/%{libname}/_wp/*/*.a
%{_libdir}/ocaml/%{libname}/_wp/*/*.cmxa
%{_libdir}/ocaml/%{libname}/_wp/*/*.cmx
%endif
%{_libdir}/ocaml/%{libname}/*/*.mli
# There do not seem to be headers in the _wp subdirectory.
#{_libdir}/ocaml/{libname}/_wp/*/*.mli
%files doc
%exclude %{_pkgdocdir}/README.md
@ -106,6 +148,9 @@ cp -ar README.md CHANGES.md doc/_build/* %{buildroot}%{_pkgdocdir}/
%doc %{_pkgdocdir}/*
%changelog
* Tue Aug 06 2019 Ben Rosser <rosser.bjr@gmail.com> - 1.10.0-5
- Install dune libraries. Add new ocaml-dune subpackage (rhbz#1737414).
* Wed Jul 31 2019 Richard W.M. Jones <rjones@redhat.com> - 1.10.0-4
- OCaml 4.08.1 (rc2) rebuild.