Deprecate Ubuntu 21.10 (@tmcgilchrist #104)
Various LCU Updates (@mtelvers #103 #98 #95 #93 #91 #89 #83)
Add IBM-Z Docker images for Ubuntu (@mtelvers #102)
Added RISCV64 (@mtelvers #100)
Ubuntu LTS and current release is 22.04 (@dra27 #97)
When compiling opam, build OCaml once using
make compileron the master
branch of opam and then share this compiler with the release branches.
Simultaneously circumvents the
sigaltstackproblems with OCaml < 4.13 on new
releases, improves the build time of opam and reduces the carbon footprint of
the base image builder! (@dra27 #85)
Only compile bubblewrap from sources if the OS either doesn't distribute it or
it's too old (@dra27 #85)
Dockerfile_distro.bubblewrap_versionto return the version of bubblewrap
package in a given release (@dra27 #85)
Change types for aliasing of distributions. The return type of
Dockerfile_distro.resolve_aliasis guaranteed not to include an alias but
may require coercing back to
Dockerfile_distro.tin some code. Similarly
affects uses of some of the Windows functions in
Move CentOS 8 to deprecated and change CentOS latest to V7! (@kit-ty-kate #88)
Add OCaml 5.00 support (@dra27 #84)
Add Alpine 3.15 (3.14 is now tier 2 and 3.13 is deprecated) (@talex5)
Switch all GitHub access from git:// to https:// in advance of insecure protocol
sunset (@kit-ty-kate #73)
Fix dependencies of dockerfile-cmd: result now correctly used (@dra27 #72)
Add Fedora 35 and make the latest (@dra27 #71)
Move Ubuntu 21.04 to deprecated (@dra27 #71)
Add Ubuntu 22.04 (@dra27 #71)
Add Alpine 3.14 and Ubuntu 21.10 (@avsm)
Move Fedora 33 and OpenSUSE 15.2 to deprecated and Alpine 3.13 to Tier 2. (@avsm)
Latest Fedora is now Fedora 34 (@avsm)
Asssume Windows x64 is an active distro even when it doesn't have the latest
release (@dra27 #66; #68)
Latest base distro is now Debian 11 (from Debian 10) (@kit-ty-kate #59)
Ensure stray double-quotes don't end up in PATH on Windows images (@dra27 #62)
Stop pinning binutils to 2.35 in Windows builds as that no longer works with
GCC 11. (@dra27 #61)
Introduce Windows 10 LTSC 2022 and Windows Server image (@MisterDA #63)
Dockerfile_distro.win10_base_tagto get the Windows container base
image and tags. (@MisterDA #63)
v7.2.0 2021-07-28 Cambridge
Add support for S390x architecture builds for Debian (@avsm)
Add OpenSUSE 15.3 (#53 @avsm)
Improve support for Windows 10 (#50 @MisterDA review by @dra27)
Alpine 3.12 and Ubuntu 20.10 to deprecated, add Fedora 34 and Ubuntu 21.04 (@avsm)
Deprecate Ubuntu 16.04 as it is now EOL (@kit-ty-kate #44)
libexecinfo-devto Alpine dev packages as it is used
by multicore OCaml (@avsm)
retrieve cygsympathy script from upstream master (@dra27)
Fixes to the Windows images, smaller images, fix bugs
Introduce a Cygwin image, and move Windows Mingw and Windows Msvc at
the distro level. (@MisterDA #42)
Add edge and edgecommunity repositories to the Alpine image (@EwanMellor #48)
Add support for Windows 10 Latest Cumulative Update docker image tags (@dra27 #56)
v7.1.0 2021-02-25 Cambridge
Add ArchLinux support (@kit-ty-kate #23)
Move Alpine 3.11 to deprecated (@kit-ty-kate #23).
Add OracleLinux v8 (@kit-ty-kate #24)
Add Ubuntu 20.10 and Fedora 33 (@avsm)
Make Alpine 3.13 and Fedora 33 the latest versions.
Update the latest versions of Ubuntu LTS to 20.04
and CentOS to 8 and OracleLinux to 8 (@avsm)
Activate Powertools for CentOS 8 (@kit-ty-kate #26)
Build aarch64 images for Fedora 33 and higher as well (@avsm).
Remove outdated bulk-build and archive functions from
Create a Tier 3 for distros for things we do not want
to test in the opam repository (@avsm @kit-ty-kate)
Add support for parser directives (@MisterDA)
Add Windows support (@MisterDA)
v7.0.0 2020-08-14 Cambridge
Do not install
opam-installerin images any more. This turns
out to be a largely optional component as the opam binary
installer doesn't include it either. It will be made optional
in the final opam 2.1 release. (@avsm)
Build multiple versions of opam in the base images. This results
opam-2.1binary being installed, with
a hardlink to
opam <- opam.2.0so the defaults are unchanged.
This allows upstream CI images to switch the hardlink to make
it easier to test newer releases of opam, and also upgrades.
v6.6.1 2020-07-25 Cambridge
Ensure debconf remains non-interactive (@avsm)
Do not build ppc64le on Debian:9 as upstream has stopped
providing images. Debian 10 ppc64le remains unchanged. (@avsm).
v6.6.0 2020-07-21 Cambridge
Deprecate Ubuntu 19.10 (@talex5 #21)
Add OpenSUSE 15.2 Leap (@avsm)
Build Ubuntu ppc64le (@talex5 #21)
Upgrade build files to dune 2.0 (@avsm)
v6.5.0 2020-06-29 Lockdown At Home
Add Fedora 32, Alpine 3.12 to the known distros (@avsm)
Move Fedora 30 to deprecated, and Alpine 3.11 to Tier 2 (@avsm)
Add i386 architecture build support (@avsm).
Add a [Dockerfile.from ?platform] argument to specify multiarch
image sources (@avsm)
Add [Dockerfile.shell] to specify a custom shell to subsequent
[run] commands (@avsm).
Upgrade bubblewrap in containers to latest 0.4.1 (@avsm)
Make the curl step fail if the download fails in bubblewrap
installation (@talex5 #20)
Switch aarch32 builds to use a Linux32 personality, so they
can be built on 64-bit aarm64 hosts. (@avsm)
v6.4.0 2020-04-16 Lockdown At Home
Permute the order of Yum groupinstall/install to workaround
a build issue in CentOS 8 under OverlayFS/Docker. (@avsm)
Do not install
yum-ovl-pluginworkaround on CentOS 8. (@avsm)
Add Fedora 31 and Ubuntu 19.10 (@XVilka @talex5)
Add Alpine 3.11 and Ubuntu 20.04 (@avsm)
Remove Ubuntu 19.04 from the supported distro list (@avsm).
clone_opam_repooptional argument to
to let the caller decide whether or not to have the git clone
present in the container (@avsm @talex5).
v6.3.0 2019-08-11 Cambridge
functions (#12 @talex5)
add beta repository for switches if there is a dev release
in any of the compilers for that switch (@avsm).
Demote Debian 9 to a Tier 2 now that Debian 10 is stable (@avsm).
opamgroup on all Linux distributions (#11 @talex5)
v6.2.0 2019-06-25 Cambridge
Add Fedora 30, Debian 10 (Buster), OpenSUSE 15.1 (Leap) and
Alpine 3.10 to the distribution list (@avsm)
Ensure Alpine 3.9 has an arm64 build (@avsm)
Deprecate Ubuntu 14.04, Fedora 27/28 and Alpine 3.8 in favour of
newer upstream versions (@avsm)
v6.1.1 2019-04-24 Cambridge
Add support for Ubuntu 19.04 (Disco). (@avsm)
Upgrade opam metadata to 2.0 format. (@avsm)
v6.1.0 2019-02-06 Cambridge
Add support for Fedora 29 and OpenSUSE Leap 15.0 and Alpine 3.9.
Demote some releases to Tier 2 from Tier 1.
Add functions to calculate base distro tags in
Install bzip2 and rsync on OpenSUSE distros.
Dockerfile_opam.deprecatedcontainer for being able to turn off older distros.
whichinto OpenSUSE containers by default.
+trunksuffix for dev versions of compiler.
Remove unused GNU Parallel wrapper in
v6.0.0 2018-11-15 Cambridge
This release focuses on the opam 2.0 release and the resulting
containers built on ocaml/opam2 on the Docker Hub.
OPAMYESvariable to true by default in ocaml
containers so they remain non-interactive.
install rsync in RPM distros
Install opam-depext in the containers by default
fix opam2 alpine and centos installation by installing openssl
add a dependency on
add support for Aarch32 in distros
install coreutils in Alpine since OCaml 4.08 needs GNU stat to compile
add support for Ubuntu 18.10 and Alpine 3.8 releases.
add xz to Alpine and Zypper distributions.
install_opam_from_sourcerequires an explicit branch rather
than defaulting to master.
update version of Bubblewrap in containers to 0.3.1.
port build system from Jbuilder to Dune.
v5.1.0 2018-06-15 Cambridge
Remove unnecessary cmdliner dep in dockerfile-opam
Support Tier2 distros in bulk builds
v5.0.0 2018-06-07 Cambridge
Install the Bubblewrap sandboxing tool in all distributions and
remove the older wrappers for opam2 namespace usage.
Ensure that X11 is available in the containers so that the
OCaml Graphics module is available (#8 via @kit-ty-kate)
Add concept of a "Tier 1" and "Tier 2" distro so that we can
categorise them more easily for container generation.
Add support for Alpine 3.7 and Ubuntu 18.04 and Fedora 28.
Update Ubuntu LTS to 18.04.
Deprecate Ubuntu 17.10 and 12.04 (now end-of-life).
Alter the individual compiler containers to omit the patch version
from the name. They will always have the latest patch version for CI.
Allow distro selection to be filtered by OCaml version and architecture.
This allows combinations like Ubuntu 18.04 (which breaks on earlier
versions of OCaml due to the shift to PIE) to be expressed.
Add missing OpenSUSE to the latest distros list.
Add Ppc64le architecture.
v4.0.0 2017-12-25 Cambridge
Major API iteration to:
switch to multistage container builds for smaller containers
instead of separate
opamcontainers, just generate
opamone which can optionally have the system compiler
or a locally compiled one.
explicitly support aliases for distributions, and allow older
distributions to be marked as deprecated.
Update OPAM 2 build mechanism to use
Drop support for opam1 containers; use an older library version for those.
Also mark OCaml 4.05.0 and 4.06.0 as a mainline release for opam2 as well.
v3.1.0 2017-07-14 Cambridge
Mark OCaml 4.05.0 as a released stable version.
Remove the Alpine 3.5 camlp4 hack as it has been fixed in a
point release upstream.
Add minimum constraint on sexplib in build rules (#6 reported by @smondet)
Add support for Alpine 3.6 and Debian 10 (Buster).
Bump the most recent Debian Stable to Debian 9.
Bump the most recent Alpine to Alpine 3.6.
Add OCaml 4.04.2 as the most recent compiler
v3.0.0 2017-06-14 Cambridge
Add support for multistage builds
There are also backwards incompatible changes to the package layout:
Split up OPAM packages into
The latter contains the OPAM- and Linux-specific modules, with
the core DSL in
Port to jbuilder.
v2.2.3 2017-05-01 Cambridge
Add OCaml 4.04.1 to the stable released set.
Add Ubuntu 17.04 and Fedora 25 to the distribution list.
Setup OPAM2 wrappers in containers. This will enforce Linux
namespaces upon building and installing the packages, preventing
them from doing network access when they shouldn't or writing files
where they shouldn't (#1 from @AltGr). These are not activated
by default and are present in
/etc/opamrc.usernsin the relevant
v2.2.2 2017-03-22 Cambridge
Register 4.06.0 as a trunk compiler revision.
Correctly install aspcud in all Alpine 3.5 containers.
v2.2.1 2017-02-22 Cambridge
Bump latest stable OCaml to 4.04.0.
Add OCaml 4.06.0dev into the build matrix.
Support latest OPAM 2.0beta release.
Bump the "latest" distro tags to Alpine 3.5 and OpenSUSE 42.2.
v2.2.0 2017-01-12 Cambridge
Remove support for ARM variants from the default distribution
list. They will come back as explicitly supported multiarch
targets, instead of the current qemu builds that are mixed up
with x86_64 targets.
Always install OPAM from source on Alpine until upstreaming
Register 4.04 as a mainline compiler as well (fixes OPAM2).
Add support for Alpine 3.5 and OpenSUSE 42.2, and promote
the Alpine:latest images to Alpine 3.5.
Do not install camlp4 by default in distributions.
aspcudremote proxy with url-escaping fixes
(via @OCamlPro-Henry in ocaml/opam#2809)
Add Ubuntu 16.10 to the built-distros list.
v2.1.0 2016-11-07 Cambridge
Update for OCaml 4.04 release. Now the "latest version"
of the compiler is 4.03.0 since many packages do not yet
compile for 4.04.
Do not install
camlp4in the base OPAM switch by default,
as the dependencies in upstream OPAM work well enough to
pull it in on-demand.
v2.0.0 2016-11-04 Cambridge
Dockerfile.Linuxto a separate
module, in preparation for
Avoid using ppx annotations for sexp in the interface
files, since this breaks ocamldoc.
Dockerfile.ppfor Format-style output.
Port to build using topkg and remove _oasis.
xzinto base Fedora and other RPM distros.
Linux.RPM.updateto force a Yum update.
opensslas a dependency for OPAM2.
Support OPAM 2 better with explicit compiler selection.
Correctly install ocamldoc in system OpenSUSE container.
Multiarch: Add Alpine 3.4 and Alpine/ARMHF 3.4 and
deprecate Raspbian 7.
Add OpenSUSE/Zypper support and add OpenSUSE 42.1 to the
default distro build list.
Add Ubuntu 16.10 to the distro list, and remove Ubuntu 15.10
from default build list now that 16.10 LTS is available.
Add Fedora 24 and make it the alias for Fedora stable. Also
redhat-rpm-configwhich is needed for pthreads.
extraarg the Dockerfile_distro matrix targets to
add more distros to the mix, such as Raspbian.
Support multiple OPAM versions in the matrix generation,
to make testing OPAM master easier.
Always do an
rpm --rebuilddbbefore a Yum invocation to
deal with possible OverlayFS brokenness.
opam_versionto distro calls to build and install
the latest version of OPAM2-dev.
xzinto Alpine containers so that untar of those works.
Expose the development versions of OCaml compilers.
Add a more modern Git in CentOS 6 to make it work with OPAM
Add released OCaml 4.03.0 into the compiler list, and break up
the exposed variables into a more manageable set of
centos-release-xenremote into CentOS6/7 by default
so that depexts for
Dockerfile_distro.generate_dockerfilesgoes into the current
directory instead with each Dockerfile suffixed with the release
name. There is a new
for the old behaviour.
Move slow ARM distribution out of the default distro list into
to make it easier to customise version of packages installed.
Rearrange OCaml installation commands to be in
Dockerfile_opam(which is now purely OPAM installation).
~/.sshfolder with the right permissions in all distros.
Ensure rsync is installed in all the Debian-based containers.
Correctly label the ARMv7 containers with the
Use ppx to build instead of camlp4. Now depends on OCaml 4.02+.
apk updatefrom Alpine definition.
Switch default cloud solver to one dedicated to these images so
they can updated in sync (the default cloud one is getting hit
by many bulk build hits in parallel and cannot cope with the load).
nanoto images to satisfy
opam pingoing interactive.
Add ARMv7hf Raspbian distro (Wheezy and Jessie).
dev-repometadata to OPAM file.
Add support for installing the cloud solver for platforms where aspcud is not available.
Add CMD entrypoints for containers.
bashin container (requested by @justincormack)
Debian: correct non-interactive typos and add
onbuildtriggers from OPAM containers as it inhibits caching (suggestion via @talex5)
Include specific Debian versions (v7,8,9) in addition to the stable/unstable streams.
Dockerfile.crunchto reduce the number of layers by combining
Add support for Ubuntu 12.04 LTS and also bleeding edge 16.04.
Add sexplib convertors for
Dockerfile_distromodule to handle supported online distributions.
Dockerfile.labelto support Docker 1.6 metadata labels.
generate_dockerfiles_in_git_branchesto make it easier
to use Docker Hub dynamic branch support to build all permutations.
Correctly escape the
JSON arrays so that the strings are quoted.
yum cleanafter a Yum installation.
Add support for Alpine Linux.
Cleanup OPAM build directory to save container space after building from source.
Remove support for OpenSUSE remotes, as it is no longer maintained.
v1.1.1 2015-03-11 Cambridge
v1.1.0 2015-01-24 Cambridge
specific rules for managing OPAM installations with Dockerfiles.
v1.0.0 2014-12-30 Cambridge
Initial public release.