Skip to content

Commit 4819df4

Browse files
committed
Formatting and typo fixes in REPRO.md
1 parent 76713dc commit 4819df4

1 file changed

Lines changed: 20 additions & 19 deletions

File tree

REPRO.md

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -27,21 +27,21 @@ Prepare the build environment by setting the following environment variables:
2727

2828
* IMAGE_BUILD_DATE: The build date of the `repro` image you want to reproduce.
2929
For instance, if you're aiming to reproduce the `repro-20260331.0.508794` image:
30-
`export IMAGE_BUILD_DATE="20260331"`
30+
* `export IMAGE_BUILD_DATE="20260331"`
3131
* IMAGE_BUILD_NUMBER: The build number of the `repro` image you want to reproduce.
3232
For instance, if you're aiming to reproduce the `repro-20260331.0.508794` image:
33-
`export IMAGE_BUILD_NUMBER="0.508794"`
33+
* `export IMAGE_BUILD_NUMBER="0.508794"`
3434
* ARCHIVE_SNAPSHOT: The date of the Arch Linux repository archive snaphot to build
3535
the image against. This is based on the `IMAGE_BUILD_DATE`:
36-
`export ARCHIVE_SNAPSHOT=$(date -d "${IMAGE_BUILD_DATE} -1 day" +"%Y/%m/%d")`
36+
* `export ARCHIVE_SNAPSHOT=$(date -d "${IMAGE_BUILD_DATE} -1 day" +"%Y/%m/%d")`
3737
* SOURCE_DATE_EPOCH: The value to normalize timestamps with during the build.
3838
This is based on the `IMAGE_BUILD_DATE`:
39-
`export SOURCE_DATE_EPOCH=$(date -u -d "${IMAGE_BUILD_DATE} 00:00:00" +"%s")`
39+
* `export SOURCE_DATE_EPOCH=$(date -u -d "${IMAGE_BUILD_DATE} 00:00:00" +"%s")`
4040

4141
## Build the rootFS and generate the Dockerfile
4242

4343
From a clone of the [archlinux-docker](https://gitlab.archlinux.org/archlinux/archlinux-docker)
44-
repository, build the rootFS with the required paramaters:
44+
repository, build the rootFS with the required parameters:
4545

4646
```bash
4747
make \
@@ -66,20 +66,16 @@ file from the pipeline to the one generated during the above local build (which
6666
should be the same, indicating that the rootFS has been successfully reproduced).
6767

6868
Additionally, you can check differences between the `repro.tar.zst` tarball from
69-
the pipeline and the one built during your local build with `diffoscope`:
70-
`diffoscope /tmp/repro.tar.zst $PWD/output/repro.tar.zst` (where `/tmp/repro.tar.zst`
69+
the pipeline and the one built during your local build with `diffoscope`:
70+
`diffoscope /tmp/repro.tar.zst $PWD/output/repro.tar.zst` *(where `/tmp/repro.tar.zst`
7171
is the rootFS tarball downloaded from the pipeline and `$PWD/output/repro.tar.zst` is
72-
the rootFS tarball you just built.
72+
the rootFS tarball you just built)*.
7373
This should show no difference, acting as additional indicator that the rootFS has been
7474
successfully reproduced.
7575

76-
If the artifacts have already expired from the
77-
[archlinux-docker pipelines](https://gitlab.archlinux.org/archlinux/archlinux-docker/-/pipelines)
78-
artifacts, that's not a big deal. You are still able to check the reproducibility of the image itself.
79-
8076
## Build the image
8177

82-
You can now (re)build the image against the rootFS and Dockerfile generated in the previous step.
78+
You can now (re)build the image against the rootFS and the Dockerfile generated in the previous step.
8379
To do so, build the image with the required parameters:
8480

8581
```bash
@@ -110,11 +106,15 @@ podman inspect --format '{{.Digest}}' localhost/archlinux-docker:repro-${IMAGE_B
110106

111107
Both digests should be identical, indicating that the image has been successfully reproduced.
112108

113-
Additionally, you can check difference between the images pulled from Docker Hub and
114-
the image you built with `diffoci`:
115-
`diffoci diff --semantic --verbose podman://docker.io/archlinux/archlinux:repro-${IMAGE_BUILD_DATE}.${IMAGE_BUILD_NUMBER} podman://localhost/archlinux-docker:repro-${IMAGE_BUILD_DATE}.${IMAGE_BUILD_NUMBER}`
109+
Additionally, you can check difference between the image pulled from Docker Hub and
110+
the image you built locally with `diffoci`:
111+
112+
```bash
113+
diffoci diff --semantic --verbose podman://docker.io/archlinux/archlinux:repro-${IMAGE_BUILD_DATE}.${IMAGE_BUILD_NUMBER} podman://localhost/archlinux-docker:repro-${IMAGE_BUILD_DATE}.${IMAGE_BUILD_NUMBER}
114+
```
115+
116116
This should show no difference, acting as additional indicator that the image has been
117-
successfully reproduced (see the following section about the `--semantic` flag requirement).
117+
successfully reproduced *(see the following section about the `--semantic` flag requirement)*.
118118

119119
### Note about `diffoci` requiring the `--semantic` flag (a.k.a "non-strict" mode)
120120

@@ -126,10 +126,11 @@ with e.g. `podman tag`.
126126

127127
However, the image name & tag combination is automatically reported (and updated in the case
128128
of a renaming) in the image annotations / metadata and it's apparently not possible to fully overwrite
129-
it during build or update it post-build in a straightforward way. This introduces unavoidable non-determinism
129+
it during build or update it post-build in a straightforward way.
130+
This introduces unavoidable non-determinism
130131
in the image annotations / metadata that `diffoci` will report by default.
131132
See for instance the following `diffoci` output (with the reported difference being introduced by
132-
using `podman tag` to "rename" one of the images with the "-rebuild" suffix, in order to avoid name collision):
133+
using `podman tag` to "rename" one of the images with the "-orig" suffix, in order to avoid name collision):
133134

134135
```
135136
Event: "DescriptorMismatch" (field "Annotations")

0 commit comments

Comments
 (0)