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