diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/ocaml-dune-debuginfo.patch b/ocaml-dune-debuginfo.patch index 8917c71..906cec4 100644 --- a/ocaml-dune-debuginfo.patch +++ b/ocaml-dune-debuginfo.patch @@ -1,8 +1,8 @@ ---- dune-3.11.0/src/dune_rules/dune_project.ml.orig 2023-09-23 19:52:10.552217543 -0600 -+++ dune-3.11.0/src/dune_rules/dune_project.ml 2023-09-23 22:03:32.641347776 -0600 -@@ -455,7 +455,7 @@ let filename = "dune-project" +--- dune-3.20.0/src/dune_lang/dune_project.ml.orig 2025-08-19 00:28:44.000000000 -0600 ++++ dune-3.20.0/src/dune_lang/dune_project.ml 2025-08-21 20:42:51.793195598 -0600 +@@ -425,7 +425,7 @@ let interpret_lang_and_extensions ~(lang + let filename = "dune-project" let opam_file_location_default ~lang:_ = `Relative_to_project - let implicit_transitive_deps_default ~lang:_ = true let wrapped_executables_default ~(lang : Lang.Instance.t) = lang.version >= (2, 0) -let map_workspace_root_default ~(lang : Lang.Instance.t) = lang.version >= (3, 0) +let map_workspace_root_default ~(lang : Lang.Instance.t) = false diff --git a/ocaml-dune.spec b/ocaml-dune.spec index 3650b67..9409c70 100644 --- a/ocaml-dune.spec +++ b/ocaml-dune.spec @@ -13,45 +13,42 @@ %global giturl https://github.com/ocaml/dune Name: ocaml-dune -Version: 3.16.1 -Release: 1%{?dist} +Version: 3.20.2 +Release: 2%{?dist} Summary: Composable build system for OCaml and Reason # Dune itself is MIT. Some bundled libraries have a different license: +# BSD-2-Clause: +# - vendor/ocaml-blake3-mini # ISC: # - vendor/cmdliner -# - vendor/fmt # - vendor/notty -# - vendor/opam-0install # - vendor/sha # - vendor/uutf -# LGPL-2.0-only: +# LGPL-2.1-only: # - vendor/incremental-cycles -# LGPL-2.0-only WITH OCaml-LGPL-linking-exception +# LGPL-2.1-only WITH OCaml-LGPL-linking-exception # - vendor/ocaml-inotify # - vendor/opam # - vendor/opam-file-format # - vendor/re -# LGPL-2.1-or-later: -# - vendor/0install-solver +# LGPL-2.1-or-later +# - src/dune_pkg/opam_solver.* +# - src/sat/hash_set.* +# - src/sat/sat.* # MIT: # - vendor/build_path_prefix_map -# - vendor/fiber # - vendor/lwd # - vendor/spawn -License: MIT AND ISC AND LGPL-2.0-only AND LGPL-2.0-only WITH OCaml-LGPL-linking-exception AND LGPL-2.1-or-later +License: MIT AND BSD-2-Clause AND ISC AND LGPL-2.1-only AND LGPL-2.1-only WITH OCaml-LGPL-linking-exception AND LGPL-2.1-or-later URL: https://dune.build VCS: git:%{giturl}.git Source: %{giturl}/archive/%{version}/dune-%{version}.tar.gz # When building without lwt, remove libraries that need it -Patch: %{name}-no-lwt.patch +Patch0: %{name}-no-lwt.patch # Temporary workaround for broken debuginfo (rhbz#2168932) # See https://github.com/ocaml/dune/issues/6929 -Patch: %{name}-debuginfo.patch - -# Change to the furo theme for the docs -# https://github.com/ocaml/dune/commit/9f3da04c1c27ff80e8d1ab71de15c53a0ca953da -Patch: use-furo-theme.patch +Patch1: %{name}-debuginfo.patch # OCaml packages not built on i686 since OCaml 5 / Fedora 39. ExcludeArch: %{ix86} @@ -62,12 +59,13 @@ BuildRequires: ocaml >= 4.08 BuildRequires: ocaml-compiler-libs %if !0%{?rhel} BuildRequires: ocaml-csexp-devel >= 1.5.0 -BuildRequires: ocaml-pp-devel >= 1.2.0 +BuildRequires: ocaml-pp-devel >= 2.0.0 %endif BuildRequires: ocaml-rpm-macros %if %{with docs} BuildRequires: %{py3_dist furo} +BuildRequires: %{py3_dist myst-parser} BuildRequires: %{py3_dist sphinx} BuildRequires: %{py3_dist sphinx-copybutton} BuildRequires: %{py3_dist sphinx-design} @@ -80,17 +78,14 @@ BuildRequires: ocaml-lwt-devel >= 5.6.0 # Dune has vendored deps to avoid dependency cycles. Upstream deliberately # does not support unbundling these dependencies. # See https://github.com/ocaml/dune/issues/220 -Provides: bundled(ocaml-0install-solver) = 2.18 Provides: bundled(ocaml-build-path-prefix-map) = 0.3 Provides: bundled(ocaml-cmdliner) = 1.2.0 -Provides: bundled(ocaml-fiber) = 3.7.0 -Provides: bundled(ocaml-fmt) = 0.8.10 Provides: bundled(ocaml-incremental-cycles) = 1e2030a5d5183d84561cde142eecca40e03db2a3 Provides: bundled(ocaml-inotify) = 2.3 Provides: bundled(ocaml-lwd) = 0.3 Provides: bundled(ocaml-notty) = 0.2.3 -Provides: bundled(ocaml-opam) = 2.2.0~alpha2 -Provides: bundled(ocaml-opam-0install) = 0.4.3 +Provides: bundled(ocaml-blake3-mini) = c6aa40e5f1973c2e6b736660ce2c8dcd3b3f9c9f +Provides: bundled(ocaml-opam) = 2.2.0 Provides: bundled(ocaml-opam-file-format) = 2.1.6 Provides: bundled(ocaml-re) = 1.11.0 Provides: bundled(ocaml-sha) = 1.15.4 @@ -174,8 +169,11 @@ system, a mode to edit dune files, and flymake support for dune files. %package action-plugin Summary: API for writing dynamic dune actions License: MIT -Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-glob%{?_isa} = %{version}-%{release} +Requires: %{name}-rpc%{?_isa} = %{version}-%{release} +Requires: ocaml-dyn%{?_isa} = %{version}-%{release} +Requires: ocaml-ordering%{?_isa} = %{version}-%{release} +Requires: ocaml-stdune%{?_isa} = %{version}-%{release} %description action-plugin This experimental library provides an API for writing dynamic Dune @@ -188,6 +186,14 @@ Summary: Development files for %{name}-action-plugin License: MIT Requires: %{name}-action-plugin%{?_isa} = %{version}-%{release} Requires: %{name}-glob-devel%{?_isa} = %{version}-%{release} +Requires: %{name}-rpc-devel%{?_isa} = %{version}-%{release} +Requires: ocaml-dyn-devel%{?_isa} = %{version}-%{release} +Requires: ocaml-ordering-devel%{?_isa} = %{version}-%{release} +Requires: ocaml-stdune-devel%{?_isa} = %{version}-%{release} +%if !0%{?rhel} +Requires: ocaml-csexp-devel%{?_isa} +Requires: ocaml-pp-devel%{?_isa} +%endif %description action-plugin-devel The ocaml-dune-action-plugin-devel package contains libraries and @@ -197,7 +203,6 @@ ocaml-dune-action-plugin. %package build-info Summary: Embed build information in an executable License: MIT -Requires: %{name}%{?_isa} = %{version}-%{release} %description build-info The build-info library allows access to information about how an @@ -218,7 +223,6 @@ files for developing applications that use ocaml-dune-build-info. %package configurator Summary: Helper library for gathering system configuration License: MIT -Requires: %{name}%{?_isa} = %{version}-%{release} Requires: ocaml-stdune%{?_isa} = %{version}-%{release} %description configurator @@ -237,10 +241,9 @@ Summary: Development files for %{name}-configurator License: MIT Requires: %{name}-configurator%{?_isa} = %{version}-%{release} Requires: ocaml-stdune-devel%{?_isa} = %{version}-%{release} - -# This can be removed when F40 reaches EOL -Obsoletes: %{name}-devel < 2.9.1-4 -Provides: %{name}-devel = %{version}-%{release} +%if !0%{?rhel} +Requires: ocaml-csexp-devel%{?_isa} +%endif %description configurator-devel The ocaml-dune-configurator-devel package contains libraries and @@ -250,8 +253,9 @@ ocaml-dune-configurator. %package glob Summary: Parser and interpreter for dune language globs License: MIT -Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-private-libs%{?_isa} = %{version}-%{release} +Requires: ocaml-dyn%{?_isa} = %{version}-%{release} +Requires: ocaml-ordering%{?_isa} = %{version}-%{release} Requires: ocaml-stdune%{?_isa} = %{version}-%{release} %description glob @@ -263,7 +267,12 @@ Summary: Development files for %{name}-glob License: MIT Requires: %{name}-glob%{?_isa} = %{version}-%{release} Requires: %{name}-private-libs-devel%{?_isa} = %{version}-%{release} +Requires: ocaml-dyn-devel%{?_isa} = %{version}-%{release} +Requires: ocaml-ordering-devel%{?_isa} = %{version}-%{release} Requires: ocaml-stdune-devel%{?_isa} = %{version}-%{release} +%if !0%{?rhel} +Requires: ocaml-pp-devel%{?_isa} +%endif %description glob-devel The ocaml-dune-glob-devel package contains libraries and signature files @@ -272,8 +281,6 @@ for developing applications that use ocaml-dune-glob. %package private-libs Summary: Private dune libraries License: MIT -Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: ocaml-stdune%{?_isa} = %{version}-%{release} %description private-libs This package contains code that is shared between various dune-xxx @@ -284,7 +291,6 @@ no stability guarantee. Summary: Development files for %{name}-private-libs License: MIT Requires: %{name}-private-libs%{?_isa} = %{version}-%{release} -Requires: ocaml-dyn-devel%{?_isa} = %{version}-%{release} %description private-libs-devel The ocaml-dune-private-libs-devel package contains libraries and @@ -293,7 +299,8 @@ signature files for other dune packages. Do not use. %package rpc Summary: Communicate with dune using rpc License: MIT -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: ocaml-dyn%{?_isa} = %{version}-%{release} +Requires: ocaml-ordering%{?_isa} = %{version}-%{release} Requires: ocaml-stdune%{?_isa} = %{version}-%{release} Requires: ocaml-xdg%{?_isa} = %{version}-%{release} @@ -304,8 +311,14 @@ This package contains a library used to communicate with dune over rpc. Summary: Development files for %{name}-rpc License: MIT Requires: %{name}-rpc%{?_isa} = %{version}-%{release} +Requires: ocaml-dyn-devel%{?_isa} = %{version}-%{release} +Requires: ocaml-ordering-devel%{?_isa} = %{version}-%{release} Requires: ocaml-stdune-devel%{?_isa} = %{version}-%{release} Requires: ocaml-xdg-devel%{?_isa} = %{version}-%{release} +%if !0%{?rhel} +Requires: ocaml-csexp-devel%{?_isa} +Requires: ocaml-pp-devel%{?_isa} +%endif %description rpc-devel The ocaml-dune-rpc-devel package contains libraries and signature files @@ -315,7 +328,6 @@ for developing applications that use ocaml-rpc. %package rpc-lwt Summary: Communicate with dune using rpc and Lwt License: MIT -Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-rpc%{?_isa} = %{version}-%{release} %description rpc-lwt @@ -340,7 +352,6 @@ files for developing applications that use ocaml-rpc-lwt. %package site Summary: Embed location information inside executables and libraries License: MIT -Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-private-libs%{?_isa} = %{version}-%{release} %description site @@ -360,7 +371,6 @@ for developing applications that use ocaml-dune-site. %package -n ocaml-chrome-trace Summary: Chrome trace event generation library License: MIT -Requires: %{name}%{?_isa} = %{version}-%{release} %description -n ocaml-chrome-trace Library to output trace data to a file in Chrome's trace_event format. @@ -379,7 +389,6 @@ developing applications that use ocaml-dyn. %package -n ocaml-dyn Summary: Dynamic types License: MIT -Requires: %{name}%{?_isa} = %{version}-%{release} Requires: ocaml-ordering%{?_isa} = %{version}-%{release} %description -n ocaml-dyn @@ -390,9 +399,6 @@ Summary: Development files for ocaml-dyn License: MIT Requires: ocaml-dyn%{?_isa} = %{version}-%{release} Requires: ocaml-ordering-devel%{?_isa} = %{version}-%{release} -%if !0%{?rhel} -Requires: ocaml-pp-devel%{?_isa} -%endif %description -n ocaml-dyn-devel The ocaml-dyn-devel package contains libraries and signature files for @@ -401,7 +407,6 @@ developing applications that use ocaml-dyn. %package -n ocaml-ocamlc-loc Summary: Parse OCaml compiler output into structured form License: MIT -Requires: %{name}%{?_isa} = %{version}-%{release} Requires: ocaml-dyn%{?_isa} = %{version}-%{release} %description -n ocaml-ocamlc-loc @@ -420,7 +425,6 @@ for developing applications that use ocaml-ocamlc-loc. %package -n ocaml-ordering Summary: Element ordering License: MIT -Requires: %{name}%{?_isa} = %{version}-%{release} %description -n ocaml-ordering Element ordering in OCaml. @@ -437,8 +441,8 @@ for developing applications that use ocaml-ordering. %package -n ocaml-stdune Summary: Dune's unstable standard library License: MIT -Requires: %{name}%{?_isa} = %{version}-%{release} Requires: ocaml-dyn%{?_isa} = %{version}-%{release} +Requires: ocaml-ordering%{?_isa} = %{version}-%{release} %description -n ocaml-stdune This package contains Dune's unstable standard library. @@ -448,8 +452,10 @@ Summary: Development files for ocaml-stdune License: MIT Requires: ocaml-stdune%{?_isa} = %{version}-%{release} Requires: ocaml-dyn-devel%{?_isa} = %{version}-%{release} +Requires: ocaml-ordering-devel%{?_isa} = %{version}-%{release} %if !0%{?rhel} Requires: ocaml-csexp-devel%{?_isa} +Requires: ocaml-pp-devel%{?_isa} %endif %description -n ocaml-stdune-devel @@ -459,7 +465,6 @@ for developing applications that use ocaml-stdune. %package -n ocaml-xdg Summary: XDG Base Directory Specification License: MIT -Requires: %{name}%{?_isa} = %{version}-%{release} %description -n ocaml-xdg This package contains the XDG Base Directory Specification. @@ -483,6 +488,7 @@ rm -fr otherlibs/dune-rpc-lwt dune-rpc-lwt.opam %build ./configure \ + --prefix %{_prefix} \ --bindir %{_bindir} \ --datadir %{_datadir} \ --docdir %{_prefix}/doc \ @@ -598,6 +604,47 @@ cd - %files -n ocaml-xdg-devel -f .ofiles-xdg-devel %changelog +* Mon Oct 13 2025 Richard W.M. Jones - 3.20.2-2 +- OCaml 5.4.0 rebuild + +* Tue Sep 16 2025 Jerry James - 3.20.2-1 +- Version 3.20.2 + +* Mon Aug 25 2025 Jerry James - 3.20.1-1 +- Version 3.20.1 + +* Fri Aug 22 2025 Jerry James - 3.20.0-1 +- Version 3.20.0 + +* Wed Jul 23 2025 Jerry James - 3.19.1-2 +- Migrate tests from STI to TMT (rhbz#2382985) + +* Wed Jun 11 2025 Jerry James - 3.19.1-1 +- Version 3.19.1 + +* Fri May 23 2025 Jerry James - 3.19.0-1 +- Version 3.19.0 + +* Fri May 02 2025 Jerry James - 3.18.2-1 +- Version 3.18.2 + +* Fri Apr 18 2025 Jerry James - 3.18.1-1 +- Version 3.18.1 + +* Thu Apr 3 2025 Jerry James - 3.18.0-1 +- Version 3.18.0 + +* Thu Jan 23 2025 Jerry James - 3.17.2-1 +- Version 3.17.2 + +* Fri Jan 17 2025 Fedora Release Engineering - 3.17.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Thu Dec 26 2024 Jerry James - 3.17.1-1 +- Version 3.17.1 +- Update License field for changes in vendored dependencies +- Drop upstreamed furo theme patch + * Thu Oct 31 2024 Jerry James - 3.16.1-1 - Version 3.16.1 diff --git a/plans.fmf b/plans.fmf new file mode 100644 index 0000000..9337313 --- /dev/null +++ b/plans.fmf @@ -0,0 +1,10 @@ +summary: Run all tests +discover: + how: fmf +execute: + how: tmt +prepare: + how: install + package: + - ocaml + - ocaml-dune diff --git a/sources b/sources index 1fc7796..828aee6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (dune-3.16.1.tar.gz) = 18e8022c5fa276e06f788cf25a4d6d08e3247c546cd69a5206d4e78ece1f47a615c6d5842e68e1fa7908cae7ae8c6e4f31d2eb835d97b5e6b5e4154957139e9f +SHA512 (dune-3.20.2.tar.gz) = efb4376e03a3e760ee230c22ba8ac788623382437d9e3551fdd6bacdca1c6aa2db90246feb011d3d0e7ba3afa47161ebd06c80cfb24e357a82f7764bf003e355 diff --git a/tests/main.fmf b/tests/main.fmf new file mode 100644 index 0000000..a5f5b31 --- /dev/null +++ b/tests/main.fmf @@ -0,0 +1,2 @@ +summary: Basic test +test: ./basic-test.sh diff --git a/tests/tests.yml b/tests/tests.yml deleted file mode 100755 index 6d126cf..0000000 --- a/tests/tests.yml +++ /dev/null @@ -1,12 +0,0 @@ -- hosts: localhost - roles: - - role: standard-test-basic - tags: - - classic - required_packages: - - ocaml - - ocaml-dune - tests: - - simple: - dir: . - run: ./basic-test.sh diff --git a/use-furo-theme.patch b/use-furo-theme.patch deleted file mode 100644 index d39f919..0000000 --- a/use-furo-theme.patch +++ /dev/null @@ -1,141 +0,0 @@ -From ef461f6000ffbf2f7381e3b8d1d9c7ecdd518b20 Mon Sep 17 00:00:00 2001 -From: Etienne Millon -Date: Fri, 2 Aug 2024 10:28:46 +0200 -Subject: [PATCH] docs: use furo theme (#10786) - -* docs: use furo theme - -This theme has several advantages compared to `sphinx_rtd_theme`: - -- support for light and dark mode -- a sidebar on the right with a table of contents for the current - documentation -- better use of horizontal space (half of the screen is unused with - `sphinx_rtd_theme`) -- "it looks better" - -Signed-off-by: Etienne Millon - -* use sphinx >= 6 - -Signed-off-by: Etienne Millon - ---------- - -Signed-off-by: Etienne Millon ---- - doc/conf.py | 12 +++--------- - doc/coq.rst | 3 --- - doc/hacking.rst | 5 ----- - doc/requirements.txt | 4 ++-- - flake.nix | 4 ++-- - 5 files changed, 7 insertions(+), 21 deletions(-) - -diff --git a/doc/conf.py b/doc/conf.py -index 787d072..f3bd7ee 100644 ---- a/doc/conf.py -+++ b/doc/conf.py -@@ -74,7 +74,7 @@ language = "en" - exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] - - # The name of the Pygments (syntax highlighting) style to use. --pygments_style = 'sphinx' -+pygments_style = 'friendly' - - # If true, `todo` and `todoList` produce output, else they produce nothing. - todo_include_todos = False -@@ -85,13 +85,13 @@ todo_include_todos = False - # The theme to use for HTML and HTML Help pages. See the documentation for - # a list of builtin themes. - # --html_theme = 'sphinx_rtd_theme' -+html_theme = 'furo' - - # Theme options are theme-specific and customize the look and feel of a theme - # further. For a list of options available for each theme, see the - # documentation. - # --html_theme_options = {'navigation_depth': 6} -+html_theme_options = {} - - # Add any paths that contain custom static files (such as style sheets) here, - # relative to this directory. They are copied after the builtin static files, -@@ -155,12 +155,6 @@ texinfo_documents = [ - 'Miscellaneous'), - ] - -- -- --import sphinx_rtd_theme -- --html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] -- - html_context = { - 'display_github': True, - 'github_user': 'ocaml', -diff --git a/doc/coq.rst b/doc/coq.rst -index 2266cc4..d20a4da 100644 ---- a/doc/coq.rst -+++ b/doc/coq.rst -@@ -11,9 +11,6 @@ Coq - - reference info for stanzas and variables - - tutorials (the examples part) - --.. contents:: Table of Contents -- :depth: 3 -- - Introduction - ------------ - -diff --git a/doc/hacking.rst b/doc/hacking.rst -index 096ee5d..6f1ff14 100644 ---- a/doc/hacking.rst -+++ b/doc/hacking.rst -@@ -10,11 +10,6 @@ general guidelines specific to Dune. However, given that Dune is a large project - developed by many different people, it's important to follow these guidelines in - order to keep the project in a good state and pleasant to work on for everybody. - --.. contents:: Table of Contents -- :depth: 1 -- :local: -- :backlinks: none -- - Dependencies - ============ - -diff --git a/doc/requirements.txt b/doc/requirements.txt -index 21f8f5f..b4a0e74 100644 ---- a/doc/requirements.txt -+++ b/doc/requirements.txt -@@ -1,4 +1,4 @@ --sphinx >= 4.5.0, < 6 --sphinx_rtd_theme >= 1.0.0 -+sphinx >= 6 -+furo - sphinx-copybutton >= 0.5.0 - sphinx-design -diff --git a/flake.nix b/flake.nix -index 00f97e1..ca349f2 100644 ---- a/flake.nix -+++ b/flake.nix -@@ -122,7 +122,7 @@ - - docInputs = with pkgs'.python3.pkgs; [ - sphinx-autobuild -- sphinx_rtd_theme -+ furo - sphinx-copybutton - sphinx-design - ]; -@@ -164,7 +164,7 @@ - sphinx - sphinx-autobuild - python310Packages.sphinx-copybutton -- python310Packages.sphinx-rtd-theme -+ python310Packages.furo - python310Packages.sphinx-design - ] - ); --- -2.46.2 -