1# Copyright 2019 Google LLC 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# https://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15"""Loads dependencies needed to compile Sandboxed API for 3rd-party consumers.""" 16 17load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") 18load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") 19load("//sandboxed_api/bazel:llvm_config.bzl", "llvm_configure") 20load("//sandboxed_api/bazel:repositories.bzl", "autotools_repository") 21 22def sapi_deps(): 23 """Loads common dependencies needed to compile Sandboxed API.""" 24 25 # Bazel Skylib 26 maybe( 27 http_archive, 28 name = "bazel_skylib", 29 sha256 = "66ffd9315665bfaafc96b52278f57c7e2dd09f5ede279ea6d39b2be471e7e3aa", 30 urls = [ 31 "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.4.2/bazel-skylib-1.4.2.tar.gz", 32 "https://github.com/bazelbuild/bazel-skylib/releases/download/1.4.2/bazel-skylib-1.4.2.tar.gz", 33 ], 34 ) 35 36 # Abseil 37 maybe( 38 http_archive, 39 name = "com_google_absl", 40 sha256 = "1ca4c7431b0818a10507af8eac34a1873e4e786a18ecd3f04d8faf3a0874e8bb", # 2023-08-24 41 strip_prefix = "abseil-cpp-8ebad34c3fa54a9ad2f46ca8cab98e75c4f750bf", 42 urls = ["https://github.com/abseil/abseil-cpp/archive/8ebad34c3fa54a9ad2f46ca8cab98e75c4f750bf.zip"], 43 ) 44 maybe( 45 http_archive, 46 name = "com_google_absl_py", 47 sha256 = "3d0278d88bbd52993f381d1e20887fa30f0556f6263b3f7bfcad62c69f39b38e", # 2021-03-09 48 strip_prefix = "abseil-py-9954557f9df0b346a57ff82688438c55202d2188", 49 urls = ["https://github.com/abseil/abseil-py/archive/9954557f9df0b346a57ff82688438c55202d2188.zip"], 50 ) 51 52 # Abseil-py dependency for Python 2/3 compatiblity 53 maybe( 54 http_archive, 55 name = "six_archive", 56 build_file = "@com_google_sandboxed_api//sandboxed_api:bazel/external/six.BUILD", 57 sha256 = "30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259", # 2020-05-21 58 strip_prefix = "six-1.15.0", 59 urls = ["https://pypi.python.org/packages/source/s/six/six-1.15.0.tar.gz"], 60 ) 61 62 # Protobuf 63 maybe( 64 http_archive, 65 name = "com_google_protobuf", 66 sha256 = "a700a49470d301f1190a487a923b5095bf60f08f4ae4cac9f5f7c36883d17971", # 2023-07-06 67 strip_prefix = "protobuf-23.4", 68 urls = ["https://github.com/protocolbuffers/protobuf/releases/download/v23.4/protobuf-23.4.tar.gz"], 69 ) 70 71 # libcap 72 http_archive( 73 name = "org_kernel_libcap", 74 build_file = "@com_google_sandboxed_api//sandboxed_api:bazel/external/libcap.BUILD", 75 sha256 = "260b549c154b07c3cdc16b9ccc93c04633c39f4fb6a4a3b8d1fa5b8a9c3f5fe8", # 2019-04-16 76 strip_prefix = "libcap-2.27", 77 urls = ["https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.27.tar.gz"], 78 ) 79 80 # libffi 81 autotools_repository( 82 name = "org_sourceware_libffi", 83 build_file = "@com_google_sandboxed_api//sandboxed_api:bazel/external/libffi.BUILD", 84 sha256 = "653ffdfc67fbb865f39c7e5df2a071c0beb17206ebfb0a9ecb18a18f63f6b263", # 2019-11-02 85 strip_prefix = "libffi-3.3-rc2", 86 urls = ["https://github.com/libffi/libffi/releases/download/v3.3-rc2/libffi-3.3-rc2.tar.gz"], 87 ) 88 89 # libunwind 90 autotools_repository( 91 name = "org_gnu_libunwind", 92 build_file = "@com_google_sandboxed_api//sandboxed_api:bazel/external/libunwind.BUILD", 93 configure_args = [ 94 "--disable-documentation", 95 "--disable-minidebuginfo", 96 "--disable-shared", 97 "--enable-ptrace", 98 ], 99 sha256 = "4a6aec666991fb45d0889c44aede8ad6eb108071c3554fcdff671f9c94794976", # 2021-12-01 100 strip_prefix = "libunwind-1.6.2", 101 urls = ["https://github.com/libunwind/libunwind/releases/download/v1.6.2/libunwind-1.6.2.tar.gz"], 102 ) 103 104 # GoogleTest/GoogleMock 105 maybe( 106 http_archive, 107 name = "com_google_googletest", 108 sha256 = "a217118c2c36a3632b594af7ff98111a65bb2b980b726a7fa62305e02a998440", # 2023-06-06 109 strip_prefix = "googletest-334704df263b480a3e9e7441ed3292a5e30a37ec", 110 urls = ["https://github.com/google/googletest/archive/334704df263b480a3e9e7441ed3292a5e30a37ec.zip"], 111 ) 112 113 # Google Benchmark 114 maybe( 115 http_archive, 116 name = "com_google_benchmark", 117 sha256 = "342705876335bf894147e052d0dac141fe15962034b41bef5aa59c4b279ca89c", # 2023-05-30 118 strip_prefix = "benchmark-604f6fd3f4b34a84ec4eb4db81d842fa4db829cd", 119 urls = ["https://github.com/google/benchmark/archive/604f6fd3f4b34a84ec4eb4db81d842fa4db829cd.zip"], 120 ) 121 122 # LLVM/libclang 123 maybe( 124 llvm_configure, 125 name = "llvm-project", 126 commit = "2c494f094123562275ae688bd9e946ae2a0b4f8b", # 2022-03-31 127 sha256 = "59b9431ae22f0ea5f2ce880925c0242b32a9e4f1ae8147deb2bb0fc19b53fa0d", 128 system_libraries = True, # Prefer system libraries 129 ) 130