DO NOT MERGE: skeleton docker support#1191
DO NOT MERGE: skeleton docker support#1191aesrentai wants to merge 1 commit intolinuxboot:masterfrom
Conversation
Signed-off-by: Cody Ho <codyho@stanford.edu>
Not sure I understand the question here unless a part of Makefiles logic was misinterpreted. You have to refer to global You can see calls to the strip musl-cross binaries from global Makefile, where modules output (in build/subdir are the origin of what is stripped and packed into initrd, not from install dir) This is the "magic" that happens behind the scene to guarantee that what is packed under initrd is reduced to its smallest stripped footprint prior of being XZ compressed. Stripping of binaries prior of initrd packing happens here under master currently:
Short version: modules compilation install dir is Yet again, gpg being installed through apt is an old age artifact of the time where Heads was using generic-init without gpg-gui.sh/oem-factory-reset scripts, and where instructions were telling how to generate and inject public key into rom prior of flashing. Consequently, qemu, gpg and some other tools are part of the toolstack to be installed on OS, simply to facilitate non-duplication of documentation for end-users/developers and CIs. That might need some cleanly after the buildstack problem is resolved. @aesrentai makes sense? |
|
Implemented with #1661 |
Essentially a tech demo that does absolutely nothing but throw the current build process, cross compilers and all, into a docker image. It doesn't pin dependencies or use snapshots of the debian repos, but this isn't supposed to be merged anyways. I'll see if I can replace parts of the build system, notably the cross compiler, with prebuilt binaries (verifying the hash ofc).
There's an issue where all files created by this docker image are owned by root, but I was too lazy to fix that. Just make sure to chown -R the relevant directories.
Usage:
To build the docker container:
cd reproducible-builds && docker build -t heads .To compile heads, from the root directory:
docker run --rm -v $(pwd):/project -w /project heads make BOARD=whateverAlso, is there a reason
install/binandinstall/sbincontain a bunch of files not needed for the build process such as gpg and kexec? They're clearly not the binaries going into the initrd since the hashes don't match but there's no reason for the build process to need gpg.