Closed realtime-neil closed 4 years ago
Wow, github does not deal well with a change that alters 1700 files :D
Thanks for fixing this up!
@danderson no problem, happy to help!
@danderson I screwed up --- I don't think the ipxe artifacts in out/ipxe/bindata.go
actually contain the embedded script. I may have assumed too much about how the ipxe makefile works.
Working on a fix
@danderson I got it: https://github.com/ipxe/ipxe/pull/115
Delete the vendored source under
thirds_party/ipxe
and replace it with a submodule reference to https://github.com/ipxe/ipxe.git at commit 8f1514a00450119b04b08642c55aa674bdf5a4ef a.k.a. tagv1.20.1
a.k.a. the latest release as of this writing.Edit
Makefile
to change the rule body of theupdate-ipxe
target:Discover the full path of
pixiecore/boot.ipxe
; i.e., theEMBED
script given to theipxe
build.Use
$(MAKE) -C
instead of subshelledcd
.Leave the four built ipxe binaries where they are built.
Change the
go-bindata
to operate on the four files (instead of the directory that contains them), write toout/ipxe/bindata.go
(instead ofthird_party/ipxe/ipxe-bin.go
), and lose the-prefix
.Edit
cmd/pixiecore/main.go
use the newipxe
import path and reference the binaries by the longer, un-prefixed path keys.Add
out/ipxe/bindata.go
, the thing generated bygo-bindata
. Yeah, we shouldn't source-control that which we can generate, but...ipxe
builds are not reproducible (yet)building those four binaries takes a appreciable amount of time
we can avoid a build-time dependency on
go-bindata
Remove
third_party/Makefile
because it looks like dead code. At any rate, it seems this patch obviates everything it may have done.