Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 708696 - dev-lang/ocaml-4.09.0: please stabilize
Summary: dev-lang/ocaml-4.09.0: please stabilize
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Stabilization (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: No maintainer - Look at https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers if you want to take care of it
URL:
Whiteboard:
Keywords: PullRequest, STABLEREQ
Depends on: ocaml-4.09 671104 708874 708924 708936 709348
Blocks: CVE-2018-9838 708672
  Show dependency tree
 
Reported: 2020-02-08 09:33 UTC by Miroslav Šulc
Modified: 2020-10-03 13:49 UTC (History)
8 users (show)

See Also:
Package list:
=dev-lang/ocaml-4.09.0 amd64 arm arm64 ia64 ppc ppc64 sparc x86
Runtime testing required: ---
stable-bot: sanity-check+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Miroslav Šulc gentoo-dev 2020-02-08 09:33:50 UTC
commit 3e396d2b57d76c1025491c8313859e59778f65e8
Author: Sergei Trofimovich <slyfox@gentoo.org>
Date:   Wed Feb 5 09:38:23 2020 +0000

    dev-lang/ocaml: tweak for gcc-10
    
    Package-Manager: Portage-2.3.87, Repoman-2.3.20
    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>

commit 8f2b80ace6a8276b20b86bae4f38000490702d31
Author: Mikle Kolyada <zlogene@gentoo.org>
Date:   Sat Dec 28 16:39:29 2019 +0300

    dev-lang/ocaml: restore keywords
    
    Package-Manager: Portage-2.3.79, Repoman-2.3.16
    Signed-off-by: Mikle Kolyada <zlogene@gentoo.org>

commit df1434388cf449f432d8058f8fa0e9f0202483ab
Author: Ralph Seichter <github@seichter.de>
Date:   Mon Dec 16 02:37:34 2019 +0100

    dev-lang/ocaml: Bump to version 4.09.0, EAPI 7
    
    This new OCaml ebuild uses EAPI 7. As discussed with Zlogenem, multi-
    platform support has been removed and the ebuild is now keyworded for
    ~amd64 only.
    
    Significant time was spent figuring out why the build failed when run
    via ebuild, but succeeded when run manually. After I filed an upstream
    issue[1] and a subsequent discussion, it turned out that Gentoo's ${P}
    variable clashed with the OCaml build, as I had suspected. The line
    
        P ?= stdlib__
    
    in a Makefile resulted in wrong file paths which in turn broke the
    OCaml documentation build. I have asked upstream if their use of the
    "?=" operator is deliberate; an answer is pending.
    
    The license in this build has been changed to match [2].
    
    [1] https://github.com/ocaml/ocaml/issues/9189
    [2] https://ocaml.org/docs/license.html
    
    Closes: https://bugs.gentoo.org/688108
    Package-Manager: Portage-2.3.79, Repoman-2.3.16
    Signed-off-by: Ralph Seichter <gentoo@seichter.de>
    Signed-off-by: Mikle Kolyada <zlogene@gentoo.org>
Comment 1 Agostino Sarubbo gentoo-dev 2020-02-09 10:32:08 UTC
amd64 stable
Comment 2 Jannik Glückert 2020-02-09 13:12:39 UTC
This version breaks emerging the stable version of dev-ml/findlib . The stable useflag should be dropped until this is resolved - perhaps a newer version of findlib fixes this, I haven't tested that

An excerpt of the build.log of dev-ml/findlib-1.7.1 :

>>> Configuring source in /var/tmp/portage/dev-ml/findlib-1.7.1/work/findlib-1.7.1 ...
Welcome to findlib version 1.7.1
Configuring core...
Checking for #remove_directory...
Testing threading model...
The -vmthread switch is not supported: Your ocaml version is too old!
 * ERROR: dev-ml/findlib-1.7.1::gentoo failed (configure phase):
 *   configure failed
 * 
 * Call stack:
 *     ebuild.sh, line 125:  Called src_configure
 *   environment, line 3082:  Called die
 * The specific snippet of code:
 *       ./configure -bindir "${EPREFIX}"/usr/bin -mandir "${EPREFIX}"/usr/share/man -sitelib ${ocamlfind_destdir} -config ${ocamlfind_destdir}/findlib/findlib.conf -no-custom ${myconf} || die "configure failed"
 * 
 * If you need support, post the output of `emerge --info '=dev-ml/findlib-1.7.1::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=dev-ml/findlib-1.7.1::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/dev-ml/findlib-1.7.1/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-ml/findlib-1.7.1/temp/environment'.
 * Working directory: '/var/tmp/portage/dev-ml/findlib-1.7.1/work/findlib-1.7.1'
 * S: '/var/tmp/portage/dev-ml/findlib-1.7.1/work/findlib-1.7.1'
Comment 3 ernsteiswuerfel archtester 2020-02-09 15:52:48 UTC
(In reply to Jannik Glückert from comment #2)
> This version breaks emerging the stable version of dev-ml/findlib . The
> stable useflag should be dropped until this is resolved - perhaps a newer
> version of findlib fixes this, I haven't tested that
Had the same issue. findlib-1.7.2 and 1.7.3 fail too but 1.8.1 builds fine again.
Comment 4 ernsteiswuerfel archtester 2020-02-09 15:59:54 UTC
Also need ocamlbuild-0.14.0 since ocaml-4.09.0 stabilization.

Building ocamlbuild-0.10.1 or ocamlbuild-0.11.0 I get:

[...]
File "src/solver.ml", line 43, characters 31-32:
43 |   if is_logging 4 then dprintf 4 "==%a> %a" pp_repeat (depth, "==") Resource.print target;
                                    ^
Error: This expression has type int but an expression was expected of type
         ('a -> 'b -> 'c -> 'd -> 'e -> 'f, Format.formatter, unit,
          Format.formatter -> unit)
         format4 =
           ('a -> 'b -> 'c -> 'd -> 'e -> 'f, Format.formatter, unit, 
            unit, unit, Format.formatter -> unit)
           CamlinternalFormatBasics.format6
make: *** [Makefile:392: src/solver.cmo] Error 2
 * ERROR: dev-ml/ocamlbuild-0.10.1::gentoo failed (compile phase):
 *   emake failed

ocamlbuild-0.14.0 builds ok.
Comment 5 Malcolm Lashley 2020-02-09 18:29:57 UTC
Also needs ppx_tools bumped for compatibility, per 704106.

cp ppx_tools-5.0.4.05.0.ebuild ppx_tools-5.3.4.08.0.ebuild

Seems to do the trick.

I was also unable to @ocaml-rebuild (at least) these with the new ocaml version.

dev-ml/parmap-1.0_rc8
dev-ml/extlib-1.7.6

I spent some time on bumps, until I got to new packages requiring dev-ml/dune to build, which is a hard-conflict with jbuilder ebuild.
Comment 6 Marat Radchenko 2020-02-09 19:54:52 UTC
This also broke stable dev-ml/camlp4:

>>> Configuring source in /var/tmp/portage/dev-ml/camlp4-4.04_p1/work/camlp4-4.04-1 ...
This version of Camlp4 is for OCaml 4.04 but you are using OCaml 4.09.0.
If building Camlp4 directly from git, use the 4.09 branch.
 * ERROR: dev-ml/camlp4-4.04_p1::gentoo failed (configure phase):
 *   (no error message)
 * 
 * Call stack:
 *     ebuild.sh, line 125:  Called src_configure
 *   environment, line 227:  Called die
 * The specific snippet of code:
 *       ./configure --bindir="${EPREFIX}/usr/bin" --libdir="$(ocamlc -where)" --pkgdir="$(ocamlc -where)" || die
Comment 7 Larry the Git Cow gentoo-dev 2020-02-09 20:44:56 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=30653374dc06b0810dbf542349cd18121a99751e

commit 30653374dc06b0810dbf542349cd18121a99751e
Author:     Miroslav Šulc <fordfrog@gentoo.org>
AuthorDate: 2020-02-09 20:44:37 +0000
Commit:     Miroslav Šulc <fordfrog@gentoo.org>
CommitDate: 2020-02-09 20:44:37 +0000

    dev-ml/findlib: 1.7* does not compile with ocaml-4.09
    
    Bug: https://bugs.gentoo.org/708696
    Package-Manager: Portage-2.3.88, Repoman-2.3.20
    Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>

 dev-ml/findlib/findlib-1.7.1.ebuild | 5 +++--
 dev-ml/findlib/findlib-1.7.2.ebuild | 5 +++--
 dev-ml/findlib/findlib-1.7.3.ebuild | 5 +++--
 3 files changed, 9 insertions(+), 6 deletions(-)
Comment 8 Larry the Git Cow gentoo-dev 2020-02-09 21:13:32 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c96cea487e4791a2e61c210a2ec036d2649377ba

commit c96cea487e4791a2e61c210a2ec036d2649377ba
Author:     Miroslav Šulc <fordfrog@gentoo.org>
AuthorDate: 2020-02-09 21:12:59 +0000
Commit:     Miroslav Šulc <fordfrog@gentoo.org>
CommitDate: 2020-02-09 21:13:20 +0000

    dev-ml/ocamlbuild: 0.10.1 and 0.11.0 don't compile with ocaml-4.09
    
    Bug: https://bugs.gentoo.org/708872
    Bug: https://bugs.gentoo.org/708696
    Package-Manager: Portage-2.3.88, Repoman-2.3.20
    Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>

 dev-ml/ocamlbuild/ocamlbuild-0.10.1.ebuild | 5 +++--
 dev-ml/ocamlbuild/ocamlbuild-0.11.0.ebuild | 5 +++--
 2 files changed, 6 insertions(+), 4 deletions(-)
Comment 9 Miroslav Šulc gentoo-dev 2020-02-09 21:33:27 UTC
ocamlbuild is not a blocker in fact but should go stable too, otherwise this version of ocaml would not be installed anyway.
Comment 10 Larry the Git Cow gentoo-dev 2020-02-09 21:36:18 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8a06926472246a298d761679a1e200b4a0721c6d

commit 8a06926472246a298d761679a1e200b4a0721c6d
Author:     Miroslav Šulc <fordfrog@gentoo.org>
AuthorDate: 2020-02-09 21:35:53 +0000
Commit:     Miroslav Šulc <fordfrog@gentoo.org>
CommitDate: 2020-02-09 21:36:11 +0000

    dev-ml/ppx_tools: doesn't compile with ocaml-4.09
    
    Bug: https://bugs.gentoo.org/708696
    Package-Manager: Portage-2.3.88, Repoman-2.3.20
    Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>

 dev-ml/ppx_tools/ppx_tools-5.0.4.03.0.ebuild | 4 ++--
 dev-ml/ppx_tools/ppx_tools-5.0.4.05.0.ebuild | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)
Comment 11 liqsquid 2020-02-09 22:14:32 UTC
I have some info about findlib.

As it fails to emerge, it says:

Welcome to findlib version 1.7.1
Configuring core...
Checking for #remove_directory...
Testing threading model...
The -vmthread switch is not supported: Your ocaml version is too old!

And if you run the command:

$ ocamlc -vmthread

You get the following message:

The -vmthread argument of ocamlc is no longer supported
since OCaml 4.09.0.  Please switch to system threads, which have the
same API. Lightweight threads with VM-level scheduling are provided by
third-party libraries such as Lwt, but with a different API.
Comment 12 Larry the Git Cow gentoo-dev 2020-02-09 22:16:56 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b84e7cc0f017d4c72cef9ad9b5157dca7ee679da

commit b84e7cc0f017d4c72cef9ad9b5157dca7ee679da
Author:     Miroslav Šulc <fordfrog@gentoo.org>
AuthorDate: 2020-02-09 22:14:52 +0000
Commit:     Miroslav Šulc <fordfrog@gentoo.org>
CommitDate: 2020-02-09 22:16:48 +0000

    dev-ml/ppx_tools: bumped to 5.3.4.08.0 + eapi7
    
    Bug: https://bugs.gentoo.org/708696
    Package-Manager: Portage-2.3.88, Repoman-2.3.20
    Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>

 dev-ml/ppx_tools/Manifest                    |  1 +
 dev-ml/ppx_tools/ppx_tools-5.3.4.08.0.ebuild | 29 ++++++++++++++++++++++++++++
 2 files changed, 30 insertions(+)
Comment 13 Larry the Git Cow gentoo-dev 2020-02-09 22:25:59 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=11354812d60bb7d3b189884f4ca9b1d41652e56c

commit 11354812d60bb7d3b189884f4ca9b1d41652e56c
Author:     Miroslav Šulc <fordfrog@gentoo.org>
AuthorDate: 2020-02-09 22:25:33 +0000
Commit:     Miroslav Šulc <fordfrog@gentoo.org>
CommitDate: 2020-02-09 22:25:33 +0000

    dev-ml/camlp4: restricted ocaml versions in deps
    
    Bug: https://bugs.gentoo.org/708696
    Package-Manager: Portage-2.3.88, Repoman-2.3.20
    Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>

 dev-ml/camlp4/camlp4-4.04_p1.ebuild | 4 ++--
 dev-ml/camlp4/camlp4-4.05_p1.ebuild | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)
Comment 14 Agostino Sarubbo gentoo-dev 2020-02-10 08:17:06 UTC
arm stable
Comment 15 Agostino Sarubbo gentoo-dev 2020-02-10 08:19:01 UTC
x86 stable
Comment 16 Agostino Sarubbo gentoo-dev 2020-02-11 11:36:44 UTC
ia64 stable
Comment 17 Agostino Sarubbo gentoo-dev 2020-02-11 11:44:22 UTC
ppc64 stable
Comment 18 Agostino Sarubbo gentoo-dev 2020-02-11 12:15:18 UTC
ppc stable
Comment 19 Sergei Trofimovich (RETIRED) gentoo-dev 2020-03-02 20:18:34 UTC
hppa stable
Comment 20 Mart Raudsepp gentoo-dev 2020-04-12 21:54:31 UTC
arm64 stable
Comment 21 Hank Leininger 2020-06-14 22:24:03 UTC
This also breaks stable dev-ml/camomile-0.8.5-r1:

ocamlc.opt -c -noassert -I internal -I public -I toolslib -I . internal/bitsvect.ml
File "internal/bitsvect.ml", line 74, characters 2-24:
74 |   v.[i0] <- Char.chr c0';
       ^^^^^^^^^^^^^^^^^^^^^^
Alert deprecated: Stdlib.String.set
Use Bytes.set instead.
File "internal/bitsvect.ml", line 74, characters 2-3:
74 |   v.[i0] <- Char.chr c0';
       ^
Error: This expression has type string but an expression was expected of type
         bytes
make: *** [Makefile:451: internal/bitsvect.cmo] Error 2
 * ERROR: dev-ml/camomile-0.8.5-r1::gentoo failed (compile phase):


Note that camomile 0.8.5 is pretty old - 2013 - but the latest release, 1.0.2 from 2019-08-08, also has an open bug wrt ocaml-4.09.0: https://github.com/yoriyuki/Camomile/issues/83

See also bug #704102, in which someone is working on camomile updates in an overlay.
Comment 22 Larry the Git Cow gentoo-dev 2020-08-14 23:23:38 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=74cf47dd94181c32254ce87aa89de3e360db6922

commit 74cf47dd94181c32254ce87aa89de3e360db6922
Author:     Hank Leininger <hlein@korelogic.com>
AuthorDate: 2020-08-02 22:21:40 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2020-08-14 23:23:32 +0000

    dev-ml/camomile: ocaml-4.09 compat fixes
    
    Existing ebuild will not build with ocaml-4.09, only with older versions
    that have an outstanding GLSA (202007-48). ocaml-4.09 is being
    stabilized now.  This commit just uses the existing workaround/fix in
    b.g.o and updates the ebuild to EAPI=7.
    
    Note that EAPI7 required modifying an existing patch so it will apply
    with -p1; should still work with the old ebuild that uses epatch.
    
    Updated to address feedback in https://github.com/gentoo/gentoo/pull/16964
    
    Signed-off-by: Hank Leininger <hlein@korelogic.com>
    Closes: https://bugs.gentoo.org/704102
    Bug: https://bugs.gentoo.org/708696
    Package-Manager: Portage-3.0.0, Repoman-2.3.23
    Closes: https://github.com/gentoo/gentoo/pull/16964
    Signed-off-by: Sam James <sam@gentoo.org>

 dev-ml/camomile/camomile-0.8.5-r2.ebuild        | 47 +++++++++++++++++++++++++
 dev-ml/camomile/files/ocaml-unsafe-string.patch | 13 +++++++
 dev-ml/camomile/files/ocaml405.patch            | 12 +++----
 3 files changed, 66 insertions(+), 6 deletions(-)

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3bfdfabacefb21ca771607bc84b295389b4468cf

commit 3bfdfabacefb21ca771607bc84b295389b4468cf
Author:     Hank Leininger <hlein@korelogic.com>
AuthorDate: 2020-08-02 22:11:07 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2020-08-14 23:23:32 +0000

    dev-ml/ocaml-gettext: ocaml-4.09 compat fixes
    
    Existing ebuild will not build with ocaml-4.09, only with older versions
    that have an outstanding GLSA (202007-48). ocaml-4.09 is being
    stabilized now.  This commit just uses the existing workaround/fix in
    b.g.o and updates the ebuild to EAPI=7.
    
    Updated to address feedback in https://github.com/gentoo/gentoo/pull/16964
    
    Signed-off-by: Hank Leininger <hlein@korelogic.com>
    Closes: https://bugs.gentoo.org/731302
    Bug: https://bugs.gentoo.org/708696
    Package-Manager: Portage-3.0.0, Repoman-2.3.23
    Signed-off-by: Sam James <sam@gentoo.org>

 .../ocaml-gettext/files/ocaml-unsafe-string.patch  | 17 +++++++
 dev-ml/ocaml-gettext/ocaml-gettext-0.3.7-r1.ebuild | 59 ++++++++++++++++++++++
 2 files changed, 76 insertions(+)
Comment 23 Sergei Trofimovich (RETIRED) gentoo-dev 2020-10-03 13:49:08 UTC
dropped ocamls keywords on sparc

Lat arch. Closing.