Job orb
README
Skip to buildsorb: check opam package reproducibility
This tool can check if an opam package build is reproductible (cf. https://reproducible-builds.org). It has two subcommands: build and rebuild.
The orb build conducts a build of an opam package, and collects the build result (and hashes thereof) and the build input (or build info), consisting of:
- build-environment (the environment variables plus OS/OS_DISTRIBUTION/OS_FAMILY/OS_VERSION/ORB_VERSION)
- system-packages (the installed packages on the system)
- opam-switch (opam switch export --full --freeze - a textual representation containing all installed opam packages)
- *.build-hashes with maps of installed files to their hashes
The orb rebuild takes this data as input and conducts a second build with the same environment, and compares that the hashes of the produced binaries are identical.
The orb build also has a command-line flag "--twice" to conduct a build and a rebuild directly afterwards. For debugging reproducibility, the "--keep-build-dir" option is provided that allows to compare intermediate build products as well.
Please have a look at "--out", "--switch-name", "--solver-timeout", "--date", and other command line parameters.
It is currently used as a payload of builder-worker to run the reproducible MirageOS unikernels infrastructure.
Binary packages for different platforms (Debian, Ubuntu, FreeBSD) are available at https://builds.robur.coop
Install & use
$ opam pin git+https://github.com/robur-coop/orb#next
$ orb build --twice --repos=default:https://opam.ocaml.org cmdliner
Simple (and fast) failing and successful reproducible opam packages are in the reproducible-testing-repo.
History
The initial development was done by Raja Boujbel (working at OCamlPro) in spring 2019 at the MirageOS retreat in Marrakesh. Another iteration was done in December 2019 by Hannes Mehnert at the reproducible builds summit. In 2020 and 2021, Reynir Björnsson contributed together with Hannes Mehnert more adjustments to use orb on FreeBSD and Debian for conducting reproducible builds of MirageOS unikernels. In 2022, the robur team contributed work to use orb with MirageOS 4, which uses opam-monorepo.
Builds
Back to readme- ☑ freebsd-14 2024-11-21 01:02:24Z orb.pkg
SHA256:1c6e0eebcac42ba5db999b5cf71d6a4bb7d8c3d7bd8848fa48b7cda99ce18afc
(3.92MB) - ☑ freebsd-13 2024-11-20 19:55:19Z orb.pkg
SHA256:6970903753f8b9160a52e9f4787f9462cb9e18973ccad9ba9848d202b65e69d7
(3.92MB) - ☑ debian-11 2024-11-20 18:49:35Z orb.deb
SHA256:6b1deb12a06c0d7995ec80e400d72f10c47e5ba796d6c587f81326bc8247ed2c
(4.58MB) - ☑ debian-12 2024-11-20 18:49:30Z orb.deb
SHA256:1c36155e6afa81a8a31505a5aba4465a566cbbba4eb04e3c9ab1ea7a0bc0a971
(4.7MB) - ☑ debian-11 2024-11-14 14:21:33Z orb.deb
SHA256:76c87a064fe8b1a38f8981cfa1299eb345b4db4d435a39bb2b686f0d419beb6b
(4.56MB) - ☑ debian-12 2024-11-14 14:21:11Z orb.deb
SHA256:1279f17089df43515f9705e82fdbad5742ca5467ad01bfffd88159de41be1e75
(4.69MB) - ☑ freebsd-14 2024-11-14 00:34:26Z orb.pkg
SHA256:a3d486b8987eb1723a616660b5f7ea876f9630188b5e0836cf26d8587adb66e3
(3.91MB) - ☑ freebsd-13 2024-11-13 20:51:55Z orb.pkg
SHA256:dfe0af87784f803633a030327a01ff601c3599e42b4d41571bdd62e380b72838
(3.91MB) - ☑ freebsd-13 2024-09-18 16:36:23Z orb.pkg
SHA256:ad7f81914be0661d93269f005919f03a9c394ba858eb7fccd8a04d6d2cf4c794
(3.91MB) - ☑ freebsd-14 2024-09-18 14:49:40Z orb.pkg
SHA256:aa92865ee68c298487c53aa9620ea7704ce4f07a7846083bfe0cba1c8949d77e
(3.91MB) - ☑ debian-11 2024-09-18 14:21:13Z orb.deb
SHA256:24d1c6dfe8a6624563548766e2ff12f66c15d3b1e7740df9aee09d07cf7fddcd
(4.56MB) - ☑ debian-12 2024-09-18 14:20:40Z orb.deb
SHA256:99c708d5f28704f8decc042dcf6dc29049b0726ba0495843b761f5fa3c5d4599
(4.69MB) - ☑ freebsd-13 2024-09-13 16:31:53Z orb.pkg
SHA256:1585404a6032a8237333439743d8acaa64cb70f3fb9c4811fd4e2eeb7cf0703a
(3.91MB) - ☑ freebsd-13 2024-09-13 16:18:17Z orb.bin
SHA256:47db4ebbafcffb9029199319a19e8fd1a24b10b3a68f196eb7a4da2afac765af
(3.91MB) - ☑ freebsd-14 2024-09-13 14:50:21Z orb.pkg
SHA256:9fff4d48381d72ee5a6ed5895ea8bbf7f5a86c3a5da3933ce7f5e8e2854bfecc
(3.91MB) - ☑ debian-11 2024-09-13 14:22:35Z orb.deb
SHA256:4944940406a2c974d25874107b18e9355efa7b58a8e4abd2063f7a5ab07faa0b
(4.56MB) - ☑ debian-12 2024-09-13 14:22:00Z orb.deb
SHA256:4ad9924eb2dea2c58c946a9f93f2773f43559ffdb070f4bc2f7a7c9b84e6c0a3
(4.69MB) - ☑ freebsd-14 2024-09-03 14:35:34Z orb.pkg
SHA256:a29aa0494b42429178104d865db182fa9b3c92f86692d69f1a18a10112318d23
(3.9MB) - ☑ debian-11 2024-09-03 14:20:30Z orb.deb
SHA256:dace3db108ea8e5a9163901ed9f8ef825d161c624b9cfb1f525c8ee61e328b48
(4.55MB) - ☑ debian-12 2024-09-03 14:19:55Z orb.deb
SHA256:91901fe735ca53605989af54dcab3996709c150332ba98eee1c6348e6b3ff1a6
(4.67MB) - ☑ freebsd-14 2024-08-26 14:28:05Z orb.pkg
SHA256:2d87c30b9c2e879aebf80675ebc59e6f20c5ea38dc96b20bda4a1240921a177a
(3.57MB) - ☑ debian-11 2024-08-26 14:23:24Z orb.deb
SHA256:ae4c8409882897c255963b7d4030ac6d1b951b431648eef20faf49fce77c6123
(4.15MB) - ☑ debian-12 2024-08-26 14:22:51Z orb.deb
SHA256:ec5a7c05283230b278c8e1fb3904499518f5d44316ed41a049e12cdce96041df
(4.26MB) - ☑ freebsd-14 2024-08-21 14:30:31Z orb.pkg
SHA256:cd0289face9cf5407c97f6168cf5c0442e3c120ccca1ec7d4c995b9e7f9cff8f
(3.57MB) - ☑ debian-11 2024-08-21 14:24:31Z orb.deb
SHA256:0052dcd6065bf46be2ce221e026f7b27481a138dd056ab30a9704fa5d6c5be9a
(4.15MB) - ☑ debian-12 2024-08-21 14:24:05Z orb.deb
SHA256:e251153516e66f5a655e28dcaa412874b23b570e1ae0f6f775a6ee2d01cade21
(4.26MB) - ☑ debian-11 2024-08-08 10:35:45Z orb.deb
SHA256:c9b356f855188e886da86f018712cce771ae858f5c29683f598ea0af0d2b816d
(4.15MB) - ☑ debian-12 2024-08-08 10:28:56Z orb.deb
SHA256:46f618fdec6b447b4c4b7f4068e828c98958dd84055fa365a816d4e5ff33b218
(4.26MB) - ☑ freebsd-14 2024-08-08 10:25:00Z orb.pkg
SHA256:548cefc5da0356af92722d575926457d0e72acfbdc23699136e161497d962892
(3.57MB) - ☑ freebsd-14 2024-08-08 09:30:09Z orb.pkg
SHA256:4954baaf638685e6c74281bb769e16e6e7b66c0ad71db126ba8517bd84a6d36f
(3.89MB) - ☒ debian-12 2024-08-08 09:27:14Z Build failure: exited 31
- ☒ debian-11 2024-08-08 09:27:14Z Build failure: exited 31
- ☑ debian-12 2024-08-08 09:19:05Z orb.deb
SHA256:7d5d0229df260c22fc7484e6806de70107be8a1d1225c87af2763c922c10c8fc
(4.67MB) - ☑ debian-11 2024-08-08 09:19:05Z orb.deb
SHA256:0f8a4a7f0e34bc486a1e12b274f8c60ea125175cfb7bc7fc9ca8f8a76b45b31c
(4.55MB) - ☑ freebsd-14 2024-08-08 09:18:43Z orb.pkg
SHA256:25846300d04950629144e723d73730a9c700028d1ee7839f7ca28924cd2bf97e
(3.9MB) - ☑ debian-12 2024-08-07 14:35:05Z orb.deb
SHA256:eddfa95c502e877b967797be0592a1676ff227c30a260d218daec648d4ba8e01
(4.26MB) - ☑ debian-11 2024-08-07 14:20:40Z orb.deb
SHA256:25766e2ed7a2e034d48ca0cfac42d0be5a8eb68198fb452e09908ab4b12aff09
(4.15MB) - ☑ freebsd-14 2024-08-07 14:16:31Z orb.pkg
SHA256:41389474ca4f3a041966c679462dcfd7e27dd58b2d759f5d64552fb9c45d3bc6
(3.57MB) - ☒ debian-11 2024-07-29 14:20:42Z Build failure: exited 31
- ☒ debian-12 2024-07-29 14:20:16Z Build failure: exited 31
- ☒ freebsd-14 2024-07-29 14:08:32Z Build failure: exited 31
- ☒ debian-11 2024-07-28 14:18:33Z Build failure: exited 31
- ☒ debian-12 2024-07-28 14:18:06Z Build failure: exited 31
- ☒ freebsd-14 2024-07-28 14:07:33Z Build failure: exited 31
- ☒ debian-11 2024-07-27 14:22:57Z Build failure: exited 31
- ☒ debian-12 2024-07-27 14:20:08Z Build failure: exited 31
- ☒ freebsd-14 2024-07-27 14:06:36Z Build failure: exited 31
- ☒ debian-11 2024-07-26 14:20:36Z Build failure: exited 31
- ☒ debian-12 2024-07-26 14:20:10Z Build failure: exited 31
- ☒ freebsd-14 2024-07-26 14:05:40Z Build failure: exited 31
- ☒ debian-11 2024-07-25 14:18:18Z Build failure: exited 31
- ☒ debian-12 2024-07-25 14:17:46Z Build failure: exited 31
- ☒ freebsd-14 2024-07-25 14:04:19Z Build failure: exited 31
- ☒ debian-11 2024-07-24 14:24:51Z Build failure: exited 31
- ☒ debian-12 2024-07-24 14:24:21Z Build failure: exited 31
- ☒ freebsd-14 2024-07-24 14:03:22Z Build failure: exited 31
- ☒ debian-11 2024-07-23 14:20:32Z Build failure: exited 31
- ☒ debian-12 2024-07-23 14:20:09Z Build failure: exited 31
- ☒ freebsd-14 2024-07-23 13:56:00Z Build failure: exited 31
- ☒ debian-11 2024-07-22 14:19:32Z Build failure: exited 31
- ☒ debian-12 2024-07-22 14:19:04Z Build failure: exited 31
- ☒ freebsd-14 2024-07-22 13:55:03Z Build failure: exited 31
- ☒ debian-11 2024-07-21 14:03:08Z Build failure: exited 31
- ☒ debian-12 2024-07-21 14:02:58Z Build failure: exited 31
- ☒ freebsd-14 2024-07-21 13:54:05Z Build failure: exited 31
- ☒ debian-11 2024-07-20 14:32:56Z Build failure: exited 31
- ☒ debian-12 2024-07-20 14:32:08Z Build failure: exited 31
- ☒ freebsd-14 2024-07-20 13:53:07Z Build failure: exited 31
- ☒ debian-11 2024-07-19 14:13:35Z Build failure: exited 31
- ☒ debian-12 2024-07-19 14:13:13Z Build failure: exited 31
- ☒ freebsd-14 2024-07-19 13:52:10Z Build failure: exited 31
- ☒ freebsd-14 2024-07-18 13:57:19Z Build failure: exited 31
- ☒ debian-12 2024-07-18 13:57:06Z Build failure: exited 31
- ☒ debian-11 2024-07-18 13:57:06Z Build failure: exited 31
- ☒ debian-11 2024-07-17 14:27:20Z Build failure: exited 31
- ☒ debian-12 2024-07-17 14:26:55Z Build failure: exited 31
- ☒ freebsd-14 2024-07-17 13:56:22Z Build failure: exited 31
- ☒ debian-11 2024-07-16 14:19:24Z Build failure: exited 31
- ☒ debian-12 2024-07-16 14:18:55Z Build failure: exited 31
- ☒ freebsd-14 2024-07-16 13:55:12Z Build failure: exited 31
- ☒ debian-11 2024-07-15 14:03:02Z Build failure: exited 31
- ☒ debian-12 2024-07-15 14:02:54Z Build failure: exited 31
- ☒ freebsd-14 2024-07-15 13:48:22Z Build failure: exited 31
- ☒ debian-11 2024-07-15 11:17:50Z Build failure: exited 31
- ☒ debian-12 2024-07-15 11:17:26Z Build failure: exited 31
- ☒ freebsd-14 2024-07-15 11:07:42Z Build failure: exited 31
- ☒ debian-11 2024-07-13 14:13:28Z Build failure: exited 31
- ☒ debian-12 2024-07-13 14:13:06Z Build failure: exited 31
- ☒ freebsd-14 2024-07-13 13:46:40Z Build failure: exited 31
- ☒ debian-11 2024-07-12 19:24:59Z Build failure: exited 31
- ☒ debian-12 2024-07-12 19:23:59Z Build failure: exited 31
- ☒ freebsd-14 2024-07-12 18:56:19Z Build failure: exited 31
- ☒ debian-11 2024-07-11 14:45:06Z Build failure: exited 31
- ☒ debian-12 2024-07-11 14:34:58Z Build failure: exited 31
- ☒ freebsd-14 2024-07-11 13:44:46Z Build failure: exited 31
- ☒ debian-11 2024-07-10 14:20:43Z Build failure: exited 31
- ☒ debian-12 2024-07-10 14:19:29Z Build failure: exited 31
- ☒ freebsd-14 2024-07-10 13:43:49Z Build failure: exited 31
- ☒ debian-11 2024-07-09 14:02:54Z Build failure: exited 31
- ☒ debian-12 2024-07-09 14:02:45Z Build failure: exited 31
- ☒ freebsd-14 2024-07-09 13:42:50Z Build failure: exited 31
- ☒ debian-11 2024-07-08 14:32:37Z Build failure: exited 31
- ☒ debian-12 2024-07-08 14:31:49Z Build failure: exited 31
- ☒ freebsd-14 2024-07-08 13:47:53Z Build failure: exited 31
- ☒ debian-11 2024-07-07 14:13:20Z Build failure: exited 31
- ☒ debian-12 2024-07-07 14:13:02Z Build failure: exited 31
- ☒ freebsd-14 2024-07-07 13:46:55Z Build failure: exited 31
- ☒ debian-12 2024-07-06 13:56:56Z Build failure: exited 31
- ☒ debian-11 2024-07-06 13:56:56Z Build failure: exited 31
- ☒ freebsd-14 2024-07-06 13:45:59Z Build failure: exited 31
- ☒ debian-11 2024-07-05 14:26:50Z Build failure: exited 31
- ☒ debian-12 2024-07-05 14:26:15Z Build failure: exited 31
- ☒ freebsd-14 2024-07-05 13:45:02Z Build failure: exited 31
- ☒ debian-11 2024-07-04 14:19:07Z Build failure: exited 31
- ☒ debian-12 2024-07-04 14:18:35Z Build failure: exited 31
- ☒ freebsd-14 2024-07-04 13:44:03Z Build failure: exited 31
- ☒ debian-11 2024-07-03 14:02:51Z Build failure: exited 31
- ☒ debian-12 2024-07-03 14:02:43Z Build failure: exited 31
- ☒ freebsd-14 2024-07-03 13:37:02Z Build failure: exited 31
- ☑ debian-12 2024-06-26 14:08:49Z orb.deb
SHA256:e31b83693a3aba02a1fbe0a89ae260deaa9427bd37623db67d2f055d2a49a435
(4.21MB) - ☑ debian-11 2023-02-14 14:36:47Z orb.deb
SHA256:3a0ec12f161fbf77875f2d93599ed7437ed71f90e1e9eb96c8253d238cf3c0ba
(4.35MB)
Excluding failed builds here.