%undefine _package_note_flags
%ifnarch %{ocaml_native_compiler}
%global debug_package %{nil}
%endif
Name: ocaml-tyxml
Version: 4.5.0
Release: 14%{?dist}
Summary: Build valid HTML and SVG documents
License: LGPL-2.1-only WITH OCaml-LGPL-linking-exception
URL: https://ocsigen.org/tyxml/
Source0: https://github.com/ocsigen/tyxml/releases/download/%{version}/tyxml-%{version}.tbz
# Fedora's OCaml is new enough that we do not need the seq shim
Patch0: %{name}-seq.patch
BuildRequires: ocaml >= 4.04
BuildRequires: ocaml-alcotest-devel
BuildRequires: ocaml-dune >= 2.0
BuildRequires: ocaml-markup-devel >= 0.7.2
BuildRequires: ocaml-ppxlib-devel
BuildRequires: ocaml-re-devel >= 1.5.0
BuildRequires: ocaml-uutf-devel >= 1.0.0
# This can be removed when F36 reaches EOL
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-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-ppxlib-devel%{?_isa}
Requires: ocaml-re-devel%{?_isa}
Requires: ocaml-uutf-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-ppxlib-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-ppxlib-devel%{?_isa}
Requires: ocaml-re-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 tyxml-%{version} -p1
%build
%dune_build
%install
%dune_install -s
%check
# As of version 4.4.0, the tyxml-jsx tests fail due to lack of the reason
# package in Fedora.
%dune_check -p tyxml,tyxml-syntax,tyxml-ppx
%files -f .ofiles-tyxml
%doc CHANGES.md README.md
%license LICENSE
%files devel -f .ofiles-tyxml-devel
%files syntax -f .ofiles-tyxml-syntax
%files syntax-devel -f .ofiles-tyxml-syntax-devel
%files jsx -f .ofiles-tyxml-jsx
%files jsx-devel -f .ofiles-tyxml-jsx-devel
%files ppx -f .ofiles-tyxml-ppx
%files ppx-devel -f .ofiles-tyxml-ppx-devel
%changelog
* Tue Nov 1 2022 Jerry James - 4.5.0-14
- Rebuild for ocaml-ppxlib 0.28.0
* Thu Aug 18 2022 Jerry James - 4.5.0-13
- Rebuild for ocaml-ppxlib 0.27.0
- Convert License tag to SPDX
* Fri Jul 22 2022 Fedora Release Engineering - 4.5.0-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Wed Jul 20 2022 Jerry James - 4.5.0-11
- Use new OCaml macros
* Sun Jun 19 2022 Richard W.M. Jones - 4.5.0-11
- OCaml 4.14.0 rebuild
* Mon Feb 28 2022 Jerry James - 4.5.0-10
- Rebuild for ocaml-uutf 1.0.3
- Build in release mode
* Fri Feb 04 2022 Richard W.M. Jones - 4.5.0-9
- OCaml 4.13.1 rebuild to remove package notes
* Thu Jan 20 2022 Fedora Release Engineering - 4.5.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Mon Dec 27 2021 Jerry James - 4.5.0-7
- Rebuild for ocaml-ppxlib 0.24.0
* Tue Oct 05 2021 Richard W.M. Jones - 4.5.0-6
- OCaml 4.13.1 build
* Wed Sep 1 2021 Jerry James - 4.5.0-5
- Rebuild for ocaml-ppxlib 0.23.0
* Thu Jul 29 2021 Jerry James - 4.5.0-4
- Rebuild for ocaml-ppxlib 0.22.2
* Thu Jul 22 2021 Fedora Release Engineering - 4.5.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Tue Jun 22 2021 Jerry James - 4.5.0-2
- Rebuild for ocaml-markup 1.0.1
* Fri Apr 23 2021 Jerry James - 4.5.0-1
- Version 4.5.0
- Drop all patches
* Mon Mar 1 21:39:52 GMT 2021 Richard W.M. Jones - 4.4.0-10
- OCaml 4.12.0 build
* Sat Feb 20 2021 Jerry James - 4.4.0-9
- Apply upstream merge request to migrate to ppxlib
* Tue Feb 2 2021 Richard W.M. Jones - 4.4.0-8
- Bump and rebuild for updated ocaml-camomile dep (RHBZ#1923853).
* Tue Jan 26 2021 Fedora Release Engineering - 4.4.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* 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