Skip to content

[Bug]: The buildx_rule generate a lockfile that has a platform specific dependency #4

@farcop

Description

@farcop

What happened?

I have tested this PR merged #1 and the issue persists.
If we generate MODULE.bazel.lock on one platform, it will not work on another.

INFO: Repository aspect_rules_buildx++buildx+buildx_configuration instantiated at:
  <builtin>: in <toplevel>
Repository rule configure_buildx defined at:
  /private/var/tmp/_bazel_farcop/e66529431dbede3bc951f821053136ab/external/aspect_rules_buildx+/buildx/repositories.bzl:80:35: in <toplevel>
ERROR: /private/var/tmp/_bazel_farcop/e66529431dbede3bc951f821053136ab/external/aspect_rules_buildx+/buildx/repositories.bzl:65:21: An error occurred during the fetch of repository 'aspect_rules_buildx++buildx+buildx_configuration':
   Traceback (most recent call last):
        File "/private/var/tmp/_bazel_farcop/e66529431dbede3bc951f821053136ab/external/aspect_rules_buildx+/buildx/repositories.bzl", line 65, column 21, in _impl_configure_buildx
                fail("Failed to create buildx driver %s: \nSTDERR:\n%s\nsSTDOUT:\n%s" % (builder_name, r.stderr, r.stdout))
Error in fail: Failed to create buildx driver rules_buildx_builder: 
STDERR:
/private/var/tmp/_bazel_farcop/e66529431dbede3bc951f821053136ab/external/aspect_rules_buildx++buildx+buildx_linux-amd64/buildx: /private/var/tmp/_bazel_farcop/e66529431dbede3bc951f821053136ab/external/aspect_rules_buildx++buildx+buildx_linux-amd64/buildx: cannot execute binary file

sSTDOUT:
ERROR: no such package '@@aspect_rules_buildx++buildx+buildx_configuration//': Failed to create buildx driver rules_buildx_builder: 
STDERR:
/private/var/tmp/_bazel_farcop/e66529431dbede3bc951f821053136ab/external/aspect_rules_buildx++buildx+buildx_linux-amd64/buildx: /private/var/tmp/_bazel_farcop/e66529431dbede3bc951f821053136ab/external/aspect_rules_buildx++buildx+buildx_linux-amd64/buildx: cannot execute binary file

sSTDOUT:
ERROR: /private/var/tmp/_bazel_farcop/e66529431dbede3bc951f821053136ab/external/aspect_rules_buildx+/buildx/BUILD.bazel:15:19: @@aspect_rules_buildx+//buildx:resolved_toolchain depends on @@aspect_rules_buildx++buildx+buildx_darwin-arm64//:buildx_toolchain in repository @@aspect_rules_buildx++buildx+buildx_darwin-arm64 which failed to fetch. no such package '@@aspect_rules_buildx++buildx+buildx_configuration//': Failed to create buildx driver rules_buildx_builder: 
STDERR:
/private/var/tmp/_bazel_farcop/e66529431dbede3bc951f821053136ab/external/aspect_rules_buildx++buildx+buildx_linux-amd64/buildx: /private/var/tmp/_bazel_farcop/e66529431dbede3bc951f821053136ab/external/aspect_rules_buildx++buildx+buildx_linux-amd64/buildx: cannot execute binary file

sSTDOUT:
ERROR: Analysis of target '//nonhermetic/os-cert-generator:image' failed; build aborted: Analysis failed
INFO: Elapsed time: 1.691s, Critical Path: 0.82s
INFO: 1 process: 1 internal.

Version

Development (host) and target OS/architectures:

Output of bazel --version: 8.3.1

Version of the Aspect rules, or other relevant rules from your
WORKSPACE or MODULE.bazel file: 0.0.1

Language(s) and/or frameworks involved:

How to reproduce

  1. Using aspect_rules_buildx generate MODULE.bazel.lock on darwin_arm64
  2. Try to build target on the linux_amd64 PC.

Any other information?

MODULE.bazel.lock still contains that platform specific block:

          "buildx_configuration": {
            "repoRuleId": "@@aspect_rules_buildx+//buildx:repositories.bzl%configure_buildx",
            "attributes": {
              "buildx": "@@aspect_rules_buildx++buildx+buildx_linux-amd64//:buildx"
            }
          },

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions