Package: src:sks
Version: 1.1.6-5
Severity: important
Tags: patch
User: [email protected]
Usertags: ocaml-4.05.0-transition

Dear maintainer,

sks FTBFS with OCaml 4.05.0. Relevant log:
> [...]
> ocamlc -I lib -I bdb -I +zarith -I +cryptokit   -ccopt -g  -ccopt -O2  -ccopt 
> -fdebug-prefix-map=/tmp/sks-1.1.6=.  -ccopt -fstack-protector-strong  -ccopt 
> -Wformat  -ccopt -Werror=format-security  -ccopt -O3  -ccopt 
> -Werror-implicit-funct
> File "eventloop.ml", line 133, characters 15-19:
> Error: This expression has type ?cloexec:bool -> Unix.file_descr
>        but an expression was expected of type
>          Unix.file_descr = Unix.file_descr
> ocamlc -I lib -I bdb -I +zarith -I +cryptokit   -ccopt -g  -ccopt -O2  -ccopt 
> -fdebug-prefix-map=/tmp/sks-1.1.6=.  -ccopt -fstack-protector-strong  -ccopt 
> -Wformat  -ccopt -Werror=format-security  -ccopt -O3  -ccopt 
> -Werror-implicit-funct
> Makefile:357: recipe for target 'eventloop.cmo' failed
> make[2]: *** [eventloop.cmo] Error 2
> [...]

Attached is a patch. Unfortunately it is not compatible with the
version of OCaml currently in unstable, so you'll have to wait until
we upload ocaml >= 4.05.0.


Cheers,

-- 
Stéphane

-- System Information:
Debian Release: buster/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.11.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=fr_FR.utf8, LC_CTYPE=fr_FR.utf8 (charmap=UTF-8), 
LANGUAGE=fr_FR.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Description: Fix FTBFS with OCaml 4.05.0
Author: Stephane Glondu <[email protected]>
Last-Update: 2017-07-30

--- sks-1.1.6.orig/eventloop.ml
+++ sks-1.1.6/eventloop.ml
@@ -129,7 +129,7 @@ let create_sock addr =
     let domain =
       Unix.domain_of_sockaddr addr in
     let sock =
-      socket ~domain ~kind:SOCK_STREAM ~protocol:0 in
+      socket ~domain ~kind:SOCK_STREAM ~protocol:0 ?cloexec:None in
     setsockopt sock SO_REUSEADDR true;
     if domain = PF_INET6 then
       setsockopt sock IPV6_ONLY true;
--- sks-1.1.6.orig/reconComm.ml
+++ sks-1.1.6/reconComm.ml
@@ -40,7 +40,7 @@ let send_dbmsg msg =
   let s = Unix.socket
             ~domain:(Unix.domain_of_sockaddr db_command_addr)
             ~kind:Unix.SOCK_STREAM
-            ~protocol:0 in
+            ~protocol:0 ?cloexec:None in
   protect ~f:(fun () ->
                 Unix.connect s ~addr:db_command_addr;
                 let cin = Channel.sys_in_from_fd s in
@@ -57,7 +57,7 @@ let send_dbmsg_noreply msg =
   let s = Unix.socket
             ~domain:(Unix.domain_of_sockaddr db_command_addr)
             ~kind:Unix.SOCK_STREAM
-            ~protocol:0 in
+            ~protocol:0 ?cloexec:None in
   protect ~f:(fun () ->
                 Unix.connect s ~addr:db_command_addr;
                 let cout = Channel.sys_out_from_fd s in
@@ -78,7 +78,7 @@ let get_keystrings_via_http addr hashes
   let s = Unix.socket
             ~domain:(Unix.domain_of_sockaddr addr)
             ~kind:Unix.SOCK_STREAM
-            ~protocol:0  in
+            ~protocol:0 ?cloexec:None in
   protect ~f:(fun () ->
                 Unix.bind s ~addr:(match_client_recon_addr addr);
                 Unix.connect s ~addr;
--- sks-1.1.6.orig/sks_do.ml
+++ sks-1.1.6/sks_do.ml
@@ -40,7 +40,7 @@ let send_dbmsg msg =
   let s = Unix.socket
             ~domain:(Unix.domain_of_sockaddr db_command_addr)
             ~kind:Unix.SOCK_STREAM
-            ~protocol:0 in
+            ~protocol:0 ?cloexec:None in
   protect ~f:(fun () ->
                 Unix.connect s ~addr:db_command_addr;
                 let cin = Channel.sys_in_from_fd s in
--- sks-1.1.6.orig/tester.ml
+++ sks-1.1.6/tester.ml
@@ -49,7 +49,7 @@ let send_msg addr msg =
   let s = Unix.socket
             ~domain:(Unix.domain_of_sockaddr addr)
             ~kind:Unix.SOCK_STREAM
-            ~protocol:0 in
+            ~protocol:0 ?cloexec:None in
   protect ~f:( fun () ->
                  Unix.connect s ~addr:addr;
                  let cin = Channel.sys_in_from_fd s
@@ -65,7 +65,7 @@ let send_msg_noreply addr msg =
   let s = Unix.socket
             ~domain:(Unix.domain_of_sockaddr addr)
             ~kind:Unix.SOCK_STREAM
-            ~protocol:0 in
+            ~protocol:0 ?cloexec:None in
   protect ~f:(fun () ->
                 Unix.connect s ~addr:addr;
                 let cout = Channel.sys_out_from_fd s in

Reply via email to