[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

OCaml 4.08.0 and later...



Le 11/07/2019 à 22:24, Ralf Treinen a écrit :
> I see that you have uploaded ocaml 4.08 to experimental, so that is great
> news. I suppose that means that an ocaml transition is upcoming, once
> ocaml has made it through the NEW queue (which currently has a 5 month
> backlog)?

It depends on when it will make through the NEW queue... Besides, there
is an ocaml 4.09.0~beta1, so I guess it's wiser to wait for 4.09.0 to do
the transition.

A few words about OCaml 4.08.0...

There has been many changes since unstable's version (4.05.0), which
dates back to two years ago (at least). In particular:
- the configure script has been changed to autoconf
- ocaml-mode has been dropped (now a separate project)
- the nums library has been dropped (probably also a separate project,
but there is also zarith)

Many debian/patches do not apply and are not obviously adapted; I chose
to drop them for this upload to experimental. In particular:
- a patch to allow compilation of ocaml-generated C files with a C++
compiler, submitted upstream but somehow forgotten (the error being
multiple declarations of the same name)
- a patch to change the behaviour of -custom, which has been rejected
upstream because they don't want people to use -custom (the error being
stripping such binaries would remove also the bytecode)
- a patch to use deterministic names for preprocessed files, never
submitted upstream it seems (the error being unreproducible builds)
- a patch to take into account hardening flags, never submitted

I may or may not rewrite those patches; if someone else does it, please
also submit upstream.

Now comments on the packaging...

- dh_autoreconf and dh_dwz fail miserably; it should be investigated
- I wrote a new script to dispatch the files to the binary packages. I
didn't find an easy way to dispatch manpages (the .3o ones, there are so
many of them and stdlib, otherlibs, compiler-libs are all mixed), so I
put them in a new binary package ocaml-man (hence the NEW processing)

About 4.09.0... (I'm writing the following as I am thinking about it)

The graph library has moved to a separate project. This means there is
no X any more in OCaml (the -nox distinction is no longer relevant). I
propose to review the binary package layout:
- put contents of /usr/lib/ocaml to libstdlib-ocaml{,-dev} and handle it
like other OCaml libraries (in particular w.r.t. dh_ocaml)
- put /usr/bin/ocamlrun* (and its manpages) to ocaml-base (and make it
depend on libstdlib-ocaml)
- put rest of /usr/bin (and its manpages) to ocaml (and make it depend
on libstdlib-ocaml-dev)
- put rest of /usr/share/man (.3o manpages) to libstdlib-ocaml-doc
- retire ocaml-interp, ocaml-compiler-libs, ocaml-base-nox and ocaml-nox
(i.e. make them transitional now and later remove them)

Rationale:
- ocaml-base/ocaml would be mostly empty with the current scheme
- ocaml-interp contains only "ocaml" these days and it's
counter-intuitive to not have "ocaml" installed when one installs the
"ocaml" package
- compiled-libs are now installed upstream, fully acknowledged by the
community, and under the same license as everything else

I expect these changes to break things in reverse-dependencies... but
isn't now (i.e. the beginning of a new release cycle) the right moment
to break things?

Any opinions?


Cheers,

-- 
Stéphane


Reply to: