Commit Graph

173 Commits

Author SHA1 Message Date
Georges Dupéron
9b89af06c4 Travis: install guix, which needs sudo 2018-10-15 00:29:57 +02:00
Georges Dupéron
0792640e43 more debug offsets 2018-10-15 00:29:57 +02:00
Georges Dupéron
dbadffd09d Store the GPT mirror at the end of the file, inside the ZIP comment (fixes #10) 2018-10-15 00:29:57 +02:00
Georges Dupéron
95216b8439 The name of the OS is configurable via a Makefile variable 2018-10-15 00:29:57 +02:00
Georges Dupéron
3126558a4f Merge branch 'dev-guid-gdisk' 2018-10-15 00:29:57 +02:00
Georges Dupéron
77b33ac0e1 Inject the commit timestamp from the Guix build recipe 2018-10-15 00:29:57 +02:00
Georges Dupéron
796fa23965 Fix the CRC in the mirror header too 2018-10-15 00:29:57 +02:00
Georges Dupéron
292dd908ba Merge branch 'dev-guix-build-environment' (dummy timestamp, dummy hash for GUIDs) 2018-10-15 00:29:57 +02:00
Georges Dupéron
38d057464b Fixed the GPT CRCs after injecting the MS-DOS comments in the partition array 2018-10-15 00:29:57 +02:00
Georges Dupéron
76def29a7f make [all] now uses the guix build environment (but other targets don't) 2018-10-15 00:29:57 +02:00
Georges Dupéron
e8349eb34c Compute the disk and partition GUIDs from the disk image itself (with GUIDs initially all-zero)
This allows us to have a deterministic build (given a fixed environment)
without having to rely on GIT (the .git is not copied in the Guix build
environment), and without having to rely on Guix (which previously had to
inject the input hash into the source tree).

Guix is therefore "only" responsible for ensuring that the build tools and
environment are fixed, but is not strictly necessary to have reproducible
builds.
2018-10-15 00:29:57 +02:00
Georges Dupéron
3913845ca9 Added dependencies to guix.scm 2018-10-15 00:29:57 +02:00
Georges Dupéron
3b640e997d GUID for gdisk: have Guix inject the hash of the inputs into the source tree 2018-10-15 00:29:57 +02:00
Georges Dupéron
178e75902a Started describing a Guix build environment 2018-10-15 00:29:54 +02:00
Georges Dupéron
d5f1c26226
Added another safety option to bash, moved bash invocation to a separate file 2018-10-02 03:19:02 +02:00
Georges Dupéron
24d1285603
Merge branch 'dev-split-makefile' 2018-10-02 03:19:01 +02:00
Georges Dupéron
239f050a4b
Split the clean target into clean and clean_reproducible 2018-10-02 03:19:01 +02:00
Georges Dupéron
017b038ac4
Split the Makefile into three parts (build framework, os-specific build recipes, tests)
Closes #1
2018-10-02 03:19:00 +02:00
Georges Dupéron
4fb06d5865
Merge branch 'misc-cleanup-and-debug' into master 2018-10-02 03:18:08 +02:00
Georges Dupéron
3669ba800e
Tests should fail if the OS filename argument is missing. 2018-10-02 03:18:08 +02:00
Georges Dupéron
584a8541c0
Fixed dependency in Makefile 2018-10-02 03:18:08 +02:00
Georges Dupéron
0e59aa2cc2
make -j 10 sometimes fails to mount the resulting ISO9660 filesystem, added more information and a dump of the OS binary to help debug the issue 2018-10-02 03:18:08 +02:00
Georges Dupéron
f98acb7662
debug sikuli installation error 2018-10-02 03:18:08 +02:00
Georges Dupéron
ba6f2b39a9
Fixed typo (+ instead of *) 2018-10-02 03:18:06 +02:00
Georges Dupéron
6b0082dd68
Display warning: reproducible builds do not work on Windows or macos 2018-10-01 21:08:38 +02:00
Georges Dupéron
1b36f8e98b
Merge branch 'reproducible-build-windows' (unfinished) 2018-10-01 21:08:38 +02:00
Georges Dupéron
b8941befe8
Merge branch 'reproducible-build-macos' (does not work) 2018-10-01 21:08:37 +02:00
Georges Dupéron
76ef64b5be
Use faketime or datefudge if the former is not installed 2018-10-01 21:08:37 +02:00
Georges Dupéron
24fe32c3b5
Circumvent the fact that faketime does not work on system binaries in macos 2018-10-01 21:08:37 +02:00
Georges Dupéron
6f5522bdcb
Installed datefudge on Appveyor via Cygwin 2018-10-01 21:08:37 +02:00
Georges Dupéron
60a7f054b3
appveyor: clone_depth is unnecessary if shallow_clone is used 2018-10-01 21:08:37 +02:00
Georges Dupéron
fce3b9b6b3
Merge branch 'reproducible-build-linux' 2018-10-01 21:08:36 +02:00
Georges Dupéron
07e12d3062
cp -T option does not exist on on macos 2018-10-01 21:08:36 +02:00
Georges Dupéron
08901554b0
Screenshots directory is now an option, to avoid conflicts with the reproducible build's make clean 2018-10-01 21:08:36 +02:00
Georges Dupéron
2e9ce6fc26
macos: date conversion needs different flags than in Linux 2018-10-01 21:08:36 +02:00
Georges Dupéron
00bfba9251
macos: mkisofs includes the path to its input as extra unwanted directories in the iso 2018-10-01 21:08:36 +02:00
Georges Dupéron
634a4a0ff3
Omit the build directory path from os.offsets.hex
The build directory is not the same for the normal build and the build made to check for reproducibility.
2018-10-01 21:08:35 +02:00
Georges Dupéron
94deee14b0
Avoid copying iso_files as a subfolder of an existing iso_files.tmp if the latter was not cleaned correctly 2018-10-01 21:08:35 +02:00
Georges Dupéron
01ea5827b2
Added COMMIT_TIMESTAMP_ISO_8601 as a Makefile parameter 2018-10-01 21:08:35 +02:00
Georges Dupéron
7dcdca9649
Check that the build is reproducible 2018-10-01 21:08:35 +02:00
Georges Dupéron
01d3ae7544
Made the build directory configurable 2018-10-01 21:08:35 +02:00
Georges Dupéron
cd866fb6e7
Closes #42: Reproducible builds
232 initial number of different lines in the hexadecimal dump.
160 (recursive touch in iso_files)
108 (touch os.32k)
46  (faketime on mkisofs)
38  (faketime on mformat)
32  (faketime on mcopy)
0   (explicit partition and disk GUIDs)
2018-10-01 21:08:34 +02:00
Georges Dupéron
282f241459
Missing dependency in offsets calculation (could cause race condition when building with -j) 2018-10-01 21:08:30 +02:00
Georges Dupéron
b01673890e make -j 10 sometimes fails to mount the resulting ISO9660 filesystem, added information to help debug the issue 2018-08-26 14:23:04 +02:00
Georges Dupéron
8404cc860e Updated Sikuli 2018-08-26 14:23:04 +02:00
Georges Dupéron
ef4c20ce7a Closes #23: rename project since it does not use only Travis anymore 2018-08-26 14:23:00 +02:00
Georges Dupéron
224809a83c appveyor: test OS, run os.bat in a nested cmd.exe, fix: MS-DOS was ignoring one line
appveyor:
* test the OS
* run os.bat in a nested cmd.exe as a temporary fix for #12
* fix issue with MS-DOS ignoring one line
2018-07-29 00:35:17 +02:00
Georges Dupéron
85af2114c6 ms-dos: CR+LF line endings, avoid lines longer than 8192, add [pause|exit] argument to .bat and sh code 2018-07-29 00:32:01 +02:00
Georges Dupéron
1e431b3fe0 gdisk requires an extra confirmation step on windows 2018-07-29 00:32:01 +02:00
Georges Dupéron
101d417d53 Build os.offsets.hex and os.offsets.dec 2018-07-29 00:32:01 +02:00