Revert back to ocaml-calendar 2.04
ocaml-calendar 3.0.0 (in Fedora 39+ and briefly in RHEL 10) requires ocaml-re, which we removed from RHEL 10, so now that package cannot build. We don't need ocaml-calendar 3, version 2.04 will do fine. Revert back to it. Unfortunately to do this I had to introduce an epoch to get this to override previous versions from RHEL 10. I also had to remove debuginfo because that fails for unclear reasons. I also had to do some porting for OCaml 5.
This commit is contained in:
parent
f165f24025
commit
92adf4cf1d
1
.gitignore
vendored
1
.gitignore
vendored
@ -3,4 +3,3 @@ calendar-2.01.1.tar.gz
|
|||||||
/calendar-2.03.1.tar.gz
|
/calendar-2.03.1.tar.gz
|
||||||
/calendar-2.03.2.tar.gz
|
/calendar-2.03.2.tar.gz
|
||||||
/calendar-2.04.tar.gz
|
/calendar-2.04.tar.gz
|
||||||
/calendar-3.0.0.tar.gz
|
|
||||||
|
11
calendar-2.03.2-enable-debug.patch
Normal file
11
calendar-2.03.2-enable-debug.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- calendar-2.03.2/Makefile.in.old 2013-09-14 16:15:43.760253519 +0100
|
||||||
|
+++ calendar-2.03.2/Makefile.in 2013-09-14 16:16:03.233279962 +0100
|
||||||
|
@@ -86,7 +86,7 @@
|
||||||
|
|
||||||
|
CAMLIBS = $(addprefix -I , $(DIRS))
|
||||||
|
|
||||||
|
-CAMLFLAGS= $(CAMLIBS)
|
||||||
|
+CAMLFLAGS= -g $(CAMLIBS)
|
||||||
|
BYTEFLAGS= $(CAMLFLAGS)
|
||||||
|
LINK_OPTFLAGS = $(CAMLFLAGS) -noassert
|
||||||
|
OPTFLAGS = $(LINK_OPTFLAGS) -for-pack CalendarLib
|
71
calendar-2.04-support-ocaml5.patch
Normal file
71
calendar-2.04-support-ocaml5.patch
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
--- calendar-2.04/configure.in~ 2014-10-29 10:03:20.000000000 +0000
|
||||||
|
+++ calendar-2.04/configure.in 2024-05-31 17:39:52.981965618 +0100
|
||||||
|
@@ -56,6 +56,7 @@
|
||||||
|
3.0*) echo "${ECHO_T}Unsupported version!"; exit 2;;
|
||||||
|
3.*) OCAMLMAJOR=3; echo "${ECHO_T}Good!";;
|
||||||
|
4.*) OCAMLMAJOR=4; echo "${ECHO_T}Good!";;
|
||||||
|
+ 5.*) OCAMLMAJOR=5; echo "${ECHO_T}Good!";;
|
||||||
|
*) echo "${ECHO_T}Unsupported version!"; exit 2;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
diff -ur calendar-2.04.old/src/date.ml calendar-2.04/src/date.ml
|
||||||
|
--- calendar-2.04.old/src/date.ml 2014-10-29 10:03:20.000000000 +0000
|
||||||
|
+++ calendar-2.04/src/date.ml 2024-05-31 18:02:28.444110805 +0100
|
||||||
|
@@ -70,7 +70,7 @@
|
||||||
|
(* Constructors. *)
|
||||||
|
|
||||||
|
let lt (d1 : int * int * int) (d2 : int * int * int) =
|
||||||
|
- Pervasives.compare d1 d2 < 0
|
||||||
|
+ Stdlib.compare d1 d2 < 0
|
||||||
|
|
||||||
|
(* [date_ok] returns [true] is the date belongs to the Julian period;
|
||||||
|
[false] otherwise. *)
|
||||||
|
@@ -249,10 +249,10 @@
|
||||||
|
let sub x y = { m = x.m - y.m; d = x.d - y.d }
|
||||||
|
let opp x = { m = - x.m; d = - x.d }
|
||||||
|
|
||||||
|
- (* exactly equivalent to [Pervasives.compare] but more flexible typing *)
|
||||||
|
+ (* exactly equivalent to [Stdlib.compare] but more flexible typing *)
|
||||||
|
let compare x y =
|
||||||
|
- let n = Pervasives.compare x.m y.m in
|
||||||
|
- if n = 0 then Pervasives.compare x.d y.d else n
|
||||||
|
+ let n = Stdlib.compare x.m y.m in
|
||||||
|
+ if n = 0 then Stdlib.compare x.d y.d else n
|
||||||
|
let equal x y = compare x y = 0
|
||||||
|
let hash = Hashtbl.hash
|
||||||
|
|
||||||
|
diff -ur calendar-2.04.old/src/printer.ml calendar-2.04/src/printer.ml
|
||||||
|
--- calendar-2.04.old/src/printer.ml 2014-10-29 10:03:20.000000000 +0000
|
||||||
|
+++ calendar-2.04/src/printer.ml 2024-05-31 18:03:14.806779295 +0100
|
||||||
|
@@ -181,7 +181,7 @@
|
||||||
|
let print_int pad k n = print_number fmt pad k (Lazy.force n) in
|
||||||
|
let print_string pad s =
|
||||||
|
let pad s = match pad with
|
||||||
|
- | Uppercase -> String.uppercase s
|
||||||
|
+ | Uppercase -> String.uppercase_ascii s
|
||||||
|
| Empty | Zero | Blank -> s
|
||||||
|
in
|
||||||
|
Format.pp_print_string fmt (pad (Lazy.force s))
|
||||||
|
@@ -236,7 +236,7 @@
|
||||||
|
| 'n' -> print_char '\n'
|
||||||
|
| 'p' -> print_string pad apm
|
||||||
|
| 'P' ->
|
||||||
|
- Format.pp_print_string fmt (String.lowercase (Lazy.force apm))
|
||||||
|
+ Format.pp_print_string fmt (String.lowercase_ascii (Lazy.force apm))
|
||||||
|
| 'r' ->
|
||||||
|
print_time pad shour;
|
||||||
|
print_char ' ';
|
||||||
|
diff -ur calendar-2.04.old/src/utils.ml calendar-2.04/src/utils.ml
|
||||||
|
--- calendar-2.04.old/src/utils.ml 2014-10-29 10:03:20.000000000 +0000
|
||||||
|
+++ calendar-2.04/src/utils.ml 2024-05-31 18:02:28.445110798 +0100
|
||||||
|
@@ -29,8 +29,8 @@
|
||||||
|
|
||||||
|
module Int = struct
|
||||||
|
type t = int
|
||||||
|
- let equal = Pervasives.(=)
|
||||||
|
- let compare = Pervasives.compare
|
||||||
|
+ let equal = Stdlib.(=)
|
||||||
|
+ let compare = Stdlib.compare
|
||||||
|
let hash = Hashtbl.hash
|
||||||
|
end
|
||||||
|
|
@ -1,32 +1,30 @@
|
|||||||
# OCaml packages not built on i686 since OCaml 5 / Fedora 39.
|
%undefine _package_note_flags
|
||||||
ExcludeArch: %{ix86}
|
|
||||||
|
|
||||||
%ifnarch %{ocaml_native_compiler}
|
|
||||||
%global debug_package %{nil}
|
%global debug_package %{nil}
|
||||||
%endif
|
|
||||||
|
|
||||||
# ocaml-alcotest requires ocaml-astring, ocaml-cmdliner, ocaml-fmt, and ocaml-uutf,
|
|
||||||
# none of which are otherwise needed for building the OCaml-dependent packages
|
|
||||||
# found in RHEL and ELN. We want to avoid the extra dependencies there.
|
|
||||||
%bcond tests %[!0%{?rhel}]
|
|
||||||
|
|
||||||
Name: ocaml-calendar
|
Name: ocaml-calendar
|
||||||
Version: 3.0.0
|
Epoch: 1
|
||||||
Release: 9%{?dist}
|
Version: 2.04
|
||||||
|
Release: 46%{?dist}
|
||||||
Summary: Objective Caml library for managing dates and times
|
Summary: Objective Caml library for managing dates and times
|
||||||
License: LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception
|
License: LGPLv2
|
||||||
|
|
||||||
URL: https://ocaml-community.github.io/calendar/
|
URL: http://calendar.forge.ocamlcore.org/
|
||||||
VCS: https://github.com/ocaml-community/calendar
|
Source0: https://forge.ocamlcore.org/frs/download.php/1481/calendar-2.04.tar.gz
|
||||||
Source0: %{vcs}/archive/v%{version}/calendar-%{version}.tar.gz
|
|
||||||
|
|
||||||
BuildRequires: ocaml >= 4.03
|
Patch: calendar-2.03.2-enable-debug.patch
|
||||||
BuildRequires: ocaml-dune >= 1.0
|
Patch: calendar-2.04-support-ocaml5.patch
|
||||||
BuildRequires: ocaml-re-devel >= 1.7.2
|
|
||||||
|
|
||||||
%if %{with tests}
|
BuildRequires: make
|
||||||
BuildRequires: ocaml-alcotest-devel
|
BuildRequires: ocaml >= 4.00.1
|
||||||
%endif
|
BuildRequires: ocaml-findlib-devel >= 1.3.3-3
|
||||||
|
BuildRequires: ocaml-ocamldoc
|
||||||
|
BuildRequires: gawk
|
||||||
|
BuildRequires: autoconf
|
||||||
|
|
||||||
|
# Ignore all generated modules *except* CalendarLib, since everything
|
||||||
|
# now appears in that namespace.
|
||||||
|
%global __ocaml_requires_opts -i Calendar_builder -i Calendar_sig -i Date -i Date_sig -i Fcalendar -i Ftime -i Period -i Printer -i Time -i Time_sig -i Time_Zone -i Utils -i Version
|
||||||
|
%global __ocaml_provides_opts -i Calendar_builder -i Calendar_sig -i Date -i Date_sig -i Fcalendar -i Ftime -i Period -i Printer -i Time -i Time_sig -i Time_Zone -i Utils -i Version
|
||||||
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -35,7 +33,7 @@ Objective Caml library for managing dates and times.
|
|||||||
|
|
||||||
%package devel
|
%package devel
|
||||||
Summary: Development files for %{name}
|
Summary: Development files for %{name}
|
||||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
|
||||||
|
|
||||||
%description devel
|
%description devel
|
||||||
@ -48,65 +46,40 @@ developing applications that use %{name}.
|
|||||||
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%dune_build
|
autoconf
|
||||||
|
./configure --libdir=%{_libdir}
|
||||||
|
make
|
||||||
|
make doc
|
||||||
|
|
||||||
|
mv TODO TODO.old
|
||||||
|
iconv -f iso-8859-1 -t utf-8 < TODO.old > TODO
|
||||||
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%dune_install
|
export DESTDIR=$RPM_BUILD_ROOT
|
||||||
|
export OCAMLFIND_DESTDIR=$RPM_BUILD_ROOT%{_libdir}/ocaml
|
||||||
|
mkdir -p $OCAMLFIND_DESTDIR $OCAMLFIND_DESTDIR/stublibs
|
||||||
|
make install
|
||||||
|
|
||||||
|
|
||||||
%if %{with tests}
|
%files
|
||||||
%check
|
%doc CHANGES README TODO LGPL COPYING
|
||||||
%dune_check
|
%{_libdir}/ocaml/calendar
|
||||||
|
%ifarch %{ocaml_native_compiler}
|
||||||
|
%exclude %{_libdir}/ocaml/calendar/*.cmx
|
||||||
%endif
|
%endif
|
||||||
|
%exclude %{_libdir}/ocaml/calendar/*.mli
|
||||||
|
|
||||||
|
|
||||||
%files -f .ofiles
|
%files devel
|
||||||
%doc CHANGES README.md TODO
|
%doc CHANGES README TODO LGPL COPYING calendarFAQ-2.6.txt doc/*
|
||||||
%license LGPL COPYING
|
%ifarch %{ocaml_native_compiler}
|
||||||
|
%{_libdir}/ocaml/calendar/*.cmx
|
||||||
|
%endif
|
||||||
%files devel -f .ofiles-devel
|
%{_libdir}/ocaml/calendar/*.mli
|
||||||
%doc CHANGES README.md TODO calendarFAQ-2.6.txt
|
|
||||||
%license LGPL COPYING
|
|
||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Thu May 30 2024 Richard W.M. Jones <rjones@redhat.com> - 3.0.0-9
|
|
||||||
- OCaml 5.2.0 for Fedora 41
|
|
||||||
|
|
||||||
* Thu May 23 2024 Jerry James <loganjerry@gmail.com> - 3.0.0-8
|
|
||||||
- Simplify with %%bcond
|
|
||||||
- Add VCS field
|
|
||||||
|
|
||||||
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.0-8
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
|
||||||
|
|
||||||
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.0-7
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
|
||||||
|
|
||||||
* Mon Dec 18 2023 Richard W.M. Jones <rjones@redhat.com> - 3.0.0-6
|
|
||||||
- OCaml 5.1.1 + s390x code gen fix for Fedora 40
|
|
||||||
|
|
||||||
* Tue Dec 12 2023 Richard W.M. Jones <rjones@redhat.com> - 3.0.0-5
|
|
||||||
- OCaml 5.1.1 rebuild for Fedora 40
|
|
||||||
|
|
||||||
* Thu Oct 05 2023 Richard W.M. Jones <rjones@redhat.com> - 3.0.0-4
|
|
||||||
- OCaml 5.1 rebuild for Fedora 40
|
|
||||||
|
|
||||||
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.0-3
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
|
||||||
|
|
||||||
* Tue Jul 11 2023 Richard W.M. Jones <rjones@redhat.com> - 3.0.0-2
|
|
||||||
- OCaml 5.0 rebuild for Fedora 39
|
|
||||||
|
|
||||||
* Mon Jul 10 2023 Jerry James <loganjerry@gmail.com> - 3.0.0-1
|
|
||||||
- Version 3.0.0
|
|
||||||
- New project URLs
|
|
||||||
- Convert License tag to SPDX
|
|
||||||
- Drop obsolete debuginfo patch
|
|
||||||
- Build with dune
|
|
||||||
|
|
||||||
* Tue Jan 24 2023 Richard W.M. Jones <rjones@redhat.com> - 2.04-46
|
* Tue Jan 24 2023 Richard W.M. Jones <rjones@redhat.com> - 2.04-46
|
||||||
- Rebuild OCaml packages for F38
|
- Rebuild OCaml packages for F38
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user