%ifnarch %{ocaml_native_compiler} %global debug_package %{nil} %endif %global srcname odoc Name: ocaml-%{srcname} Version: 1.5.0 Release: 2%{?dist}.1 Summary: Documentation compiler for OCaml and Reason License: MIT URL: https://github.com/ocaml/odoc Source0: %{url}/archive/%{version}/%{srcname}-%{version}.tar.gz BuildRequires: ocaml >= 4.02.0 BuildRequires: ocaml-alcotest-devel >= 0.8.3 BuildRequires: ocaml-astring-devel BuildRequires: ocaml-bisect-ppx-devel >= 1.3.0 BuildRequires: ocaml-cmdliner-devel BuildRequires: ocaml-cppo BuildRequires: ocaml-dune BuildRequires: ocaml-findlib BuildRequires: ocaml-fpath-devel BuildRequires: ocaml-markup-devel >= 0.8.0 BuildRequires: ocaml-result-devel BuildRequires: ocaml-sexplib-devel BuildRequires: ocaml-tyxml-devel >= 4.3.0 BuildRequires: ocaml-uuidm-devel BuildRequires: tidy %description This package contains odoc, a documentation generator for OCaml. It reads doc comments, delimited with `(** ... *)`, and outputs HTML. Text inside doc comments is marked up in ocamldoc syntax. Odoc's main advantage over ocamldoc is an accurate cross-referencer, which handles the complexity of the OCaml module system. Odoc also offers a good opportunity to improve HTML output compared to ocamldoc, but this is very much a work in progress. %package devel Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} Requires: ocaml-astring-devel%{?_isa} Requires: ocaml-fpath-devel%{?_isa} Requires: ocaml-result-devel%{?_isa} Requires: ocaml-tyxml-devel%{?_isa} %description devel The %{name}-devel package contains libraries and signature files for developing applications that use %{name}. %package doc Summary: Documentation for %{name} BuildArch: noarch %description doc Documentation for %{name}. %prep %autosetup -n %{srcname}-%{version} -p1 # The opam file has not been updated since the great renumbering. sed -i 's/113\.33\.00/0.13.0/' odoc.opam # Replace version markers for fil in src/html/tree.ml $(find test -name index.html -o -name mld.html); do sed -i.orig 's,%%%%VERSION%%%%,%{version},' $fil touch -r $fil.orig $fil rm $fil.orig done %build dune build %{?_smp_mflags} dune build %{?_smp_mflags} @doc %install dune install --destdir=%{buildroot} # We do not want the test files rm -fr %{buildroot}%{_libdir}/ocaml/dune_odoc_test # We do not want the dune markers find _build/default/_doc/_html -name .dune-keep -delete # We install the documentation with the doc macro rm -fr %{buildroot}%{_prefix}/doc %ifarch %{ocaml_native_compiler} # Add missing executable bits find %{buildroot}%{_libdir}/ocaml -name \*.cmxs -exec chmod 0755 {} \+ %endif # Install the man page mkdir -p %{buildroot}%{_mandir}/man1 _build/install/default/bin/odoc --help groff > %{buildroot}%{_mandir}/man1/odoc.1 %check dune runtest %files %doc CHANGES.md README.md %license LICENSE.md %{_bindir}/odoc %{_datadir}/odoc/ %{_mandir}/man1/odoc.1* %dir %{_libdir}/ocaml/%{srcname}/ %dir %{_libdir}/ocaml/%{srcname}/compat/ %dir %{_libdir}/ocaml/%{srcname}/html/ %dir %{_libdir}/ocaml/%{srcname}/loader/ %dir %{_libdir}/ocaml/%{srcname}/model/ %dir %{_libdir}/ocaml/%{srcname}/odoc/ %dir %{_libdir}/ocaml/%{srcname}/parser/ %dir %{_libdir}/ocaml/%{srcname}/xref/ %{_libdir}/ocaml/%{srcname}/META %{_libdir}/ocaml/%{srcname}/*/*.cma %{_libdir}/ocaml/%{srcname}/*/*.cmi %ifarch %{ocaml_native_compiler} %{_libdir}/ocaml/%{srcname}/*/*.cmxs %endif %files devel %{_libdir}/ocaml/%{srcname}/dune-package %{_libdir}/ocaml/%{srcname}/opam %ifarch %{ocaml_native_compiler} %{_libdir}/ocaml/%{srcname}/*/*.a %{_libdir}/ocaml/%{srcname}/*/*.cmx %{_libdir}/ocaml/%{srcname}/*/*.cmxa %endif %{_libdir}/ocaml/%{srcname}/*/*.cmt %{_libdir}/ocaml/%{srcname}/*/*.cmti %{_libdir}/ocaml/%{srcname}/*/*.ml %{_libdir}/ocaml/%{srcname}/*/*.mli %files doc %doc _build/default/_doc/_html/* %license LICENSE.md %changelog * Fri Feb 28 2020 Richard W.M. Jones - 1.5.0-2.1 - OCaml 4.10.0 final (Fedora 32). * Wed Feb 26 2020 Richard W.M. Jones - 1.5.0-2 - OCaml 4.10.0 final. * Fri Feb 7 2020 Jerry James - 1.5.0-1 - Version 1.5.0 - Drop all patches * Sat Feb 1 2020 Jerry James - 1.4.2-3 - Add 3 patches for OCaml 4.10 compatibility * Wed Jan 29 2020 Fedora Release Engineering - 1.4.2-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild * Thu Jan 16 2020 Jerry James - 1.4.2-2 - Remove some BRs needed only for transitive dependencies - Add ocaml-astring-devel and ocaml-fpath-devel Rs to -devel - Build in parallel * Fri Jan 10 2020 Jerry James - 1.4.2-1 - Initial RPM