From 6b4721ab5d6c0b073ce5927f458181cc0b868f70 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Thu, 25 Sep 2025 14:44:05 +0200 Subject: [PATCH 1/2] bib: update to images version v0.197.0 Update go.mod and do the required AI changes for v0.197.0 --- bib/cmd/bootc-image-builder/cloud.go | 6 ++++-- bib/cmd/bootc-image-builder/legacy_iso.go | 6 +++++- bib/cmd/bootc-image-builder/main.go | 8 +++----- bib/cmd/upload/main.go | 2 +- bib/go.mod | 4 ++-- bib/go.sum | 12 ++++++------ 6 files changed, 21 insertions(+), 17 deletions(-) diff --git a/bib/cmd/bootc-image-builder/cloud.go b/bib/cmd/bootc-image-builder/cloud.go index 483f4ae52..57feccc9d 100644 --- a/bib/cmd/bootc-image-builder/cloud.go +++ b/bib/cmd/bootc-image-builder/cloud.go @@ -33,12 +33,14 @@ func upload(uploader cloud.Uploader, path string, flags *pflag.FlagSet) error { defer file.Close() var r io.Reader = file + var size int64 if pbar != nil { st, err := file.Stat() if err != nil { return err } - pbar.SetTotal(st.Size()) + size = st.Size() + pbar.SetTotal(size) pbar.Set(pb.Bytes, true) pbar.SetWriter(osStdout) r = pbar.NewProxyReader(file) @@ -46,5 +48,5 @@ func upload(uploader cloud.Uploader, path string, flags *pflag.FlagSet) error { defer pbar.Finish() } - return uploader.UploadAndRegister(r, osStderr) + return uploader.UploadAndRegister(r, uint64(size), osStderr) } diff --git a/bib/cmd/bootc-image-builder/legacy_iso.go b/bib/cmd/bootc-image-builder/legacy_iso.go index cff937c44..d845a240b 100644 --- a/bib/cmd/bootc-image-builder/legacy_iso.go +++ b/bib/cmd/bootc-image-builder/legacy_iso.go @@ -164,7 +164,11 @@ func makeISOManifest(c *ManifestConfig, solver *depsolvednf.Solver, cacheRoot st // depsolve packages depsolvedSets := make(map[string]depsolvednf.DepsolveResult) depsolvedRepos := make(map[string][]rpmmd.RepoConfig) - for name, pkgSet := range mani.GetPackageSetChains() { + pkgSetChains, err := mani.GetPackageSetChains() + if err != nil { + return nil, nil, err + } + for name, pkgSet := range pkgSetChains { res, err := solver.Depsolve(pkgSet, 0) if err != nil { return nil, nil, fmt.Errorf("cannot depsolve: %w", err) diff --git a/bib/cmd/bootc-image-builder/main.go b/bib/cmd/bootc-image-builder/main.go index 4351b1a5e..a4191ea14 100644 --- a/bib/cmd/bootc-image-builder/main.go +++ b/bib/cmd/bootc-image-builder/main.go @@ -1,7 +1,6 @@ package main import ( - "bytes" "encoding/json" "errors" "fmt" @@ -177,13 +176,11 @@ func manifestFromCobraForDisk(imgref, buildImgref, imgTypeStr, rootFs, rpmCacheR return nil, nil, err } - var buf bytes.Buffer repos, err := reporegistry.New(nil, []fs.FS{repos.FS}) if err != nil { return nil, nil, err } mg, err := manifestgen.New(repos, &manifestgen.Options{ - Output: &buf, // XXX: hack to skip repo loading for the bootc image. // We need to add a SkipRepositories or similar to // manifestgen instead to make this clean @@ -196,10 +193,11 @@ func manifestFromCobraForDisk(imgref, buildImgref, imgTypeStr, rootFs, rpmCacheR if err != nil { return nil, nil, err } - if err := mg.Generate(config, distro, imgType, archi, nil); err != nil { + manifest, err := mg.Generate(config, imgType, nil) + if err != nil { return nil, nil, err } - return buf.Bytes(), nil, nil + return manifest, nil, nil } func cmdManifest(cmd *cobra.Command, args []string) error { diff --git a/bib/cmd/upload/main.go b/bib/cmd/upload/main.go index c0b25f5e1..8f7ddccd9 100644 --- a/bib/cmd/upload/main.go +++ b/bib/cmd/upload/main.go @@ -50,7 +50,7 @@ func uploadAMI(cmd *cobra.Command, args []string) { // nolint:errcheck defer f.Close() - check(uploader.UploadAndRegister(f, os.Stderr)) + check(uploader.UploadAndRegister(f, 0, os.Stderr)) } func setupCLI() *cobra.Command { diff --git a/bib/go.mod b/bib/go.mod index 6be4b03ac..52d9df608 100644 --- a/bib/go.mod +++ b/bib/go.mod @@ -8,8 +8,8 @@ require ( github.com/cheggaaa/pb/v3 v3.1.7 github.com/hashicorp/go-version v1.7.0 github.com/osbuild/blueprint v1.13.0 - github.com/osbuild/image-builder-cli v0.0.0-20250331194259-63bb56e12db3 - github.com/osbuild/images v0.191.0 + github.com/osbuild/image-builder-cli v0.0.0-20250924085931-15de5139f521 + github.com/osbuild/images v0.197.0 github.com/sirupsen/logrus v1.9.3 github.com/spf13/cobra v1.10.1 github.com/spf13/pflag v1.0.10 diff --git a/bib/go.sum b/bib/go.sum index f321eff31..ba7cf0c3f 100644 --- a/bib/go.sum +++ b/bib/go.sum @@ -243,10 +243,10 @@ github.com/opencontainers/selinux v1.12.0 h1:6n5JV4Cf+4y0KNXW48TLj5DwfXpvWlxXplU github.com/opencontainers/selinux v1.12.0/go.mod h1:BTPX+bjVbWGXw7ZZWUbdENt8w0htPSrlgOOysQaU62U= github.com/osbuild/blueprint v1.13.0 h1:blo22+S2ZX5bBmjGcRveoTUrV4Ms7kLfKyb32WyuymA= github.com/osbuild/blueprint v1.13.0/go.mod h1:HPlJzkEl7q5g8hzaGksUk7ifFAy9QFw9LmzhuFOAVm4= -github.com/osbuild/image-builder-cli v0.0.0-20250331194259-63bb56e12db3 h1:M3yYunKH4quwJLQrnFo7dEwCTKorafNC+AUqAo7m5Yo= -github.com/osbuild/image-builder-cli v0.0.0-20250331194259-63bb56e12db3/go.mod h1:0sEmiQiMo1ChSuOoeONN0RmsoZbQEvj2mlO2448gC5w= -github.com/osbuild/images v0.191.0 h1:nhTIAf0JJTEf1gIUsU1II0BVIYBj537BvDpBBXCLYig= -github.com/osbuild/images v0.191.0/go.mod h1:KPiYBF0VrOXz5NAw6Lv4X170uN8wnOHpWuBzKT4jPrU= +github.com/osbuild/image-builder-cli v0.0.0-20250924085931-15de5139f521 h1:Mo1htXYyEoKrBQD+/RC/kluAWu4+E0oEjPorujVn/K8= +github.com/osbuild/image-builder-cli v0.0.0-20250924085931-15de5139f521/go.mod h1:oTn9T+bV9g/760hM/jX7AV0c4vuVIn6FjAnaVM9RzRo= +github.com/osbuild/images v0.197.0 h1:JSwivw9X2HLgGPq1NG407FrSbyNlfwdACwI0g6kUkjY= +github.com/osbuild/images v0.197.0/go.mod h1:xkXfw5CIy0bVNTNdB6GXiewu/IzBgpofkItDJPAzGA4= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -254,8 +254,8 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/proglottis/gpgme v0.1.4 h1:3nE7YNA70o2aLjcg63tXMOhPD7bplfE5CBdV+hLAm2M= github.com/proglottis/gpgme v0.1.4/go.mod h1:5LoXMgpE4bttgwwdv9bLs/vwqv3qV7F4glEEZ7mRKrM= -github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q= -github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= +github.com/prometheus/client_golang v1.23.0 h1:ust4zpdl9r4trLY/gSjlm07PuiBq2ynaXXlptpfy8Uc= +github.com/prometheus/client_golang v1.23.0/go.mod h1:i/o0R9ByOnHX0McrTMTyhYvKE4haaf2mW08I+jGAjEE= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= From 9c7acb6fe8c32111f41f46123c3a2db73b04e233 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Fri, 26 Sep 2025 08:45:41 +0200 Subject: [PATCH 2/2] test: update invalid cross arch test error msg The error message on mismatch of `--target-arch` with the actual container has changed (for the better) so we need to update the test for this. --- test/test_manifest.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/test_manifest.py b/test/test_manifest.py index 7af333b9c..7171bb0fe 100644 --- a/test/test_manifest.py +++ b/test/test_manifest.py @@ -153,7 +153,8 @@ def test_manifest_cross_arch_check(tmp_path, build_container): "manifest", "--target-arch=aarch64", f"localhost/{container_tag}" ], check=True, capture_output=True, encoding="utf8") - assert 'cannot generate manifest: invalid arch: aarch64' in exc.value.stderr + assert ('cannot generate manifest: requested bootc arch "aarch64" ' + 'does not match available arches [x86_64]') in exc.value.stderr def find_rootfs_type_from(manifest_str):