Skip to content

Commit

Permalink
build: add Bazel workspace and toolchains
Browse files Browse the repository at this point in the history
  • Loading branch information
malt3 committed Jan 31, 2023
1 parent bec82c2 commit 731b316
Show file tree
Hide file tree
Showing 19 changed files with 1,222 additions and 0 deletions.
12 changes: 12 additions & 0 deletions .bazelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
build --incompatible_enable_cc_toolchain_resolution
build --platforms @zig_sdk//libc_aware/platform:linux_amd64_gnu.2.34
build --extra_toolchains @zig_sdk//libc_aware/toolchain:linux_amd64_gnu.2.34

build:linux_amd64 --platforms @zig_sdk//libc_aware/platform:linux_amd64_gnu.2.34
build:linux_amd64 --extra_toolchains @zig_sdk//libc_aware/toolchain:linux_amd64_gnu.2.34
build:linux_arm64 --platforms @zig_sdk//libc_aware/platform:linux_arm64_gnu.2.34
build:linux_arm64 --extra_toolchains @zig_sdk//libc_aware/toolchain:linux_arm64_gnu.2.34
build:linux_amd64_static --platforms @zig_sdk//platform:linux_amd64
build:linux_amd64_static --extra_toolchains @zig_sdk//toolchain:linux_amd64_musl
build:linux_arm64_static --platforms @zig_sdk//platform:linux_arm64
build:linux_arm64_static --extra_toolchains @zig_sdk//toolchain:linux_arm64_musl
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -58,3 +58,9 @@ shell.nix

# Gitpod
.gitpod.yml

# Bazel
bazel-*

# bazeldnf
.bazeldnf/
34 changes: 34 additions & 0 deletions BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
load("@bazel_gazelle//:def.bzl", "gazelle")
load("@bazeldnf//:def.bzl", "bazeldnf")
load("@com_github_bazelbuild_buildtools//buildifier:def.bzl", "buildifier")

# gazelle:prefix github.com/edgelesssys/constellation
gazelle(name = "gazelle")

gazelle(
name = "gazelle-update-repos",
args = [
"-from_file=go.work",
"-to_macro=toolchains/go_module_deps.bzl%go_dependencies",
"-prune",
],
command = "update-repos",
)

bazeldnf(name = "bazeldnf")

buildifier(
name = "buildifier-check",
lint_mode = "warn",
lint_warnings = ["all"],
mode = "check",
verbose = True,
)

buildifier(
name = "buildifier-fix",
lint_mode = "fix",
lint_warnings = ["all"],
mode = "fix",
verbose = True,
)
94 changes: 94 additions & 0 deletions WORKSPACE.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# proto toolchain
load("//toolchains:proto_deps.bzl", "proto_deps")

proto_deps()

load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies", "rules_proto_toolchains")

rules_proto_dependencies()

rules_proto_toolchains()

# Go toolchain
load("//toolchains:go_rules_deps.bzl", "go_deps")

go_deps()

load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
load("//toolchains:go_module_deps.bzl", "go_dependencies")

# gazelle:repository_macro toolchains/go_module_deps.bzl%go_dependencies
go_dependencies()

go_rules_dependencies()

go_register_toolchains(version = "1.19.5")

gazelle_dependencies(go_repository_default_config = "//:WORKSPACE.bazel")

# gazelle:repo bazel_gazelle

# dnf / rpm toolchain

load("//toolchains:dnf_deps.bzl", "dnf_deps")

dnf_deps()

load("@bazeldnf//:deps.bzl", "bazeldnf_dependencies")

bazeldnf_dependencies()

load("//rpm:rpms.bzl", "rpms")

rpms()

# Buildifier
load("//toolchains:buildifier_deps.bzl", "buildifier_deps")

buildifier_deps()

# C / C++ toolchains

load("//toolchains:zig_cc_deps.bzl", "zig_cc_deps")

zig_cc_deps()

load("@bazel-zig-cc//toolchain:defs.bzl", zig_toolchains = "toolchains")

zig_toolchains()

register_toolchains(
"@zig_sdk//libc_aware/toolchain:linux_amd64_gnu.2.34",
"@zig_sdk//libc_aware/toolchain:linux_amd64_musl",
"@zig_sdk//libc_aware/toolchain:linux_arm64_musl",
"@zig_sdk//toolchain:darwin_amd64",
"@zig_sdk//toolchain:darwin_arm64",
"@zig_sdk//toolchain:windows_amd64",
)

