diff --git a/.gitignore b/.gitignore index 384150d..8fe9270 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ ocaml-fileutils-0.4.0.tar.gz /ocaml-fileutils-0.4.5.tar.gz /ocaml-fileutils-0.5.1.tar.gz /ocaml-fileutils-0.5.2.tar.gz +/fileutils-0.6.4.tbz +/fileutils-0.6.6.tbz diff --git a/fileutils-0.5.2-fix-bytes.patch b/fileutils-0.5.2-fix-bytes.patch deleted file mode 100644 index cd0011d..0000000 --- a/fileutils-0.5.2-fix-bytes.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- ocaml-fileutils-0.5.2.old/src/FileUtilCP.ml 2017-05-23 21:12:19.000000000 +0100 -+++ ocaml-fileutils-0.5.2/src/FileUtilCP.ml 2017-11-08 17:36:42.271524209 +0000 -@@ -138,7 +138,7 @@ - end - in - -- let buffer = String.make 1024 ' ' in -+ let buffer = Bytes.make 1024 ' ' in - - let cp_file st_src dst_exists fn_src fn_dst = - let mode = int_of_permission st_src.permission in -@@ -176,7 +176,7 @@ - try - while (read := - handle_exception -- (Unix.read fd_src buffer 0) (String.length buffer) -+ (Unix.read fd_src buffer 0) (Bytes.length buffer) - (fun e -> `ErrorRead(fn_src, e)); - !read <> 0) do - let written = diff --git a/gating.yaml b/gating.yaml new file mode 100755 index 0000000..2c7ed80 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,6 @@ +--- !Policy +product_versions: + - rhel-* +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} diff --git a/ocaml-fileutils-0.5.2-ounit2.patch b/ocaml-fileutils-0.5.2-ounit2.patch deleted file mode 100644 index 96a21e0..0000000 --- a/ocaml-fileutils-0.5.2-ounit2.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -ur ocaml-fileutils-0.5.2.old/setup.ml ocaml-fileutils-0.5.2.new/setup.ml ---- ocaml-fileutils-0.5.2.old/setup.ml 2017-05-23 21:12:33.000000000 +0100 -+++ ocaml-fileutils-0.5.2.new/setup.ml 2020-02-27 08:52:42.964618292 +0000 -@@ -7621,7 +7621,7 @@ - InternalLibrary "fileutils"; - InternalLibrary "fileutils-str"; - FindlibPackage -- ("oUnit", -+ ("ounit2", - Some (OASISVersion.VGreaterEqual "2.0.0")) - ]; - bs_build_tools = [ExternalTool "ocamlbuild"]; -diff -ur ocaml-fileutils-0.5.2.old/_tags ocaml-fileutils-0.5.2.new/_tags ---- ocaml-fileutils-0.5.2.old/_tags 2017-05-23 21:12:33.000000000 +0100 -+++ ocaml-fileutils-0.5.2.new/_tags 2020-02-27 08:52:38.020680545 +0000 -@@ -25,12 +25,12 @@ - : pkg_unix - : use_fileutils - # Executable test --"test/test.byte": pkg_oUnit -+"test/test.byte": pkg_ounit2 - "test/test.byte": pkg_str - "test/test.byte": pkg_unix - "test/test.byte": use_fileutils - "test/test.byte": use_fileutils-str --: pkg_oUnit -+: pkg_ounit2 - : pkg_str - : pkg_unix - : use_fileutils diff --git a/ocaml-fileutils.spec b/ocaml-fileutils.spec index 6e3ec5e..a664cef 100644 --- a/ocaml-fileutils.spec +++ b/ocaml-fileutils.spec @@ -1,25 +1,27 @@ -%undefine _package_note_flags +# OCaml packages not built on i686 since OCaml 5 / Fedora 39. +ExcludeArch: %{ix86} + +%ifnarch %{ocaml_native_compiler} +%global debug_package %{nil} +%endif + +%global giturl https://github.com/gildor478/ocaml-fileutils + Name: ocaml-fileutils -Version: 0.5.2 -Release: 31%{?dist} +Version: 0.6.6 +Release: 5%{?dist} Summary: OCaml library for common file and filename operations -License: LGPLv2 with exceptions -URL: https://forge.ocamlcore.org/projects/ocaml-fileutils/ -Source0: http://forge.ocamlcore.org/frs/download.php/1695/ocaml-fileutils-0.5.2.tar.gz +License: LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception +URL: https://gildor478.github.io/ocaml-fileutils/ +VCS: git:%{giturl}.git +Source0: %{giturl}/releases/download/v%{version}/fileutils-%{version}.tbz -Patch1: fileutils-0.5.2-fix-bytes.patch -# Use ounit2. -Patch2: ocaml-fileutils-0.5.2-ounit2.patch - -BuildRequires: make -BuildRequires: ocaml >= 4.00.1 -BuildRequires: ocaml-findlib-devel >= 1.3.3-3 -BuildRequires: ocaml-ocamldoc -%if 0%{?fedora} || 0%{?rhel} <= 6 -BuildRequires: ocaml-ounit-devel +BuildRequires: ocaml >= 4.14 +BuildRequires: ocaml-dune >= 2.9 +%if 0%{?fedora} +BuildRequires: ocaml-ounit-devel >= 2.0.0 %endif -BuildRequires: ocaml-ocamlbuild %description @@ -35,7 +37,7 @@ abstract filenames. %package devel Summary: Development files for %{name} -Requires: %{name} = %{version}-%{release} +Requires: %{name}%{?_isa} = %{version}-%{release} %description devel @@ -44,61 +46,103 @@ developing applications that use %{name}. %prep -%setup -q -%autopatch -p1 +%autosetup -n fileutils-%{version} -p1 %build -# Disable the tests (RHEL 7 only) since they require ocaml-ounit. -ocaml setup.ml -configure --prefix %{_prefix} --destdir $RPM_BUILD_ROOT \ -%if 0%{?rhel} >= 7 - --disable-tests -%else - --enable-tests -%endif -make +%dune_build %install -export DESTDIR=$RPM_BUILD_ROOT -export OCAMLFIND_DESTDIR=$RPM_BUILD_ROOT%{_libdir}/ocaml -mkdir -p $OCAMLFIND_DESTDIR $OCAMLFIND_DESTDIR/stublibs - -# Set htmldir to current directory, then copy the docs (in api/) -# as a %doc rule. -make htmldir=. install +%dune_install +# Do not run the tests (RHEL 7+ only) since they require ocaml-ounit. +%if 0%{?fedora} || 0%{?rhel} <= 6 %check -%if ! 0%{?rhel} >= 7 -make test +%dune_check %endif -%files -%doc COPYING.txt -%{_libdir}/ocaml/fileutils -%ifarch %{ocaml_native_compiler} -%exclude %{_libdir}/ocaml/fileutils/*.a -%exclude %{_libdir}/ocaml/fileutils/*.cmx -%exclude %{_libdir}/ocaml/fileutils/*.cmxa -%endif -%exclude %{_libdir}/ocaml/fileutils/*.ml -%exclude %{_libdir}/ocaml/fileutils/*.mli +%files -f .ofiles +%license LICENSE.txt -%files devel -%doc COPYING.txt AUTHORS.txt CHANGELOG.txt README.txt TODO.txt -%ifarch %{ocaml_native_compiler} -%{_libdir}/ocaml/fileutils/*.a -%{_libdir}/ocaml/fileutils/*.cmx -%{_libdir}/ocaml/fileutils/*.cmxa -%endif -%{_libdir}/ocaml/fileutils/*.ml -%{_libdir}/ocaml/fileutils/*.mli +%files devel -f .ofiles-devel +%doc README.md CHANGES.md +%license LICENSE.txt %changelog +* Tue Oct 14 2025 Richard W.M. Jones - 0.6.6-5 +- OCaml 5.4.0 rebuild + +* Thu Jul 24 2025 Fedora Release Engineering - 0.6.6-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Sat Jul 12 2025 Jerry James - 0.6.6-3 +- Rebuild to fix OCaml dependencies + +* Fri Jan 17 2025 Fedora Release Engineering - 0.6.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Thu Jan 9 2025 Jerry James - 0.6.6-1 +- OCaml 5.3.0 rebuild for Fedora 42 +- Version 0.6.6 +- All patches have been upstreamed + +* Thu Jul 18 2024 Fedora Release Engineering - 0.6.4-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Wed Jun 19 2024 Richard W.M. Jones - 0.6.4-10 +- OCaml 5.2.0 ppc64le fix + +* Wed May 29 2024 Richard W.M. Jones - 0.6.4-9 +- OCaml 5.2.0 for Fedora 41 + +* Thu Jan 25 2024 Fedora Release Engineering - 0.6.4-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 0.6.4-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Dec 18 2023 Richard W.M. Jones - 0.6.4-6 +- OCaml 5.1.1 + s390x code gen fix for Fedora 40 + +* Tue Dec 12 2023 Richard W.M. Jones - 0.6.4-5 +- OCaml 5.1.1 rebuild for Fedora 40 + +* Thu Oct 05 2023 Richard W.M. Jones - 0.6.4-4 +- OCaml 5.1 rebuild for Fedora 40 + +* Thu Jul 20 2023 Fedora Release Engineering - 0.6.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jul 11 2023 Richard W.M. Jones - 0.6.4-2 +- OCaml 5.0 rebuild for Fedora 39 + +* Mon Jul 10 2023 Jerry James - 0.6.4-1 +- Version 0.6.4 +- New project URLs +- Convert License tag to SPDX +- Drop upstreamed bytes and ounit2 patches +- Build with dune + +* Tue Jan 24 2023 Richard W.M. Jones - 0.5.2-36 +- Bump release and rebuild + +* Tue Jan 24 2023 Richard W.M. Jones - 0.5.2-35 +- Rebuild OCaml packages for F38 + +* Thu Jan 19 2023 Fedora Release Engineering - 0.5.2-34 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Jul 22 2022 Fedora Release Engineering - 0.5.2-33 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sun Jun 19 2022 Richard W.M. Jones - 0.5.2-32 +- OCaml 4.14.0 rebuild + * Fri Feb 04 2022 Richard W.M. Jones - 0.5.2-31 - OCaml 4.13.1 rebuild to remove package notes diff --git a/sources b/sources index 23e4068..ee75ed3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (ocaml-fileutils-0.5.2.tar.gz) = 264282c54ff693686ca9e60f371038f8ea9bce219d04556297dc7b6028c9f65c5a03b7cd263c3519cb212e29665200db1c95c88874bb2cb3d7b610e3b832018d +SHA512 (fileutils-0.6.6.tbz) = ecc38b1577ab108bd24d1e9f0e83596254e542eefb37020dedcff7ca0109e562411cbb9806fbc6f88f4166569bf061a444971388c26950ec02dfc48b35daed90 diff --git a/tests/basic-test.sh b/tests/basic-test.sh new file mode 100755 index 0000000..9c74e1c --- /dev/null +++ b/tests/basic-test.sh @@ -0,0 +1,8 @@ +#!/bin/bash - +set -e +set -x + +# Compile trivial fileutils program. +echo 'assert (FilePath.compare "/" "/" = 0)' > filetest.ml +ocamlfind ocamlopt -package fileutils filetest.ml -linkpkg -o filetest +./filetest diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100755 index 0000000..24edee1 --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,13 @@ +- hosts: localhost + roles: + - role: standard-test-basic + tags: + - classic + required_packages: + - ocaml + - ocaml-findlib + - ocaml-fileutils-devel + tests: + - simple: + dir: . + run: ./basic-test.sh