#1143016 libcamlp-streams-ocaml shouldn't have a -dev subpackage

Package:
libcamlp-streams-ocaml
Source:
libcamlp-streams-ocaml
Description:
Stream and Genlex libraries for use with Camlp4 and Camlp5 (runtime files)
Submitter:
Kate
Date:
2026-07-30 08:25:02 UTC
Severity:
normal
#1143016#5
Date:
2026-07-29 16:25:11 UTC
From:
To:
See
https://github.com/ocaml/opam-repository/issues/27712#issuecomment-3422172661

Pure OCaml packages shouldn't be split between non-dev and dev
subpackages. What makes sense for C-like libraries do not make any sense
for pure OCaml libraries.

As-is, libcamlp-streams-ocaml only provides dynlink access, which is a
rarely-used feature of OCaml overall. The vast majority of pure OCaml
packages use the default static linking, only rare software such as
ocsigenserver actually use dynlinking in that way. Trying to use this
package for anything else will result in a failure because of the
missing .cmi at the very least.

Of course, for non-pure packages such as ones containing C stubs what
i'm saying here doesn't apply, although .so for C stubs are only really
used by pure OCaml bytecode programs, so the use-case is limited.

If you really want to keep the dev/non-dev distinctions i'd implore you
to consider moving *.cmi, *.cmxa, *.a and optionally *.cmx to the
non-dev package, keeping only what's important for development (*.cmti
*.mli etc) in the dev package.
This way the non-dev packages become actually useful and do not lead to
a broken state for tools that read META files (virtually every OCaml
build-systems) as well as the OCaml toplevel.

Thanks for your work,
Kate

#1143016#12
Date:
2026-07-30 08:23:26 UTC
From:
To:
Dear Kate,

Le 29/07/2026 à 18:25, Kate a écrit :

If anything, pure OCaml libraries should have only a -dev package.

.cmi are not needed for dynlinking.

And ocsigenserver can load modules that depend on "pure OCaml libraries"
such as libcamlp-streams-ocaml, so the current packaging makes sense (IMHO).

This would defeat the purpose of non-dev packages, which is to reduce
the installation footprint when one doesn't care about a working
developing environment.

As said in https://github.com/ocaml/opam-repository/issues/27712, people
are not supposed to install non-dev packages directly, especially if
they want a working development environment, in which case they should
install the -dev package. The non-dev packages should be pulled
automatically when needed.


Cheers,