Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ocaml-dune for openSUSE:Factory 
checked in at 2023-05-23 14:53:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ocaml-dune (Old)
 and      /work/SRC/openSUSE:Factory/.ocaml-dune.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ocaml-dune"

Tue May 23 14:53:40 2023 rev:31 rq:1086689 version:3.7.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/ocaml-dune/ocaml-dune.changes    2023-03-14 
18:16:24.431655636 +0100
+++ /work/SRC/openSUSE:Factory/.ocaml-dune.new.1533/ocaml-dune.changes  
2023-05-23 14:53:55.674264633 +0200
@@ -1,0 +2,6 @@
+Fri May  5 05:05:05 UTC 2023 - oher...@suse.de
+
+- Update to version 3.7.1
+  see included CHANGES.md for details
+
+-------------------------------------------------------------------

Old:
----
  ocaml-dune-3.7.0.tar.xz

New:
----
  ocaml-dune-3.7.1.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ocaml-dune.spec ++++++
--- /var/tmp/diff_new_pack.s0CqHX/_old  2023-05-23 14:53:56.246268017 +0200
+++ /var/tmp/diff_new_pack.s0CqHX/_new  2023-05-23 14:53:56.258268089 +0200
@@ -25,7 +25,7 @@
 %define     pkg ocaml-dune
 %global  _buildshell /bin/bash
 Name:           %pkg%nsuffix
-Version:        3.7.0
+Version:        3.7.1
 Release:        0
 %{?ocaml_preserve_bytecode}
 License:        MIT

++++++ _service ++++++
--- /var/tmp/diff_new_pack.s0CqHX/_old  2023-05-23 14:53:56.306268372 +0200
+++ /var/tmp/diff_new_pack.s0CqHX/_new  2023-05-23 14:53:56.310268396 +0200
@@ -1,7 +1,7 @@
 <services>
   <service name="tar_scm" mode="disabled">
     <param name="filename">ocaml-dune</param>
-    <param name="revision">d3d628f2eda2278bd2df6e37452d8693f367fcfd</param>
+    <param name="revision">e2b2d6aa984e3a5ddffa5ea00dd4f042dbf529a1</param>
     <param name="scm">git</param>
     <param name="submodules">disable</param>
     <param name="url">https://github.com/ocaml/dune.git</param>

