update to 0.6.1.7

This commit is contained in:
lyn1001 2023-09-20 11:40:26 +08:00
parent 76217b4f56
commit b0bfa091e1
8 changed files with 17 additions and 313 deletions

View File

@ -1,38 +0,0 @@
From 75b13978f85b32c7a121aa289d8ebf41ba14ee5a Mon Sep 17 00:00:00 2001
From: Pino Toscano <ptoscano@redhat.com>
Date: Thu, 5 Sep 2019 09:57:09 +0200
Subject: [PATCH] Make const the return value of caml_named_value()
With OCaml >= 4.09 caml_named_value() returns a const value *, so keep
the constness to build also in this case.
Signed-off-by: Pino Toscano <ptoscano@redhat.com>
---
libvirt/libvirt_c_oneoffs.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libvirt/libvirt_c_oneoffs.c b/libvirt/libvirt_c_oneoffs.c
index 6f56f10..e23c0db 100644
--- a/libvirt/libvirt_c_oneoffs.c
+++ b/libvirt/libvirt_c_oneoffs.c
@@ -1207,7 +1207,7 @@ ocaml_libvirt_event_run_default_impl (value unitv)
#define DOMAIN_CALLBACK_BEGIN(NAME) \
value connv, domv, callback_id, result; \
connv = domv = callback_id = result = Val_int(0); \
- static value *callback = NULL; \
+ static const value *callback = NULL; \
caml_leave_blocking_section(); \
if (callback == NULL) \
callback = caml_named_value(NAME); \
@@ -1433,7 +1433,7 @@ timeout_callback(int timer, void *opaque)
{
value callback_id, result;
callback_id = result = Val_int(0);
- static value *callback = NULL;
+ static const value *callback = NULL;
caml_leave_blocking_section();
if (callback == NULL)
callback = caml_named_value("Libvirt.timeout_callback");
--
2.23.0

View File

@ -1,74 +0,0 @@
From 29709872404fad20a9822c43a831f30b7b09f34a Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Sun, 19 Jan 2020 12:58:17 +0000
Subject: [PATCH 1/3] block_peek, memory_peek: Use bytes for return buffer.
Strings are immutable in modern OCaml.
---
libvirt/libvirt.ml | 4 ++--
libvirt/libvirt.mli | 4 ++--
libvirt/libvirt_c_oneoffs.c | 4 ++--
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/libvirt/libvirt.ml b/libvirt/libvirt.ml
index 7f9d0e4..bdb9460 100644
--- a/libvirt/libvirt.ml
+++ b/libvirt/libvirt.ml
@@ -731,8 +731,8 @@ struct
external migrate : [>`W] t -> [>`W] Connect.t -> migrate_flag list -> ?dname:string -> ?uri:string -> ?bandwidth:int -> unit -> rw t = "ocaml_libvirt_domain_migrate_bytecode" "ocaml_libvirt_domain_migrate_native"
external block_stats : [>`R] t -> string -> block_stats = "ocaml_libvirt_domain_block_stats"
external interface_stats : [>`R] t -> string -> interface_stats = "ocaml_libvirt_domain_interface_stats"
- external block_peek : [>`W] t -> string -> int64 -> int -> string -> int -> unit = "ocaml_libvirt_domain_block_peek_bytecode" "ocaml_libvirt_domain_block_peek_native"
- external memory_peek : [>`W] t -> memory_flag list -> int64 -> int -> string -> int -> unit = "ocaml_libvirt_domain_memory_peek_bytecode" "ocaml_libvirt_domain_memory_peek_native"
+ external block_peek : [>`W] t -> string -> int64 -> int -> bytes -> int -> unit = "ocaml_libvirt_domain_block_peek_bytecode" "ocaml_libvirt_domain_block_peek_native"
+ external memory_peek : [>`W] t -> memory_flag list -> int64 -> int -> bytes -> int -> unit = "ocaml_libvirt_domain_memory_peek_bytecode" "ocaml_libvirt_domain_memory_peek_native"
external get_all_domain_stats : [>`R] Connect.t -> stats_type list -> get_all_domain_stats_flag list -> domain_stats_record array = "ocaml_libvirt_domain_get_all_domain_stats"
diff --git a/libvirt/libvirt.mli b/libvirt/libvirt.mli
index 0d74199..7900392 100644
--- a/libvirt/libvirt.mli
+++ b/libvirt/libvirt.mli
@@ -708,7 +708,7 @@ sig
val interface_stats : [>`R] t -> string -> interface_stats
(** Returns network interface stats. *)
- val block_peek : [>`W] t -> string -> int64 -> int -> string -> int -> unit
+ val block_peek : [>`W] t -> string -> int64 -> int -> bytes -> int -> unit
(** [block_peek dom path offset size buf boff] reads [size] bytes at
[offset] in the domain's [path] block device.
@@ -717,7 +717,7 @@ sig
See also {!max_peek}. *)
val memory_peek : [>`W] t -> memory_flag list -> int64 -> int ->
- string -> int -> unit
+ bytes -> int -> unit
(** [memory_peek dom Virtual offset size] reads [size] bytes
at [offset] in the domain's virtual memory.
diff --git a/libvirt/libvirt_c_oneoffs.c b/libvirt/libvirt_c_oneoffs.c
index 40384e8..8468c73 100644
--- a/libvirt/libvirt_c_oneoffs.c
+++ b/libvirt/libvirt_c_oneoffs.c
@@ -1057,7 +1057,7 @@ ocaml_libvirt_domain_block_peek_native (value domv, value pathv, value offsetv,
const char *path = String_val (pathv);
unsigned long long offset = Int64_val (offsetv);
size_t size = Int_val (sizev);
- char *buffer = String_val (bufferv);
+ unsigned char *buffer = Bytes_val (bufferv);
int boff = Int_val (boffv);
int r;
@@ -1089,7 +1089,7 @@ ocaml_libvirt_domain_memory_peek_native (value domv, value flagsv, value offsetv
int flags = 0;
unsigned long long offset = Int64_val (offsetv);
size_t size = Int_val (sizev);
- char *buffer = String_val (bufferv);
+ unsigned char *buffer = Bytes_val (bufferv);
int boff = Int_val (boffv);
int r;
--
2.24.1

View File

@ -1,113 +0,0 @@
From 3705b9bdcd04dc86474c62e1c8dd8759669842bc Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Sun, 19 Jan 2020 12:59:09 +0000
Subject: [PATCH 2/3] String_val returns const char * in OCaml 4.10.
This should be compatible with earlier versions of OCaml
too since we are just assigning a char * to a const char *.
---
libvirt/generator.pl | 14 +++++++-------
libvirt/libvirt_c_oneoffs.c | 6 +++---
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/libvirt/generator.pl b/libvirt/generator.pl
index ac3dd65..aff371b 100755
--- a/libvirt/generator.pl
+++ b/libvirt/generator.pl
@@ -593,7 +593,7 @@ sub gen_c_code
} elsif ($sig =~ /^(\w+), string : unit$/) {
"\
" . gen_unpack_args ($1) . "
- char *str = String_val (strv);
+ const char *str = String_val (strv);
int r;
NONBLOCKING (r = $c_name ($1, str));
@@ -605,7 +605,7 @@ sub gen_c_code
"\
CAMLlocal1 (rv);
" . gen_unpack_args ($1) . "
- char *str = String_val (strv);
+ const char *str = String_val (strv);
int r;
NONBLOCKING (r = $c_name ($1, str, 0));
@@ -618,7 +618,7 @@ sub gen_c_code
"\
CAMLlocal1 (rv);
" . gen_unpack_args ($1) . "
- char *str = String_val (strv);
+ const char *str = String_val (strv);
$c_ret_type r;
NONBLOCKING (r = $c_name ($1, str));
@@ -633,7 +633,7 @@ sub gen_c_code
"\
CAMLlocal1 (rv);
" . gen_unpack_args ($1) . "
- char *str = String_val (strv);
+ const char *str = String_val (strv);
$c_ret_type r;
NONBLOCKING (r = $c_name ($1, str, 0));
@@ -648,7 +648,7 @@ sub gen_c_code
"\
CAMLlocal1 (rv);
" . gen_unpack_args ($1) . "
- char *str = String_val (strv);
+ const char *str = String_val (strv);
unsigned int u = Int_val (uv);
$c_ret_type r;
@@ -735,7 +735,7 @@ sub gen_c_code
"\
CAMLlocal2 (rv, connv);
" . gen_unpack_args ($1) . "
- char *str = String_val (strv);
+ const char *str = String_val (strv);
$c_ret_type r;
NONBLOCKING (r = $c_name ($1, str));
@@ -751,7 +751,7 @@ sub gen_c_code
"\
CAMLlocal2 (rv, connv);
" . gen_unpack_args ($1) . "
- char *str = String_val (strv);
+ const char *str = String_val (strv);
$c_ret_type r;
NONBLOCKING (r = $c_name ($1, str, 0));
diff --git a/libvirt/libvirt_c_oneoffs.c b/libvirt/libvirt_c_oneoffs.c
index 8468c73..fc2ac13 100644
--- a/libvirt/libvirt_c_oneoffs.c
+++ b/libvirt/libvirt_c_oneoffs.c
@@ -601,7 +601,7 @@ ocaml_libvirt_domain_set_scheduler_parameters (value domv, value paramsv)
int nparams = Wosize_val (paramsv);
virSchedParameterPtr params;
int r, i;
- char *name;
+ const char *name;
params = malloc (sizeof (*params) * nparams);
if (params == NULL)
@@ -1005,7 +1005,7 @@ ocaml_libvirt_domain_block_stats (value domv, value pathv)
CAMLparam2 (domv, pathv);
CAMLlocal2 (rv,v);
virDomainPtr dom = Domain_val (domv);
- char *path = String_val (pathv);
+ const char *path = String_val (pathv);
struct _virDomainBlockStats stats;
int r;
@@ -1028,7 +1028,7 @@ ocaml_libvirt_domain_interface_stats (value domv, value pathv)
CAMLparam2 (domv, pathv);
CAMLlocal2 (rv,v);
virDomainPtr dom = Domain_val (domv);
- char *path = String_val (pathv);
+ const char *path = String_val (pathv);
struct _virDomainInterfaceStats stats;
int r;
--
2.24.1

View File

@ -1,68 +0,0 @@
From 3d3d6af425d369200a7a62a127adf640d94a38a3 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Sun, 19 Jan 2020 13:02:16 +0000
Subject: [PATCH 3/3] Don't try to memcpy into a String_val.
In OCaml 4.10 String_val returns const char *, so we cannot use it as
the destination for memcpy. Use Bytes_val instead.
---
libvirt/generator.pl | 2 +-
libvirt/libvirt_c_oneoffs.c | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/libvirt/generator.pl b/libvirt/generator.pl
index aff371b..463a19b 100755
--- a/libvirt/generator.pl
+++ b/libvirt/generator.pl
@@ -440,7 +440,7 @@ sub gen_c_code
/* UUIDs are byte arrays with a fixed length. */
rv = caml_alloc_string (VIR_UUID_BUFLEN);
- memcpy (String_val (rv), uuid, VIR_UUID_BUFLEN);
+ memcpy (Bytes_val (rv), uuid, VIR_UUID_BUFLEN);
CAMLreturn (rv);
"
} elsif ($sig =~ /^(\w+) : uuid string$/) {
diff --git a/libvirt/libvirt_c_oneoffs.c b/libvirt/libvirt_c_oneoffs.c
index fc2ac13..e8472b7 100644
--- a/libvirt/libvirt_c_oneoffs.c
+++ b/libvirt/libvirt_c_oneoffs.c
@@ -394,7 +394,7 @@ ocaml_libvirt_connect_call_auth_default_callback (value listv)
elemv = caml_alloc (2, 0);
if (cred->result != NULL && cred->resultlen > 0) {
v = caml_alloc_string (cred->resultlen);
- memcpy (String_val (v), cred->result, cred->resultlen);
+ memcpy (Bytes_val (v), cred->result, cred->resultlen);
optv = caml_alloc (1, 0);
Store_field (optv, 0, v);
} else
@@ -715,7 +715,7 @@ ocaml_libvirt_domain_get_vcpus (value domv, value maxinfov, value maplenv)
/* Copy the bitmap. */
strv = caml_alloc_string (maxinfo * maplen);
- memcpy (String_val (strv), cpumaps, maxinfo * maplen);
+ memcpy (Bytes_val (strv), cpumaps, maxinfo * maplen);
/* Allocate the tuple and return it. */
rv = caml_alloc_tuple (3);
@@ -900,7 +900,7 @@ ocaml_libvirt_domain_get_all_domain_stats (value connv,
*/
v = caml_alloc_string (VIR_UUID_BUFLEN);
virDomainGetUUID (rstats[i]->dom, uuid);
- memcpy (String_val (v), uuid, VIR_UUID_BUFLEN);
+ memcpy (Bytes_val (v), uuid, VIR_UUID_BUFLEN);
Store_field (dsv, 0, v);
tpv = caml_alloc (rstats[i]->nparams, 0); /* typed_param array */
@@ -1646,7 +1646,7 @@ ocaml_libvirt_secret_get_value (value secv)
CHECK_ERROR (secval == NULL, "virSecretGetValue");
rv = caml_alloc_string (size);
- memcpy (String_val (rv), secval, size);
+ memcpy (Bytes_val (rv), secval, size);
free (secval);
CAMLreturn (rv);
--
2.24.1

Binary file not shown.

Binary file not shown.

View File

@ -1,23 +1,14 @@
Name: ocaml-libvirt Name: ocaml-libvirt
Version: 0.6.1.5 Version: 0.6.1.7
Release: 1 Release: 1
Summary: OCaml binding for libvirt Summary: OCaml binding for libvirt
License: LGPLv2+ License: LGPLv2+
URL: http://libvirt.org/ocaml/ URL: http://libvirt.org/ocaml/
Source0: http://libvirt.org/sources/ocaml/%{name}-%{version}.tar.gz Source0: https://gitlab.com/libvirt/libvirt-ocaml/-/archive/%{version}/libvirt-ocaml-v%{version}.tar.gz
# Fixes build with OCaml >= 4.09. BuildRequires: ocaml >= 3.10.0 ocaml-ocamldoc ocaml-findlib-devel autoconf
# Upstream commit 75b13978f85b32c7a121aa289d8ebf41ba14ee5a. BuildRequires: libvirt-devel >= 0.2.1 perl-interpreter gawk make automake
Patch1: 0001-Make-const-the-return-value-of-caml_named_value.patch
# Fixes for OCaml 4.10, sent upstream 2020-01-19.
Patch2: 0001-block_peek-memory_peek-Use-bytes-for-return-buffer.patch
Patch3: 0002-String_val-returns-const-char-in-OCaml-4.10.patch
Patch4: 0003-Don-t-try-to-memcpy-into-a-String_val.patch
BuildRequires: ocaml >= 3.10.0 ocaml-ocamldoc ocaml-findlib-devel
BuildRequires: libvirt-devel >= 0.2.1 perl-interpreter gawk make
%description %description
OCaml bindings for libvirt, allowing you to write OCaml programs and scripts which control virtualisation features. OCaml bindings for libvirt, allowing you to write OCaml programs and scripts which control virtualisation features.
@ -32,36 +23,38 @@ OCaml bindings for libvirt, allowing you to write OCaml programs and scripts whi
%prep %prep
%autosetup -n %{name}-%{version} -p1 %autosetup -n libvirt-ocaml-v%{version} -p1
%build %build
unset MAKEFLAGS
autoreconf -i
%configure %configure
%make_build all doc make
%make_build opt
%install %install
export DESTDIR=$RPM_BUILD_ROOT export DESTDIR=$RPM_BUILD_ROOT
export OCAMLFIND_DESTDIR=$RPM_BUILD_ROOT%{_libdir}/ocaml export OCAMLFIND_DESTDIR=$RPM_BUILD_ROOT%{_libdir}/ocaml
install -d $OCAMLFIND_DESTDIR $OCAMLFIND_DESTDIR/stublibs install -d $OCAMLFIND_DESTDIR $OCAMLFIND_DESTDIR/stublibs
install -d $RPM_BUILD_ROOT%{_bindir} install -d $RPM_BUILD_ROOT%{_bindir}
make install-opt make install
%files %files
%doc COPYING.LIB README ChangeLog %doc COPYING.LIB README
%{_libdir}/ocaml/libvirt %{_libdir}/ocaml/libvirt
%exclude %{_libdir}/ocaml/libvirt/{*.a,*.cmxa,*.cmx,*.mli} %exclude %{_libdir}/ocaml/libvirt/{*.a,*.cmxa,*.cmx,*.mli}
%{_libdir}/ocaml/stublibs/{*.so,*.so.owner} %{_libdir}/ocaml/stublibs/{*.so,*.so.owner}
%files devel %files devel
%doc COPYING.LIB README TODO.libvirt ChangeLog html/* %doc COPYING.LIB README TODO.libvirt
%{_libdir}/ocaml/libvirt/{*.a,*.cmxa,*.cmx,*.mli} %{_libdir}/ocaml/libvirt/{*.a,*.cmxa,*.cmx,*.mli}
%changelog %changelog
* Wed Sep 20 2023 liyanan <thistleslyn@163.com> - 0.6.1.7-1
- update to 0.6.1.7
* Thu Jan 20 2022 yangping <yangping69@huawei.com> - 0.6.1.5-1 * Thu Jan 20 2022 yangping <yangping69@huawei.com> - 0.6.1.5-1
- Update to 0.6.1.5 - Update to 0.6.1.5

4
ocaml-libvirt.yaml Normal file
View File

@ -0,0 +1,4 @@
version_control: gitlab
src_repo: libvirt/libvirt-ocaml
tag_prefix: ^v
separator: .