#1143350 ocaml-atd: FTBFS: dh_auto_test: error: dune runtest -j 2 -p atdgen-codec-runtime,atd,atdgen-runtime,atdgen,atdts returned exit code 1

#1143350#5
Date:
2026-08-01 22:37:05 UTC
From:
To:
Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

https://people.debian.org/~sanvila/build-logs/202608/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:ocaml-atd, so that this is still
visible in the BTS web page for this package.

Thanks.
--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean --with ocaml --buildsystem ocaml_dune
   dh_auto_clean -O--buildsystem=ocaml_dune
	dune clean
   dh_autoreconf_clean -O--buildsystem=ocaml_dune
   dh_ocamlclean -O--buildsystem=ocaml_dune
   dh_clean -O--buildsystem=ocaml_dune
 debian/rules binary
dh binary --with ocaml --buildsystem ocaml_dune
   dh_update_autotools_config -O--buildsystem=ocaml_dune
   dh_autoreconf -O--buildsystem=ocaml_dune
   dh_ocamlinit -O--buildsystem=ocaml_dune
   dh_auto_configure -O--buildsystem=ocaml_dune
   dh_auto_build -O--buildsystem=ocaml_dune
	dune build -j 2 -p atdgen-codec-runtime,atd,atdgen-runtime,atdgen,atdts

[... snipped ...]

                       | _ -> (
                           (fun loc s -> Printf.eprintf "Warning: skipping field %s (def: %s)
-" s loc) "File \"test.atd\", line 197, characters 17-140" (String.sub s pos len); -1
+" s loc) "File \"./test.atd\", line 197, characters 17-140" (String.sub s pos len); -1
                         )
                   )
                 | _ -> (
                     (fun loc s -> Printf.eprintf "Warning: skipping field %s (def: %s)
-" s loc) "File \"test.atd\", line 197, characters 17-140" (String.sub s pos len); -1
+" s loc) "File \"./test.atd\", line 197, characters 17-140" (String.sub s pos len); -1
                   )
             )
             else (
               (fun loc s -> Printf.eprintf "Warning: skipping field %s (def: %s)
-" s loc) "File \"test.atd\", line 197, characters 17-140" (String.sub s pos len); -1
+" s loc) "File \"./test.atd\", line 197, characters 17-140" (String.sub s pos len); -1
             )
         in
         let i = Yojson.Safe.map_ident p f lb in
@@ -3815,7 +3815,7 @@
           )
           else (
             (fun loc s -> Printf.eprintf "Warning: skipping field %s (def: %s)
-" s loc) "File \"test.atd\", line 203, characters 18-35" (String.sub s pos len); -1
+" s loc) "File \"./test.atd\", line 203, characters 18-35" (String.sub s pos len); -1
           )
       in
       let i = Yojson.Safe.map_ident p f lb in
@@ -3847,7 +3847,7 @@
             )
             else (
               (fun loc s -> Printf.eprintf "Warning: skipping field %s (def: %s)
-" s loc) "File \"test.atd\", line 203, characters 18-35" (String.sub s pos len); -1
+" s loc) "File \"./test.atd\", line 203, characters 18-35" (String.sub s pos len); -1
             )
         in
         let i = Yojson.Safe.map_ident p f lb in
@@ -3928,7 +3928,7 @@
                   )
                   else (
                     (fun loc s -> Printf.eprintf "Warning: skipping field %s (def: %s)
-" s loc) "File \"test.atd\", line 55, characters 14-71" (String.sub s pos len); -1
+" s loc) "File \"./test.atd\", line 55, characters 14-71" (String.sub s pos len); -1
                   )
                 )
               | '6' -> (
@@ -3937,17 +3937,17 @@
                   )
                   else (
                     (fun loc s -> Printf.eprintf "Warning: skipping field %s (def: %s)
-" s loc) "File \"test.atd\", line 55, characters 14-71" (String.sub s pos len); -1
+" s loc) "File \"./test.atd\", line 55, characters 14-71" (String.sub s pos len); -1
                   )
                 )
               | _ -> (
                   (fun loc s -> Printf.eprintf "Warning: skipping field %s (def: %s)
-" s loc) "File \"test.atd\", line 55, characters 14-71" (String.sub s pos len); -1
+" s loc) "File \"./test.atd\", line 55, characters 14-71" (String.sub s pos len); -1
                 )
           )
           else (
             (fun loc s -> Printf.eprintf "Warning: skipping field %s (def: %s)
-" s loc) "File \"test.atd\", line 55, characters 14-71" (String.sub s pos len); -1
+" s loc) "File \"./test.atd\", line 55, characters 14-71" (String.sub s pos len); -1
           )
       in
       let i = Yojson.Safe.map_ident p f lb in
@@ -3990,7 +3990,7 @@
                     )
                     else (
                       (fun loc s -> Printf.eprintf "Warning: skipping field %s (def: %s)
-" s loc) "File \"test.atd\", line 55, characters 14-71" (String.sub s pos len); -1
+" s loc) "File \"./test.atd\", line 55, characters 14-71" (String.sub s pos len); -1
                     )
                   )
                 | '6' -> (
@@ -3999,17 +3999,17 @@
                     )
                     else (
                       (fun loc s -> Printf.eprintf "Warning: skipping field %s (def: %s)
-" s loc) "File \"test.atd\", line 55, characters 14-71" (String.sub s pos len); -1
+" s loc) "File \"./test.atd\", line 55, characters 14-71" (String.sub s pos len); -1
                     )
                   )
                 | _ -> (
                     (fun loc s -> Printf.eprintf "Warning: skipping field %s (def: %s)
-" s loc) "File \"test.atd\", line 55, characters 14-71" (String.sub s pos len); -1
+" s loc) "File \"./test.atd\", line 55, characters 14-71" (String.sub s pos len); -1
                   )
             )
             else (
               (fun loc s -> Printf.eprintf "Warning: skipping field %s (def: %s)
-" s loc) "File \"test.atd\", line 55, characters 14-71" (String.sub s pos len); -1
+" s loc) "File \"./test.atd\", line 55, characters 14-71" (String.sub s pos len); -1
             )
         in
         let i = Yojson.Safe.map_ident p f lb in
@@ -4313,12 +4313,12 @@
                 )
               | _ -> (
                   (fun loc s -> Printf.eprintf "Warning: skipping field %s (def: %s)
-" s loc) "File \"test.atd\", line 103, characters 16-508" (String.sub s pos len); -1
+" s loc) "File \"./test.atd\", line 103, characters 16-508" (String.sub s pos len); -1
                 )
           )
           else (
             (fun loc s -> Printf.eprintf "Warning: skipping field %s (def: %s)
-" s loc) "File \"test.atd\", line 103, characters 16-508" (String.sub s pos len); -1
+" s loc) "File \"./test.atd\", line 103, characters 16-508" (String.sub s pos len); -1
           )
       in
       let i = Yojson.Safe.map_ident p f lb in
@@ -4409,12 +4409,12 @@
                   )
                 | _ -> (
                     (fun loc s -> Printf.eprintf "Warning: skipping field %s (def: %s)
-" s loc) "File \"test.atd\", line 103, characters 16-508" (String.sub s pos len); -1
+" s loc) "File \"./test.atd\", line 103, characters 16-508" (String.sub s pos len); -1
                   )
             )
             else (
               (fun loc s -> Printf.eprintf "Warning: skipping field %s (def: %s)
-" s loc) "File \"test.atd\", line 103, characters 16-508" (String.sub s pos len); -1
+" s loc) "File \"./test.atd\", line 103, characters 16-508" (String.sub s pos len); -1
             )
         in
         let i = Yojson.Safe.map_ident p f lb in
@@ -4665,12 +4665,12 @@
                 )
               | _ -> (
                   (fun loc s -> Printf.eprintf "Warning: skipping field %s (def: %s)
-" s loc) "File \"test.atd\", line 98, characters 12-40" (String.sub s pos len); -1
+" s loc) "File \"./test.atd\", line 98, characters 12-40" (String.sub s pos len); -1
                 )
           )
           else (
             (fun loc s -> Printf.eprintf "Warning: skipping field %s (def: %s)
-" s loc) "File \"test.atd\", line 98, characters 12-40" (String.sub s pos len); -1
+" s loc) "File \"./test.atd\", line 98, characters 12-40" (String.sub s pos len); -1
           )
       in
       let i = Yojson.Safe.map_ident p f lb in
@@ -4715,12 +4715,12 @@
                   )
                 | _ -> (
                     (fun loc s -> Printf.eprintf "Warning: skipping field %s (def: %s)
-" s loc) "File \"test.atd\", line 98, characters 12-40" (String.sub s pos len); -1
+" s loc) "File \"./test.atd\", line 98, characters 12-40" (String.sub s pos len); -1
                   )
             )
             else (
               (fun loc s -> Printf.eprintf "Warning: skipping field %s (def: %s)
-" s loc) "File \"test.atd\", line 98, characters 12-40" (String.sub s pos len); -1
+" s loc) "File \"./test.atd\", line 98, characters 12-40" (String.sub s pos len); -1
             )
         in
         let i = Yojson.Safe.map_ident p f lb in
(cd _build/default/atdts/src/test && ./Main.exe)
Testing `atdts'.
This run has ID `XQI9WXGD'.


Full test results in `/<<PKGBUILDDIR>>/_build/default/atdts/src/test/_build/_tests/atdts'.
Test Successful in 0.000s. 0 test run.
(cd _build/default/atd/test && ./unit_tests.exe)
Testing `atd'.
This run has ID `0LSK9YPH'.

  [OK]          Annot                0   valid.
  [OK]          Annot                1   invalid1.
  [OK]          Annot                2   invalid2.
  [OK]          Annot                3   invalid3.
  [OK]          Annot                4   invalid4.
  [OK]          Annot                5   invalid5.
  [OK]          Annot                6   invalid6.
  [OK]          Annot                7   invalid7.
  [OK]          Annot                8   invalid8.
  [OK]          Annot                9   invalid9.
  [OK]          Sort                 0   sort.
  [OK]          Unique_name          0   reserved identifiers.
  [OK]          Unique_name          1   reserved prefixes.
  [OK]          Unique_name          2   identifier creation.
  [OK]          Doc                  0   normalize "".
  [OK]          Doc                  1   normalize "a".
  [OK]          Doc                  2   normalize "a b".
  [OK]          Doc                  3   normalize "a\nb".
  [OK]          Doc                  4   normalize "a  b".
  [OK]          Doc                  5   normalize "a \n b".
  [OK]          Doc                  6   normalize "a \n\n b".
  [OK]          Doc                  7   normalize "  a  ".
  [OK]          Doc                  8   normalize "\n\na\n\n".
  [OK]          Doc                  9   normalize "{{}}".
  [OK]          Doc                 10   normalize "{{a}}".
  [OK]          Doc                 11   normalize "{{  a  b\n\nc\n }}".
  [OK]          Doc                 12   normalize "{{ {a} }}".
  [OK]          Doc                 13   normalize "{{{}}}".
  [OK]          Doc                 14   normalize "{{{a}}}".
  [OK]          Doc                 15   normalize "{{{ }}}".
  [OK]          Doc                 16   normalize "{{{ {{a}} }}}".
  [OK]          Doc                 17   normalize "{{{ a\n\n  b }}}".

Full test results in `/<<PKGBUILDDIR>>/_build/default/atd/test/_build/_tests/atd'.
Test Successful in 0.002s. 32 tests run.
(cd _build/default/atdpy/src/test && ./Main.exe)
Testing `atdpy'.
This run has ID `S0Y9OTIM'.


Full test results in `/<<PKGBUILDDIR>>/_build/default/atdpy/src/test/_build/_tests/atdpy'.
Test Successful in 0.000s. 0 test run.
File "doc/atdgen-tutorial-data/config-file/run.t", line 1, characters 0-0:
(cd _build/default && /usr/bin/diff -u --label doc/atdgen-tutorial-data/config-file/run.t --label doc/atdgen-tutorial-data/config-file/run.t.corrected doc/atdgen-tutorial-data/config-file/run.t doc/atdgen-tutorial-data/config-file/run.t.corrected)
--- doc/atdgen-tutorial-data/config-file/run.t
+++ doc/atdgen-tutorial-data/config-file/run.t.corrected
@@ -36,7 +36,7 @@
 Fail to validate another invalid config file (using custom validators)

   $ ./config.exe -validate bad-config2.json || :
-  Error: Found unknown JSON field tiemout while expecting type defined at: File "config.atd", line 1, characters 14-228
+  Error: Found unknown JSON field tiemout while expecting type defined at: File "./config.atd", line 1, characters 14-228

 Validate, inject missing defaults and pretty-print

(cd _build/default/atdgen/test && ./test_atdgen_main.exe)
Testing `atdgen'.
This run has ID `HBO14VOA'.

  [OK]          atdgen          0   ocaml internals.
  [OK]          atdgen          1   biniou missing record fields.
  [OK]          atdgen          2   biniou missing tuple fields.
  [OK]          atdgen          3   biniou read/write unit.
  [OK]          atdgen          4   json missing record fields.
  [OK]          atdgen          5   json missing tuple fields.
  [OK]          atdgen          6   json extra field warning.
  [OK]          atdgen          7   json association list.
  [OK]          atdgen          8   json association array.
  [OK]          atdgen          9   json ints derived from ocaml floats.
  [OK]          atdgen         10   biniou correctness.
  [OK]          atdgen         11   json correctness.
  [OK]          atdgen         12   json space.
  [OK]          atdgen         13   validators0.
  [OK]          atdgen         14   validators1.
  [OK]          atdgen         15   validators2.
  [OK]          atdgen         16   validators3.
  [OK]          atdgen         17   validators4.
  [OK]          atdgen         18   json files.
  [OK]          atdgen         19   json streams.
  [OK]          atdgen         20   raw JSON.
  [OK]          atdgen         21   ocaml wrapping - ints.
  [OK]          atdgen         22   ocaml wrapping - double wrapping.
  [OK]          atdgen         23   ocaml wrapping - with validation.
  [OK]          atdgen         24   ocaml wrapping - wrap constructor without...
  [OK]          atdgen         25   check length of floats serialized as floa...
  [OK]          atdgen         26   print JSON floats with maximum number of ...
  [OK]          atdgen         27   read json record with null fields meaning...
  [OK]          atdgen         28   read and write a variant represented as a...
  [OK]          atdgen         29   read and write a variant represented as a...
  [OK]          atdgen         30   test variants represented with single-fie...
  [OK]          atdgen         31   emulate the retired tag_field feature.
  [OK]          atdgen         32   emulate the retired tag_field feature, wi...
  [OK]          atdgen         33   test <json open_enum>.
  [OK]          atdgen         34   test ambiguous record with json adapters.
  [OK]          atdgen         35   test ambiguous classic variants with json...
  [OK]          atdgen         36   test wrapping of polymorphic types.
  [OK]          atdgen         37   json encoding int.
  [OK]          atdgen         38   json encoding & decoding int.
  [OK]          atdgen         39   json encoding int with string representat...
  [OK]          atdgen         40   json encoding & decoding int with string ...
  [OK]          atdgen         41   abstract types.
  [OK]          atdgen         42   untyped json.
  [OK]          atdgen         43   generic.
  [OK]          atdgen         44   inline-records.

Full test results in `/<<PKGBUILDDIR>>/_build/default/atdgen/test/_build/_tests/atdgen'.
Test Successful in 0.003s. 45 tests run.
dh_auto_test: error: dune runtest -j 2 -p atdgen-codec-runtime,atd,atdgen-runtime,atdgen,atdts returned exit code 1
make: *** [debian/rules:8: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2
--------------------------------------------------------------------------------

#1143350#10
Date:
2026-08-07 12:29:26 UTC
From:
To:
Hello,

Bug #1143350 in ocaml-atd reported by you has been fixed in the
Git repository and is awaiting an upload. You can see the commit
message below and you can check the diff of the fix at:

https://salsa.debian.org/ocaml-team/ocaml-atd/-/commit/06bc1e9529450bafe0ef2d32397bb6e0023adff6

(this message was generated automatically)
-- 
Greetings

https://bugs.debian.org/1143350

#1143350#17
Date:
2026-08-07 12:48:56 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
ocaml-atd, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1143350@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Stéphane Glondu <glondu@debian.org> (supplier of updated ocaml-atd package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Fri, 07 Aug 2026 14:09:41 +0200
Source: ocaml-atd
Architecture: source
Version: 4.2.0-2
Distribution: unstable
Urgency: medium
Maintainer: Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>
Changed-By: Stéphane Glondu <glondu@debian.org>
Closes: 1143350
Changes:
 ocaml-atd (4.2.0-2) unstable; urgency=medium
 .
   * Work around Dune 3.24 path issue (Closes: #1143350)
   * Bump debhelper compat level to 14
   * Set dune_layout_version to 1
Checksums-Sha1:
 1a1b19d063ec6b2ce4ed7cfb461aa9e87e0964d0 2859 ocaml-atd_4.2.0-2.dsc
 070449c3c648d5e14909bfac83ef956bb9c724f3 12172 ocaml-atd_4.2.0-2.debian.tar.xz
 83bcd44980ed1fbaca7d4e47a402c7ff71687af5 3739048 ocaml-atd_4.2.0-2.git.tar.xz
 00c4280f955b524999f6699514d76136c8c3a6be 17560 ocaml-atd_4.2.0-2_source.buildinfo
Checksums-Sha256:
 672bda21947c5b31952c00834943da83717a4a7951c240dd57f86cf4f5d68ca2 2859 ocaml-atd_4.2.0-2.dsc
 ddf212079dff0a5871452f2bbf762dc6a5fc76132fd05562b09c840e3ed08fd8 12172 ocaml-atd_4.2.0-2.debian.tar.xz
 10c266e8f11365902d1856ae87aa05e254558c2acd9bea1959a9d49def063851 3739048 ocaml-atd_4.2.0-2.git.tar.xz
 b04a9b796096fee8a50e41de53d73f42fcccf7784b741e97e211a8ec2aaac5f4 17560 ocaml-atd_4.2.0-2_source.buildinfo
Files:
 4231ebecead312766b17256ce3b4466e 2859 ocaml optional ocaml-atd_4.2.0-2.dsc
 6fba3cb89dec6be91942c99e7a12c452 12172 ocaml optional ocaml-atd_4.2.0-2.debian.tar.xz
 5ee078da19a3e35fcaf6838cc6132f77 3739048 ocaml None ocaml-atd_4.2.0-2.git.tar.xz
 1f26ad32904d999132a80371cb891888 17560 ocaml optional ocaml-atd_4.2.0-2_source.buildinfo
Git-Tag-Info: tag=f473abbddc4baa6f481a3e11c67ae9ea8345d46f fp=6de24e97eca886cc56e6250e21b8eef1b1893081
Git-Tag-Tagger: Stephane Glondu <steph@glondu.net>
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEN02M5NuW6cvUwJcqYG0ITkaDwHkFAmp1z+wACgkQYG0ITkaD
wHnkaQ//Xtx5W91perSqSvBKKIKa4LbGuSn7v/0+cLio/dHIepUpkz6z9WDPgQWN
imI8QDr1toopw3mz2l+ZmCdnFu1ILSrn6/Rm5nhtXRIXmmLUVqP6ioPknvOORYzK
BSRJIQJTX7GGFeI4n45WqvLqUlYmOTWad6YjuAhnrPjXL4/sXSNc47facASHXiZy
TBvW5dv9n5uhGCEfh+aLDeZbUl1HJUW8//PmmHvIGiymhYUKWg5tJQ0y+Rqgujxa
4SBkGAOlPi9/Pg5DFu+60nR4u90XCDt8quIi/RiBAnpXHI/MRUGaSsMhX1pur8oT
FpgP4eARWsM+JlxyTMe0Vm30EEbCObjy0cetF15ekNeRE4T+eXp9gXFVX6fajd1W
O72Dny9cqOy2j+TfsOhuYufKwp09YZWLK3ktIt7LqjpxrY0JyuncTO/cxCCBkcnY
JvUeyaDDr5h9RqESrS/NsNUAtT6X6Rc0P0fSxgmYm8e93IjLUjIwxi8eC1DshV8B
4ttza0BqG5WoYzG+3KhCY75dFVIPUhejKu9EhsSLBXNqPjq8Y2mXNJ/hVMbsIeFm
zaHqzFN0uOQg1q+cjhTaikaTaZiKKf+0vj+Cgnyyfn0BL8z0Sh8Hm0h2MVduqjZu
2NCiRSB4tj1gTsslHso1/2pSIl79GZyVHJr28qNjp6828E8WLQM=
=mjd2
-----END PGP SIGNATURE-----