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
1 changed files with 47 additions and 2 deletions

View File

@ -1,6 +1,6 @@
Name: ocaml-dune Name: ocaml-dune
Version: 1.10.0 Version: 1.10.0
Release: 4%{?dist} Release: 5%{?dist}
Summary: A composable build system for OCaml Summary: A composable build system for OCaml
%global libname %(echo %{name} | sed -e 's/^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 URL: https://dune.build
Source0: https://github.com/ocaml/%{libname}/archive/%{version}/%{libname}-%{version}.tar.gz Source0: https://github.com/ocaml/%{libname}/archive/%{version}/%{libname}-%{version}.tar.gz
BuildRequires: ocaml >= 4.02.3 BuildRequires: ocaml >= 4.02.3
BuildRequires: ocaml-findlib-devel 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 daily by hundred of developers, which means that it is highly tested and
productive. 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 %package doc
Summary: HTML documentation for %{name} Summary: HTML documentation for %{name}
Requires: %{name} = %{version}-%{release} 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/*.1 %{buildroot}%{_mandir}/man1/
cp -av _boot/default/doc/*.5 %{buildroot}%{_mandir}/man5/ 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. # Install documentation by way of pkgdocdir.
mkdir -p %{buildroot}%{_pkgdocdir}/ mkdir -p %{buildroot}%{_pkgdocdir}/
cp -ar README.md CHANGES.md doc/_build/* %{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 %{_bindir}/dune
%{_mandir}/man*/dune* %{_mandir}/man*/dune*
%dir %{_pkgdocdir} %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 %files doc
%exclude %{_pkgdocdir}/README.md %exclude %{_pkgdocdir}/README.md
@ -106,6 +148,9 @@ cp -ar README.md CHANGES.md doc/_build/* %{buildroot}%{_pkgdocdir}/
%doc %{_pkgdocdir}/* %doc %{_pkgdocdir}/*
%changelog %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 * Wed Jul 31 2019 Richard W.M. Jones <rjones@redhat.com> - 1.10.0-4
- OCaml 4.08.1 (rc2) rebuild. - OCaml 4.08.1 (rc2) rebuild.