--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: ocaml: missing dependency on libncurses-dev
- From: whitequark <whitequark@whitequark.org>
- Date: Fri, 17 Jun 2016 10:07:44 +0000
- Message-id: <146615802729.6334.5031743174032533446.reportbug@raidho>
Source: ocaml
Severity: normal
Dear Maintainer,
The ocaml package, as well as its sister packages ocaml-nox, ocaml-base
and
ocaml-base-nox, are missing a dependency on libncurses-dev. This is
apparent
when trying to build a bytecode executable with an embedded custom
runtime:
$ touch t.ml
$ ocamlc t.ml -custom
/usr/bin/ld: cannot find -lcurses
collect2: error: ld returned 1 exit status
File "t.ml", line 1:
Error: Error while building custom runtime system
Because of this, packages that assume that they can build a custom
runtime
whenever they can build regular bytecode executables, which is in my
opinion
a fair assumption, break. A notable case where this presents a
significant
problem is when the OPAM package manager is used with a system OCaml
compiler.
Many notable packages, e.g. ocamlfind and lwt, build custom runtimes,
and
currently the OPAM packages have to be altered to either disable that,
when
possible, or else add an explicit dependency on ncurses-dev, through
the depext mechanism, which integrates OPAM with APT.
This is a problem because the packages themselves have no dependency on
ncurses and, indeed, the dependency is wholly unnecessary in cases where
the OCaml compiler is not built with ncurses. In effect, the OPAM
repository
has to be altered to work around a missing Debian dependency.
I expect that the Debian packages containg ocamlc would gain a hard
dependency
on libncurses5-dev, similar to how the ocaml package already has a hard
dependency on libx11-dev.
-- System Information:
Debian Release: stretch/sid
APT prefers testing
APT policy: (990, 'testing'), (500, 'stable-updates'), (500,
'unstable'), (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 4.5.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)
--- End Message ---