# Packaging rules (tar)
load("//toolchains:pkg_deps.bzl", "pkg_deps")

pkg_deps()

load("@rules_pkg//:deps.bzl", "rules_pkg_dependencies")

rules_pkg_dependencies()

# OCI rules
load("//toolchains:oci_deps.bzl", "oci_deps")

oci_deps()

load("@contrib_rules_oci//oci:dependencies.bzl", "rules_oci_dependencies")

rules_oci_dependencies()

load("@contrib_rules_oci//oci:repositories.bzl", "LATEST_CRANE_VERSION", "LATEST_ZOT_VERSION", "oci_register_toolchains")

oci_register_toolchains(
name = "oci",
crane_version = LATEST_CRANE_VERSION,
zot_version = LATEST_ZOT_VERSION,
)
133 changes: 133 additions & 0 deletions rpm/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
load("@bazeldnf//:def.bzl", "bazeldnf")
load("@bazeldnf//:deps.bzl", "rpmtree", "tar2files")
load("@rules_cc//cc:defs.bzl", "cc_library")

cc_library(
name = "cryptsetup",
srcs = ["//rpm:cryptsetup-libs/usr/lib64"],
hdrs = ["//rpm:cryptsetup-libs/usr/include"],
linkstatic = 1,
strip_include_prefix = "/rpm/cryptsetup-libs/",
visibility = ["//visibility:public"],
)

bazeldnf(
name = "ldd",
command = "ldd",
libs = [
"/usr/lib64/libcryptsetup.so.12.8.0",
],
rpmtree = ":cryptsetup-devel",
rulename = "cryptsetup-libs",
)

rpmtree(
name = "cryptsetup-devel",
rpms = [
"@alternatives-0__1.21-1.fc37.x86_64//rpm",
"@audit-libs-0__3.0.9-1.fc37.x86_64//rpm",
"@basesystem-0__11-14.fc37.x86_64//rpm",
"@bash-0__5.2.15-1.fc37.x86_64//rpm",
"@bzip2-libs-0__1.0.8-12.fc37.x86_64//rpm",
"@ca-certificates-0__2023.2.60-1.0.fc37.x86_64//rpm",
"@coreutils-single-0__9.1-7.fc37.x86_64//rpm",
"@crypto-policies-0__20220815-1.gite4ed860.fc37.x86_64//rpm",
"@cryptsetup-devel-0__2.5.0-1.fc37.x86_64//rpm",
"@cryptsetup-libs-0__2.5.0-1.fc37.x86_64//rpm",
"@dbus-1__1.14.4-1.fc37.x86_64//rpm",
"@dbus-broker-0__32-1.fc37.x86_64//rpm",
"@dbus-common-1__1.14.4-1.fc37.x86_64//rpm",
"@device-mapper-0__1.02.175-9.fc37.x86_64//rpm",
"@device-mapper-libs-0__1.02.175-9.fc37.x86_64//rpm",
"@expat-0__2.5.0-1.fc37.x86_64//rpm",
"@fedora-gpg-keys-0__37-1.x86_64//rpm",
"@fedora-release-common-0__37-15.x86_64//rpm",
"@fedora-release-container-0__37-15.x86_64//rpm",
"@fedora-release-identity-kinoite-0__37-15.x86_64//rpm",
"@fedora-repos-0__37-1.x86_64//rpm",
"@filesystem-0__3.18-2.fc37.x86_64//rpm",
"@glibc-0__2.36-9.fc37.x86_64//rpm",
"@glibc-common-0__2.36-9.fc37.x86_64//rpm",
"@glibc-langpack-ku-0__2.36-9.fc37.x86_64//rpm",
"@grep-0__3.7-4.fc37.x86_64//rpm",
"@json-c-0__0.16-3.fc37.x86_64//rpm",
"@kmod-libs-0__30-2.fc37.x86_64//rpm",
"@libacl-0__2.3.1-4.fc37.x86_64//rpm",
"@libargon2-0__20190702-1.fc37.x86_64//rpm",
"@libattr-0__2.5.1-5.fc37.x86_64//rpm",
"@libblkid-0__2.38.1-1.fc37.x86_64//rpm",
"@libcap-0__2.48-5.fc37.x86_64//rpm",
"@libcap-ng-0__0.8.3-3.fc37.x86_64//rpm",
"@libeconf-0__0.4.0-4.fc37.x86_64//rpm",
"@libfdisk-0__2.38.1-1.fc37.x86_64//rpm",
"@libffi-0__3.4.2-9.fc37.x86_64//rpm",
"@libgcc-0__12.2.1-4.fc37.x86_64//rpm",
"@libmount-0__2.38.1-1.fc37.x86_64//rpm",
"@libpkgconf-0__1.8.0-3.fc37.x86_64//rpm",
"@libseccomp-0__2.5.3-3.fc37.x86_64//rpm",
"@libselinux-0__3.4-5.fc37.x86_64//rpm",
"@libsemanage-0__3.4-5.fc37.x86_64//rpm",
"@libsepol-0__3.4-3.fc37.x86_64//rpm",
"@libsmartcols-0__2.38.1-1.fc37.x86_64//rpm",
"@libtasn1-0__4.19.0-1.fc37.x86_64//rpm",
"@libuuid-0__2.38.1-1.fc37.x86_64//rpm",
"@libxcrypt-0__4.4.33-4.fc37.x86_64//rpm",
"@libzstd-0__1.5.2-3.fc37.x86_64//rpm",
"@lz4-libs-0__1.9.4-1.fc37.x86_64//rpm",
"@ncurses-base-0__6.3-4.20220501.fc37.x86_64//rpm",
"@ncurses-libs-0__6.3-4.20220501.fc37.x86_64//rpm",
"@openssl-libs-1__3.0.5-3.fc37.x86_64//rpm",
"@p11-kit-0__0.24.1-3.fc37.x86_64//rpm",
"@p11-kit-trust-0__0.24.1-3.fc37.x86_64//rpm",
"@pam-libs-0__1.5.2-14.fc37.x86_64//rpm",
"@pcre-0__8.45-1.fc37.2.x86_64//rpm",
"@pcre2-0__10.40-1.fc37.1.x86_64//rpm",
"@pcre2-syntax-0__10.40-1.fc37.1.x86_64//rpm",
"@pkgconf-0__1.8.0-3.fc37.x86_64//rpm",
"@pkgconf-m4-0__1.8.0-3.fc37.x86_64//rpm",
"@pkgconf-pkg-config-0__1.8.0-3.fc37.x86_64//rpm",
"@sed-0__4.8-11.fc37.x86_64//rpm",
"@setup-0__2.14.1-2.fc37.x86_64//rpm",
"@shadow-utils-2__4.12.3-4.fc37.x86_64//rpm",
"@systemd-0__251.10-588.fc37.x86_64//rpm",
"@systemd-libs-0__251.10-588.fc37.x86_64//rpm",
"@systemd-pam-0__251.10-588.fc37.x86_64//rpm",
"@tzdata-0__2022g-1.fc37.x86_64//rpm",
"@util-linux-core-0__2.38.1-1.fc37.x86_64//rpm",
"@xz-libs-0__5.4.1-1.fc37.x86_64//rpm",
"@zlib-0__1.2.12-5.fc37.x86_64//rpm",
],
visibility = ["//visibility:public"],
)

tar2files(
name = "cryptsetup-libs",
files = {
"/usr/include": ["libcryptsetup.h"],
"/usr/lib64": [
"ld-linux-x86-64.so.2",
"libargon2.so.1",
"libblkid.so.1",
"libblkid.so.1.1.0",
"libc.so.6",
"libcrypto.so.3",
"libcrypto.so.3.0.5",
"libcryptsetup.so.12.8.0",
"libdevmapper.so.1.02",
"libjson-c.so.5",
"libjson-c.so.5.2.0",
"libm.so.6",
"libselinux.so.1",
"libssl.so.3",
"libssl.so.3.0.5",
"libudev.so.1",
"libudev.so.1.7.4",
"libuuid.so.1",
"libuuid.so.1.3.0",
"libz.so.1",
"libz.so.1.2.12",
],
},
tar = ":cryptsetup-devel",
visibility = ["//visibility:public"],
)
7 changes: 7 additions & 0 deletions rpm/repo.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
repositories:
- arch: x86_64
metalink: https://mirrors.fedoraproject.org/metalink?repo=fedora-37&arch=x86_64
name: 37-x86_64-primary-repo
- arch: x86_64
metalink: https://mirrors.fedoraproject.org/metalink?repo=updates-released-f37&arch=x86_64
name: 37-x86_64-update-repo
Loading

0 comments on commit 731b316

Please sign in to comment.