Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package apko for openSUSE:Factory checked in at 2024-11-12 19:22:32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/apko (Old) and /work/SRC/openSUSE:Factory/.apko.new.2017 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "apko" Tue Nov 12 19:22:32 2024 rev:23 rq:1223539 version:0.19.9 Changes: -------- --- /work/SRC/openSUSE:Factory/apko/apko.changes 2024-11-05 15:42:25.849620184 +0100 +++ /work/SRC/openSUSE:Factory/.apko.new.2017/apko.changes 2024-11-12 19:23:20.276279470 +0100 @@ -1,0 +2,9 @@ +Tue Nov 12 07:33:59 UTC 2024 - [email protected] + +- Update to version 0.19.9: + * fix: --cache-dir broken after in 0.19.3+ (#1382) + * fix: ensure cacheTransport returns an error for non-200 + responses (#1381) + * Attempt to flush renamed files in cache (#1387) + +------------------------------------------------------------------- Old: ---- apko-0.19.8.obscpio New: ---- apko-0.19.9.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ apko.spec ++++++ --- /var/tmp/diff_new_pack.TJv24g/_old 2024-11-12 19:23:20.932306856 +0100 +++ /var/tmp/diff_new_pack.TJv24g/_new 2024-11-12 19:23:20.936307023 +0100 @@ -17,7 +17,7 @@ Name: apko -Version: 0.19.8 +Version: 0.19.9 Release: 0 Summary: Build OCI images from APK packages directly without Dockerfile License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.TJv24g/_old 2024-11-12 19:23:20.964308192 +0100 +++ /var/tmp/diff_new_pack.TJv24g/_new 2024-11-12 19:23:20.964308192 +0100 @@ -3,10 +3,10 @@ <param name="url">https://github.com/chainguard-dev/apko</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v0.19.8</param> + <param name="revision">v0.19.9</param> <param name="versionformat">@PARENT_TAG@</param> - <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> + <param name="changesgenerate">enable</param> </service> <service name="set_version" mode="manual"> </service> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.TJv24g/_old 2024-11-12 19:23:20.984309027 +0100 +++ /var/tmp/diff_new_pack.TJv24g/_new 2024-11-12 19:23:20.988309194 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/chainguard-dev/apko</param> - <param name="changesrevision">70d6b1a3ebe5f8fd8bbd321f02230315a5f1e06d</param></service></servicedata> + <param name="changesrevision">818ff3c8202feafb6ed8032961b1a6f11fa78132</param></service></servicedata> (No newline at EOF) ++++++ apko-0.19.8.obscpio -> apko-0.19.9.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apko-0.19.8/pkg/apk/apk/cache.go new/apko-0.19.9/pkg/apk/apk/cache.go --- old/apko-0.19.8/pkg/apk/apk/cache.go 2024-11-04 17:37:55.000000000 +0100 +++ new/apko-0.19.9/pkg/apk/apk/cache.go 2024-11-07 18:53:20.000000000 +0100 @@ -344,8 +344,10 @@ return "", fmt.Errorf("wrapped client is nil") } resp, err := t.wrapped.Do(request) - if err != nil || resp.StatusCode != 200 { + if err != nil { return "", err + } else if resp.StatusCode != 200 { + return "", fmt.Errorf("unexpected status code %d", resp.StatusCode) } // Determine the file we will caching stuff in based on the URL/response diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apko-0.19.8/pkg/apk/apk/implementation.go new/apko-0.19.9/pkg/apk/apk/implementation.go --- old/apko-0.19.8/pkg/apk/apk/implementation.go 2024-11-04 17:37:55.000000000 +0100 +++ new/apko-0.19.9/pkg/apk/apk/implementation.go 2024-11-07 18:53:20.000000000 +0100 @@ -965,8 +965,8 @@ ctlHex := hex.EncodeToString(exp.ControlHash) ctlDst := filepath.Join(cacheDir, ctlHex+".ctl.tar.gz") - if err := os.Rename(exp.ControlFile, ctlDst); err != nil { - return nil, fmt.Errorf("renaming control file: %w", err) + if err := rename(exp.ControlFile, ctlDst); err != nil { + return nil, err } exp.ControlFile = ctlDst @@ -974,8 +974,8 @@ if exp.SignatureFile != "" { sigDst := filepath.Join(cacheDir, ctlHex+".sig.tar.gz") - if err := os.Rename(exp.SignatureFile, sigDst); err != nil { - return nil, fmt.Errorf("renaming control file: %w", err) + if err := rename(exp.SignatureFile, sigDst); err != nil { + return nil, err } exp.SignatureFile = sigDst @@ -984,22 +984,24 @@ datHex := hex.EncodeToString(exp.PackageHash) datDst := filepath.Join(cacheDir, datHex+".dat.tar.gz") - if err := os.Rename(exp.PackageFile, datDst); err != nil { - return nil, fmt.Errorf("renaming control file: %w", err) + if err := rename(exp.PackageFile, datDst); err != nil { + return nil, err } exp.PackageFile = datDst - tarDst := strings.TrimSuffix(exp.PackageFile, ".gz") - if err := os.Rename(exp.TarFile, tarDst); err != nil { - return nil, fmt.Errorf("renaming control file: %w", err) - } - exp.TarFile = tarDst - if err := exp.TarFS.Close(); err != nil { return nil, fmt.Errorf("closing tarfs: %w", err) } + tarDst := strings.TrimSuffix(exp.PackageFile, ".gz") + + if err := rename(exp.TarFile, tarDst); err != nil { + return nil, err + } + + exp.TarFile = tarDst + // Re-initialize the tarfs with the renamed file. // TODO: Split out the tarfs Index creation from the FS. // TODO: Consolidate ExpandAPK(), cachedPackage(), and cachePackage(). @@ -1372,3 +1374,31 @@ } return names } + +func rename(src, dst string) error { + if err := os.Rename(src, dst); err != nil { + return fmt.Errorf("renaming %s: %w", src, err) + } + + // This feels dumb but I have a hunch that it's necessary when renaming + // a file on gcsfuse. We seem to get a "file not found" error when reading + // something immediately after renaming it. + if err := flush(dst); err != nil { + return fmt.Errorf("flushing %s: %w", dst, err) + } + + return nil +} + +func flush(filename string) error { + f, err := os.Open(filename) + if err != nil { + return err + } + + if err := f.Sync(); err != nil { + return err + } + + return f.Close() +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apko-0.19.8/pkg/apk/apk/options.go new/apko-0.19.9/pkg/apk/apk/options.go --- old/apko-0.19.8/pkg/apk/apk/options.go 2024-11-04 17:37:55.000000000 +0100 +++ new/apko-0.19.9/pkg/apk/apk/options.go 2024-11-07 18:53:20.000000000 +0100 @@ -92,6 +92,11 @@ return err } cacheDir = filepath.Join(cacheDir, "dev.chainguard.go-apk") + } else { + cacheDir, err = filepath.Abs(cacheDir) + if err != nil { + return err + } } o.cache = &cache{ dir: cacheDir, ++++++ apko.obsinfo ++++++ --- /var/tmp/diff_new_pack.TJv24g/_old 2024-11-12 19:23:21.264320716 +0100 +++ /var/tmp/diff_new_pack.TJv24g/_new 2024-11-12 19:23:21.264320716 +0100 @@ -1,5 +1,5 @@ name: apko -version: 0.19.8 -mtime: 1730738275 -commit: 70d6b1a3ebe5f8fd8bbd321f02230315a5f1e06d +version: 0.19.9 +mtime: 1731002000 +commit: 818ff3c8202feafb6ed8032961b1a6f11fa78132 ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/apko/vendor.tar.gz /work/SRC/openSUSE:Factory/.apko.new.2017/vendor.tar.gz differ: char 5, line 1
