Skip to content

use ape awk to replace gawk#219

Open
comicfans wants to merge 1 commit intobazel-contrib:mainfrom
comicfans:use_ape_awk
Open

use ape awk to replace gawk#219
comicfans wants to merge 1 commit intobazel-contrib:mainfrom
comicfans:use_ape_awk

Conversation

@comicfans
Copy link
Copy Markdown

this allow creating sysroot that directly referenced by cc toolchain.

in my test I have following setup

apt.install(
    name = "jammy_x86_64_sysroot",
    lock = "//sysroot_creator:jammy_x86_64.lock.json",
    manifest = "//sysroot_creator:jammy_x86_64.yaml",
)
use_repo(apt, "jammy_x86_64_sysroot")

and

def _unpack_impl(ctx):
    out_dir = ctx.actions.declare_directory(ctx.label.name + "_unpacked")

    ctx.actions.run_shell(
        inputs = [ctx.file.tar],
        outputs = [out_dir],
        command = """ tar -xf {src} -C {out}""".format(src = ctx.file.tar.path, out = out_dir.path)
    )

    return [DefaultInfo(files = depset([out_dir]))]

unpack = rule(
    implementation = _unpack_impl,
    attrs = {
        "tar": attr.label(mandatory = True, allow_single_file = True)
    }
)

...

unpack(
    name = "jammy_unpack",
    tar = "@jammy_x86_64_sysroot//:jammy_x86_64_sysroot",  # or @jammy_x86_64_sysroot//:flat
    visibility = ["//visibility:public"]
)

# and jammy_unpack is used as cc toolchain sysroot

#124 (comment) mentioned that gawk is only used by flatten, however directly using @jammy_x86_64_sysroot//:jammy_x86_64_sysroot or @jammy_x86_64_sysroot//:flat as my unpack rule input trigger similar errors:

     @@rules_distroless++apt+jammy_x86_64_sysroot//:jammy_x86_64_sysroot (5c3ac65ce1c8329cc5f7202959c1aceda00db4bbc8a0148931c8e5ed92b61cf2)
    @@rules_distroless++apt+jammy_x86_64_sysroot//:jammy_x86_64_sysroot (fcc255dcd92f8a7c8464439d77cfb04da9617fbc87079de9a2f3462df62874c2)
    @@rules_distroless++apt+jammy_x86_64_sysroot//:dpkg_status (fcc255dcd92f8a7c8464439d77cfb04da9617fbc87079de9a2f3462df62874c2)
.-> @@gawk+//:gawk (38c6768e959f095860edbca0f0d106bbb7ba105ca378e880c8947a6ed3a0b464)
|   @@bazel_tools//tools/cpp:current_cc_toolchain (38c6768e959f095860edbca0f0d106bbb7ba105ca378e880c8947a6ed3a0b464)
|   @@rules_cc+//cc:current_cc_toolchain (38c6768e959f095860edbca0f0d106bbb7ba105ca378e880c8947a6ed3a0b464)
|   @@toolchains_llvm++llvm+llvm_toolchain//:cc-clang-x86_64-linux (38c6768e959f095860edbca0f0d106bbb7ba105ca378e880c8947a6ed3a0b464)
|   @@toolchains_llvm++llvm+llvm_toolchain//:module-x86_64-linux (38c6768e959f095860edbca0f0d106bbb7ba105ca378e880c8947a6ed3a0b464)
|   @@toolchains_llvm++llvm+llvm_toolchain//:include-components-x86_64-linux (38c6768e959f095860edbca0f0d106bbb7ba105ca378e880c8947a6ed3a0b464)
|   @@toolchains_llvm++llvm+llvm_toolchain//:sysroot-components-x86_64-linux (38c6768e959f095860edbca0f0d106bbb7ba105ca378e880c8947a6ed3a0b464)
|   //sysroot_creator:jammy_unpack (38c6768e959f095860edbca0f0d106bbb7ba105ca378e880c8947a6ed3a0b464)
|   @@rules_distroless++apt+jammy_x86_64_sysroot//:flat (38c6768e959f095860edbca0f0d106bbb7ba105ca378e880c8947a6ed3a0b464)
`-- @@gawk+//:gawk (38c6768e959f095860edbca0f0d106bbb7ba105ca378e880c8947a6ed3a0b464)

this allow creating sysroot that used by cc toolchain
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant