- 
        Couldn't load subscription status. 
- Fork 256
          Switch containers/[image,storage,common] to go.podman.io monorepo and update libhvee dependency
          #4954
        
          New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
| [APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. 
Needs approval from an approver in each of these files:
 Approvers can indicate their approval by writing  | 
| WalkthroughThis PR migrates many imports from github.com/containers/* and github.com/containers/image/v5 to go.podman.io/*, vendors a new strongunits package, upgrades Go/toolchain and numerous dependencies, adds optional DVD support to libhvee VM config, adjusts TLS/tlsconfig behaviors, and applies assorted vendor fixes and API tweaks. Changes
 Sequence Diagram(s)sequenceDiagram
  autonumber
  actor User
  participant CRC as CRC CLI
  participant LibHvee as libhvee
  participant VM as VM Builder
  User->>CRC: start VM
  CRC->>LibHvee: NewVirtualMachine(hwConfig)
  LibHvee->>VM: Add controller and drive(s)
  alt DVDDiskPath provided
    LibHvee->>VM: Add DVD drive and define DVD disk
  else No DVDDiskPath
    Note right of VM: DVD setup skipped
  end
  LibHvee->>VM: Finish/Complete
  LibHvee-->>CRC: VM object / result
  CRC-->>User: started / error
sequenceDiagram
  autonumber
  actor Caller
  participant TLS as tlsconfig
  participant Client as HTTP Client
  Caller->>TLS: ClientDefault()
  TLS-->>Caller: *tls.Config (with CipherSuites)
  Caller->>Client: build transport with config
  Client-->>Caller: transport ready
  note over TLS,Client: Encrypted private keys (passphrase) path deprecated/unsupported
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Suggested labels
 Poem
 Pre-merge checks and finishing touches❌ Failed checks (2 warnings)
 ✅ Passed checks (1 passed)
 ✨ Finishing touches
 🧪 Generate unit tests (beta)
 Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment  | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (2)
vendor/go.podman.io/image/v5/internal/useragent/useragent.go (1)
6-6: User agent string still references old path.The
DefaultUserAgentstring includes"github.com/containers/image"while the import now usesgo.podman.io/image/v5. This is likely intentional for backward compatibility or branding, but worth noting since this is a vendored file and the decision is upstream's.vendor/github.com/containers/libhvee/pkg/hypervctl/vm.go (1)
433-458: LGTM! Clean builder pattern with conditional DVD drive.The refactor correctly uses the builder pattern to conditionally add a DVD drive when
DVDDiskPathis provided:
- The builder variable enables conditional modification while maintaining proper chain completion
- Using separate indices (0 for disk, 1 for DVD) prevents device conflicts
- Error handling is consistent with the existing pattern
The implementation aligns with the PR objective of enabling optional DVD drive support for scenarios like cloud-init.
Optional: Consider validating DVDDiskPath before use.
While the current implementation is consistent with how
DiskPathis handled, you could add basic validation to fail fast with a clear error message if the DVD path doesn't exist:if config.DVDDiskPath != "" { if _, err := os.Stat(config.DVDDiskPath); err != nil { return fmt.Errorf("DVD disk path is invalid: %w", err) } // Add a DVD drive if the DVDDiskPath is set // This is useful for cloud-init or other bootable media builder = builder. AddSyntheticDvdDrive(1). DefineVirtualDvdDisk(config.DVDDiskPath). Finish(). // disk Finish() // drive }This is a low-priority suggestion since the Hyper-V API will likely return its own error for invalid paths, and the existing
DiskPathdoesn't perform this validation either.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
- go.sumis excluded by- !**/*.sum
📒 Files selected for processing (107)
- cmd/crc/cmd/start.go(1 hunks)
- cmd/crc/cmd/status.go(1 hunks)
- go.mod(10 hunks)
- pkg/crc/api/api_client_test.go(1 hunks)
- pkg/crc/api/client/types.go(1 hunks)
- pkg/crc/api/handlers.go(1 hunks)
- pkg/crc/cluster/cluster.go(1 hunks)
- pkg/crc/config/settings_test.go(1 hunks)
- pkg/crc/config/validations.go(1 hunks)
- pkg/crc/constants/constants.go(1 hunks)
- pkg/crc/image/image.go(1 hunks)
- pkg/crc/machine/config/config.go(1 hunks)
- pkg/crc/machine/driver.go(1 hunks)
- pkg/crc/machine/start.go(1 hunks)
- pkg/crc/machine/start_test.go(1 hunks)
- pkg/crc/machine/status.go(1 hunks)
- pkg/crc/machine/status_test.go(1 hunks)
- pkg/crc/machine/types/types.go(1 hunks)
- pkg/crc/validation/validation.go(1 hunks)
- pkg/drivers/libhvee/libhvee_windows.go(1 hunks)
- test/e2e/testsuite/testsuite.go(1 hunks)
- vendor/github.com/containers/libhvee/pkg/hypervctl/vhd.go(1 hunks)
- vendor/github.com/containers/libhvee/pkg/hypervctl/vm.go(2 hunks)
- vendor/github.com/containers/libhvee/pkg/hypervctl/vm_config.go(1 hunks)
- vendor/github.com/containers/libhvee/pkg/wmiext/array.go(2 hunks)
- vendor/github.com/containers/libhvee/pkg/wmiext/conversion.go(2 hunks)
- vendor/github.com/docker/go-connections/tlsconfig/config.go(7 hunks)
- vendor/github.com/docker/go-connections/tlsconfig/config_client_ciphers.go(0 hunks)
- vendor/github.com/google/pprof/profile/merge.go(2 hunks)
- vendor/github.com/google/pprof/profile/profile.go(3 hunks)
- vendor/github.com/google/pprof/profile/prune.go(2 hunks)
- vendor/github.com/mattn/go-sqlite3/README.md(1 hunks)
- vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h(71 hunks)
- vendor/github.com/mattn/go-sqlite3/sqlite3_opt_userauth.go(10 hunks)
- vendor/github.com/mattn/go-sqlite3/sqlite3ext.h(2 hunks)
- vendor/github.com/proglottis/gpgme/gpgme.go(1 hunks)
- vendor/go.podman.io/common/LICENSE(1 hunks)
- vendor/go.podman.io/common/pkg/strongunits/config.go(1 hunks)
- vendor/go.podman.io/image/v5/copy/blob.go(1 hunks)
- vendor/go.podman.io/image/v5/copy/compression.go(1 hunks)
- vendor/go.podman.io/image/v5/copy/copy.go(1 hunks)
- vendor/go.podman.io/image/v5/copy/encryption.go(1 hunks)
- vendor/go.podman.io/image/v5/copy/manifest.go(1 hunks)
- vendor/go.podman.io/image/v5/copy/multiple.go(1 hunks)
- vendor/go.podman.io/image/v5/copy/progress_bars.go(1 hunks)
- vendor/go.podman.io/image/v5/copy/progress_channel.go(1 hunks)
- vendor/go.podman.io/image/v5/copy/sign.go(1 hunks)
- vendor/go.podman.io/image/v5/copy/single.go(1 hunks)
- vendor/go.podman.io/image/v5/directory/directory_dest.go(1 hunks)
- vendor/go.podman.io/image/v5/directory/directory_src.go(1 hunks)
- vendor/go.podman.io/image/v5/directory/directory_transport.go(1 hunks)
- vendor/go.podman.io/image/v5/directory/explicitfilepath/path.go(1 hunks)
- vendor/go.podman.io/image/v5/docker/cache.go(1 hunks)
- vendor/go.podman.io/image/v5/docker/docker_client.go(2 hunks)
- vendor/go.podman.io/image/v5/docker/docker_image.go(1 hunks)
- vendor/go.podman.io/image/v5/docker/docker_image_dest.go(1 hunks)
- vendor/go.podman.io/image/v5/docker/docker_image_src.go(1 hunks)
- vendor/go.podman.io/image/v5/docker/docker_transport.go(1 hunks)
- vendor/go.podman.io/image/v5/docker/policyconfiguration/naming.go(1 hunks)
- vendor/go.podman.io/image/v5/docker/reference/regexp.go(1 hunks)
- vendor/go.podman.io/image/v5/docker/registries_d.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/blobinfocache/blobinfocache.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/blobinfocache/types.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/image/docker_list.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/image/docker_schema1.go(3 hunks)
- vendor/go.podman.io/image/v5/internal/image/docker_schema2.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/image/manifest.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/image/memory.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/image/oci.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/image/oci_index.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/image/sourced.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/image/unparsed.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/imagedestination/impl/compat.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/imagedestination/impl/helpers.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/imagedestination/impl/properties.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/imagedestination/stubs/put_blob_partial.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/imagedestination/stubs/signatures.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/imagedestination/wrapper.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/imagesource/impl/compat.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/imagesource/impl/layer_infos.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/imagesource/impl/signatures.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/imagesource/stubs/get_blob_at.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/imagesource/wrapper.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/manifest/docker_schema2_list.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/manifest/list.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/manifest/manifest.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/manifest/oci_index.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/pkg/platform/platform_matcher.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/private/private.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/putblobdigest/put_blob_digest.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/signer/signer.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/streamdigest/stream_digest.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/tmpdir/tmpdir.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/unparsedimage/wrapper.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/useragent/useragent.go(1 hunks)
- vendor/go.podman.io/image/v5/manifest/common.go(1 hunks)
- vendor/go.podman.io/image/v5/manifest/docker_schema1.go(1 hunks)
- vendor/go.podman.io/image/v5/manifest/docker_schema2.go(1 hunks)
- vendor/go.podman.io/image/v5/manifest/docker_schema2_list.go(1 hunks)
- vendor/go.podman.io/image/v5/manifest/list.go(1 hunks)
- vendor/go.podman.io/image/v5/manifest/manifest.go(1 hunks)
- vendor/go.podman.io/image/v5/manifest/oci.go(1 hunks)
- vendor/go.podman.io/image/v5/manifest/oci_index.go(1 hunks)
- vendor/go.podman.io/image/v5/pkg/blobinfocache/default.go(1 hunks)
- vendor/go.podman.io/image/v5/pkg/blobinfocache/internal/prioritize/prioritize.go(1 hunks)
- vendor/go.podman.io/image/v5/pkg/blobinfocache/memory/memory.go(1 hunks)
- vendor/go.podman.io/image/v5/pkg/blobinfocache/none/none.go(1 hunks)
⛔ Files not processed due to max files limit (61)
- vendor/go.podman.io/image/v5/pkg/blobinfocache/sqlite/sqlite.go
- vendor/go.podman.io/image/v5/pkg/compression/compression.go
- vendor/go.podman.io/image/v5/pkg/compression/types/types.go
- vendor/go.podman.io/image/v5/pkg/docker/config/config.go
- vendor/go.podman.io/image/v5/pkg/sysregistriesv2/shortnames.go
- vendor/go.podman.io/image/v5/pkg/sysregistriesv2/system_registries_v2.go
- vendor/go.podman.io/image/v5/signature/docker.go
- vendor/go.podman.io/image/v5/signature/fulcio_cert.go
- vendor/go.podman.io/image/v5/signature/internal/json.go
- vendor/go.podman.io/image/v5/signature/internal/sequoia/gosequoia.c
- vendor/go.podman.io/image/v5/signature/internal/sequoia/gosequoia.h
- vendor/go.podman.io/image/v5/signature/internal/sequoia/gosequoiafuncs.h
- vendor/go.podman.io/image/v5/signature/internal/sequoia/sequoia.go
- vendor/go.podman.io/image/v5/signature/internal/sequoia/sequoia.h
- vendor/go.podman.io/image/v5/signature/internal/sigstore_payload.go
- vendor/go.podman.io/image/v5/signature/mechanism.go
- vendor/go.podman.io/image/v5/signature/mechanism_gpgme.go
- vendor/go.podman.io/image/v5/signature/mechanism_gpgme_only.go
- vendor/go.podman.io/image/v5/signature/mechanism_openpgp.go
- vendor/go.podman.io/image/v5/signature/mechanism_sequoia.go
- vendor/go.podman.io/image/v5/signature/pki_cert.go
- vendor/go.podman.io/image/v5/signature/policy_config.go
- vendor/go.podman.io/image/v5/signature/policy_config_sigstore.go
- vendor/go.podman.io/image/v5/signature/policy_eval.go
- vendor/go.podman.io/image/v5/signature/policy_eval_baselayer.go
- vendor/go.podman.io/image/v5/signature/policy_eval_signedby.go
- vendor/go.podman.io/image/v5/signature/policy_eval_sigstore.go
- vendor/go.podman.io/image/v5/signature/policy_eval_simple.go
- vendor/go.podman.io/image/v5/signature/policy_reference_match.go
- vendor/go.podman.io/image/v5/signature/signer/signer.go
- vendor/go.podman.io/image/v5/signature/sigstore/internal/signer.go
- vendor/go.podman.io/image/v5/signature/sigstore/signer.go
- vendor/go.podman.io/image/v5/signature/simple.go
- vendor/go.podman.io/image/v5/signature/simplesigning/signer.go
- vendor/go.podman.io/image/v5/transports/stub.go
- vendor/go.podman.io/image/v5/transports/transports.go
- vendor/go.podman.io/image/v5/types/types.go
- vendor/go.podman.io/image/v5/version/version.go
- vendor/go.podman.io/storage/pkg/archive/archive.go
- vendor/go.podman.io/storage/pkg/archive/archive_linux.go
- vendor/go.podman.io/storage/pkg/archive/archive_unix.go
- vendor/go.podman.io/storage/pkg/archive/archive_windows.go
- vendor/go.podman.io/storage/pkg/archive/changes.go
- vendor/go.podman.io/storage/pkg/archive/changes_linux.go
- vendor/go.podman.io/storage/pkg/archive/changes_other.go
- vendor/go.podman.io/storage/pkg/archive/changes_unix.go
- vendor/go.podman.io/storage/pkg/archive/changes_windows.go
- vendor/go.podman.io/storage/pkg/archive/copy.go
- vendor/go.podman.io/storage/pkg/archive/diff.go
- vendor/go.podman.io/storage/pkg/archive/fflags_bsd.go
- vendor/go.podman.io/storage/pkg/chunked/compressor/compressor.go
- vendor/go.podman.io/storage/pkg/chunked/internal/minimal/compression.go
- vendor/go.podman.io/storage/pkg/chunked/toc/toc.go
- vendor/go.podman.io/storage/pkg/homedir/homedir_unix.go
- vendor/go.podman.io/storage/pkg/idtools/idtools.go
- vendor/go.podman.io/storage/pkg/idtools/idtools_unix.go
- vendor/go.podman.io/storage/pkg/idtools/usergroupadd_linux.go
- vendor/go.podman.io/storage/pkg/ioutils/temp_windows.go
- vendor/go.podman.io/storage/pkg/lockfile/lockfile.go
- vendor/go.podman.io/storage/pkg/lockfile/lockfile_unix.go
- vendor/go.podman.io/storage/pkg/pools/pools.go
💤 Files with no reviewable changes (1)
- vendor/github.com/docker/go-connections/tlsconfig/config_client_ciphers.go
🧰 Additional context used
🧬 Code graph analysis (3)
vendor/github.com/google/pprof/profile/merge.go (1)
vendor/github.com/google/pprof/profile/profile.go (2)
Sample(75-98)
Profile(35-63)
vendor/github.com/containers/libhvee/pkg/wmiext/conversion.go (1)
vendor/github.com/go-ole/go-ole/variant.go (1)
NewVariant(6-8)
vendor/github.com/containers/libhvee/pkg/hypervctl/vm.go (2)
vendor/github.com/containers/libhvee/pkg/hypervctl/drive_settings_builder.go (1)
NewDriveSettingsBuilder(41-43)vendor/github.com/containers/libhvee/pkg/hypervctl/vhd_storage_settings.go (1)
VirtualHardDiskStorageSettings(8-13)
🪛 ast-grep (0.39.5)
vendor/go.podman.io/image/v5/docker/docker_client.go
[warning] 229-236: MinVersionis missing from this TLS configuration.  By default, TLS 1.2 is currently used as the minimum when acting as a client, and TLS 1.0 when acting as a server. General purpose web applications should default to TLS 1.3 with all other protocols disabled.  Only where it is known that a web server must support legacy clients with unsupported an insecure browsers (such as Internet Explorer 10), it may be necessary to enable TLS 1.0 to provide support. AddMinVersion: tls.VersionTLS13' to the TLS configuration to bump the minimum version to TLS 1.3.
Context: tls.Config{
// As of 2025-08, tlsconfig.ClientDefault() differs from Go 1.23 defaults only in CipherSuites;
// so, limit us to only using that value. If go-connections/tlsconfig changes its policy, we
// will want to consider that and make a decision whether to follow suit.
// There is some chance that eventually the Go default will be to require TLS 1.3, and that point
// we might want to drop the dependency on go-connections entirely.
CipherSuites: tlsconfig.ClientDefault().CipherSuites,
}
Note: [CWE-327]: Use of a Broken or Risky Cryptographic Algorithm [OWASP A03:2017]: Sensitive Data Exposure [OWASP A02:2021]: Cryptographic Failures [REFERENCES]
https://owasp.org/Top10/A02_2021-Cryptographic_Failures
(missing-ssl-minversion-go)
🪛 markdownlint-cli2 (0.18.1)
vendor/github.com/mattn/go-sqlite3/README.md
354-354: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
354-354: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (18)
- GitHub Check: build (macOS-14, 1.24)
- GitHub Check: build (macOS-13, 1.24)
- GitHub Check: verify-devcontainer
- GitHub Check: Run OKD bundle with crc (1.24)
- GitHub Check: build-qe (linux, amd64)
- GitHub Check: build-qe (windows, amd64)
- GitHub Check: build-qe (darwin, arm64)
- GitHub Check: build-qe (linux, arm64)
- GitHub Check: build (windows-2022, 1.24)
- GitHub Check: build-qe (darwin, amd64)
- GitHub Check: Konflux kflux-prd-rh02 / crc-binary-on-pull-request
- GitHub Check: build (ubuntu-latest, 1.24)
- GitHub Check: build-installer (windows-2022, 1.24)
- GitHub Check: build (windows-2022, 1.24)
- GitHub Check: build (macOS-14, 1.24)
- GitHub Check: build (macOS-13, 1.24)
- GitHub Check: build (ubuntu-latest, 1.24)
- GitHub Check: build (ubuntu-22.04, 1.24)
🔇 Additional comments (128)
vendor/go.podman.io/image/v5/manifest/oci_index.go (1)
5-5: Import migration looks correct.Switching to the go.podman.io path keeps the manifest wrapper aligned with the monorepo move and preserves existing behavior.
pkg/crc/image/image.go (1)
20-23: Import path migration looks correct.The go.podman.io paths expose the same APIs, so this aligns with the monorepo switch without changing behavior.
vendor/go.podman.io/image/v5/internal/image/sourced.go (1)
9-9: LGTM! Import path correctly updated for monorepo migration.The import path change from
github.com/containers/image/v5/typestogo.podman.io/image/v5/typesis correct and aligns with the PR's objective to migrate to the go.podman.io monorepo. This change resolves the strongunits type mismatch issue mentioned in the PR description while maintaining API compatibility.vendor/go.podman.io/image/v5/manifest/docker_schema2_list.go (1)
4-4: LGTM! Import path migration is correct.The import path update from
github.com/containers/image/v5/internal/manifesttogo.podman.io/image/v5/internal/manifestcorrectly reflects the monorepo migration described in the PR objectives. The relative package structure is preserved, and all type aliases and wrapper functions continue to work without modification.vendor/github.com/containers/libhvee/pkg/wmiext/array.go (2)
44-44: LGTM: Appropriate linter suppression for Windows API interop.The
nolint:govetdirective is justified here. Converting the uintptr return value fromprocSafeArrayCreateVector.Call()to*ole.SafeArrayrequiresunsafe.Pointer, which govet flags. This pattern is standard for Windows COM/OLE API calls in Go, and the code includes a NULL check before the conversion.
150-155: LGTM: Improved readability with explicit conditional.The refactored implementation makes the intent clearer by explicitly returning
falseforVT_RECORDandVT_VARIANTtypes, thentruefor all others. The logic is functionally identical to the previous version but more readable.vendor/go.podman.io/image/v5/internal/useragent/useragent.go (1)
3-3: LGTM! Import path correctly updated to monorepo.The import path change from
github.com/containers/image/v5/versiontogo.podman.io/image/v5/versioncorrectly implements the monorepo migration objective.vendor/go.podman.io/image/v5/internal/image/unparsed.go (1)
8-13: LGTM – import path migration complete. No remaininggithub.com/containers/image/v5imports invendor/, andgo.modreferences the correctgo.podman.iomodules.vendor/github.com/containers/libhvee/pkg/hypervctl/vm_config.go (1)
104-106: LGTM! Well-documented field addition.The new
DVDDiskPathfield is clearly documented and follows the existing struct field patterns. This addition enables optional DVD drive functionality for scenarios like cloud-init, which aligns with the PR objectives.vendor/github.com/containers/libhvee/pkg/hypervctl/vm.go (1)
221-221: LGTM! More idiomatic string replacement.Using
strings.ReplaceAllis the preferred way to replace all occurrences of a substring in Go, making the intent clearer than usingstrings.Replacewith-1.vendor/github.com/proglottis/gpgme/gpgme.go (1)
880-884: LGTM! Correctly implemented method addition.The new
Fingerprint()method follows the established pattern in this file: it accesses the C fingerprint field, converts it to a Go string, and properly callsruntime.KeepAlive(k)to prevent premature garbage collection. The implementation is consistent with other similar accessor methods likeIssuerSerial()andChainID().vendor/github.com/mattn/go-sqlite3/sqlite3_opt_userauth.go (4)
48-50: Public API now returns unsupported errors.All public authentication methods (
Authenticate,AuthUserAdd,AuthUserChange,AuthUserDelete) now immediately returnerrUserAuthNoLongerSupported, andAuthEnabledreturnsfalse. This correctly implements the deprecation of SQLite's user authentication extension.The implementation is consistent and aligns with the upstream removal of this feature as documented in the referenced GitHub issue #1341.
Also applies to: 73-75, 100-102, 130-132, 151-153
61-63: Internal methods return error codes.The internal
authenticate*andauthEnabledfunctions now return appropriate error/disabled codes (1for SQLITE_ERROR,0for disabled) instead of performing actual authentication. This matches the expected behavior when the feature is no longer supported.Also applies to: 91-93, 121-123, 146-148, 164-166
1-168: Document the SQLite user authentication deprecation.This vendor update reflects upstream go-sqlite3's removal of user authentication support. Since this is a breaking change in the vendored dependency:
- Verify that the
sqlite_userauthbuild tag is not used in your project's build configuration- Consider documenting this breaking change in the PR description or release notes if this update is part of a release
- If user authentication was previously used, you'll need to implement an alternative authentication mechanism
Based on the PR objectives, this appears to be a side effect of broader dependency updates related to the go.podman.io monorepo migration. If SQLite user authentication is not used in the project, this change should be safe.
30-32: Ensure no usage of deprecated sqlite_userauth functions
This update removes SQLite user authentication support and introduceserrUserAuthNoLongerSupported. Our automated search found no calls toAuthenticate,AuthUser*, orAuthEnabled, but please manually verify that no code relies on these methods before merging.vendor/go.podman.io/image/v5/internal/manifest/docker_schema2_list.go (1)
10-12: LGTM: Import migration complete. No remaininggithub.com/containers/{image,storage,common}imports in non-vendored code; legacy references in vendored comments are expected.vendor/go.podman.io/image/v5/internal/putblobdigest/put_blob_digest.go (1)
7-7: LGTM: Import path correctly migrated to go.podman.io monorepo.The import path change from
github.com/containers/image/v5/typestogo.podman.io/image/v5/typesis correct and aligns with the PR's objective of migrating to the Podman monorepo structure. No functional changes were made.vendor/go.podman.io/image/v5/copy/progress_bars.go (1)
12-13: LGTM: Import paths correctly migrated to go.podman.io monorepo.Both import path changes are correct:
go.podman.io/image/v5/internal/private
go.podman.io/image/v5/typesThese align with the PR's objective of migrating to the Podman monorepo structure. No functional changes were made.
vendor/go.podman.io/image/v5/internal/image/memory.go (1)
7-7: LGTM: Import path correctly migrated to go.podman.io monorepo.The import path change from
github.com/containers/image/v5/typestogo.podman.io/image/v5/typesis correct and consistent with the monorepo migration. No functional changes were made.vendor/go.podman.io/image/v5/docker/policyconfiguration/naming.go (1)
8-8: LGTM: Import path correctly migrated to go.podman.io monorepo.The import path change from
github.com/containers/image/v5/docker/referencetogo.podman.io/image/v5/docker/referenceis correct and aligns with the monorepo migration. No functional changes were made.vendor/go.podman.io/image/v5/docker/cache.go (1)
4-5: LGTM: Import paths correctly migrated to go.podman.io monorepo.Both import path changes are correct:
go.podman.io/image/v5/docker/reference
go.podman.io/image/v5/typesThese align with the PR's objective of migrating to the Podman monorepo structure. No functional changes were made.
vendor/go.podman.io/image/v5/manifest/oci.go (1)
13-15: LGTM: Import paths correctly migrated to go.podman.io monorepo.All three import path changes are correct:
go.podman.io/image/v5/internal/manifest
go.podman.io/image/v5/pkg/compression/types
go.podman.io/image/v5/typesThese align with the PR's objective of migrating to the Podman monorepo structure. No functional changes were made.
vendor/go.podman.io/image/v5/docker/reference/regexp.go (1)
7-7: LGTM: Import path correctly migrated to go.podman.io monorepo.The import path change from
github.com/containers/storage/pkg/regexptogo.podman.io/storage/pkg/regexpis correct. This extends the monorepo migration to the storage module, which aligns with the PR's objective of migrating containers/{image,storage,common} packages. No functional changes were made.vendor/go.podman.io/image/v5/internal/pkg/platform/platform_matcher.go (1)
29-29: LGTM: Import path correctly migrated to go.podman.io monorepo.The import path change from
github.com/containers/image/v5/typestogo.podman.io/image/v5/typesis correct and consistent with the monorepo migration. No functional changes were made.vendor/go.podman.io/common/LICENSE (1)
1-201: LGTM! Standard Apache 2.0 license.This is a standard Apache License, Version 2.0 text file added for the new go.podman.io/common vendor module.
vendor/go.podman.io/image/v5/internal/imagesource/impl/signatures.go (1)
7-7: LGTM! Import path successfully migrated to monorepo.The import path has been correctly updated from
github.com/containers/image/v5/internal/signaturetogo.podman.io/image/v5/internal/signature, consistent with the PR's goal of switching to the Podman monorepo.vendor/go.podman.io/image/v5/internal/manifest/oci_index.go (1)
15-17: LGTM! Import paths correctly updated to monorepo.All three import paths have been properly migrated from
github.com/containers/image/v5togo.podman.io/image/v5, maintaining consistency with the broader import path refactoring in this PR.vendor/go.podman.io/image/v5/internal/imagedestination/stubs/signatures.go (1)
8-8: LGTM! Import path updated correctly.The import has been successfully migrated to
go.podman.io/image/v5/internal/signature, consistent with the monorepo migration.vendor/go.podman.io/image/v5/internal/tmpdir/tmpdir.go (2)
7-7: LGTM! Import path migrated correctly.The import has been updated to
go.podman.io/image/v5/types.
12-12: LGTM! Documentation updated to reflect new import path.The ldflags comment has been correctly updated to reference the new monorepo path:
go.podman.io/image/v5/internal/tmpdir.unixTempDirForBigFiles.vendor/go.podman.io/image/v5/docker/docker_image.go (1)
14-17: LGTM! All Docker image imports migrated to monorepo.All four import paths have been successfully updated from
github.com/containers/image/v5togo.podman.io/image/v5, maintaining consistency with the monorepo migration.vendor/github.com/google/pprof/profile/merge.go (2)
20-20: LGTM! Added slices import for standard library usage.The
slicespackage import is added to support the refactored zero-sample check below.
82-86: LGTM! Cleaner implementation using standard library.The code has been refactored to use
slices.ContainsFuncinstead of a manual loop, which is more idiomatic and maintains the same behavior: re-merging the profile if any zero samples are detected.vendor/go.podman.io/image/v5/docker/docker_client.go (2)
26-38: LGTM! Import paths successfully migrated to monorepo.All import paths have been correctly updated from
github.com/containers/*and related packages togo.podman.io/image/v5andgo.podman.io/storage, consistent with the PR's monorepo migration goals.
231-236: Note static analysis finding on TLS configuration.The TLS configuration now explicitly sets
CipherSuitesfromtlsconfig.ClientDefault(). The static analysis tool correctly identifies thatMinVersionis not set, which means it will default to TLS 1.2 for clients.Since this is vendor code from upstream
go.podman.io/image/v5, and the comment indicates the developers are aware of TLS version considerations, this is acceptable for this PR. If the missingMinVersionis a concern for your security requirements, consider reporting it upstream to the go.podman.io maintainers.Based on static analysis hints.
vendor/github.com/containers/libhvee/pkg/wmiext/conversion.go (2)
350-350: LGTM - naming improvement.The rename from
daySecondstodayTimebetter reflects that this constant represents atime.Durationvalue rather than a raw integer count of seconds.Also applies to: 356-357
438-438: LGTM - safe type inference.Using type inference (
var stamp = secs) is safe here sincesecsis alreadyuint64fromparseUintChain.vendor/github.com/google/pprof/profile/profile.go (2)
738-738: LGTM - good simplification.Replacing the explicit loop with
slices.Containsis more concise and idiomatic for Go 1.24+.
849-862: Vendor modification: confirm Unsymbolizable behavior and update upstream
- Avoid editing
vendor/github.com/google/pprof/profile/profile.godirectly; propose this change upstream in google/pprof and re-vendor.- Verify that treating
m.File == ""and all/memfd:prefixes as unsymbolizable is intentional.- Add unit tests for these edge cases and a code comment explaining why they’re unsymbolizable.
vendor/github.com/google/pprof/profile/prune.go (1)
44-44: LGTM - consistent modernization.Good use of
slices.Containsconsistent with the changes in profile.go.go.mod (4)
3-5: LGTM - Go version updates.The Go version bump to 1.24.2 and toolchain to 1.24.6 align with using modern stdlib features like the
slicespackage used in the pprof vendor updates.
57-58: LGTM - Podman monorepo migration.The addition of
go.podman.io/commonandgo.podman.io/image/v5modules correctly replaces the previouscontainers/*imports, aligning with the PR objective to switch to the Podman monorepo.
95-97: Verify dependency updates for breaking changes.Several dependencies have been updated to newer versions:
docker/docker→ v28.4.0
docker/go-connections→ v0.6.0 (new dependency)
google/go-containerregistry→ v0.20.4
google/pprof→ latest snapshot
mattn/go-sqlite3→ v1.14.32- Security-related packages (gpgme, go-securesystemslib, fulcio)
google.golang.org/protobuf→ v1.36.8While these appear to be minor/patch updates, please verify:
- The docker/go-connections v0.6.0 addition doesn't introduce new TLS or connection handling behavior that could affect registry operations.
- The protobuf v1.36.8 update maintains compatibility with the existing codebase.
Based on learnings: The retrieved context indicates these are standard dependency updates in the Podman ecosystem. The docker/go-connections update includes TLS-related changes, so extra testing of registry connectivity would be prudent.
Also applies to: 119-122, 140-140, 158-164, 189-192
17-17: Verify strongunits import path migration in libhvee update
Confirm that [email protected] replaces all imports of "github.com/containers/common/pkg/strongunits" with "go.podman.io/common/pkg/strongunits".vendor/github.com/docker/go-connections/tlsconfig/config.go (1)
1-245: LGTM! Vendor update aligns with security best practices.This vendor update removes support for password-protected private keys, which aligns with Go's deprecation of legacy PEM encryption (RFC 1423) due to its vulnerability to padding oracle attacks. The consolidation of cipher suite defaults and TLS configuration via
defaultConfigimproves consistency between client and server configurations.Key changes:
- Removed
Passphrasefield andIsErrEncryptedKeyfunction (breaking API change in vendor)- Encrypted keys now return
errEncryptedKeyDeprecatedwith clear guidance- Shared
defaultCipherSuitesfor both client and server- Centralized TLS config creation via
defaultConfigpkg/crc/validation/validation.go (1)
12-12: LGTM! Import path migration is correct.The import path update from
github.com/containers/common/pkg/strongunitstogo.podman.io/common/pkg/strongunitsaligns with the PR's objective to migrate to the Podman monorepo. No functional changes are introduced.vendor/github.com/containers/libhvee/pkg/hypervctl/vhd.go (1)
10-10: LGTM! Vendor update reflects upstream libhvee changes.The import path update in the vendored libhvee package aligns with the PR's objective to update the libhvee dependency. This change resolves the mismatched strongunits types mentioned in the PR description.
pkg/drivers/libhvee/libhvee_windows.go (1)
15-15: LGTM! Import path migration resolves compilation error.The import path update from
github.com/containers/common/pkg/strongunitstogo.podman.io/common/pkg/strongunitsfixes the compilation error mentioned in the PR description (mismatched types at Line 295). BothnewSizeandcurrentSize.ToBytes()now use the samestrongunits.Btype from the unified module path.pkg/crc/machine/start_test.go (1)
10-10: LGTM! Import path migration is correct.The import path update maintains test compatibility while migrating to the Podman monorepo. No test logic changes are introduced.
pkg/crc/config/validations.go (1)
8-8: LGTM! Import path migration is correct.The import path update from
github.com/containers/common/pkg/strongunitstogo.podman.io/common/pkg/strongunitsis consistent with the repository-wide migration to the Podman monorepo. No functional changes are introduced.pkg/crc/api/handlers.go (1)
7-7: LGTM! Import path migration is correct.The import path update maintains API compatibility while migrating to the Podman monorepo. The
strongunits.MiBandstrongunits.GiBusage ingetStartConfig(Lines 126-127) remains functionally identical.vendor/go.podman.io/image/v5/manifest/list.go (1)
5-5: LGTM!Import path correctly updated to use the go.podman.io monorepo structure.
cmd/crc/cmd/start.go (1)
13-13: LGTM!Strongunits import correctly migrated to go.podman.io module path, resolving the type mismatch issue described in the PR.
vendor/go.podman.io/image/v5/internal/unparsedimage/wrapper.go (1)
6-8: LGTM!Import paths consistently updated to go.podman.io/image/v5 module structure.
vendor/go.podman.io/image/v5/copy/manifest.go (1)
12-16: LGTM!Import paths consistently migrated to go.podman.io/image/v5 module, preserving aliases.
pkg/crc/machine/status.go (1)
9-9: LGTM!Strongunits import correctly updated to go.podman.io module path.
pkg/crc/api/api_client_test.go (1)
10-10: LGTM!Strongunits import correctly updated in test file.
pkg/crc/constants/constants.go (1)
10-10: LGTM!Strongunits import correctly migrated to go.podman.io module path.
pkg/crc/cluster/cluster.go (1)
18-18: LGTM!Strongunits import correctly updated to go.podman.io module path, maintaining all existing functionality.
vendor/go.podman.io/image/v5/directory/directory_transport.go (1)
11-15: LGTM! Import path migration is correct.The import paths have been successfully migrated from
github.com/containers/image/v5/...togo.podman.io/image/v5/...as intended by the PR. No functional changes introduced.vendor/go.podman.io/image/v5/internal/imagesource/wrapper.go (1)
7-10: LGTM! Import path migration is correct.The import paths have been successfully migrated from
github.com/containers/image/v5/...togo.podman.io/image/v5/...as intended by the PR. No functional changes introduced.vendor/go.podman.io/image/v5/copy/copy.go (1)
15-28: LGTM! Import path migration is correct.All import paths have been successfully migrated from
github.com/containers/image/v5/...togo.podman.io/image/v5/...across multiple subpackages. No functional changes introduced.test/e2e/testsuite/testsuite.go (1)
22-22: LGTM! Import path migration resolves type mismatch.The import path has been successfully migrated from
github.com/containers/common/pkg/strongunitstogo.podman.io/common/pkg/strongunits. This aligns with the PR objective and resolves the build error caused by mismatched strongunits types.pkg/crc/machine/status_test.go (1)
7-7: LGTM! Import path migration is correct.The import path has been successfully migrated from
github.com/containers/common/pkg/strongunitstogo.podman.io/common/pkg/strongunits, consistent with the monorepo migration.pkg/crc/machine/driver.go (1)
6-6: LGTM! Import path migration is correct.The import path has been successfully migrated from
github.com/containers/common/pkg/strongunitstogo.podman.io/common/pkg/strongunits, consistent with the monorepo migration.pkg/crc/machine/types/types.go (1)
8-8: LGTM! Import path migration is correct.The import path has been successfully migrated from
github.com/containers/common/pkg/strongunitstogo.podman.io/common/pkg/strongunits. All strongunits type usages (MiB, GiB, B) in the file remain unchanged and compatible.vendor/go.podman.io/image/v5/internal/blobinfocache/types.go (1)
5-6: LGTM! Import path migration is correct.The import paths have been successfully migrated from
github.com/containers/image/v5/...togo.podman.io/image/v5/...as intended by the PR. No functional changes introduced.vendor/go.podman.io/image/v5/pkg/blobinfocache/memory/memory.go (1)
10-13: LGTM! Import paths correctly migrated to go.podman.io monorepo.The import paths have been successfully updated from
github.com/containers/image/v5togo.podman.io/image/v5for internal dependencies. This aligns with the PR objective of migrating to the Podman monorepo structure.vendor/go.podman.io/image/v5/internal/manifest/list.go (1)
8-9: LGTM! Import paths correctly migrated to go.podman.io monorepo.The compression types and image types imports have been properly updated to reference the Podman monorepo namespace.
vendor/go.podman.io/image/v5/pkg/blobinfocache/internal/prioritize/prioritize.go (1)
12-15: LGTM! Import paths correctly migrated to go.podman.io monorepo.All four image-related imports have been successfully migrated to the Podman monorepo namespace, maintaining consistency with the broader migration effort.
vendor/go.podman.io/image/v5/internal/imagedestination/wrapper.go (1)
8-11: LGTM! Import paths correctly migrated to go.podman.io monorepo.The imagedestination internal dependencies have been properly migrated to the Podman monorepo structure.
vendor/go.podman.io/image/v5/internal/image/manifest.go (1)
8-10: LGTM! Import paths correctly migrated to go.podman.io monorepo.The docker reference, manifest, and types imports have been successfully updated to the Podman monorepo namespace.
vendor/go.podman.io/image/v5/internal/manifest/manifest.go (1)
10-10: LGTM! Import path correctly migrated to go.podman.io monorepo.The compression types import has been properly updated to reference the Podman monorepo.
vendor/go.podman.io/image/v5/pkg/blobinfocache/none/none.go (1)
6-7: LGTM! Import paths correctly migrated to go.podman.io monorepo.The blobinfocache internal and types imports have been successfully updated to the Podman monorepo namespace.
vendor/go.podman.io/image/v5/pkg/blobinfocache/default.go (1)
9-12: LGTM! Import paths correctly migrated to go.podman.io monorepo.All four imports including rootless, memory cache, SQLite cache, and types have been properly migrated to the Podman monorepo namespace. The default cache behavior remains unchanged.
pkg/crc/machine/start.go (1)
14-14: LGTM! Clean import path migration.The import path has been correctly updated from
github.com/containers/common/pkg/strongunitstogo.podman.io/common/pkg/strongunits. The usage ofstrongunits.MiB(14336)at line 44 remains unchanged, confirming backward compatibility.vendor/go.podman.io/image/v5/internal/image/docker_list.go (1)
7-8: LGTM! Vendor file correctly updated.Import paths successfully migrated from
containers/image/v5/*togo.podman.io/image/v5/*. As a vendor file, this should be auto-generated bygo mod vendor, which aligns with the module updates in go.mod.vendor/go.podman.io/image/v5/manifest/common.go (1)
7-8: LGTM! Import aliases preserved correctly.The import paths have been updated to
go.podman.io/image/v5/*while preserving the import aliases (compressiontypesandtypes), ensuring all references throughout the file remain valid.vendor/go.podman.io/image/v5/internal/imagedestination/impl/helpers.go (1)
4-5: LGTM! Internal import paths correctly migrated.Import paths successfully updated to
go.podman.io/image/v5/internal/*. The functionOriginalCandidateMatchesTryReusingBlobOptionsremains functionally unchanged.vendor/go.podman.io/image/v5/internal/image/docker_schema2.go (1)
16-20: LGTM! Comprehensive import path migration.All image-related imports successfully migrated to the
go.podman.io/image/v5/*module namespace. The function signatures and logic throughout the file remain unchanged, confirming a clean mechanical refactor.vendor/go.podman.io/image/v5/copy/encryption.go (1)
11-11: LGTM! Targeted import update.The types import has been correctly updated to
go.podman.io/image/v5/typeswhile appropriately preserving other external dependencies likegithub.com/containers/ocicrypt.vendor/go.podman.io/image/v5/internal/blobinfocache/blobinfocache.go (1)
5-5: LGTM! Interface definitions preserved.The types import has been updated to
go.podman.io/image/v5/types. All type references liketypes.BlobInfoCacheremain valid, preserving the interface definitions.pkg/crc/config/settings_test.go (1)
8-8: LGTM – strongunits import updated correctly. Test logic is unchanged; failures arise from the missing GPGMe cgo dependency. Please verify tests pass in a CGO‐enabled environment (e.g. CGO_ENABLED=1).vendor/go.podman.io/image/v5/copy/blob.go (1)
10-12: Import path migration looks good.Namespaces now align with the go.podman.io monorepo without touching logic.
vendor/go.podman.io/image/v5/directory/directory_dest.go (1)
14-20: Directory transport imports updated correctly.The switch to go.podman.io modules keeps the build aligned with the new monorepo.
pkg/crc/machine/config/config.go (1)
5-5: Strongunits import matches the podman monorepo.This resolves the cross-module type mismatch introduced by the upstream move.
vendor/go.podman.io/image/v5/internal/image/oci_index.go (1)
7-8: Manifest/types import switch verified.The file now consistently targets go.podman.io/image/v5 packages; behavior unchanged.
cmd/crc/cmd/status.go (1)
14-14: Status command now imports strongunits from go.podman.io.Keeps the CLI in sync with the module migration.
vendor/go.podman.io/image/v5/manifest/docker_schema2.go (1)
9-12: LGTM! Import paths correctly migrated to monorepo.The import paths have been successfully updated from
github.com/containers/image/v5/*togo.podman.io/image/v5/*, aligning with the PR's objective to migrate to the Podman monorepo.vendor/go.podman.io/image/v5/copy/sign.go (1)
7-13: LGTM! Import paths correctly migrated to monorepo.All signature-related imports have been successfully updated to use the Podman monorepo paths.
vendor/go.podman.io/image/v5/manifest/docker_schema1.go (1)
13-18: LGTM! Import paths correctly migrated to monorepo.The imports have been updated to use both
go.podman.io/image/v5/*andgo.podman.io/storage/*paths, which is consistent with the broader monorepo migration.vendor/go.podman.io/image/v5/internal/image/oci.go (1)
13-18: LGTM! Import paths correctly migrated to monorepo.The internal image handling imports have been successfully updated to use the Podman monorepo paths.
vendor/go.podman.io/image/v5/manifest/manifest.go (1)
9-10: LGTM! Import paths correctly migrated to monorepo.The manifest package imports have been successfully updated to use the Podman monorepo paths.
vendor/go.podman.io/image/v5/internal/imagedestination/impl/compat.go (1)
8-11: LGTM! Import paths correctly migrated to monorepo.The image destination compatibility layer imports have been successfully updated to use the Podman monorepo paths.
vendor/go.podman.io/image/v5/copy/single.go (1)
20-30: LGTM! Import paths correctly migrated to monorepo.All copy-related imports have been successfully updated to use both
go.podman.io/image/v5/*andgo.podman.io/storage/*paths, which is consistent with the broader monorepo migration.vendor/go.podman.io/image/v5/internal/imagesource/impl/compat.go (1)
7-8: LGTM! Import paths correctly migrated to monorepo.The image source compatibility layer imports have been successfully updated to use the Podman monorepo paths.
vendor/go.podman.io/image/v5/directory/directory_src.go (1)
10-15: LGTM! Import path migration is correct.The import paths have been successfully updated from
github.com/containers/image/v5/*togo.podman.io/image/v5/*, consistent with the Podman monorepo migration objective.vendor/go.podman.io/image/v5/internal/private/private.go (1)
10-14: LGTM! Import paths correctly migrated.All import paths have been updated to use
go.podman.io/image/v5/*, maintaining compatibility with existing interface definitions.vendor/go.podman.io/image/v5/copy/compression.go (1)
11-16: LGTM! Dual package migration is correct.Import paths have been successfully updated for both the image library (
go.podman.io/image/v5/*) and the storage library (go.podman.io/storage/*), consistent with the monorepo migration.vendor/go.podman.io/image/v5/internal/image/docker_schema1.go (2)
9-11: LGTM! Import paths correctly updated.Import paths successfully migrated to
go.podman.io/image/v5/*.
205-205: Nice improvement: Using constants instead of hardcoded strings.Replacing hardcoded media type strings with
manifest.DockerV2Schema2LayerMediaTypeandmanifest.DockerV2Schema2ConfigMediaTypeconstants improves maintainability and reduces the risk of typos.Also applies to: 220-220
vendor/go.podman.io/image/v5/copy/multiple.go (1)
16-21: LGTM! Import migration is correct.All import paths successfully updated to
go.podman.io/image/v5/*, with theinternalManifestalias properly preserved.pkg/crc/api/client/types.go (1)
7-7: LGTM! strongunits import correctly migrated.The import path has been updated to
go.podman.io/common/pkg/strongunits, which resolves the type mismatch issue mentioned in the PR description (after the corresponding libhvee update).vendor/go.podman.io/image/v5/internal/imagesource/impl/layer_infos.go (1)
7-7: LGTM—allgithub.com/containers/image/v5/typesimports have been replaced.vendor/github.com/mattn/go-sqlite3/sqlite3ext.h (2)
709-710: LGTM!The macro definition correctly maps the public API function to the function pointer in the
sqlite3_api_routinesstruct, following the established pattern for all SQLite extension APIs.
374-375: LGTM – Verified thatsetlk_timeoutmatches the SQLite 3.50.0 API signature (int sqlite3_setlk_timeout(sqlite3*,int ms,int flags)).vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h (22)
137-137: Doc-only change.
150-152: SQLite core bumped to 3.50.4 — verify downstream cgo/build flags compatibilityThe header now declares 3.50.4. Please confirm:
- the amalgamation source compiled by go-sqlite3 matches this header version, and
- any custom SQLite compile options (threading, mutex, extensions) are consistent.
This avoids ODR/symbol drift when linking statically vs. system lib.
1167-1172: Doc-only addition: new file-control (BLOCK_ON_CONNECT) description.
1269-1269: New file-control opcode SQLITE_FCNTL_BLOCK_ON_CONNECT (44)Looks good and sequential after 43. Please verify no internal usages assumed old opcode values and that any VFS hooks (if you have custom VFS) ignore unknown opcodes by returning SQLITE_NOTFOUND as required.
1988-2009: Doc-only edits around SQLITE_CONFIG_LOOKASIDE.
2246-2290: Doc-only edits around SQLITE_DBCONFIG_LOOKASIDE.
3026-3063: New API sqlite3_setlk_timeout() and flag SQLITE_SETLK_BLOCK_ON_CONNECT
- Declaration is always present; behavior depends on SQLITE_ENABLE_SETLK_TIMEOUT and VFS support. If you plan to call this, guard usage (e.g., check sqlite3_compileoption_used("ENABLE_SETLK_TIMEOUT")) or tolerate SQLITE_OK no-op on builds without support.
- Ensure any WAL usage with connect-block semantics is deliberate when passing SQLITE_SETLK_BLOCK_ON_CONNECT.
No ABI concerns spotted; good addition.
4083-4094: Doc-only tweak (create_filename param wording).
5180-5185: Doc-only note.
5815-5832: Doc-only: new SQLITE_SELFORDER1 flag docs.
11778-11778: New flag SQLITE_CHANGESETSTART_INVERT (0x0002) for sqlite3changeset_start_v2Good to see parity with apply_v2’s INVERT flag. If any code inverted at start using the apply flag previously, switch to this START_INVERT for correctness and clarity.
6762-6775: Doc-only (Win32 directory helpers).
6839-6868: Doc-only.
9989-10004: Doc-only (vtab config).
10101-10102: Doc-only (vtab_nochange).
10136-10137: Doc-only (vtab collation).
10230-10231: Doc-only (vtab distinct).
10303-10304: Doc-only (vtab IN constraints).
10350-10352: Doc-only (vtab IN iterators).
10393-10394: Doc-only (vtab rhs value).
10682-10701: Doc-only (pre-update hook).
11752-11754: Doc-only (API experimental note).
These go packages were migrated to a monorepo, as stated in the https://blog.podman.io/2025/08/migration-to-the-container-libs-monorepo-is-complete/. This commit updates the crc package to use these packages from new locations. It was generated using following commands: ``` $ find . -type f -name '*.go' -exec sed -i -e 's,"github.com/containers/image,"go.podman.io/image,g' {} \; $ find . -type f -name '*.go' -exec sed -i -e 's,"github.com/containers/common,"go.podman.io/common,g' {} \; $ find . -type f -name '*.go' -exec sed -i -e 's,"github.com/containers/storage,"go.podman.io/storage,g' {} \; $ goimports -v -w . $ git checkout vendor/ $ git checkout tools/vendor $ vi go.mod # to change the storage, image and common imports $ go mod tidy $ go mod vendor ``` Signed-off-by: Jan Kaluza <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️  Outside diff range comments (1)
vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h (1)
13709-13718: Document the new FTS5 API version.The new
xColumnLocale/xTokenize_v2entries meanfts5_api.iVersionis now at least 4, but the comment on Line 13713 still states “Currently always set to 3”. Extension authors rely on that comment to gate new functionality; leaving it stale will cause them to skip the new fields altogether. Please update the version note (and any related docs) to advertise the bumped version.
♻️ Duplicate comments (1)
vendor/go.podman.io/common/pkg/strongunits/config.go (1)
57-60: Naming inconsistency already noted in previous review.The function
ToMib(line 58) should beToMiBto match the naming convention ofToKiB(line 53) andToGiB(line 63), and to align with theMiBtype name (line 12).Since this is a vendored file from the go.podman.io monorepo, this inconsistency should be addressed upstream in the Podman project rather than in this PR.
🧹 Nitpick comments (10)
vendor/github.com/mattn/go-sqlite3/README.md (1)
354-354: Fix markdown emphasis style for consistency.The static analysis tool flags the emphasis style as inconsistent. Per MD049 rules, use underscores instead of asterisks for emphasis.
Apply this diff to align with markdown style conventions:
-***This is deprecated*** +___This is deprecated___vendor/github.com/mattn/go-sqlite3/sqlite3_opt_userauth.go (9)
30-33: Make the unsupported state easy to detect and surface deprecation in docs.Consider exporting the sentinel and adding Deprecated: notices to the affected APIs for clearer
errors.Ismatching and godoc visibility.var ( - ErrUnauthorized = errors.New("SQLITE_AUTH: Unauthorized") - ErrAdminRequired = errors.New("SQLITE_AUTH: Unauthorized; Admin Privileges Required") - errUserAuthNoLongerSupported = errors.New("sqlite3: the sqlite_userauth tag is no longer supported as the userauth extension is no longer supported by the SQLite authors, see https://github.com/mattn/go-sqlite3/issues/1341") + ErrUnauthorized = errors.New("SQLITE_AUTH: Unauthorized") + ErrAdminRequired = errors.New("SQLITE_AUTH: Unauthorized; Admin Privileges Required") + // ErrUserAuthNoLongerSupported is returned when sqlite_userauth is enabled but unsupported. + ErrUserAuthNoLongerSupported = errors.New("sqlite3: the sqlite_userauth tag is no longer supported as the userauth extension is no longer supported by the SQLite authors, see https://github.com/mattn/go-sqlite3/issues/1341") )And update call sites below to return
ErrUserAuthNoLongerSupported.
62-63: Prefer named constants over magic numbers.Return SQLite error via named constant for readability.
-func (c *SQLiteConn) authenticate(username, password string) int { - return 1 +func (c *SQLiteConn) authenticate(username, password string) int { + return int(C.SQLITE_ERROR) }
74-75: AuthUserAdd: unsupported error is fine; add Deprecated: to doc.Mark this API as deprecated to avoid misleading IDE/tooling hints.
92-93: Prefer named constants over magic numbers.Use
int(C.SQLITE_ERROR)instead of1.-func (c *SQLiteConn) authUserAdd(username, password string, admin int) int { - return 1 +func (c *SQLiteConn) authUserAdd(username, password string, admin int) int { + return int(C.SQLITE_ERROR) }
101-102: AuthUserChange: unsupported error is fine; add Deprecated: to doc.Same deprecation note suggestion as above.
122-123: Prefer named constants over magic numbers.Use
int(C.SQLITE_ERROR).-func (c *SQLiteConn) authUserChange(username, password string, admin int) int { - return 1 +func (c *SQLiteConn) authUserChange(username, password string, admin int) int { + return int(C.SQLITE_ERROR) }
131-132: AuthUserDelete: unsupported error is fine; add Deprecated: to doc.Keep behavior but surface deprecation in comments.
147-148: Prefer named constants over magic numbers.Use
int(C.SQLITE_ERROR)for clarity.-func (c *SQLiteConn) authUserDelete(username string) int { - return 1 +func (c *SQLiteConn) authUserDelete(username string) int { + return int(C.SQLITE_ERROR) }
152-153: AuthEnabled always false: LGTM.Consistent with de-supported feature. Consider a
// Deprecated: always returns false.doc note.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
- go.sumis excluded by- !**/*.sum
📒 Files selected for processing (107)
- cmd/crc/cmd/start.go(1 hunks)
- cmd/crc/cmd/status.go(1 hunks)
- go.mod(10 hunks)
- pkg/crc/api/api_client_test.go(1 hunks)
- pkg/crc/api/client/types.go(1 hunks)
- pkg/crc/api/handlers.go(1 hunks)
- pkg/crc/cluster/cluster.go(1 hunks)
- pkg/crc/config/settings_test.go(1 hunks)
- pkg/crc/config/validations.go(1 hunks)
- pkg/crc/constants/constants.go(1 hunks)
- pkg/crc/image/image.go(1 hunks)
- pkg/crc/machine/config/config.go(1 hunks)
- pkg/crc/machine/driver.go(1 hunks)
- pkg/crc/machine/start.go(1 hunks)
- pkg/crc/machine/start_test.go(1 hunks)
- pkg/crc/machine/status.go(1 hunks)
- pkg/crc/machine/status_test.go(1 hunks)
- pkg/crc/machine/types/types.go(1 hunks)
- pkg/crc/validation/validation.go(1 hunks)
- pkg/drivers/libhvee/libhvee_windows.go(1 hunks)
- test/e2e/testsuite/testsuite.go(1 hunks)
- vendor/github.com/containers/libhvee/pkg/hypervctl/vhd.go(1 hunks)
- vendor/github.com/containers/libhvee/pkg/hypervctl/vm.go(2 hunks)
- vendor/github.com/containers/libhvee/pkg/hypervctl/vm_config.go(1 hunks)
- vendor/github.com/containers/libhvee/pkg/wmiext/array.go(2 hunks)
- vendor/github.com/containers/libhvee/pkg/wmiext/conversion.go(2 hunks)
- vendor/github.com/docker/go-connections/tlsconfig/config.go(7 hunks)
- vendor/github.com/docker/go-connections/tlsconfig/config_client_ciphers.go(0 hunks)
- vendor/github.com/google/pprof/profile/merge.go(2 hunks)
- vendor/github.com/google/pprof/profile/profile.go(3 hunks)
- vendor/github.com/google/pprof/profile/prune.go(2 hunks)
- vendor/github.com/mattn/go-sqlite3/README.md(1 hunks)
- vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h(71 hunks)
- vendor/github.com/mattn/go-sqlite3/sqlite3_opt_userauth.go(10 hunks)
- vendor/github.com/mattn/go-sqlite3/sqlite3ext.h(2 hunks)
- vendor/github.com/proglottis/gpgme/gpgme.go(1 hunks)
- vendor/go.podman.io/common/LICENSE(1 hunks)
- vendor/go.podman.io/common/pkg/strongunits/config.go(1 hunks)
- vendor/go.podman.io/image/v5/copy/blob.go(1 hunks)
- vendor/go.podman.io/image/v5/copy/compression.go(1 hunks)
- vendor/go.podman.io/image/v5/copy/copy.go(1 hunks)
- vendor/go.podman.io/image/v5/copy/encryption.go(1 hunks)
- vendor/go.podman.io/image/v5/copy/manifest.go(1 hunks)
- vendor/go.podman.io/image/v5/copy/multiple.go(1 hunks)
- vendor/go.podman.io/image/v5/copy/progress_bars.go(1 hunks)
- vendor/go.podman.io/image/v5/copy/progress_channel.go(1 hunks)
- vendor/go.podman.io/image/v5/copy/sign.go(1 hunks)
- vendor/go.podman.io/image/v5/copy/single.go(1 hunks)
- vendor/go.podman.io/image/v5/directory/directory_dest.go(1 hunks)
- vendor/go.podman.io/image/v5/directory/directory_src.go(1 hunks)
- vendor/go.podman.io/image/v5/directory/directory_transport.go(1 hunks)
- vendor/go.podman.io/image/v5/directory/explicitfilepath/path.go(1 hunks)
- vendor/go.podman.io/image/v5/docker/cache.go(1 hunks)
- vendor/go.podman.io/image/v5/docker/docker_client.go(2 hunks)
- vendor/go.podman.io/image/v5/docker/docker_image.go(1 hunks)
- vendor/go.podman.io/image/v5/docker/docker_image_dest.go(1 hunks)
- vendor/go.podman.io/image/v5/docker/docker_image_src.go(1 hunks)
- vendor/go.podman.io/image/v5/docker/docker_transport.go(1 hunks)
- vendor/go.podman.io/image/v5/docker/policyconfiguration/naming.go(1 hunks)
- vendor/go.podman.io/image/v5/docker/reference/regexp.go(1 hunks)
- vendor/go.podman.io/image/v5/docker/registries_d.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/blobinfocache/blobinfocache.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/blobinfocache/types.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/image/docker_list.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/image/docker_schema1.go(3 hunks)
- vendor/go.podman.io/image/v5/internal/image/docker_schema2.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/image/manifest.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/image/memory.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/image/oci.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/image/oci_index.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/image/sourced.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/image/unparsed.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/imagedestination/impl/compat.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/imagedestination/impl/helpers.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/imagedestination/impl/properties.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/imagedestination/stubs/put_blob_partial.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/imagedestination/stubs/signatures.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/imagedestination/wrapper.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/imagesource/impl/compat.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/imagesource/impl/layer_infos.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/imagesource/impl/signatures.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/imagesource/stubs/get_blob_at.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/imagesource/wrapper.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/manifest/docker_schema2_list.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/manifest/list.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/manifest/manifest.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/manifest/oci_index.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/pkg/platform/platform_matcher.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/private/private.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/putblobdigest/put_blob_digest.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/signer/signer.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/streamdigest/stream_digest.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/tmpdir/tmpdir.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/unparsedimage/wrapper.go(1 hunks)
- vendor/go.podman.io/image/v5/internal/useragent/useragent.go(1 hunks)
- vendor/go.podman.io/image/v5/manifest/common.go(1 hunks)
- vendor/go.podman.io/image/v5/manifest/docker_schema1.go(1 hunks)
- vendor/go.podman.io/image/v5/manifest/docker_schema2.go(1 hunks)
- vendor/go.podman.io/image/v5/manifest/docker_schema2_list.go(1 hunks)
- vendor/go.podman.io/image/v5/manifest/list.go(1 hunks)
- vendor/go.podman.io/image/v5/manifest/manifest.go(1 hunks)
- vendor/go.podman.io/image/v5/manifest/oci.go(1 hunks)
- vendor/go.podman.io/image/v5/manifest/oci_index.go(1 hunks)
- vendor/go.podman.io/image/v5/pkg/blobinfocache/default.go(1 hunks)
- vendor/go.podman.io/image/v5/pkg/blobinfocache/internal/prioritize/prioritize.go(1 hunks)
- vendor/go.podman.io/image/v5/pkg/blobinfocache/memory/memory.go(1 hunks)
- vendor/go.podman.io/image/v5/pkg/blobinfocache/none/none.go(1 hunks)
⛔ Files not processed due to max files limit (61)
- vendor/go.podman.io/image/v5/pkg/blobinfocache/sqlite/sqlite.go
- vendor/go.podman.io/image/v5/pkg/compression/compression.go
- vendor/go.podman.io/image/v5/pkg/compression/types/types.go
- vendor/go.podman.io/image/v5/pkg/docker/config/config.go
- vendor/go.podman.io/image/v5/pkg/sysregistriesv2/shortnames.go
- vendor/go.podman.io/image/v5/pkg/sysregistriesv2/system_registries_v2.go
- vendor/go.podman.io/image/v5/signature/docker.go
- vendor/go.podman.io/image/v5/signature/fulcio_cert.go
- vendor/go.podman.io/image/v5/signature/internal/json.go
- vendor/go.podman.io/image/v5/signature/internal/sequoia/gosequoia.c
- vendor/go.podman.io/image/v5/signature/internal/sequoia/gosequoia.h
- vendor/go.podman.io/image/v5/signature/internal/sequoia/gosequoiafuncs.h
- vendor/go.podman.io/image/v5/signature/internal/sequoia/sequoia.go
- vendor/go.podman.io/image/v5/signature/internal/sequoia/sequoia.h
- vendor/go.podman.io/image/v5/signature/internal/sigstore_payload.go
- vendor/go.podman.io/image/v5/signature/mechanism.go
- vendor/go.podman.io/image/v5/signature/mechanism_gpgme.go
- vendor/go.podman.io/image/v5/signature/mechanism_gpgme_only.go
- vendor/go.podman.io/image/v5/signature/mechanism_openpgp.go
- vendor/go.podman.io/image/v5/signature/mechanism_sequoia.go
- vendor/go.podman.io/image/v5/signature/pki_cert.go
- vendor/go.podman.io/image/v5/signature/policy_config.go
- vendor/go.podman.io/image/v5/signature/policy_config_sigstore.go
- vendor/go.podman.io/image/v5/signature/policy_eval.go
- vendor/go.podman.io/image/v5/signature/policy_eval_baselayer.go
- vendor/go.podman.io/image/v5/signature/policy_eval_signedby.go
- vendor/go.podman.io/image/v5/signature/policy_eval_sigstore.go
- vendor/go.podman.io/image/v5/signature/policy_eval_simple.go
- vendor/go.podman.io/image/v5/signature/policy_reference_match.go
- vendor/go.podman.io/image/v5/signature/signer/signer.go
- vendor/go.podman.io/image/v5/signature/sigstore/internal/signer.go
- vendor/go.podman.io/image/v5/signature/sigstore/signer.go
- vendor/go.podman.io/image/v5/signature/simple.go
- vendor/go.podman.io/image/v5/signature/simplesigning/signer.go
- vendor/go.podman.io/image/v5/transports/stub.go
- vendor/go.podman.io/image/v5/transports/transports.go
- vendor/go.podman.io/image/v5/types/types.go
- vendor/go.podman.io/image/v5/version/version.go
- vendor/go.podman.io/storage/pkg/archive/archive.go
- vendor/go.podman.io/storage/pkg/archive/archive_linux.go
- vendor/go.podman.io/storage/pkg/archive/archive_unix.go
- vendor/go.podman.io/storage/pkg/archive/archive_windows.go
- vendor/go.podman.io/storage/pkg/archive/changes.go
- vendor/go.podman.io/storage/pkg/archive/changes_linux.go
- vendor/go.podman.io/storage/pkg/archive/changes_other.go
- vendor/go.podman.io/storage/pkg/archive/changes_unix.go
- vendor/go.podman.io/storage/pkg/archive/changes_windows.go
- vendor/go.podman.io/storage/pkg/archive/copy.go
- vendor/go.podman.io/storage/pkg/archive/diff.go
- vendor/go.podman.io/storage/pkg/archive/fflags_bsd.go
- vendor/go.podman.io/storage/pkg/chunked/compressor/compressor.go
- vendor/go.podman.io/storage/pkg/chunked/internal/minimal/compression.go
- vendor/go.podman.io/storage/pkg/chunked/toc/toc.go
- vendor/go.podman.io/storage/pkg/homedir/homedir_unix.go
- vendor/go.podman.io/storage/pkg/idtools/idtools.go
- vendor/go.podman.io/storage/pkg/idtools/idtools_unix.go
- vendor/go.podman.io/storage/pkg/idtools/usergroupadd_linux.go
- vendor/go.podman.io/storage/pkg/ioutils/temp_windows.go
- vendor/go.podman.io/storage/pkg/lockfile/lockfile.go
- vendor/go.podman.io/storage/pkg/lockfile/lockfile_unix.go
- vendor/go.podman.io/storage/pkg/pools/pools.go
💤 Files with no reviewable changes (1)
- vendor/github.com/docker/go-connections/tlsconfig/config_client_ciphers.go
✅ Files skipped from review due to trivial changes (4)
- vendor/go.podman.io/image/v5/internal/imagedestination/stubs/put_blob_partial.go
- pkg/crc/config/validations.go
- pkg/crc/machine/start_test.go
- vendor/go.podman.io/image/v5/internal/imagesource/impl/layer_infos.go
🚧 Files skipped from review as they are similar to previous changes (67)
- pkg/crc/api/handlers.go
- vendor/github.com/containers/libhvee/pkg/hypervctl/vm.go
- vendor/go.podman.io/image/v5/internal/imagesource/impl/compat.go
- pkg/crc/machine/types/types.go
- pkg/crc/api/api_client_test.go
- pkg/crc/machine/driver.go
- vendor/github.com/mattn/go-sqlite3/sqlite3ext.h
- vendor/go.podman.io/image/v5/internal/image/unparsed.go
- pkg/crc/machine/config/config.go
- vendor/go.podman.io/image/v5/manifest/docker_schema1.go
- vendor/go.podman.io/image/v5/internal/blobinfocache/blobinfocache.go
- pkg/crc/machine/status_test.go
- vendor/go.podman.io/image/v5/manifest/oci_index.go
- vendor/go.podman.io/image/v5/pkg/blobinfocache/none/none.go
- vendor/go.podman.io/image/v5/manifest/docker_schema2_list.go
- vendor/github.com/containers/libhvee/pkg/wmiext/array.go
- vendor/go.podman.io/image/v5/copy/progress_bars.go
- vendor/go.podman.io/image/v5/internal/manifest/manifest.go
- vendor/go.podman.io/image/v5/internal/signer/signer.go
- cmd/crc/cmd/status.go
- pkg/crc/constants/constants.go
- vendor/go.podman.io/image/v5/internal/imagedestination/wrapper.go
- vendor/go.podman.io/image/v5/internal/manifest/docker_schema2_list.go
- vendor/github.com/google/pprof/profile/profile.go
- vendor/go.podman.io/image/v5/internal/unparsedimage/wrapper.go
- pkg/drivers/libhvee/libhvee_windows.go
- vendor/go.podman.io/image/v5/manifest/docker_schema2.go
- vendor/go.podman.io/image/v5/docker/reference/regexp.go
- vendor/go.podman.io/image/v5/manifest/list.go
- vendor/go.podman.io/image/v5/internal/imagesource/wrapper.go
- vendor/go.podman.io/image/v5/copy/single.go
- vendor/github.com/containers/libhvee/pkg/wmiext/conversion.go
- pkg/crc/machine/start.go
- test/e2e/testsuite/testsuite.go
- vendor/github.com/containers/libhvee/pkg/hypervctl/vhd.go
- vendor/go.podman.io/image/v5/internal/image/sourced.go
- vendor/github.com/containers/libhvee/pkg/hypervctl/vm_config.go
- vendor/go.podman.io/image/v5/internal/image/docker_schema1.go
- vendor/go.podman.io/image/v5/internal/streamdigest/stream_digest.go
- pkg/crc/cluster/cluster.go
- vendor/go.podman.io/image/v5/internal/tmpdir/tmpdir.go
- pkg/crc/validation/validation.go
- vendor/go.podman.io/image/v5/internal/imagesource/stubs/get_blob_at.go
- vendor/go.podman.io/image/v5/internal/pkg/platform/platform_matcher.go
- vendor/go.podman.io/image/v5/pkg/blobinfocache/default.go
- vendor/github.com/google/pprof/profile/merge.go
- vendor/go.podman.io/image/v5/internal/useragent/useragent.go
- vendor/go.podman.io/image/v5/copy/encryption.go
- vendor/go.podman.io/image/v5/copy/copy.go
- pkg/crc/config/settings_test.go
- cmd/crc/cmd/start.go
- vendor/go.podman.io/image/v5/manifest/manifest.go
- vendor/go.podman.io/image/v5/docker/registries_d.go
- vendor/go.podman.io/image/v5/internal/imagesource/impl/signatures.go
- vendor/go.podman.io/image/v5/internal/imagedestination/impl/properties.go
- vendor/go.podman.io/image/v5/docker/policyconfiguration/naming.go
- pkg/crc/image/image.go
- vendor/go.podman.io/image/v5/manifest/common.go
- vendor/go.podman.io/image/v5/internal/image/oci_index.go
- vendor/go.podman.io/image/v5/copy/manifest.go
- vendor/go.podman.io/image/v5/internal/blobinfocache/types.go
- vendor/go.podman.io/image/v5/internal/image/oci.go
- vendor/go.podman.io/image/v5/pkg/blobinfocache/memory/memory.go
- vendor/go.podman.io/image/v5/copy/multiple.go
- vendor/go.podman.io/image/v5/internal/image/manifest.go
- vendor/go.podman.io/image/v5/internal/putblobdigest/put_blob_digest.go
- pkg/crc/machine/status.go
🧰 Additional context used
🪛 ast-grep (0.39.6)
vendor/go.podman.io/image/v5/docker/docker_client.go
[warning] 229-236: MinVersionis missing from this TLS configuration.  By default, TLS 1.2 is currently used as the minimum when acting as a client, and TLS 1.0 when acting as a server. General purpose web applications should default to TLS 1.3 with all other protocols disabled.  Only where it is known that a web server must support legacy clients with unsupported an insecure browsers (such as Internet Explorer 10), it may be necessary to enable TLS 1.0 to provide support. AddMinVersion: tls.VersionTLS13' to the TLS configuration to bump the minimum version to TLS 1.3.
Context: tls.Config{
// As of 2025-08, tlsconfig.ClientDefault() differs from Go 1.23 defaults only in CipherSuites;
// so, limit us to only using that value. If go-connections/tlsconfig changes its policy, we
// will want to consider that and make a decision whether to follow suit.
// There is some chance that eventually the Go default will be to require TLS 1.3, and that point
// we might want to drop the dependency on go-connections entirely.
CipherSuites: tlsconfig.ClientDefault().CipherSuites,
}
Note: [CWE-327]: Use of a Broken or Risky Cryptographic Algorithm [OWASP A03:2017]: Sensitive Data Exposure [OWASP A02:2021]: Cryptographic Failures [REFERENCES]
https://owasp.org/Top10/A02_2021-Cryptographic_Failures
(missing-ssl-minversion-go)
🪛 markdownlint-cli2 (0.18.1)
vendor/github.com/mattn/go-sqlite3/README.md
354-354: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
354-354: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Konflux kflux-prd-rh02 / crc-binary-on-pull-request
🔇 Additional comments (39)
vendor/github.com/mattn/go-sqlite3/README.md (1)
352-356: Clarify why a vendored file is being modified.Vendored files typically remain unchanged; modifications should be applied upstream in the original repository. This change adds a deprecation marker to the User Authentication section, but the PR objectives focus on migrating imports to the go.podman.io monorepo and updating libhvee, with no mention of go-sqlite3 documentation changes.
Please confirm whether this modification is intentional and how it relates to the stated PR objectives.
vendor/github.com/proglottis/gpgme/gpgme.go (1)
880-884: LGTM! Well-implemented accessor method.The new
Fingerprint()method correctly follows the established pattern for accessor methods in this file, properly converting the C field to a Go string and ensuring the Key remains alive during the operation. This provides helpful API consistency with the existingSubKey.Fingerprint()method.vendor/go.podman.io/image/v5/internal/image/docker_schema2.go (1)
16-20: LGTM! Import paths correctly migrated to the monorepo.The import paths have been successfully updated from
github.com/containers/image/v5togo.podman.io/image/v5, with all five imports consistently using the new monorepo path. No functional changes were made to the code logic, which is appropriate for this vendor dependency update.vendor/go.podman.io/image/v5/internal/imagedestination/impl/helpers.go (1)
4-5: LGTM! Import paths correctly updated for monorepo migration.The import paths have been properly updated from
github.com/containers/image/v5togo.podman.io/image/v5, aligning with the PR's objective to migrate to the Podman monorepo. This vendor update ensures type consistency across the codebase.vendor/github.com/google/pprof/profile/prune.go (1)
22-22: LGTM! Clean refactor from upstream.The addition of the
slicesimport and the use ofslices.Containsto replace the manual loop is a good improvement. This vendored update from google/pprof simplifies the code while maintaining identical semantics.Also applies to: 44-44
vendor/go.podman.io/image/v5/internal/imagedestination/stubs/signatures.go (1)
8-8: LGTM! Import path correctly updated for monorepo migration.The import path change from
github.com/containers/image/v5/internal/signaturetogo.podman.io/image/v5/internal/signatureis correct and aligns with the PR objectives. This vendored file reflects the upstream migration to the Podman monorepo, with no functional changes.vendor/go.podman.io/image/v5/directory/explicitfilepath/path.go (1)
8-8: LGTM! Import path correctly migrated to monorepo.The import path change from
github.com/containers/storage/pkg/fileutilstogo.podman.io/storage/pkg/fileutilsis consistent with the PR's objective to migrate to the go.podman.io monorepo. Since this is a vendored dependency file and no code logic changed beyond the import, the API remains compatible.vendor/go.podman.io/image/v5/docker/docker_transport.go (1)
9-12: LGTM! Import migration to monorepo is correct.The import paths have been correctly updated from
github.com/containers/image/v5/...togo.podman.io/image/v5/...as part of the vendored dependency update. All four imports are consistently using the new module path with the/v5major version, and no logic changes are present in the file.vendor/go.podman.io/image/v5/pkg/blobinfocache/internal/prioritize/prioritize.go (1)
12-15: LGTM! Import paths correctly updated for monorepo migration—migration is complete and consistent.The import changes from
github.com/containers/image/v5/*togo.podman.io/image/v5/*are correct. The verification confirms no old import paths remain in non-vendored code, indicating the migration is complete across the codebase.All four internal imports updated correctly:
internal/blobinfocache
internal/manifest
pkg/compression
typesExternal dependencies (opencontainers, logrus) correctly remain unchanged.
vendor/go.podman.io/image/v5/internal/private/private.go (1)
10-14: Import paths correctly updated for monorepo migration.The vendored imports have been mechanically updated from
github.com/containers/image/v5togo.podman.io/image/v5. Verification confirms no lingering old import paths in the source code, and allgo.podman.ioimports (including the relocatedstrongunitsfromgo.podman.io/common/pkg/strongunits) are active throughout the codebase, resolving the type mismatch mentioned in the PR.vendor/go.podman.io/image/v5/internal/image/docker_list.go (1)
7-8: LGTM! Import paths correctly updated for monorepo migration.The import path changes from
github.com/containers/image/v5/*togo.podman.io/image/v5/*on lines 7-8 are correct and verified. The vendor directory has been properly regenerated with the newgo.podman.io/image/v5 v5.37.0dependency, and no old import references remain in non-vendor code.vendor/go.podman.io/image/v5/manifest/oci.go (1)
13-15: Import migration to go.podman.io verified, but strongunits type resolution claim is unverified.The import path updates from
github.com/containers/image/v5/*togo.podman.io/image/v5/*are correct and consistent. No references to old paths remain in non-vendor code, and the new imports are in use throughout the codebase.However,
strongunits.Boriginates from separate dependencies (libhvee, vfkit), not the image package being migrated. Whether this PR actually resolves the libhvee v0.10.0 type mismatch requires build verification.Please confirm:
- Build succeeds with these changes
- The strongunits.B type mismatch error is resolved (verify compile/test output)
vendor/go.podman.io/image/v5/internal/imagedestination/impl/compat.go (1)
8-11: Import path migration looks good.The import paths have been correctly updated from
github.com/containers/image/v5togo.podman.io/image/v5, consistent with the monorepo migration.vendor/go.podman.io/image/v5/internal/image/memory.go (1)
7-7: LGTM.Import path correctly updated to the Podman monorepo module.
vendor/go.podman.io/image/v5/directory/directory_transport.go (1)
11-15: LGTM.All import paths correctly migrated to
go.podman.io/image/v5namespace.vendor/go.podman.io/image/v5/docker/cache.go (1)
4-5: LGTM.Import paths properly updated for the monorepo migration.
vendor/go.podman.io/image/v5/internal/manifest/list.go (1)
8-9: LGTM.Import paths correctly updated to Podman monorepo structure.
vendor/go.podman.io/image/v5/internal/manifest/oci_index.go (1)
15-17: LGTM.Import path updates are consistent with the monorepo migration.
vendor/go.podman.io/image/v5/directory/directory_src.go (1)
10-15: LGTM.All internal import paths correctly migrated to the Podman monorepo namespace.
vendor/go.podman.io/image/v5/docker/docker_client.go (2)
26-37: LGTM.Import paths correctly updated to use the Podman monorepo modules.
230-237: Note TLS MinVersion configuration.Static analysis correctly identifies that
MinVersionis not set in the TLS config. The current Go default for clients is TLS 1.2, but TLS 1.3 is recommended. The inline comment acknowledges awareness of this issue and suggests it may be addressed when Go's defaults change.Since this is vendored code from
go.podman.io/image/v5, any fix would need to come from upstream. The current configuration restricts onlyCipherSuitesper thetlsconfig.ClientDefault()policy.As per static analysis hints
vendor/go.podman.io/common/LICENSE (1)
1-201: LGTM: Standard Apache 2.0 license for new vendor dependency.This is the expected license file for the new go.podman.io/common module being vendored as part of the monorepo migration.
vendor/go.podman.io/image/v5/copy/compression.go (1)
11-16: LGTM: Import path migration to Podman monorepo.These import path updates from
github.com/containers/image/v5/*togo.podman.io/image/v5/*are the expected mechanical changes for the monorepo migration. No logic changes.vendor/go.podman.io/image/v5/copy/blob.go (1)
10-12: LGTM: Import path migration to Podman monorepo.Mechanical import path updates consistent with the broader monorepo migration.
go.mod (3)
3-5: LGTM: Go toolchain version updates.Minor Go version bump to 1.24.2 with explicit toolchain 1.24.6. These updates are appropriate for dependency compatibility.
16-16: LGTM: Critical libhvee update fixes strongunits type mismatch.This libhvee version update to
v0.10.1-0.20250902114412-a85aab2976a4is essential to resolve the build failure mentioned in the PR description:invalid operation: newSize == currentSize.ToBytes() (mismatched types "go.podman.io/common/pkg/strongunits".B and "github.com/containers/common/pkg/strongunits".B)The updated libhvee version includes the monorepo migration, ensuring type compatibility.
59-60: LGTM: Podman monorepo modules added.The addition of
go.podman.io/commonandgo.podman.io/image/v5modules completes the migration fromcontainers/*to the Podman monorepo, as intended by this PR.vendor/github.com/docker/go-connections/tlsconfig/config.go (2)
42-50: Verify: Consolidated default cipher suites.The
DefaultServerAcceptedCiphersnow references a new shareddefaultCipherSuitesvariable. This consolidates cipher suite configuration between client and server. The cipher suite list itself appears unchanged, maintaining the same secure ciphers.
133-162: No actionable concerns found—breaking change has no impact on this codebase.Verification confirms that the removed APIs (
Options.Passphrase,IsErrEncryptedKey) are not used anywhere in the codebase. The docker/go-connections library is only an indirect dependency, and the codebase does not directly use the tlsconfig package. Additionally, the only private key file in the repository (test/extended/util/rootCA.key) is unencrypted PKCS8 format, not the legacy encrypted PEM format being deprecated by the vendor library. The codebase uses its own TLS and SSH abstractions independent of the tlsconfig implementation.vendor/go.podman.io/image/v5/copy/progress_channel.go (1)
7-7: LGTM: Import path migration to Podman monorepo.Mechanical import path update consistent with the monorepo migration.
vendor/go.podman.io/image/v5/copy/sign.go (1)
7-13: LGTM: Import path migration to Podman monorepo.Mechanical import path updates for multiple image-related packages, consistent with the broader monorepo migration.
vendor/go.podman.io/image/v5/docker/docker_image_src.go (1)
22-32: LGTM: Import path migration to Podman monorepo.Comprehensive import path updates from
github.com/containers/image/v5/*andgithub.com/containers/storage/*togo.podman.io/image/v5/*andgo.podman.io/storage/*respectively. These mechanical changes are consistent with the monorepo migration objectives.vendor/go.podman.io/image/v5/docker/docker_image_dest.go (1)
24-38: LGTM! Import paths successfully migrated to go.podman.io monorepo.The import path updates from
containers/image/v5togo.podman.io/image/v5are consistent and complete. This vendored file correctly reflects the upstream monorepo migration.vendor/go.podman.io/image/v5/directory/directory_dest.go (1)
14-21: LGTM! Import paths correctly updated.The migration from
containers/image/v5andcontainers/storageto theirgo.podman.ioequivalents is complete and consistent with the broader monorepo migration.vendor/go.podman.io/image/v5/docker/docker_image.go (1)
14-17: LGTM! Imports correctly migrated.The import path updates are consistent with the monorepo migration across all image-related packages.
pkg/crc/api/client/types.go (1)
7-7: LGTM! Import migration resolves the strongunits type mismatch.This import path update from
github.com/containers/common/pkg/strongunitstogo.podman.io/common/pkg/strongunitsis essential for resolving the build error mentioned in the PR description. The strongunits.B type usage in ClusterStatusResult (lines 27-32) remains compatible with the new import path.vendor/go.podman.io/common/pkg/strongunits/config.go (1)
1-65: LGTM! New vendored strongunits package successfully integrated.This vendored file introduces the strongunits package under the new
go.podman.io/commonimport path, which is necessary for the monorepo migration. The implementation provides proper type definitions and conversion utilities for storage units (B, KiB, MiB, GiB).vendor/github.com/mattn/go-sqlite3/sqlite3_opt_userauth.go (2)
165-166: authEnabled returns 0 (disabled): LGTM.Matches documented return contract (0 disabled / 1 enabled).
49-50: No project callers affected—change is safe.Verification confirms the project has no dependencies on the userauth functionality: no build tags enable
sqlite_userauth, no code calls the userauth APIs, and no error sentinels are referenced. The behavior change to return a hard error is safe.
| @redbeam: The following tests failed, say  
 Full PR test history. Your PR dashboard. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. | 
Follow-up of #4902, with the addition of an update of the
github.com/containers/libhveepackage.This is needed because after the migration, we were getting this error during build:
due to using v.0.10.0 of
libhveethat doesn't contain the repo switch and is thus causing problems.Summary by CodeRabbit
New Features
Refactor
Chores
Documentation