diff --git a/.gitignore b/.gitignore index 8fe92f1..9bcf330 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,3 @@ ocaml-gettext-0.3.3.tar.gz /ocaml-gettext-0.3.8-3aecf8e5350f.tar.gz /v0.4.1.tar.gz /v0.4.2.tar.gz -/v0.5.0.tar.gz diff --git a/0001-xgettext-Fix-type-for-OCaml-5.4.patch b/0001-xgettext-Fix-type-for-OCaml-5.4.patch deleted file mode 100644 index dd3f5ee..0000000 --- a/0001-xgettext-Fix-type-for-OCaml-5.4.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 5d521981e39dcaeada6bbe7b15c5432d6de5d33c Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Wed, 15 Oct 2025 09:24:18 +0100 -Subject: [PATCH] xgettext: Fix type for OCaml 5.4 - -Fixes: https://github.com/gildor478/ocaml-gettext/issues/40 -Signed-off-by: Richard W.M. Jones ---- - src/bin/ocaml-xgettext/xgettext.ml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/bin/ocaml-xgettext/xgettext.ml b/src/bin/ocaml-xgettext/xgettext.ml -index 8f54efc..aa12aed 100644 ---- a/src/bin/ocaml-xgettext/xgettext.ml -+++ b/src/bin/ocaml-xgettext/xgettext.ml -@@ -112,7 +112,7 @@ let rec is_like lid = function - | [] -> false - | func :: functions -> ( - match lid with -- | (Lident f | Ldot (_, f)) when f = func -> true -+ | (Lident f | Ldot (_, {txt = f; _})) when f = func -> true - | _ -> is_like lid functions ) - - let visit_expr (iterator : Ast_iterator.iterator) expr = --- -2.50.1 - diff --git a/37.patch b/37.patch deleted file mode 100644 index 2616f40..0000000 --- a/37.patch +++ /dev/null @@ -1,160 +0,0 @@ -From 5462396bee53cb13d8d6fde4c6d430412a17b64d Mon Sep 17 00:00:00 2001 -From: Stephane Glondu -Date: Thu, 3 Apr 2025 09:52:20 +0200 -Subject: [PATCH] Do not use dune sites - -Using dune-site forces use of dune in all reverse-dependencies: - - https://github.com/gildor478/ocaml-gettext/issues/36 - -The use here is to add an ocaml-gettext-specific directory to the -default MO search path. Remove this directory altogether. (This may -break reverse dependencies.) ---- - dune-project | 2 -- - gettext-camomile.opam | 2 -- - gettext-stub.opam | 2 -- - gettext.opam | 3 --- - src/lib/gettext/base/.keep-directory | 1 - - src/lib/gettext/base/dune | 13 +------------ - src/lib/gettext/base/gettextConfig.ml | 9 +-------- - 7 files changed, 2 insertions(+), 30 deletions(-) - delete mode 100644 src/lib/gettext/base/.keep-directory - -diff --git a/dune-project b/dune-project -index 2ee85d7..ef2b58e 100644 ---- a/dune-project -+++ b/dune-project -@@ -2,7 +2,6 @@ - (name gettext) - - (explicit_js_mode) --(using dune_site 0.1) - (generate_opam_files) - - (source (github gildor478/ocaml-gettext)) -@@ -25,7 +24,6 @@ - "\| - ) - (depends -- dune-site - (ocaml (>= "4.14.0")) - (cppo (and (>= 1.8.0) :build)) - (seq (and (>= "base") :with-test)) -diff --git a/gettext-camomile.opam b/gettext-camomile.opam -index 1fde721..05c96d1 100644 ---- a/gettext-camomile.opam -+++ b/gettext-camomile.opam -@@ -25,11 +25,9 @@ build: [ - name - "-j" - jobs -- "--promote-install-files=false" - "@install" - "@runtest" {with-test} - "@doc" {with-doc} - ] -- ["dune" "install" "-p" name "--create-install-files" name] - ] - dev-repo: "git+https://github.com/gildor478/ocaml-gettext.git" -diff --git a/gettext-stub.opam b/gettext-stub.opam -index 2463a70..980a584 100644 ---- a/gettext-stub.opam -+++ b/gettext-stub.opam -@@ -24,12 +24,10 @@ build: [ - name - "-j" - jobs -- "--promote-install-files=false" - "@install" - "@runtest" {with-test} - "@doc" {with-doc} - ] -- ["dune" "install" "-p" name "--create-install-files" name] - ] - dev-repo: "git+https://github.com/gildor478/ocaml-gettext.git" - depexts: [ -diff --git a/gettext.opam b/gettext.opam -index 50a0933..d2f6490 100644 ---- a/gettext.opam -+++ b/gettext.opam -@@ -19,7 +19,6 @@ doc: "https://gildor478.github.io/ocaml-gettext/" - bug-reports: "https://github.com/gildor478/ocaml-gettext/issues" - depends: [ - "dune" {>= "3.17"} -- "dune-site" - "ocaml" {>= "4.14.0"} - "cppo" {>= "1.8.0" & build} - "seq" {>= "base" & with-test} -@@ -36,11 +35,9 @@ build: [ - name - "-j" - jobs -- "--promote-install-files=false" - "@install" - "@runtest" {with-test} - "@doc" {with-doc} - ] -- ["dune" "install" "-p" name "--create-install-files" name] - ] - dev-repo: "git+https://github.com/gildor478/ocaml-gettext.git" -diff --git a/src/lib/gettext/base/.keep-directory b/src/lib/gettext/base/.keep-directory -deleted file mode 100644 -index f1eab5f..0000000 ---- a/src/lib/gettext/base/.keep-directory -+++ /dev/null -@@ -1 +0,0 @@ --# This directory contains MO files. -diff --git a/src/lib/gettext/base/dune b/src/lib/gettext/base/dune -index 2eae0c5..7b98bb7 100644 ---- a/src/lib/gettext/base/dune -+++ b/src/lib/gettext/base/dune -@@ -4,17 +4,6 @@ - (ocamlyacc - (modules gettextFormat_parser gettextMo_parser)) - --(generate_sites_module -- (module gettextConfigDune) -- (sites gettext)) -- --(install -- (package gettext) -- (section -- (site -- (gettext locale))) -- (files .keep-directory)) -- - (rule - (target gettextConfigGen.ml) - (action -@@ -33,4 +22,4 @@ - GettextMo_int32 - GettextMo_lexer - GettextMo_parser) -- (libraries dune-site fileutils)) -+ (libraries fileutils)) -diff --git a/src/lib/gettext/base/gettextConfig.ml b/src/lib/gettext/base/gettextConfig.ml -index 9d5d986..fe8963b 100644 ---- a/src/lib/gettext/base/gettextConfig.ml -+++ b/src/lib/gettext/base/gettextConfig.ml -@@ -23,19 +23,12 @@ - let default_dir = GettextConfigGen.default_localedir - - let default_path () = -- let dunepath = -- match GettextConfigDune.Sites.locale with -- | [ path ] -> [ path ] -- | [] -> [] -- | _ -> assert false -- in - let envpath = - match Sys.getenv "OCAML_LOCALEPATH" with - | s -> String.split_on_char ':' s - | exception Not_found -> [] - in -- envpath @ dunepath -- @ [ GettextConfigGen.localedir; GettextConfigGen.default_localedir ] -+ envpath @ [ GettextConfigGen.localedir; GettextConfigGen.default_localedir ] - - let default_codeset = "" - diff --git a/gating.yaml b/gating.yaml deleted file mode 100755 index 2c7ed80..0000000 --- a/gating.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- !Policy -product_versions: - - rhel-* -decision_context: osci_compose_gate -rules: - - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} diff --git a/ocaml-gettext-camomile2.patch b/ocaml-gettext-camomile2.patch new file mode 100644 index 0000000..a5ffd39 --- /dev/null +++ b/ocaml-gettext-camomile2.patch @@ -0,0 +1,11 @@ +--- ocaml-gettext-0.4.2/src/lib/gettext-camomile/gettextCamomile.ml.orig 2020-06-11 14:40:42.000000000 -0600 ++++ ocaml-gettext-0.4.2/src/lib/gettext-camomile/gettextCamomile.ml 2023-06-22 13:41:46.930127479 -0600 +@@ -20,7 +20,7 @@ + (* USA *) + (**************************************************************************) + +-open CamomileLibraryDefault.Camomile ++open Camomile + open GettextTypes + + (** Error reported when something goes wrong during Camomile initialization. diff --git a/ocaml-gettext-ocaml5.patch b/ocaml-gettext-ocaml5.patch new file mode 100644 index 0000000..cbdf21b --- /dev/null +++ b/ocaml-gettext-ocaml5.patch @@ -0,0 +1,152 @@ +--- ocaml-gettext-0.4.2/gettext-camomile.opam.orig 2020-06-11 14:40:42.000000000 -0600 ++++ ocaml-gettext-0.4.2/gettext-camomile.opam 2023-06-22 13:31:24.299464751 -0600 +@@ -19,9 +19,8 @@ depends: [ + "ocaml" {>= "4.03.0"} + "dune" {>= "1.11.0"} + "camomile" +- "base-bytes" + "gettext" {= version} +- "ounit" {with-test & > "2.0.8"} ++ "ounit2" {with-test & > "2.2.6"} + "fileutils" {with-test} + ] + synopsis: "Internationalization library using camomile (i18n)" +--- ocaml-gettext-0.4.2/gettext.opam.orig 2020-06-11 14:40:42.000000000 -0600 ++++ ocaml-gettext-0.4.2/gettext.opam 2023-06-22 13:30:52.810938219 -0600 +@@ -20,8 +20,7 @@ depends: [ + "dune" {>= "1.11.0"} + "cppo" {build} + "fileutils" +- "base-bytes" +- "ounit" {with-test & > "2.0.8"} ++ "ounit2" {with-test & > "2.2.6"} + ] + synopsis: "Internationalization library (i18n)" + description:""" +--- ocaml-gettext-0.4.2/gettext-stub.opam.orig 2020-06-11 14:40:42.000000000 -0600 ++++ ocaml-gettext-0.4.2/gettext-stub.opam 2023-06-22 13:32:14.938703327 -0600 +@@ -19,9 +19,8 @@ depends: [ + "ocaml" {>= "4.03.0"} + "dune" {>= "1.11.0"} + "dune-configurator" +- "base-bytes" + "gettext" {= version} +- "ounit" {with-test & > "2.0.8"} ++ "ounit2" {with-test & > "2.2.6"} + "fileutils" {with-test} + ] + depexts: [ +--- ocaml-gettext-0.4.2/src/lib/gettext-stub/gettextStubCompat_stubs.c.orig 2020-06-11 14:40:42.000000000 -0600 ++++ ocaml-gettext-0.4.2/src/lib/gettext-stub/gettextStubCompat_stubs.c 2023-06-22 13:33:17.080769220 -0600 +@@ -76,7 +76,7 @@ CAMLprim value gettextStubCompat_gettext + value v_msgid) + { + CAMLparam1(v_msgid); +- CAMLreturn(copy_string(gettext(String_val(v_msgid)))); ++ CAMLreturn(caml_copy_string(gettext(String_val(v_msgid)))); + } + + CAMLprim value gettextStubCompat_dgettext( +@@ -85,7 +85,7 @@ CAMLprim value gettextStubCompat_dgettex + { + CAMLparam2(v_domainname, v_msgid); + CAMLreturn( +- copy_string( ++ caml_copy_string( + dgettext( + String_val(v_domainname), + String_val(v_msgid)))); +@@ -98,7 +98,7 @@ CAMLprim value gettextStubCompat_dcgette + { + CAMLparam3(v_domainname, v_msgid, v_category); + CAMLreturn( +- copy_string( ++ caml_copy_string( + dcgettext( + String_val(v_domainname), + String_val(v_msgid), +@@ -112,7 +112,7 @@ CAMLprim value gettextStubCompat_ngettex + { + CAMLparam3(v_msgid1, v_msgid2, v_n); + CAMLreturn( +- copy_string( ++ caml_copy_string( + ngettext( + String_val(v_msgid1), + String_val(v_msgid2), +@@ -127,7 +127,7 @@ CAMLprim value gettextStubCompat_dngette + { + CAMLparam4(v_domainname, v_msgid1, v_msgid2, v_n); + CAMLreturn( +- copy_string( ++ caml_copy_string( + dngettext( + String_val(v_domainname), + String_val(v_msgid1), +@@ -158,7 +158,7 @@ CAMLprim value gettextStubCompat_dcngett + "NULL string not expected at "STRINGIFY(__LINE__)" in "__FILE__); + }; + +- CAMLreturn(copy_string(res)); ++ CAMLreturn(caml_copy_string(res)); + } + + CAMLprim value gettextStubCompat_textdomain( +--- ocaml-gettext-0.4.2/test/common/dune.orig 2020-06-11 14:40:42.000000000 -0600 ++++ ocaml-gettext-0.4.2/test/common/dune 2023-06-22 13:33:50.049275086 -0600 +@@ -1,3 +1,3 @@ + (library + (name common) +- (libraries gettext.base oUnit)) ++ (libraries gettext.base ounit2)) +--- ocaml-gettext-0.4.2/test/dune.orig 2020-06-11 14:40:42.000000000 -0600 ++++ ocaml-gettext-0.4.2/test/dune 2023-06-22 13:34:09.487983748 -0600 +@@ -6,7 +6,7 @@ + ../src/bin/ocaml-xgettext/xgettext.exe + (glob_files testdata/*) + (glob_files testdata/fr_FR/LC_MESSAGES/*)) +- (libraries oUnit str fileutils gettext.extension common) ++ (libraries ounit2 str fileutils gettext.extension common) + (action + (run %{test} + -runner sequential +--- ocaml-gettext-0.4.2/test/test-camomile/dune.orig 2020-06-11 14:40:42.000000000 -0600 ++++ ocaml-gettext-0.4.2/test/test-camomile/dune 2023-06-22 13:34:24.840753623 -0600 +@@ -4,6 +4,6 @@ + (deps + (glob_files testdata/*) + (glob_files ../testdata/fr_FR/LC_MESSAGES/*)) +- (libraries common gettext-camomile oUnit fileutils) ++ (libraries common gettext-camomile ounit2 fileutils) + (action + (run %{test} -test-dir ../testdata))) +--- ocaml-gettext-0.4.2/test/test.ml.orig 2020-06-11 14:40:42.000000000 -0600 ++++ ocaml-gettext-0.4.2/test/test.ml 2023-06-22 13:35:08.719095972 -0600 +@@ -221,7 +221,7 @@ let install_test = + Printf.sprintf "%s warning" fl_mo >:: fun ctxt -> + let tests = make_tests ctxt in + let out = Buffer.create 13 in +- let capture_out strm = Stream.iter (Buffer.add_char out) strm in ++ let capture_out strm = Seq.iter (Buffer.add_char out) strm in + let fl_mo = concat tests.test_dir fl_mo in + let fl_dst = make_filename (tests.install_dir :: fl_dsts) in + assert_command +@@ -392,7 +392,7 @@ let compile_ocaml = + [] + in + let out = Buffer.create 13 in +- let capture_out strm = Stream.iter (Buffer.add_char out) strm in ++ let capture_out strm = Seq.iter (Buffer.add_char out) strm in + let match_exp_err = Str.regexp (".*"^(Str.quote exp_err)^".*") in + assert_command + ~exit_code:(Unix.WEXITED exp_return_code) +--- ocaml-gettext-0.4.2/test/test-stub/dune.orig 2020-06-11 14:40:42.000000000 -0600 ++++ ocaml-gettext-0.4.2/test/test-stub/dune 2023-06-22 13:34:43.239477852 -0600 +@@ -4,6 +4,6 @@ + (deps + (glob_files ../testdata/*) + (glob_files ../testdata/fr_FR/LC_MESSAGES/*)) +- (libraries common gettext-stub oUnit) ++ (libraries common gettext-stub ounit2) + (action + (run %{test} -test-dir ../testdata))) diff --git a/ocaml-gettext.spec b/ocaml-gettext.spec index 5a2eca2..d8b5b60 100644 --- a/ocaml-gettext.spec +++ b/ocaml-gettext.spec @@ -11,35 +11,26 @@ ExcludeArch: %{ix86} %endif Name: ocaml-gettext -Version: 0.5.0 -Release: 7%{?dist} +Version: 0.4.2 +Release: 14%{?dist} Summary: OCaml library for i18n License: LGPL-2.1-or-later with OCaml-LGPL-linking-exception URL: https://github.com/gildor478/ocaml-gettext -VCS: git:%{url}.git -Source0: %{url}/archive/v%{version}.tar.gz +Source0: https://github.com/gildor478/%{name}/archive/v%{version}.tar.gz -# Fix to stop using dune-site -# https://github.com/gildor478/ocaml-gettext/issues/36 -# https://github.com/gildor478/ocaml-gettext/pull/37 -Patch: https://github.com/gildor478/ocaml-gettext/pull/37.patch - -# Fix for OCaml >= 5.4 -# https://github.com/gildor478/ocaml-gettext/issues/40 -# https://github.com/gildor478/ocaml-gettext/pull/41 -Patch: 0001-xgettext-Fix-type-for-OCaml-5.4.patch +# Updates for OCaml 5. Based in part on +# https://github.com/gildor478/ocaml-gettext/pull/24 +Patch0: %{name}-ocaml5.patch +# Adapt to changes in camomile 2.0 +Patch1: %{name}-camomile2.patch BuildRequires: ocaml >= 4.03.0 -BuildRequires: ocaml-fileutils-devel >= 0.6.6-1 +BuildRequires: ocaml-fileutils-devel >= 0.4.4-4 BuildRequires: ocaml-dune >= 1.11.0 BuildRequires: ocaml-dune-configurator-devel BuildRequires: ocaml-cppo -# This was orphaned and dropped from Fedora back in 2023, but may be -# needed to run the tests. -# https://github.com/gildor478/ocaml-gettext/issues/35 -#BuildRequires: ocaml-seq-devel BuildRequires: docbook-style-xsl BuildRequires: libxslt BuildRequires: libxml2 @@ -72,7 +63,9 @@ Constraints : %package devel Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: ocaml-fileutils-devel%{?_isa} >= 0.6.6 + +# BZ 446919. +Requires: ocaml-fileutils-devel%{?_isa} >= 0.4.0 %description devel @@ -108,17 +101,12 @@ signature files for developing applications that use %prep %autosetup -p1 -# Remove ocaml-seq dependency. See note above. -sed -i 's/ seq / /' test/dune - %if %{without camomile} # Remove dependency on camomile. rm -f gettext-camomile.opam rm -r src/lib/gettext-camomile rm -r test/test-camomile sed -i -e 's/camomile//' `find -name dune` -awk -i inplace -v RS='^\\(package' -v ORS= \ - '{while(sub(/\(package\n *\(name gettext-camomile\).*\)\)\)\)/,""));} {print}' dune-project %endif @@ -163,63 +151,6 @@ cat .ofiles-gettext-stub-devel >> .ofiles-gettext-devel %changelog -* Tue Oct 14 2025 Richard W.M. Jones - 0.5.0-7 -- OCaml 5.4.0 rebuild - -* Fri Aug 22 2025 Jerry James - 0.5.0-6 -- Rebuild for ocaml-dune 3.20.0 - -* Thu Jul 24 2025 Fedora Release Engineering - 0.5.0-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Sat Jul 12 2025 Jerry James - 0.5.0-4 -- Rebuild to fix OCaml dependencies - -* Thu Apr 03 2025 Richard W.M. Jones - 0.5.0-3 -- Remove use of dune-site - -* Thu Feb 27 2025 Richard W.M. Jones - 0.5.0-2 -- Add dependency from devel to ocaml-dune-site-devel. - https://src.fedoraproject.org/rpms/ocaml-gettext/pull-request/3#comment-249424 - -* Wed Feb 26 2025 Richard W.M. Jones - 0.5.0-1 -- New version 0.5.0 -- New dependency ocaml-dune-site-devel (copied from opam). -- Remove upstream patches. - -* Fri Jan 17 2025 Fedora Release Engineering - 0.4.2-24 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Fri Jan 10 2025 Jerry James - 0.4.2-23 -- OCaml 5.3.0 rebuild for Fedora 42 - -* Thu Jul 18 2024 Fedora Release Engineering - 0.4.2-22 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Wed Jun 19 2024 Richard W.M. Jones - 0.4.2-21 -- OCaml 5.2.0 ppc64le fix - -* Wed May 29 2024 Richard W.M. Jones - 0.4.2-20 -- OCaml 5.2.0 for Fedora 41 - -* Wed May 8 2024 Jerry James - 0.4.2-19 -- Add patch to fix tests with OCaml 5.2.0 - -* Thu Jan 25 2024 Fedora Release Engineering - 0.4.2-19 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sun Jan 21 2024 Fedora Release Engineering - 0.4.2-18 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Mon Dec 18 2023 Richard W.M. Jones - 0.4.2-17 -- OCaml 5.1.1 + s390x code gen fix for Fedora 40 - -* Tue Dec 12 2023 Richard W.M. Jones - 0.4.2-16 -- OCaml 5.1.1 rebuild for Fedora 40 - -* Thu Oct 05 2023 Richard W.M. Jones - 0.4.2-15 -- OCaml 5.1 rebuild for Fedora 40 - * Thu Jul 20 2023 Fedora Release Engineering - 0.4.2-14 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild diff --git a/sources b/sources index 85cd65b..7317e8d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (v0.5.0.tar.gz) = f55505bbe0da2a06053d94ee895a3e610a8d4ab5a2283ccff6a5a0c6a8ec011f5f286ab93e117cc340f55f056c7cdcb5752cc798e9d8e18fb5ab17f27f4a64c2 +SHA512 (v0.4.2.tar.gz) = fb89be8d8d9e0ed9327b81a0c81c884ff3f1a97e46b475ef8084abded5c84a256de05d5aa0f42be94f43ab438276a4506af726b6950e4161359a9616fb5832ec diff --git a/tests/basic-test.sh b/tests/basic-test.sh deleted file mode 100755 index 8fdac2a..0000000 --- a/tests/basic-test.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -set -e -set -x - -# Compile trivial gettext program. -cat < gettexttest.ml -module Gettext = Gettext.Program ( - struct - let textdomain = "test" - let codeset = None - let dir = None - let dependencies = [] - end -) (GettextStub.Native) ;; -open Gettext ;; -print_endline (s_ "Hello world") -EOF -ocamlfind ocamlopt -package gettext,gettext-stub gettexttest.ml -linkpkg -o gettexttest -./gettexttest diff --git a/tests/tests.yml b/tests/tests.yml deleted file mode 100755 index eea186d..0000000 --- a/tests/tests.yml +++ /dev/null @@ -1,13 +0,0 @@ -- hosts: localhost - roles: - - role: standard-test-basic - tags: - - classic - required_packages: - - ocaml - - ocaml-findlib - - ocaml-gettext-devel - tests: - - simple: - dir: . - run: ./basic-test.sh