Compare commits

...
Sign in to create a new pull request.

17 commits

Author SHA1 Message Date
Jerry James
9d4fef37f2 Fix a changelog entry 2026-01-13 17:00:39 -07:00
Richard W.M. Jones
ae93d1cd1a Add downstream patch to fix build for OCaml 5.4 2025-10-15 09:27:18 +01:00
Richard W.M. Jones
638fbe8df7 OCaml 5.4.0 rebuild 2025-10-14 09:34:32 +01:00
Jerry James
bb2c1fb3b9 Rebuild for ocaml-dune 3.20.0 2025-08-22 10:25:10 -06:00
Fedora Release Engineering
62dce5fde3 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-24 23:11:16 +00:00
Jerry James
49fc534cfa Rebuild to fix OCaml dependencies 2025-07-12 14:33:40 -06:00
Richard W.M. Jones
b608fbccc4 Remove use of dune-site 2025-04-03 09:40:43 +01:00
Yaakov Selkowitz
dcbab4a420 Fix build without camomile
The top-level dune-project file now contains package-specific information,
requiring camomile to be removed there as well.
2025-03-03 23:01:05 -05:00
Richard W.M. Jones
a25aade807 Add dependency from devel to ocaml-dune-site-devel.
https://src.fedoraproject.org/rpms/ocaml-gettext/pull-request/3#comment-249424
2025-02-27 10:33:19 +00:00
Richard W.M. Jones
d38306b478 New version 0.5.0 2025-02-26 14:14:25 +00:00
Fedora Release Engineering
96d8727610 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-17 20:50:27 +00:00
Jerry James
b21859a1f1 OCaml 5.3.0 rebuild for Fedora 42
- Add patch for OCaml 5.3 support
2025-01-10 09:06:43 -07:00
Fedora Release Engineering
33098a872f Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-18 20:07:37 +00:00
Richard W.M. Jones
b27432ddc9 OCaml 5.2.0 ppc64le fix 2024-06-19 16:46:34 +01:00
Richard W.M. Jones
be0afda1af Add RHEL gating test 2024-06-19 09:26:45 +01:00
Richard W.M. Jones
82503be5b6 OCaml 5.2.0 for Fedora 41 2024-05-29 22:20:26 +01:00
Jerry James
3ab8c86605 Add patch to fix tests with OCaml 5.2.0 2024-05-23 12:05:28 -06:00
10 changed files with 293 additions and 177 deletions

1
.gitignore vendored
View file

@ -5,3 +5,4 @@ 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

View file

@ -0,0 +1,27 @@
From 5d521981e39dcaeada6bbe7b15c5432d6de5d33c Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
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 <rjones@redhat.com>
---
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

160
37.patch Normal file
View file

@ -0,0 +1,160 @@
From 5462396bee53cb13d8d6fde4c6d430412a17b64d Mon Sep 17 00:00:00 2001
From: Stephane Glondu <steph@glondu.net>
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 = ""

6
gating.yaml Executable file
View file

@ -0,0 +1,6 @@
--- !Policy
product_versions:
- rhel-*
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

View file

@ -1,11 +0,0 @@
--- 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.

View file

@ -1,152 +0,0 @@
--- 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)))

View file

@ -11,27 +11,35 @@ ExcludeArch: %{ix86}
%endif
Name: ocaml-gettext
Version: 0.4.2
Release: 19%{?dist}
Version: 0.5.0
Release: 7%{?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: https://github.com/gildor478/%{name}/archive/v%{version}.tar.gz
Source0: %{url}/archive/v%{version}.tar.gz
# 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
# https://github.com/gildor478/ocaml-gettext/pull/27
Patch1: %{name}-camomile2.patch
# 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
BuildRequires: ocaml >= 4.03.0
BuildRequires: ocaml-fileutils-devel >= 0.4.4-4
BuildRequires: ocaml-fileutils-devel >= 0.6.6-1
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
@ -64,9 +72,7 @@ Constraints :
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
# BZ 446919.
Requires: ocaml-fileutils-devel%{?_isa} >= 0.4.0
Requires: ocaml-fileutils-devel%{?_isa} >= 0.6.6
%description devel
@ -102,12 +108,17 @@ 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
@ -152,6 +163,48 @@ cat .ofiles-gettext-stub-devel >> .ofiles-gettext-devel
%changelog
* Tue Oct 14 2025 Richard W.M. Jones <rjones@redhat.com> - 0.5.0-7
- OCaml 5.4.0 rebuild
* Fri Aug 22 2025 Jerry James <loganjerry@gmail.com> - 0.5.0-6
- Rebuild for ocaml-dune 3.20.0
* Thu Jul 24 2025 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Sat Jul 12 2025 Jerry James <loganjerry@gmail.com> - 0.5.0-4
- Rebuild to fix OCaml dependencies
* Thu Apr 03 2025 Richard W.M. Jones <rjones@redhat.com> - 0.5.0-3
- Remove use of dune-site
* Thu Feb 27 2025 Richard W.M. Jones <rjones@redhat.com> - 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 <rjones@redhat.com> - 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 <releng@fedoraproject.org> - 0.4.2-24
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Fri Jan 10 2025 Jerry James <loganjerry@gmail.com> - 0.4.2-23
- OCaml 5.3.0 rebuild for Fedora 42
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.2-22
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Wed Jun 19 2024 Richard W.M. Jones <rjones@redhat.com> - 0.4.2-21
- OCaml 5.2.0 ppc64le fix
* Wed May 29 2024 Richard W.M. Jones <rjones@redhat.com> - 0.4.2-20
- OCaml 5.2.0 for Fedora 41
* Wed May 8 2024 Jerry James <loganjerry@gmail.com> - 0.4.2-19
- Add patch to fix tests with OCaml 5.2.0
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.2-19
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

View file

@ -1 +1 @@
SHA512 (v0.4.2.tar.gz) = fb89be8d8d9e0ed9327b81a0c81c884ff3f1a97e46b475ef8084abded5c84a256de05d5aa0f42be94f43ab438276a4506af726b6950e4161359a9616fb5832ec
SHA512 (v0.5.0.tar.gz) = f55505bbe0da2a06053d94ee895a3e610a8d4ab5a2283ccff6a5a0c6a8ec011f5f286ab93e117cc340f55f056c7cdcb5752cc798e9d8e18fb5ab17f27f4a64c2

19
tests/basic-test.sh Executable file
View file

@ -0,0 +1,19 @@
#!/bin/bash -
set -e
set -x
# Compile trivial gettext program.
cat <<EOF > 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

13
tests/tests.yml Executable file
View file

@ -0,0 +1,13 @@
- hosts: localhost
roles:
- role: standard-test-basic
tags:
- classic
required_packages:
- ocaml
- ocaml-findlib
- ocaml-gettext-devel
tests:
- simple:
dir: .
run: ./basic-test.sh