%ifnarch %{ocaml_native_compiler} %global debug_package %{nil} %endif %global srcname tyxml # This package is needed to build ocaml-odoc, but ocaml-odoc is needed to build # documentation for this package. Skip building documentation for now until we # develop a strategy for handling dependency loops. Name: ocaml-%{srcname} Version: 4.4.0 Release: 6%{?dist} 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 # Temporary workaround for # https://github.com/ocsigen/tyxml/issues/266 Patch1: tyxml-4.3.0-ocaml-4.11-ignore-deprecated.patch BuildRequires: ocaml >= 4.02 BuildRequires: ocaml-alcotest-devel BuildRequires: ocaml-dune BuildRequires: ocaml-markup-devel >= 0.7.2 BuildRequires: ocaml-ppx-tools-versioned-devel BuildRequires: ocaml-re-devel >= 1.5.0 BuildRequires: ocaml-seq-devel BuildRequires: ocaml-uutf-devel >= 1.0.0 # See comment above about dependency loops. If the issue is not resolved by # Fedora 36, this can be removed. Obsoletes: %{name}-doc < 4.4.0-1 Provides: %{name}-doc = %{version}-%{release} %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 syntax Summary: Common layer for the JSX and PPX syntaxes for TyXML %description syntax This package contains common code used by both the JSX and the PPX syntaxes for TyXML. %package syntax-devel Summary: Development files for %{name}-syntax Requires: %{name}-syntax%{?_isa} = %{version}-%{release} Requires: ocaml-ppx-tools-versioned-devel%{?_isa} %description syntax-devel The %{name}-syntax-devel package contains libraries and signature files for developing applications that use %{name}-syntax. %package jsx Summary: JSX syntax for writing TyXML documents Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-syntax%{?_isa} = %{version}-%{release} %description jsx This package enables writing TyXML documents with reasons's JSX syntax, from textual trees to reactive virtual DOM trees. open Tyxml let to_ocaml = "OCaml!" ; %package jsx-devel Summary: Development files for %{name}-jsx Requires: %{name}-devel%{?_isa} = %{version}-%{release} Requires: %{name}-syntax-devel%{?_isa} = %{version}-%{release} Requires: %{name}-jsx%{?_isa} = %{version}-%{release} Requires: ocaml-ppx-tools-versioned-devel%{?_isa} %description jsx-devel The %{name}-jsx-devel package contains libraries and signature files for developing applications that use %{name}-jsx. %package ppx Summary: PPX for writing TyXML documents with HTML syntax Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-syntax%{?_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}-syntax-devel%{?_isa} = %{version}-%{release} Requires: %{name}-ppx%{?_isa} = %{version}-%{release} Requires: ocaml-markup-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} -p1 %build dune build %{?_smp_mflags} %install dune install --destdir=%{buildroot} # We do not want the ml files find %{buildroot}%{_libdir}/ocaml -name \*.ml -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 # As of version 4.4.0, the tests fail due to lack of the reason package in # Fedora. Tests are disabled until we can figure out how to work around that. #%%check #dune runtest %files %doc CHANGES.md README.md %license LICENSE %dir %{_libdir}/ocaml/%{srcname}/ %dir %{_libdir}/ocaml/%{srcname}/functor/ %{_libdir}/ocaml/%{srcname}/META %{_libdir}/ocaml/%{srcname}/%{srcname}*.cma %{_libdir}/ocaml/%{srcname}/%{srcname}*.cmi %{_libdir}/ocaml/%{srcname}/functor/*.cma %{_libdir}/ocaml/%{srcname}/functor/*.cmi %ifarch %{ocaml_native_compiler} %{_libdir}/ocaml/%{srcname}/%{srcname}*.cmxs %{_libdir}/ocaml/%{srcname}/functor/*.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 %endif %{_libdir}/ocaml/%{srcname}/%{srcname}*.cmt %{_libdir}/ocaml/%{srcname}/%{srcname}*.cmti %{_libdir}/ocaml/%{srcname}/%{srcname}*.mli %{_libdir}/ocaml/%{srcname}/functor/*.cmt %{_libdir}/ocaml/%{srcname}/functor/*.cmti %{_libdir}/ocaml/%{srcname}/functor/*.mli %files syntax %dir %{_libdir}/ocaml/%{srcname}-syntax/ %{_libdir}/ocaml/%{srcname}-syntax/META %{_libdir}/ocaml/%{srcname}-syntax/%{srcname}*.cma %{_libdir}/ocaml/%{srcname}-syntax/%{srcname}*.cmi %ifarch %{ocaml_native_compiler} %{_libdir}/ocaml/%{srcname}-syntax/%{srcname}*.cmxs %endif %files syntax-devel %{_libdir}/ocaml/%{srcname}-syntax/dune-package %{_libdir}/ocaml/%{srcname}-syntax/opam %ifarch %{ocaml_native_compiler} %{_libdir}/ocaml/%{srcname}-syntax/%{srcname}*.a %{_libdir}/ocaml/%{srcname}-syntax/%{srcname}*.cmx %{_libdir}/ocaml/%{srcname}-syntax/%{srcname}*.cmxa %endif %{_libdir}/ocaml/%{srcname}-syntax/%{srcname}*.cmt %{_libdir}/ocaml/%{srcname}-syntax/%{srcname}*.cmti %{_libdir}/ocaml/%{srcname}-syntax/*.mli %files jsx %dir %{_libdir}/ocaml/%{srcname}-jsx/ %{_libdir}/ocaml/%{srcname}-jsx/META %{_libdir}/ocaml/%{srcname}-jsx/ppx.exe %{_libdir}/ocaml/%{srcname}-jsx/%{srcname}*.cma %{_libdir}/ocaml/%{srcname}-jsx/%{srcname}*.cmi %ifarch %{ocaml_native_compiler} %{_libdir}/ocaml/%{srcname}-jsx/%{srcname}*.cmxs %endif %files jsx-devel %{_libdir}/ocaml/%{srcname}-jsx/dune-package %{_libdir}/ocaml/%{srcname}-jsx/opam %ifarch %{ocaml_native_compiler} %{_libdir}/ocaml/%{srcname}-jsx/%{srcname}*.a %{_libdir}/ocaml/%{srcname}-jsx/%{srcname}*.cmx %{_libdir}/ocaml/%{srcname}-jsx/%{srcname}*.cmxa %endif %{_libdir}/ocaml/%{srcname}-jsx/%{srcname}*.cmt %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/internal/*.cmt %{_libdir}/ocaml/%{srcname}-ppx/internal/*.cmti %{_libdir}/ocaml/%{srcname}-ppx/internal/*.mli %changelog * Mon Dec 7 2020 Jerry James - 4.4.0-6 - Rebuild for ocaml-migrate-parsetree 1.8.0 * Wed Dec 2 2020 Jerry James - 4.4.0-5 - Rebuild for the re-release of ocaml-markup 1.0.0 * Fri Oct 23 2020 Jerry James - 4.4.0-4 - Rebuild for ocaml-markup 1.0.0 * Tue Sep 01 2020 Richard W.M. Jones - 4.4.0-3 - OCaml 4.11.1 rebuild * Fri Aug 21 2020 Richard W.M. Jones - 4.4.0-2 - OCaml 4.11.0 rebuild * Tue Aug 4 2020 Jerry James - 4.4.0-1 - Version 4.4.0 - Drop documentation subpackage until dependency loop can be handled - Disable tests since no reason package is available * Sat Aug 01 2020 Fedora Release Engineering - 4.3.0-9 - Second attempt - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild * Tue Jul 28 2020 Fedora Release Engineering - 4.3.0-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild * Tue May 05 2020 Richard W.M. Jones - 4.3.0-7 - OCaml 4.11.0+dev2-2020-04-22 rebuild * Tue Apr 21 2020 Richard W.M. Jones - 4.3.0-6 - OCaml 4.11.0 pre-release attempt 2 * Sat Apr 04 2020 Richard W.M. Jones - 4.3.0-5 - Update all OCaml dependencies for RPM 4.16. * 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