%ifnarch %{ocaml_native_compiler} %global debug_package %{nil} %endif %global srcname tyxml Name: ocaml-%{srcname} Version: 4.3.0 Release: 4%{?dist}.1 Summary: Build valid HTML and SVG documents License: LGPLv2 with exceptions URL: https://ocsigen.org/tyxml/ Source0: https://github.com/ocsigen/tyxml/releases/download/%{version}/%{srcname}-%{version}.tbz BuildRequires: ocaml >= 4.02 BuildRequires: ocaml-alcotest-devel BuildRequires: ocaml-astring-devel BuildRequires: ocaml-dune BuildRequires: ocaml-findlib BuildRequires: ocaml-markup-devel >= 0.7.2 BuildRequires: ocaml-migrate-parsetree-devel BuildRequires: ocaml-ocamldoc BuildRequires: ocaml-ppx-derivers-devel BuildRequires: ocaml-ppx-tools-versioned-devel BuildRequires: ocaml-re-devel >= 1.5.0 BuildRequires: ocaml-result-devel BuildRequires: ocaml-seq-devel BuildRequires: ocaml-uuidm-devel BuildRequires: ocaml-uutf-devel >= 1.0.0 %description TyXML provides a set of convenient combinators that uses the OCaml type system to ensure the validity of the generated documents. TyXML can be used with any representation of HTML and SVG: the textual one, provided directly by this package, or DOM trees (`js_of_ocaml-tyxml`), virtual DOM (`virtual-dom`) and reactive or replicated trees (`eliom`). You can also create your own representation and use it to instantiate a new set of combinators. %package devel Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} Requires: ocaml-re-devel%{?_isa} Requires: ocaml-seq-devel%{?_isa} Requires: ocaml-uutf-devel%{?_isa} %description devel The %{name}-devel package contains libraries and signature files for developing applications that use %{name}. %package doc Summary: HTML documentation for %{name} BuildArch: noarch %description doc HTML documentation for %{name}. %package ppx Summary: PPX for writing TyXML documents with HTML syntax Requires: %{name}%{?_isa} = %{version}-%{release} %description ppx This package contains PPX for writing TyXML documents with HTML syntax. open Tyxml let%%html to_ocaml = "OCaml!" The TyXML PPX is compatible with all TyXML instance, from textual trees to reactive virtual DOM trees. %package ppx-devel Summary: Development files for %{name}-ppx Requires: %{name}-devel%{?_isa} = %{version}-%{release} Requires: %{name}-ppx%{?_isa} = %{version}-%{release} Requires: ocaml-markup-devel%{?_isa} Requires: ocaml-migrate-parsetree-devel%{?_isa} Requires: ocaml-ppx-derivers-devel%{?_isa} Requires: ocaml-ppx-tools-versioned-devel%{?_isa} %description ppx-devel The %{name}-ppx-devel package contains libraries and signature files for developing applications that use %{name}-ppx. %prep %autosetup -n %{srcname}-%{version} # Fix typo in 4.3.0; fixed upstream, so remove this when updating sed -i 's/onmousdown/onmousedown/' lib/svg_f.ml # Fix deprecation warning treated as an error by dune. # Fixed upstream after the 4.3.0 release; remove this when updating sed -i 's/Re\.get/Re.Group.get/' ppx/tyxml_ppx.ml %build dune build %{?_smp_mflags} # Build the documentation. mkdir html ocamldoc -html -d html \ -colorize-code -short-functors -charset utf-8 -intro docs/indexdoc \ -I _build/install/default/lib/tyxml \ -I _build/install/default/lib/tyxml/functor \ -I _build/install/default/lib/tyxml/tools \ _build/install/default/lib/tyxml/*.mli \ _build/install/default/lib/tyxml/functor/*.mli \ _build/install/default/lib/tyxml/tools/*.mli %install dune install --destdir=%{buildroot} # 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 %check dune runtest %files %doc CHANGES.md README.md %license LICENSE %dir %{_libdir}/ocaml/%{srcname}/ %dir %{_libdir}/ocaml/%{srcname}/functor/ %dir %{_libdir}/ocaml/%{srcname}/tools/ %dir %{_libdir}/ocaml/%{srcname}/top/ %{_libdir}/ocaml/%{srcname}/META %{_libdir}/ocaml/%{srcname}/%{srcname}*.cma %{_libdir}/ocaml/%{srcname}/%{srcname}*.cmi %{_libdir}/ocaml/%{srcname}/functor/*.cma %{_libdir}/ocaml/%{srcname}/functor/*.cmi %{_libdir}/ocaml/%{srcname}/tools/*.cma %{_libdir}/ocaml/%{srcname}/tools/*.cmi %{_libdir}/ocaml/%{srcname}/top/*.cma %{_libdir}/ocaml/%{srcname}/top/*.cmi %ifarch %{ocaml_native_compiler} %{_libdir}/ocaml/%{srcname}/%{srcname}*.cmxs %{_libdir}/ocaml/%{srcname}/functor/*.cmxs %{_libdir}/ocaml/%{srcname}/tools/*.cmxs %{_libdir}/ocaml/%{srcname}/top/*.cmxs %endif %files devel %{_libdir}/ocaml/%{srcname}/dune-package %{_libdir}/ocaml/%{srcname}/opam %ifarch %{ocaml_native_compiler} %{_libdir}/ocaml/%{srcname}/%{srcname}*.a %{_libdir}/ocaml/%{srcname}/%{srcname}*.cmx %{_libdir}/ocaml/%{srcname}/%{srcname}*.cmxa %{_libdir}/ocaml/%{srcname}/functor/*.a %{_libdir}/ocaml/%{srcname}/functor/*.cmx %{_libdir}/ocaml/%{srcname}/functor/*.cmxa %{_libdir}/ocaml/%{srcname}/tools/*.a %{_libdir}/ocaml/%{srcname}/tools/*.cmx %{_libdir}/ocaml/%{srcname}/tools/*.cmxa %{_libdir}/ocaml/%{srcname}/top/*.a %{_libdir}/ocaml/%{srcname}/top/*.cmx %{_libdir}/ocaml/%{srcname}/top/*.cmxa %endif %{_libdir}/ocaml/%{srcname}/%{srcname}*.cmt %{_libdir}/ocaml/%{srcname}/%{srcname}*.cmti %{_libdir}/ocaml/%{srcname}/%{srcname}*.ml %{_libdir}/ocaml/%{srcname}/%{srcname}*.mli %{_libdir}/ocaml/%{srcname}/functor/*.cmt %{_libdir}/ocaml/%{srcname}/functor/*.cmti %{_libdir}/ocaml/%{srcname}/functor/*.ml %{_libdir}/ocaml/%{srcname}/functor/*.mli %{_libdir}/ocaml/%{srcname}/tools/*.cmt %{_libdir}/ocaml/%{srcname}/tools/*.cmti %{_libdir}/ocaml/%{srcname}/tools/*.ml %{_libdir}/ocaml/%{srcname}/tools/*.mli %{_libdir}/ocaml/%{srcname}/top/*.cmt %{_libdir}/ocaml/%{srcname}/top/*.ml %files ppx %dir %{_libdir}/ocaml/%{srcname}-ppx/ %dir %{_libdir}/ocaml/%{srcname}-ppx/internal/ %{_libdir}/ocaml/%{srcname}-ppx/META %{_libdir}/ocaml/%{srcname}-ppx/ppx.exe %{_libdir}/ocaml/%{srcname}-ppx/%{srcname}*.cma %{_libdir}/ocaml/%{srcname}-ppx/%{srcname}*.cmi %{_libdir}/ocaml/%{srcname}-ppx/internal/*.cma %{_libdir}/ocaml/%{srcname}-ppx/internal/*.cmi %ifarch %{ocaml_native_compiler} %{_libdir}/ocaml/%{srcname}-ppx/%{srcname}*.cmxs %{_libdir}/ocaml/%{srcname}-ppx/internal/*.cmxs %endif %files ppx-devel %{_libdir}/ocaml/%{srcname}-ppx/dune-package %{_libdir}/ocaml/%{srcname}-ppx/opam %ifarch %{ocaml_native_compiler} %{_libdir}/ocaml/%{srcname}-ppx/%{srcname}*.a %{_libdir}/ocaml/%{srcname}-ppx/%{srcname}*.cmx %{_libdir}/ocaml/%{srcname}-ppx/%{srcname}*.cmxa %{_libdir}/ocaml/%{srcname}-ppx/internal/*.a %{_libdir}/ocaml/%{srcname}-ppx/internal/*.cmx %{_libdir}/ocaml/%{srcname}-ppx/internal/*.cmxa %endif %{_libdir}/ocaml/%{srcname}-ppx/%{srcname}*.cmt %{_libdir}/ocaml/%{srcname}-ppx/%{srcname}*.ml %{_libdir}/ocaml/%{srcname}-ppx/internal/*.cmt %{_libdir}/ocaml/%{srcname}-ppx/internal/*.cmti %{_libdir}/ocaml/%{srcname}-ppx/internal/*.ml %{_libdir}/ocaml/%{srcname}-ppx/internal/*.mli %files doc %doc html/* %license LICENSE %changelog * Fri Feb 28 2020 Richard W.M. Jones - 4.3.0-4.1 - OCaml 4.10.0 final (Fedora 32). * Wed Feb 26 2020 Richard W.M. Jones - 4.3.0-4 - OCaml 4.10.0 final. * Wed Jan 29 2020 Fedora Release Engineering - 4.3.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild * Thu Jan 16 2020 Jerry James - 4.3.0-2 - Add ocaml-re-dvel and ocaml-uutf-devel Rs to -devel - Add ocaml-ppx-derivers-devel and ocaml-ppx-tools-versioned-devel Rs to -ppx-devel - Build in parallel * Fri Jan 10 2020 Jerry James - 4.3.0-1 - Initial RPM