@@ -110,39 +110,43 @@ let header ?win10_revision ?arch ?maintainer ?img ?tag d =
110110 @@ shell
111111
112112(* Apk based Dockerfile *)
113- let apk_opam2 ?(labels =[] ) ?arch ~hash_opam_2_0 ~hash_opam_2_1 distro () =
113+ let apk_opam2 ?(labels =[] ) ?arch ~hash_opam_2_0 ~hash_opam_2_1 ~ hash_opam_master distro () =
114114 let img, tag = D. base_distro_tag ?arch distro in
115115 header ?arch distro @@ label ((" distro_style" , " apk" ) :: labels)
116116 @@ Linux.Apk. install " build-base bzip2 git tar curl ca-certificates openssl"
117117 @@ Linux.Git. init ()
118118 @@ install_opam_from_source ~add_default_link: false ~branch: " 2.0" ~hash: hash_opam_2_0 ()
119119 @@ install_opam_from_source ~add_default_link: false ~enable_0install_solver: true ~branch: " 2.1" ~hash: hash_opam_2_1 ()
120+ @@ install_opam_from_source ~add_default_link: false ~enable_0install_solver: true ~branch: " master" ~hash: hash_opam_master ()
120121 @@ run " strip /usr/local/bin/opam*"
121122 @@ from ~tag img
122123 @@ Linux.Apk. add_repository ~tag: " edge" " https://dl-cdn.alpinelinux.org/alpine/edge/main"
123124 @@ Linux.Apk. add_repository ~tag: " edgecommunity" " https://dl-cdn.alpinelinux.org/alpine/edge/community"
124125 @@ Linux.Apk. add_repository ~tag: " testing" " https://dl-cdn.alpinelinux.org/alpine/edge/testing"
125126 @@ copy ~from: " 0" ~src: [" /usr/local/bin/opam-2.0" ] ~dst: " /usr/bin/opam-2.0" ()
126127 @@ copy ~from: " 0" ~src: [" /usr/local/bin/opam-2.1" ] ~dst: " /usr/bin/opam-2.1" ()
128+ @@ copy ~from: " 0" ~src: [" /usr/local/bin/opam-master" ] ~dst: " /usr/bin/opam-dev" ()
127129 @@ run " ln /usr/bin/opam-2.0 /usr/bin/opam"
128130 @@ Linux.Apk. dev_packages ()
129131 @@ Linux.Apk. add_user ~uid: 1000 ~gid: 1000 ~sudo: true " opam"
130132 @@ install_bubblewrap_wrappers @@ Linux.Git. init ()
131133
132134
133135(* Debian based Dockerfile *)
134- let apt_opam2 ?(labels =[] ) ?arch distro ~hash_opam_2_0 ~hash_opam_2_1 () =
136+ let apt_opam2 ?(labels =[] ) ?arch distro ~hash_opam_2_0 ~hash_opam_2_1 ~ hash_opam_master () =
135137 let img, tag = D. base_distro_tag ?arch distro in
136138 header ?arch distro @@ label ((" distro_style" , " apt" ) :: labels)
137139 @@ Linux.Apt. install " build-essential curl git libcap-dev sudo"
138140 @@ Linux.Git. init ()
139141 @@ install_bubblewrap_from_source ()
140142 @@ install_opam_from_source ~add_default_link: false ~branch: " 2.0" ~hash: hash_opam_2_0 ()
141143 @@ install_opam_from_source ~add_default_link: false ~enable_0install_solver: true ~branch: " 2.1" ~hash: hash_opam_2_1 ()
144+ @@ install_opam_from_source ~add_default_link: false ~enable_0install_solver: true ~branch: " master" ~hash: hash_opam_master ()
142145 @@ from ~tag img
143146 @@ copy ~from: " 0" ~src: [" /usr/local/bin/bwrap" ] ~dst: " /usr/bin/bwrap" ()
144147 @@ copy ~from: " 0" ~src: [" /usr/local/bin/opam-2.0" ] ~dst: " /usr/bin/opam-2.0" ()
145148 @@ copy ~from: " 0" ~src: [" /usr/local/bin/opam-2.1" ] ~dst: " /usr/bin/opam-2.1" ()
149+ @@ copy ~from: " 0" ~src: [" /usr/local/bin/opam-master" ] ~dst: " /usr/bin/opam-dev" ()
146150 @@ run " ln /usr/bin/opam-2.0 /usr/bin/opam"
147151 @@ run " ln -fs /usr/share/zoneinfo/Europe/London /etc/localtime"
148152 @@ Linux.Apt. dev_packages ()
@@ -158,7 +162,7 @@ let apt_opam2 ?(labels=[]) ?arch distro ~hash_opam_2_0 ~hash_opam_2_1 () =
158162
159163 [enable_powertools] enables the PowerTools repository on CentOS 8 and above.
160164 This is needed to get most of *-devel packages frequently used by opam packages. *)
161- let yum_opam2 ?(labels = [] ) ?arch ~yum_workaround ~enable_powertools ~hash_opam_2_0 ~hash_opam_2_1 distro () =
165+ let yum_opam2 ?(labels = [] ) ?arch ~yum_workaround ~enable_powertools ~hash_opam_2_0 ~hash_opam_2_1 ~ hash_opam_master distro () =
162166 let img, tag = D. base_distro_tag ?arch distro in
163167 let workaround =
164168 if yum_workaround then
@@ -175,6 +179,7 @@ let yum_opam2 ?(labels= []) ?arch ~yum_workaround ~enable_powertools ~hash_opam_
175179 @@ install_bubblewrap_from_source ()
176180 @@ install_opam_from_source ~prefix: " /usr" ~add_default_link: false ~branch: " 2.0" ~hash: hash_opam_2_0 ()
177181 @@ install_opam_from_source ~prefix: " /usr" ~add_default_link: false ~enable_0install_solver: true ~branch: " 2.1" ~hash: hash_opam_2_1 ()
182+ @@ install_opam_from_source ~prefix: " /usr" ~add_default_link: false ~enable_0install_solver: true ~branch: " master" ~hash: hash_opam_master ()
178183 @@ from ~tag img
179184 @@ run " yum --version || dnf install -y yum"
180185 @@ workaround
@@ -184,6 +189,7 @@ let yum_opam2 ?(labels= []) ?arch ~yum_workaround ~enable_powertools ~hash_opam_
184189 @@ copy ~from: " 0" ~src: [" /usr/local/bin/bwrap" ] ~dst: " /usr/bin/bwrap" ()
185190 @@ copy ~from: " 0" ~src: [" /usr/bin/opam-2.0" ] ~dst: " /usr/bin/opam-2.0" ()
186191 @@ copy ~from: " 0" ~src: [" /usr/bin/opam-2.1" ] ~dst: " /usr/bin/opam-2.1" ()
192+ @@ copy ~from: " 0" ~src: [" /usr/bin/opam-master" ] ~dst: " /usr/bin/opam-dev" ()
187193 @@ run " ln /usr/bin/opam-2.0 /usr/bin/opam"
188194 @@ run
189195 " sed -i.bak '/LC_TIME LC_ALL LANGUAGE/aDefaults env_keep += \" OPAMYES OPAMJOBS OPAMVERBOSE\" ' /etc/sudoers"
@@ -192,42 +198,46 @@ let yum_opam2 ?(labels= []) ?arch ~yum_workaround ~enable_powertools ~hash_opam_
192198
193199
194200(* Zypper based Dockerfile *)
195- let zypper_opam2 ?(labels =[] ) ?arch ~hash_opam_2_0 ~hash_opam_2_1 distro () =
201+ let zypper_opam2 ?(labels =[] ) ?arch ~hash_opam_2_0 ~hash_opam_2_1 ~ hash_opam_master distro () =
196202 let img, tag = D. base_distro_tag ?arch distro in
197203 header ?arch distro @@ label ((" distro_style" , " zypper" ) :: labels)
198204 @@ Linux.Zypper. dev_packages ()
199205 @@ Linux.Git. init ()
200206 @@ install_bubblewrap_from_source ()
201207 @@ install_opam_from_source ~prefix: " /usr" ~add_default_link: false ~branch: " 2.0" ~hash: hash_opam_2_0 ()
202208 @@ install_opam_from_source ~prefix: " /usr" ~add_default_link: false ~enable_0install_solver: true ~branch: " 2.1" ~hash: hash_opam_2_1 ()
209+ @@ install_opam_from_source ~prefix: " /usr" ~add_default_link: false ~enable_0install_solver: true ~branch: " master" ~hash: hash_opam_master ()
203210 @@ from ~tag img
204211 @@ Linux.Zypper. dev_packages ()
205212 @@ copy ~from: " 0" ~src: [" /usr/local/bin/bwrap" ] ~dst: " /usr/bin/bwrap" ()
206213 @@ copy ~from: " 0" ~src: [" /usr/bin/opam-2.0" ] ~dst: " /usr/bin/opam-2.0" ()
207214 @@ copy ~from: " 0" ~src: [" /usr/bin/opam-2.1" ] ~dst: " /usr/bin/opam-2.1" ()
215+ @@ copy ~from: " 0" ~src: [" /usr/bin/opam-master" ] ~dst: " /usr/bin/opam-dev" ()
208216 @@ run " ln /usr/bin/opam-2.0 /usr/bin/opam"
209217 @@ Linux.Zypper. add_user ~uid: 1000 ~sudo: true " opam"
210218 @@ install_bubblewrap_wrappers @@ Linux.Git. init ()
211219
212220(* Pacman based Dockerfile *)
213- let pacman_opam2 ?(labels =[] ) ?arch ~hash_opam_2_0 ~hash_opam_2_1 distro () =
221+ let pacman_opam2 ?(labels =[] ) ?arch ~hash_opam_2_0 ~hash_opam_2_1 ~ hash_opam_master distro () =
214222 let img, tag = D. base_distro_tag ?arch distro in
215223 header ?arch distro @@ label ((" distro_style" , " pacman" ) :: labels)
216224 @@ Linux.Pacman. dev_packages ()
217225 @@ Linux.Git. init ()
218226 @@ install_opam_from_source ~add_default_link: false ~branch: " 2.0" ~hash: hash_opam_2_0 ()
219227 @@ install_opam_from_source ~add_default_link: false ~enable_0install_solver: true ~branch: " 2.1" ~hash: hash_opam_2_1 ()
228+ @@ install_opam_from_source ~add_default_link: false ~enable_0install_solver: true ~branch: " master" ~hash: hash_opam_master ()
220229 @@ run " strip /usr/local/bin/opam*"
221230 @@ from ~tag img
222231 @@ copy ~from: " 0" ~src: [" /usr/local/bin/opam-2.0" ] ~dst: " /usr/bin/opam-2.0" ()
223232 @@ copy ~from: " 0" ~src: [" /usr/local/bin/opam-2.1" ] ~dst: " /usr/bin/opam-2.1" ()
233+ @@ copy ~from: " 0" ~src: [" /usr/local/bin/opam-master" ] ~dst: " /usr/bin/opam-dev" ()
224234 @@ run " ln /usr/bin/opam-2.0 /usr/bin/opam"
225235 @@ Linux.Pacman. dev_packages ()
226236 @@ Linux.Pacman. add_user ~uid: 1000 ~sudo: true " opam"
227237 @@ install_bubblewrap_wrappers @@ Linux.Git. init ()
228238
229239(* Cygwin based Dockerfile *)
230- let cygwin_opam2 ?win10_revision ?(labels =[] ) ?arch ~hash_opam_2_0 ~hash_opam_2_1 distro () =
240+ let cygwin_opam2 ?win10_revision ?(labels =[] ) ?arch ~hash_opam_2_0 ~hash_opam_2_1 ~ hash_opam_master distro () =
231241 let img, tag = D. base_distro_tag ?arch distro in
232242 let cyg = Windows.Cygwin. { default with args = " --allow-test-packages" :: default.args } in
233243 header ?win10_revision ?arch distro @@ label ((" distro_style" , " cygwin" ) :: labels)
@@ -236,10 +246,12 @@ let cygwin_opam2 ?win10_revision ?(labels=[]) ?arch ~hash_opam_2_0 ~hash_opam_2_
236246 @@ Windows.Cygwin.Git. init ()
237247 @@ install_opam_from_source_cygwin ~add_default_link: false ~branch: " 2.0" ~hash: hash_opam_2_0 ()
238248 @@ install_opam_from_source_cygwin ~add_default_link: false ~enable_0install_solver: true ~branch: " 2.1" ~hash: hash_opam_2_1 ()
249+ @@ install_opam_from_source_cygwin ~add_default_link: false ~enable_0install_solver: true ~branch: " master" ~hash: hash_opam_master ()
239250 @@ run " strip /usr/local/bin/opam*"
240251 @@ from ~tag img
241252 @@ copy ~from: " 0" ~src: [" /usr/local/bin/opam-2.0" ] ~dst: " /usr/bin/opam-2.0" ()
242253 @@ copy ~from: " 0" ~src: [" /usr/local/bin/opam-2.1" ] ~dst: " /usr/bin/opam-2.1" ()
254+ @@ copy ~from: " 0" ~src: [" /usr/local/bin/opam-master" ] ~dst: " /usr/bin/opam-dev" ()
243255 @@ run " ln /usr/bin/opam-2.0 /usr/bin/opam"
244256 @@ Windows.Cygwin. (setup ~cyg ~extra: (cygwin_packages () ) () )
245257 @@ Windows.Cygwin.Git. init ()
@@ -278,17 +290,17 @@ let windows_opam2 ?win10_revision ?winget ?(labels=[]) ?arch distro () =
278290 @@ Windows.Cygwin.Git. init ()
279291 @@ Windows. cleanup ()
280292
281- let gen_opam2_distro ?win10_revision ?winget ?(clone_opam_repo =true ) ?arch ?labels ~hash_opam_2_0 ~hash_opam_2_1 d =
293+ let gen_opam2_distro ?win10_revision ?winget ?(clone_opam_repo =true ) ?arch ?labels ~hash_opam_2_0 ~hash_opam_2_1 ~ hash_opam_master d =
282294 let fn = match D. package_manager d with
283- | `Apk -> apk_opam2 ?labels ?arch ~hash_opam_2_0 ~hash_opam_2_1 d ()
284- | `Apt -> apt_opam2 ?labels ?arch ~hash_opam_2_0 ~hash_opam_2_1 d ()
295+ | `Apk -> apk_opam2 ?labels ?arch ~hash_opam_2_0 ~hash_opam_2_1 ~hash_opam_master d ()
296+ | `Apt -> apt_opam2 ?labels ?arch ~hash_opam_2_0 ~hash_opam_2_1 ~hash_opam_master d ()
285297 | `Yum ->
286298 let yum_workaround = match d with `CentOS `V7 -> true | _ -> false in
287299 let enable_powertools = match d with `CentOS (`V6 | `V7 ) -> false | `CentOS _ -> true | _ -> false in
288- yum_opam2 ?labels ?arch ~yum_workaround ~enable_powertools ~hash_opam_2_0 ~hash_opam_2_1 d ()
289- | `Zypper -> zypper_opam2 ?labels ?arch ~hash_opam_2_0 ~hash_opam_2_1 d ()
290- | `Pacman -> pacman_opam2 ?labels ?arch ~hash_opam_2_0 ~hash_opam_2_1 d ()
291- | `Cygwin -> cygwin_opam2 ?win10_revision ?labels ?arch ~hash_opam_2_0 ~hash_opam_2_1 d ()
300+ yum_opam2 ?labels ?arch ~yum_workaround ~enable_powertools ~hash_opam_2_0 ~hash_opam_2_1 ~hash_opam_master d ()
301+ | `Zypper -> zypper_opam2 ?labels ?arch ~hash_opam_2_0 ~hash_opam_2_1 ~hash_opam_master d ()
302+ | `Pacman -> pacman_opam2 ?labels ?arch ~hash_opam_2_0 ~hash_opam_2_1 ~hash_opam_master d ()
303+ | `Cygwin -> cygwin_opam2 ?win10_revision ?labels ?arch ~hash_opam_2_0 ~hash_opam_2_1 ~hash_opam_master d ()
292304 | `Windows -> windows_opam2 ?win10_revision ?winget ?labels ?arch d ()
293305 in
294306 let clone = if clone_opam_repo then
0 commit comments