mirror of
https://github.com/xcat2/xcat-dep.git
synced 2026-09-12 12:36:23 +00:00
c4c9492e57
Master gained the EL10 riscv64 forcearch target (PR #66) and the Perl Ubuntu build (PR #63). Both touch the files this branch rewrites, so the merge is resolved per file: mockbuild-all.pl, mockbuild-perl-packages.pl keep the forcearch target profile, the noarch chroot and --epel-gap from master, and this branch's manifest gate, atomic per-cell deploy and per-package chroot scrub. assert_required_deps is dropped: verify_target_repo replaced it. The post-join bootstrap scrub now reads the uniqueext and the config recorded when the chroot was made, because the wave loop of master no longer numbers packages in @packages order. packages-manifest.conf gains a [rocky-10-riscv64-xcat] section. A target with no section is fatal, so without it the riscv64 target cannot run. goconserver/mockbuild.pl builds in the mock chroot for the host arch and cross- compiles on the host for a foreign --target-arch. A forcearch chroot would run the Go toolchain under qemu. Both paths overlay the pinned go.mod/go.sum and ship server.conf as YAML. The host-install smoke stays removed (it corrupts the build host rpm database). The checks that do not install on the host are kept: the chroot install of a cross-built ipmitool-xcat and XS perl module, and the binfmt run of the cross- built goconserver binaries. goconserver/gomod/ takes the pin of master, whose `go` directive is the lower of the two, so both the EL10 chroot and the Ubuntu sbuild toolchain accept it. t/genesis_openembedded_consumer.t: the skip count of the RPM block is 64, the number of tests it runs. Both sides carried a stale number. Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
1.7 KiB
1.7 KiB
Pinned go.mod / go.sum for the goconserver build
These pin the Go module graph for goconserver at the commit built by ../sbuild.pl (Ubuntu) and
../mockbuild.pl (EL): REF=6166fe5ec1c5b3c20475e322a9f0e8e93c87e45f. Both builders overlay them
into the freshly cloned upstream tree and compile with GOFLAGS=-mod=mod, so modules are downloaded
from the Go proxy but pinned and integrity-checked by go.sum — the build is reproducible, with
no go mod tidy at build time (which would float transitive versions from the network).
The go directive (currently go 1.25.12) is the floor every builder must meet: the GO_PIN
toolchain of ../sbuild.pl and the golang of the EL10 mock chroot. Regenerate with the lowest of
them, so neither build is rejected.
Regenerate (when bumping REF or GO_PIN, or a dependency)
On a host with network, using the pinned toolchain:
REF=6166fe5ec1c5b3c20475e322a9f0e8e93c87e45f
git clone https://github.com/xcat2/goconserver gcsrc && cd gcsrc
git checkout "$REF"
rm -rf storage/etcd.go storage/etcd/ # the build drops the broken etcd backend
[ -f go.mod ] || go mod init github.com/xcat2/goconserver # only if upstream ships no go.mod
go mod edit -replace github.com/kr/pty=github.com/creack/pty@v1.1.21
go mod tidy
cp go.mod go.sum <this dir>
Notes:
kr/pty → creack/ptyfixes console fork (pty.StartsetsCttyin a way Go ≥1.15 rejects).- The etcd removal is required: goconserver's etcd storage backend drags in
github.com/coreos/bbolt, which now declares its module path asgo.etcd.io/bbolt, sogo mod tidyaborts on it. The build removesstorage/etcd*anyway (CGO-free static console server), so the pinned graph omits it.