The package rpms/ocaml-csexp.git has added or updated architecture specific content in
its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/ocaml-csexp.git/commit/?id=b146a8....
Change:
+%ifarch %{ocaml_native_compiler}
Thanks.
Full change:
============
commit a80472d00b43796d84e75f4e392242d339089cbe
Author: Jerry James <loganjerry(a)gmail.com>
Date: Fri Sep 18 12:50:16 2020 -0600
Version 1.3.2.
diff --git a/ocaml-csexp-result.patch b/ocaml-csexp-result.patch
index 978c995..0f4f846 100644
--- a/ocaml-csexp-result.patch
+++ b/ocaml-csexp-result.patch
@@ -1,13 +1,13 @@
--- a/csexp.opam
+++ b/csexp.opam
-@@ -33,7 +33,6 @@ depends: [
- "dune" {>= "2.5"}
+@@ -32,7 +32,6 @@ bug-reports: "https://github.com/ocaml-d
+ depends: [
+ "dune" {>= "1.11"}
"ocaml" {>= "4.02.3"}
- "ppx_expect" {with-test}
- "result" {>= "1.5"}
]
+ dev-repo: "git+https://github.com/ocaml-dune/csexp.git"
build: [
- ["dune" "subst"] {pinned}
--- a/src/csexp.ml
+++ b/src/csexp.ml
@@ -15,12 +15,6 @@ end
diff --git a/ocaml-csexp.spec b/ocaml-csexp.spec
index 5857c38..41ec8c9 100644
--- a/ocaml-csexp.spec
+++ b/ocaml-csexp.spec
@@ -15,7 +15,7 @@
%bcond_with dune
Name: ocaml-%{srcname}
-Version: 1.3.1
+Version: 1.3.2
Release: 1%{?dist}
Summary: Parsing and printing of S-expressions in canonical form
@@ -30,9 +30,9 @@ Patch0: %{name}-result.patch
BuildRequires: ocaml >= 4.02.3
%if %{with dune}
-BuildRequires: ocaml-dune
+BuildRequires: ocaml-dune >= 1.11
BuildRequires: ocaml-odoc
-BuildRequires: ocaml-result-devel
+BuildRequires: ocaml-result-devel >= 1.5
%endif
%description
@@ -171,5 +171,8 @@ EOF
%{_libdir}/ocaml/%{srcname}/*.mli
%changelog
+* Fri Sep 18 2020 Jerry James <loganjerry(a)gmail.com> - 1.3.2-1
+- Version 1.3.2
+
* Thu Sep 10 2020 Jerry James <loganjerry(a)gmail.com> - 1.3.1-1
- Initial RPM
diff --git a/sources b/sources
index 3c24733..1e2c3a9 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (csexp-1.3.1.tbz) =
dd6b3894529c828926ee05070548125822ad3bee8324623de0188d49655439286343f8cbc2ede8a27e01af5715e3bc1e643d6a0d770061b384d6dcefdb545eb2
+SHA512 (csexp-1.3.2.tbz) =
ff1bd6a7c6bb3a73ca9ab0506c9ec1f357657deaa9ecc7eb32955817d9b0f266d976af3e2b8fc34c621cb0caf1fde55f9a609dd184e2054f500bf09afeb83026
commit b146a8b0b92a392530c47491e913bd7e44930892
Author: Jerry James <loganjerry(a)gmail.com>
Date: Mon Sep 14 14:48:28 2020 -0600
Initial import.
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..ee32f28
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/csexp-*.tbz
diff --git a/ocaml-csexp-result.patch b/ocaml-csexp-result.patch
new file mode 100644
index 0000000..978c995
--- /dev/null
+++ b/ocaml-csexp-result.patch
@@ -0,0 +1,92 @@
+--- a/csexp.opam
++++ b/csexp.opam
+@@ -33,7 +33,6 @@ depends: [
+ "dune" {>= "2.5"}
+ "ocaml" {>= "4.02.3"}
+ "ppx_expect" {with-test}
+- "result" {>= "1.5"}
+ ]
+ build: [
+ ["dune" "subst"] {pinned}
+--- a/src/csexp.ml
++++ b/src/csexp.ml
+@@ -15,12 +15,6 @@ end
+ module Make (Sexp : Sexp) = struct
+ open Sexp
+
+- (* This is to keep compatibility with 4.02 without writing [Result.]
+- everywhere *)
+- type ('a, 'b) result = ('a, 'b) Result.result =
+- | Ok of 'a
+- | Error of 'b
+-
+ module Parser = struct
+ exception Parse_error of string
+
+@@ -283,9 +277,9 @@ module Make (Sexp : Sexp) = struct
+
+ module Monad : Monad
+
+- val read_string : t -> int -> (string, string) Result.t Monad.t
++ val read_string : t -> int -> (string, string) result Monad.t
+
+- val read_char : t -> (char, string) Result.t Monad.t
++ val read_char : t -> (char, string) result Monad.t
+ end
+
+ module Make_parser (Input : Input) = struct
+--- a/src/csexp.mli
++++ b/src/csexp.mli
+@@ -33,24 +33,24 @@ module Make (Sexp : Sexp) : sig
+ [s]. It is an error for [s] to contain a S-expression followed by more
+ data. In case of error, the offset of the error as well as an error
+ message is returned. *)
+- val parse_string : string -> (Sexp.t, int * string) Result.t
++ val parse_string : string -> (Sexp.t, int * string) result
+
+ (** [parse_string s] parses a sequence of S-expressions encoded in canonical
+ form in [s] *)
+- val parse_string_many : string -> (Sexp.t list, int * string) Result.t
++ val parse_string_many : string -> (Sexp.t list, int * string) result
+
+ (** Read exactly one canonical S-expressions from the given channel. Note that
+ this function never raises [End_of_file]. Instead, it returns [Error]. *)
+- val input : in_channel -> (Sexp.t, string) Result.t
++ val input : in_channel -> (Sexp.t, string) result
+
+ (** Same as [input] but returns [Ok None] if the end of file has already been
+ reached. If some more characters are available but the end of file is
+ reached before reading a complete S-expression, this function returns
+ [Error]. *)
+- val input_opt : in_channel -> (Sexp.t option, string) Result.t
++ val input_opt : in_channel -> (Sexp.t option, string) result
+
+ (** Read many S-expressions until the end of input is reached. *)
+- val input_many : in_channel -> (Sexp.t list, string) Result.t
++ val input_many : in_channel -> (Sexp.t list, string) result
+
+ (** {2 Serialising} *)
+
+@@ -352,18 +352,18 @@ module Make (Sexp : Sexp) : sig
+ val bind : 'a t -> ('a -> 'b t) -> 'b t
+ end
+
+- val read_string : t -> int -> (string, string) Result.t Monad.t
++ val read_string : t -> int -> (string, string) result Monad.t
+
+- val read_char : t -> (char, string) Result.t Monad.t
++ val read_char : t -> (char, string) result Monad.t
+ end
+ [@@deprecated "Use Parser module instead"]
+
+ [@@@warning "-3"]
+
+ module Make_parser (Input : Input) : sig
+- val parse : Input.t -> (Sexp.t, string) Result.t Input.Monad.t
++ val parse : Input.t -> (Sexp.t, string) result Input.Monad.t
+
+- val parse_many : Input.t -> (Sexp.t list, string) Result.t Input.Monad.t
++ val parse_many : Input.t -> (Sexp.t list, string) result Input.Monad.t
+ end
+ [@@deprecated "Use Parser module instead"]
+ end
diff --git a/ocaml-csexp.spec b/ocaml-csexp.spec
new file mode 100644
index 0000000..5857c38
--- /dev/null
+++ b/ocaml-csexp.spec
@@ -0,0 +1,175 @@
+%ifnarch %{ocaml_native_compiler}
+%global debug_package %{nil}
+%endif
+
+%global srcname csexp
+
+# This package is needed to build dune. To avoid circular dependencies, this
+# package cannot depend on dune, or any package that depends on dune.
+# Therefore, we:
+# - hack up our own build, rather than using dune to do the build
+# - bypass the need for ocaml-result (which requires dune to build)
+# - skip tests, which require ppx_expect, which is built with dune
+# - skip building documentation, which requires odoc, which is built with dune
+# If you know what you are doing, build with dune anyway using this conditional.
+%bcond_with dune
+
+Name: ocaml-%{srcname}
+Version: 1.3.1
+Release: 1%{?dist}
+Summary: Parsing and printing of S-expressions in canonical form
+
+License: MIT
+URL:
https://github.com/ocaml-dune/csexp
+Source0: %{url}/releases/download/%{version}/%{srcname}-%{version}.tbz
+
+# Depend on Stdlib.Result instead of ocaml-result. See comment above.
+# This patch is not appropriate for upstream, which needs to keep compatibility
+# with older OCaml versions.
+Patch0: %{name}-result.patch
+
+BuildRequires: ocaml >= 4.02.3
+%if %{with dune}
+BuildRequires: ocaml-dune
+BuildRequires: ocaml-odoc
+BuildRequires: ocaml-result-devel
+%endif
+
+%description
+This project provides minimal support for parsing and printing
+S-expressions in canonical form, which is a very simple and canonical
+binary encoding of S-expressions.
+
+%package devel
+Summary: Development files for %{name}
+Requires: %{name}%{?_isa} = %{version}-%{release}
+%if %{with dune}
+Requires: ocaml-result-devel%{?_isa}
+%endif
+
+%description devel
+The %{name}-devel package contains libraries and signature files for
+developing applications that use %{name}.
+
+%prep
+%autosetup -N -n %{srcname}-%{version}
+%if %{without dune}
+%autopatch -p1
+%endif
+
+%build
+%if %{with dune}
+dune build %{?_smp_mflags} --display=verbose @install
+dune build %{?_smp_mflags} @doc
+%else
+OFLAGS="-strict-sequence -strict-formats -short-paths -keep-locs -g -opaque"
+OCFLAGS="$OFLAGS -bin-annot"
+cd src
+ocamlc $OCFLAGS -output-obj csexp.mli
+ocamlc $OCFLAGS -a -o csexp.cma csexp.ml
+%ifarch %{ocaml_native_compiler}
+ocamlopt $OFLAGS -ccopt "%{optflags}" -cclib "$RPM_LD_FLAGS" -a \
+ -o csexp.cmxa csexp.ml
+ocamlopt $OFLAGS -ccopt "%{optflags}" -cclib "$RPM_LD_FLAGS" -shared
\
+ -o csexp.cmxs csexp.ml
+%endif
+cd -
+%endif
+
+%install
+%if %{with dune}
+dune install --destdir=%{buildroot}
+
+# We do not want the dune markers
+find _build/default/_doc/_html -name .dune-keep -delete
+
+# We do not want the ml files
+find %{buildroot}%{_libdir}/ocaml -name \*.ml -delete
+
+# We install the documentation with the doc macro
+rm -fr %{buildroot}%{_prefix}/doc
+
+%ifarch %{ocaml_native_compiler}
+# Add missing executable bits
+find %{buildroot}%{_libdir}/ocaml -name \*.cmxs -exec chmod a+x {} \+
+%endif
+%else
+# Install without dune. See comment at the top.
+mkdir -p %{buildroot}%{_libdir}/ocaml/%{srcname}
+cp -p src/csexp.{cma,cmi,cmt,cmti,mli} %{buildroot}%{_libdir}/ocaml/%{srcname}
+%ifarch %{ocaml_native_compiler}
+cp -p src/csexp.{a,cmx,cmxa,cmxs} %{buildroot}%{_libdir}/ocaml/%{srcname}
+%endif
+cp -p csexp.opam %{buildroot}%{_libdir}/ocaml/%{srcname}/opam
+
+cat >> %{buildroot}%{_libdir}/ocaml/%{srcname}/META << EOF
+version = "%{version}"
+description = "Parsing and printing of S-expressions in canonical form"
+archive(byte) = "csexp.cma"
+%ifarch %{ocaml_native_compiler}
+archive(native) = "csexp.cmxa"
+%endif
+plugin(byte) = "csexp.cma"
+%ifarch %{ocaml_native_compiler}
+plugin(native) = "csexp.cmxs"
+%endif
+EOF
+
+cat >> %{buildroot}%{_libdir}/ocaml/%{srcname}/dune-package << EOF
+(lang dune 2.5)
+(name csexp)
+(version %{version})
+(library
+ (name csexp)
+ (kind normal)
+%ifarch %{ocaml_native_compiler}
+ (archives (byte csexp.cma) (native csexp.cmxa))
+ (plugins (byte csexp.cma) (native csexp.cmxs))
+ (native_archives csexp.a)
+%else
+ (archives (byte csexp.cma))
+ (plugins (byte csexp.cma))
+%endif
+ (main_module_name Csexp)
+%ifarch %{ocaml_native_compiler}
+ (modes byte native)
+%else
+ (modes byte)
+%endif
+ (modules
+ (singleton (name Csexp) (obj_name csexp) (visibility public) (impl) (intf))))
+EOF
+%endif
+
+# Cannot do this until ocaml-ppx-expect is available in Fedora.
+#%%if %%{with dune}
+#%%check
+#dune runtest
+#%%endif
+
+%files
+%doc README.md
+%license LICENSE.md
+%dir %{_libdir}/ocaml/%{srcname}/
+%{_libdir}/ocaml/%{srcname}/META
+%{_libdir}/ocaml/%{srcname}/*.cma
+%{_libdir}/ocaml/%{srcname}/*.cmi
+%ifarch %{ocaml_native_compiler}
+%{_libdir}/ocaml/%{srcname}/*.cmxs
+%endif
+
+%files devel
+%{_libdir}/ocaml/%{srcname}/dune-package
+%{_libdir}/ocaml/%{srcname}/opam
+%ifarch %{ocaml_native_compiler}
+%{_libdir}/ocaml/%{srcname}/*.a
+%{_libdir}/ocaml/%{srcname}/*.cmx
+%{_libdir}/ocaml/%{srcname}/*.cmxa
+%endif
+%{_libdir}/ocaml/%{srcname}/*.cmt
+%{_libdir}/ocaml/%{srcname}/*.cmti
+%{_libdir}/ocaml/%{srcname}/*.mli
+
+%changelog
+* Thu Sep 10 2020 Jerry James <loganjerry(a)gmail.com> - 1.3.1-1
+- Initial RPM
diff --git a/sources b/sources
new file mode 100644
index 0000000..3c24733
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (csexp-1.3.1.tbz) =
dd6b3894529c828926ee05070548125822ad3bee8324623de0188d49655439286343f8cbc2ede8a27e01af5715e3bc1e643d6a0d770061b384d6dcefdb545eb2