2
0
mirror of https://github.com/xcat2/xcat-dep.git synced 2026-09-12 04:26:25 +00:00
Files
Daniel Hilst c4c9492e57 fix(xcat-dep): merge master after the riscv64 and Ubuntu builds landed
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>
2026-09-02 09:39:55 -03:00
..

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/pty fixes console fork (pty.Start sets Ctty in 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 as go.etcd.io/bbolt, so go mod tidy aborts on it. The build removes storage/etcd* anyway (CGO-free static console server), so the pinned graph omits it.