++++++ ocaml-dune-3.7.0.tar.xz -> ocaml-dune-3.7.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-dune-3.7.0/CHANGES.md 
new/ocaml-dune-3.7.1/CHANGES.md
--- old/ocaml-dune-3.7.0/CHANGES.md     2023-02-17 15:44:16.000000000 +0100
+++ new/ocaml-dune-3.7.1/CHANGES.md     2023-04-04 13:30:10.000000000 +0200
@@ -1,3 +1,23 @@
+3.7.1 (2023-04-04)
+------------------
+
+- Fix segfault on MacOS when dune was being shutdown while in watch mode.
+  (#7312, fixes #6151, @gridbugs, @emillon)
+
+- Fix preludes not being recorded as dependencies in the `(mdx)` stanza (#7109,
+  fixes #7077, @emillon).
+
+- Pass correct flags when compiling `stdlib.ml`. (#7241, @emillon)
+
+- Handle "Too many links" errors when using Dune cache on Windows.  The fix in
+  3.7.0 for this same issue was not effective due to a typo. (#7472, @nojb)
+
+3.7.0.post1 (2023-02-21)
+------------------------
+
+- Doc: prevent the use of sphinx 6. On readthedocs, this prevents the necessary
+  JS from being loaded.
+
 3.7.0 (2023-02-17)
 ------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-dune-3.7.0/doc/dune-files.rst 
new/ocaml-dune-3.7.1/doc/dune-files.rst
--- old/ocaml-dune-3.7.0/doc/dune-files.rst     2023-02-17 15:44:16.000000000 
+0100
+++ new/ocaml-dune-3.7.1/doc/dune-files.rst     2023-04-04 13:30:10.000000000 
+0200
@@ -763,16 +763,16 @@
 - ``copy`` copies entries to the cache. This is less efficient than using hard
   links.
 
-.. _concurrency:
+.. _jobs:
 
-concurrency
------------
+jobs
+----
 
 Maximum number of concurrent jobs Dune is allowed to have.
 
 .. code:: scheme
 
-    (concurrency <setting>)
+    (jobs <setting>)
 
 where ``<setting>`` is one of:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-dune-3.7.0/doc/requirements.txt 
new/ocaml-dune-3.7.1/doc/requirements.txt
--- old/ocaml-dune-3.7.0/doc/requirements.txt   2023-02-17 15:44:16.000000000 
+0100
+++ new/ocaml-dune-3.7.1/doc/requirements.txt   2023-04-04 13:30:10.000000000 
+0200
@@ -1,3 +1,3 @@
-sphinx >= 4.5.0
+sphinx >= 4.5.0, < 6
 sphinx_rtd_theme >= 1.0.0
 sphinx-copybutton >= 0.5.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-dune-3.7.0/otherlibs/stdune/src/io.ml 
new/ocaml-dune-3.7.1/otherlibs/stdune/src/io.ml
--- old/ocaml-dune-3.7.0/otherlibs/stdune/src/io.ml     2023-02-17 
15:44:16.000000000 +0100
+++ new/ocaml-dune-3.7.1/otherlibs/stdune/src/io.ml     2023-04-04 
13:30:10.000000000 +0200
@@ -339,7 +339,9 @@
          filter out the duplicates first. *)
       Path.unlink dst;
       Path.link src dst
-    | Unix.Unix_error (Unix.EMLINK, _, _) ->
+    | Unix.Unix_error (Unix.EMLINK, _, _)
+    | Unix.Unix_error (Unix.EUNKNOWNERR -1142, _, _)
+    (* Needed for OCaml < 5.1 *) ->
       (* If we can't make a new hard link because we reached the limit on the
          number of hard links per file, we fall back to copying. We expect that
          this happens very rarely (probably only for empty files). *)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-dune-3.7.0/src/dune_cache/local.ml 
new/ocaml-dune-3.7.1/src/dune_cache/local.ml
--- old/ocaml-dune-3.7.0/src/dune_cache/local.ml        2023-02-17 
15:44:16.000000000 +0100
+++ new/ocaml-dune-3.7.1/src/dune_cache/local.ml        2023-04-04 
13:30:10.000000000 +0200
@@ -61,7 +61,7 @@
   try Path.link src dst
   with
   | Unix.Unix_error (Unix.EMLINK, _, _)
-  | Unix.Unix_error (Unix.EUNKNOWNERR -1442, _, _) (* Needed for OCaml < 5.1 *)
+  | Unix.Unix_error (Unix.EUNKNOWNERR -1142, _, _) (* Needed for OCaml < 5.1 *)
   ->
     Temp.with_temp_file ~dir:temp_dir ~prefix:"dune" ~suffix:"copy" 
~f:(function
       | Error e -> raise e
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ocaml-dune-3.7.0/src/dune_rules/compilation_context.ml 
new/ocaml-dune-3.7.1/src/dune_rules/compilation_context.ml
--- old/ocaml-dune-3.7.0/src/dune_rules/compilation_context.ml  2023-02-17 
15:44:16.000000000 +0100
+++ new/ocaml-dune-3.7.1/src/dune_rules/compilation_context.ml  2023-04-04 
13:30:10.000000000 +0200
@@ -204,11 +204,16 @@
   }
 
 let for_alias_module t alias_module =
+  let keep_flags = Modules.is_stdlib_alias (modules t) alias_module in
   let flags =
-    let project = Scope.project t.scope in
-    let dune_version = Dune_project.dune_version project in
-    let profile = (Super_context.context t.super_context).profile in
-    Ocaml_flags.default ~dune_version ~profile
+    if keep_flags then
+      (* in the case of stdlib, these flags can be written by the user *)
+      t.flags
+    else
+      let project = Scope.project t.scope in
+      let dune_version = Dune_project.dune_version project in
+      let profile = (Super_context.context t.super_context).profile in
+      Ocaml_flags.default ~dune_version ~profile
   in
   let sandbox =
     let ctx = Super_context.context t.super_context in
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-dune-3.7.0/src/dune_rules/mdx.ml 
new/ocaml-dune-3.7.1/src/dune_rules/mdx.ml
--- old/ocaml-dune-3.7.0/src/dune_rules/mdx.ml  2023-02-17 15:44:16.000000000 
+0100
+++ new/ocaml-dune-3.7.1/src/dune_rules/mdx.ml  2023-04-04 13:30:10.000000000 
+0200
@@ -145,13 +145,20 @@
     in
     enter decode_env <|> decode_default
 
+  (** Generated program will read some files when it runs. *)
+  let runtime_deps ~dir t : _ Command.Args.t =
+    match t with
+    | Default file | Env { env = _; file } ->
+      Hidden_deps
+        (Dep.Set.of_files [ Path.build (Path.Build.append_local dir file) ])
+
   let to_args ~dir t : _ Command.Args.t list =
-    let bpath p = Path.build (Path.Build.append_local dir p) in
     match t with
-    | Default file -> [ A "--prelude"; Dep (bpath file) ]
+    | Default file ->
+      [ A "--prelude"; Dep (Path.build (Path.Build.append_local dir file)) ]
     | Env { env; file } ->
       let arg = sprintf "%s:%s" env (Path.Local.to_string file) in
-      [ A "--prelude"; A arg; Hidden_deps (Dep.Set.of_files [ bpath file ]) ]
+      [ A "--prelude"; A arg; runtime_deps ~dir t ]
 end
 
 type t =
@@ -317,7 +324,11 @@
            generated executable *)
         let open Command.Args in
         match mdx_prog_gen with
-        | Some prog -> (Ok (Path.build prog), [ Dep (Path.build files.src) ])
+        | Some prog ->
+          ( Ok (Path.build prog)
+          , [ Dep (Path.build files.src)
+            ; S (List.map ~f:(Prelude.runtime_deps ~dir) stanza.preludes)
+            ] )
         | None ->
           let prelude_args =
             List.concat_map stanza.preludes ~f:(Prelude.to_args ~dir)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-dune-3.7.0/src/fsevents/fsevents_stubs.c 
new/ocaml-dune-3.7.1/src/fsevents/fsevents_stubs.c
--- old/ocaml-dune-3.7.0/src/fsevents/fsevents_stubs.c  2023-02-17 
15:44:16.000000000 +0100
+++ new/ocaml-dune-3.7.1/src/fsevents/fsevents_stubs.c  2023-04-04 
13:30:10.000000000 +0200
@@ -39,6 +39,20 @@
     custom_serialize_default,   custom_deserialize_default,
     custom_compare_ext_default, custom_fixed_length_default};
 
+#define Fsevents_val(v) (*(dune_fsevents_t **)Data_custom_val(v))
+
+static void dune_fsevents_t_finalize(value v_t) {
+  dune_fsevents_t *t = Fsevents_val(v_t);
+  caml_remove_global_root(&t->v_callback);
+  caml_stat_free(t);
+}
+
+static struct custom_operations dune_fsevents_t_ops = {
+    "dune.fsevents.fsevents_t", dune_fsevents_t_finalize,
+    custom_compare_default,     custom_hash_default,
+    custom_serialize_default,   custom_deserialize_default,
+    custom_compare_ext_default, custom_fixed_length_default};
+
 CAMLprim value dune_fsevents_runloop_current(value v_unit) {
   CAMLparam1(v_unit);
   dune_runloop *rl;
@@ -177,13 +191,16 @@
   t->v_callback = v_callback;
   t->stream = stream;
 
-  CAMLreturn(caml_copy_nativeint((intnat)t));
+  value v_ret = caml_alloc_custom(
+      &dune_fsevents_t_ops, sizeof(dune_fsevents_t *), 0, 1);
+  Fsevents_val(v_ret) = t;
+  CAMLreturn(v_ret);
 }
 
 CAMLprim value dune_fsevents_set_exclusion_paths(value v_t, value v_paths) {
   CAMLparam2(v_t, v_paths);
   CAMLlocal1(path);
-  dune_fsevents_t *t = (dune_fsevents_t *)Nativeint_val(v_t);
+  dune_fsevents_t *t = Fsevents_val(v_t);
   CFMutableArrayRef paths = paths_of_list(v_paths);
 
   bool ret = FSEventStreamSetExclusionPaths(t->stream, paths);
@@ -197,7 +214,7 @@
 
 CAMLprim value dune_fsevents_start(value v_t, value v_runloop) {
   CAMLparam2(v_t, v_runloop);
-  dune_fsevents_t *t = (dune_fsevents_t *)Nativeint_val(v_t);
+  dune_fsevents_t *t = Fsevents_val(v_t);
   dune_runloop *runloop = Runloop_val(v_runloop);
   t->runloop = runloop;
   FSEventStreamScheduleWithRunLoop(t->stream, runloop->runloop,
@@ -212,19 +229,17 @@
 
 CAMLprim value dune_fsevents_stop(value v_t) {
   CAMLparam1(v_t);
-  dune_fsevents_t *t = (dune_fsevents_t *)Nativeint_val(v_t);
+  dune_fsevents_t *t = Fsevents_val(v_t);
   FSEventStreamStop(t->stream);
   FSEventStreamInvalidate(t->stream);
   FSEventStreamRelease(t->stream);
-  caml_remove_global_root(&t->v_callback);
-  caml_stat_free(t);
   CAMLreturn(Val_unit);
 }
 
 CAMLprim value dune_fsevents_runloop_get(value v_t) {
   CAMLparam1(v_t);
   CAMLlocal2(v_some, v_runloop);
-  dune_fsevents_t *t = (dune_fsevents_t *)Nativeint_val(v_t);
+  dune_fsevents_t *t = Fsevents_val(v_t);
   if (t->runloop == NULL) {
     CAMLreturn(Val_int(0));
   } else {
@@ -237,7 +252,7 @@
 
 CAMLprim value dune_fsevents_flush_async(value v_t) {
   CAMLparam1(v_t);
-  dune_fsevents_t *t = (dune_fsevents_t *)Nativeint_val(v_t);
+  dune_fsevents_t *t = Fsevents_val(v_t);
   CAMLlocal1(v_event);
   uint64_t id = FSEventStreamFlushAsync(t->stream);
   v_event = caml_copy_int64(id);
@@ -246,7 +261,7 @@
 
 CAMLprim value dune_fsevents_flush_sync(value v_t) {
   CAMLparam1(v_t);
-  dune_fsevents_t *t = (dune_fsevents_t *)Nativeint_val(v_t);
+  dune_fsevents_t *t = Fsevents_val(v_t);
   caml_release_runtime_system();
   FSEventStreamFlushSync(t->stream);
   caml_acquire_runtime_system();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-dune-3.7.0/src/fswatch_win/fswatch_win.ml 
new/ocaml-dune-3.7.1/src/fswatch_win/fswatch_win.ml
--- old/ocaml-dune-3.7.0/src/fswatch_win/fswatch_win.ml 2023-02-17 
15:44:16.000000000 +0100
+++ new/ocaml-dune-3.7.1/src/fswatch_win/fswatch_win.ml 2023-04-04 
13:30:10.000000000 +0200
@@ -41,12 +41,16 @@
 
 external add : t -> string -> unit = "fswatch_win_add"
 
+let add t p =
+  if Filename.is_relative p then invalid_arg "Fswatch_win.add";
+  add t p
+
 let wait t ~sleep =
   List.filter
     (function
       | { Event.action = Modified; path; directory } -> (
         try not (Sys.is_directory (Filename.concat directory path))
-        with Sys_error _ -> true)
+        with Sys_error _ -> (* should not happen *) true)
       | _ -> true)
     (wait t ~sleep)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-dune-3.7.0/src/fswatch_win/fswatch_win_stubs.c 
new/ocaml-dune-3.7.1/src/fswatch_win/fswatch_win_stubs.c
--- old/ocaml-dune-3.7.0/src/fswatch_win/fswatch_win_stubs.c    2023-02-17 
15:44:16.000000000 +0100
+++ new/ocaml-dune-3.7.1/src/fswatch_win/fswatch_win_stubs.c    2023-04-04 
13:30:10.000000000 +0200
@@ -67,6 +67,7 @@
   HANDLE completionPort;
   HANDLE signal;
   HANDLE thread;
+  HANDLE afterAdd;
 };
 
 struct watch {
@@ -359,6 +360,7 @@
         struct watch *w = add_watch(fsenv, key, &watches);
         if (w != NULL && read_changes(w) == 0) remove_watch(w, &watches);
       }
+      SetEvent(fsenv->afterAdd);
     } else if (overlapped == (LPOVERLAPPED)SHUTDOWN) {
       DEBUG("shutting down");
       shuttingDown = TRUE;
@@ -399,15 +401,25 @@
     unix_error("CreateEvent", err);
   }
 
+  HANDLE afterAdd = CreateEvent(NULL, FALSE, FALSE, NULL);
+  if (afterAdd == NULL) {
+    DWORD err = GetLastError();
+    CloseHandle(signal);
+    CloseHandle(completionPort);
+    unix_error("CreateEvent", err);
+  }
+
   struct fsenv* fsenv = caml_stat_alloc(sizeof(struct fsenv));
   fsenv->events = NULL;
   fsenv->completionPort = completionPort;
   fsenv->signal = signal;
+  fsenv->afterAdd = afterAdd;
 
   HANDLE thread = CreateThread(NULL, 0, &watch_thread, fsenv, 0, NULL);
   if (thread == NULL) {
     DWORD err = GetLastError();
     caml_stat_free(fsenv);
+    CloseHandle(afterAdd);
     CloseHandle(signal);
     CloseHandle(completionPort);
     unix_error("CreateThread", err);
@@ -433,6 +445,11 @@
     unix_error("PostQueuedCompletionStatus", GetLastError());
   }
 
+  caml_release_runtime_system();
+  DWORD res = WaitForSingleObject(fsenv->afterAdd, INFINITE);
+  caml_acquire_runtime_system();
+  if (res != WAIT_OBJECT_0) unix_error("WaitForSingleObject", GetLastError());
+
   return Val_unit;
 }
 
@@ -443,10 +460,8 @@
     caml_invalid_argument("Fswatch_win.wait: already shut down");
 
   caml_release_runtime_system();
-
   DWORD res = WaitForSingleObject(fsenv->signal, INFINITE);
   if (res == WAIT_OBJECT_0 && Int_val(v_debounce) > 0) 
Sleep(Int_val(v_debounce));
-
   caml_acquire_runtime_system();
 
   if (res != WAIT_OBJECT_0)
@@ -480,6 +495,7 @@
   CloseHandle(fsenv->thread);
   CloseHandle(fsenv->completionPort);
   CloseHandle(fsenv->signal);
+  CloseHandle(fsenv->afterAdd);
 
   for (struct events *e = pop_events(fsenv); e; e = e->next) {
     free(e->path);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ocaml-dune-3.7.0/test/blackbox-tests/test-cases/mdx-stanza/github7077.t 
new/ocaml-dune-3.7.1/test/blackbox-tests/test-cases/mdx-stanza/github7077.t
--- old/ocaml-dune-3.7.0/test/blackbox-tests/test-cases/mdx-stanza/github7077.t 
1970-01-01 01:00:00.000000000 +0100
+++ new/ocaml-dune-3.7.1/test/blackbox-tests/test-cases/mdx-stanza/github7077.t 
2023-04-04 13:30:10.000000000 +0200
@@ -0,0 +1,39 @@
+When mdx is used to generate a program, the program will read the preludes at
+run time. This test makes sure that this is recorded as a dependency.
+
+  $ cat > dune << EOF
+  > (mdx (preludes prelude.ml))
+  > EOF
+
+  $ cat > dune-project << EOF
+  > (lang dune 3.6)
+  > (using mdx 0.3)
+  > EOF
+
+  $ cat > prelude.ml << EOF
+  > let foo () = 1
+  > EOF
+
+  $ cat > README.md << 'EOF'
+  > ```ocaml
+  > # foo ();;
+  > - : int = 1
+  > ```
+  > EOF
+
+  $ dune runtest
+
+  $ echo 'let foo () = 2' > prelude.ml
+
+  $ dune runtest --auto-promote
+  File "README.md", line 1, characters 0-0:
+  Error: Files _build/default/README.md and
+  _build/default/.mdx/README.md.corrected differ.
+  Promoting _build/default/.mdx/README.md.corrected to README.md.
+  [1]
+
+  $ cat README.md
+  ```ocaml
+  # foo ();;
+  - : int = 2
+  ```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ocaml-dune-3.7.0/test/blackbox-tests/test-cases/stdlib-flags.t 
new/ocaml-dune-3.7.1/test/blackbox-tests/test-cases/stdlib-flags.t
--- old/ocaml-dune-3.7.0/test/blackbox-tests/test-cases/stdlib-flags.t  
1970-01-01 01:00:00.000000000 +0100
+++ new/ocaml-dune-3.7.1/test/blackbox-tests/test-cases/stdlib-flags.t  
2023-04-04 13:30:10.000000000 +0200
@@ -0,0 +1,18 @@
+  $ cat > dune-project << EOF
+  > (lang dune 3.7)
+  > (using experimental_building_ocaml_compiler_with_dune 0.1)
+  > EOF
+
+  $ cat > dune << EOF
+  > (library
+  >  (name mystdlib)
+  >  (stdlib)
+  >  (flags :standard -w -8))
+  > EOF
+
+  $ cat > mystdlib.ml << EOF
+  > (* This triggers warning 8 *)
+  > let None = None
+  > EOF
+
+  $ dune build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-dune-3.7.0/test/unit-tests/fswatch_win/dune 
new/ocaml-dune-3.7.1/test/unit-tests/fswatch_win/dune
--- old/ocaml-dune-3.7.0/test/unit-tests/fswatch_win/dune       2023-02-17 
15:44:16.000000000 +0100
+++ new/ocaml-dune-3.7.1/test/unit-tests/fswatch_win/dune       2023-04-04 
13:30:10.000000000 +0200
@@ -8,3 +8,10 @@
   (sandbox always))
  (action
   (run ./fswatch_win_tests.exe)))
+
+(alias
+ (name runtest)
+ (enabled_if
+  (= %{os_type} Win32))
+ (deps
+  (alias fswatch_win_tests)))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ocaml-dune-3.7.0/test/unit-tests/fswatch_win/fswatch_win_tests.ml 
new/ocaml-dune-3.7.1/test/unit-tests/fswatch_win/fswatch_win_tests.ml
--- old/ocaml-dune-3.7.0/test/unit-tests/fswatch_win/fswatch_win_tests.ml       
2023-02-17 15:44:16.000000000 +0100
+++ new/ocaml-dune-3.7.1/test/unit-tests/fswatch_win/fswatch_win_tests.ml       
2023-04-04 13:30:10.000000000 +0200
@@ -44,7 +44,13 @@
   create_file beginning_of_test_file;
   create_file end_of_test_file;
   let fswatch = Fswatch_win.create () in
-  let watch dir = Fswatch_win.add fswatch dir in
+  let watch dir =
+    let dir =
+      if Filename.is_relative dir then Filename.concat (Sys.getcwd ()) dir
+      else dir
+    in
+    Fswatch_win.add fswatch dir
+  in
   watch markdir;
   let rec collect_events acc = function
     | [] ->

Reply via email to