diff --git a/build/fbcode_builder/getdeps.py b/build/fbcode_builder/getdeps.py index ed328dae5..dfb028a94 100755 --- a/build/fbcode_builder/getdeps.py +++ b/build/fbcode_builder/getdeps.py @@ -370,7 +370,7 @@ class InstallSysDepsCmd(ProjectCmdBase): parser.add_argument( "--os-type", help="Filter to just this OS type to run", - choices=["linux", "darwin", "windows"], + choices=["linux", "darwin", "windows", "pacman-package"], action="store", dest="ostype", default=None, @@ -440,7 +440,10 @@ class InstallSysDepsCmd(ProjectCmdBase): packages = sorted(set(all_packages["homebrew"])) if packages: cmd_args = ["brew", "install"] + packages - + elif manager == "pacman-package": + packages = sorted(list(set(all_packages["pacman-package"]))) + if packages: + cmd_args = ["pacman", "-S"] + packages else: host_tuple = loader.build_opts.host_type.as_tuple_string() print( diff --git a/build/fbcode_builder/getdeps/manifest.py b/build/fbcode_builder/getdeps/manifest.py index 11fc4e1eb..ae06f4b26 100644 --- a/build/fbcode_builder/getdeps/manifest.py +++ b/build/fbcode_builder/getdeps/manifest.py @@ -96,6 +96,7 @@ SCHEMA = { "rpms": {"optional_section": True}, "debs": {"optional_section": True}, "homebrew": {"optional_section": True}, + "pps": {"optional_section": True}, "preinstalled.env": {"optional_section": True}, "bootstrap.args": {"optional_section": True}, "b2.args": {"optional_section": True}, @@ -132,6 +133,7 @@ ALLOWED_EXPR_SECTIONS = [ "shipit.strip", "homebrew", "github.actions", + "pps", ] @@ -379,6 +381,7 @@ class ManifestParser(object): "rpm": self.get_section_as_args("rpms", ctx), "deb": self.get_section_as_args("debs", ctx), "homebrew": self.get_section_as_args("homebrew", ctx), + "pacman-package": self.get_section_as_args("pps", ctx), } def _is_satisfied_by_preinstalled_environment(self, ctx): diff --git a/build/fbcode_builder/getdeps/platform.py b/build/fbcode_builder/getdeps/platform.py index 9285e8320..1e021d992 100644 --- a/build/fbcode_builder/getdeps/platform.py +++ b/build/fbcode_builder/getdeps/platform.py @@ -274,6 +274,8 @@ class HostType(object): return "rpm" if self.distro.startswith(("debian", "ubuntu", "pop!_os", "mint")): return "deb" + if self.distro == "arch": + return "pacman-package" return None @staticmethod diff --git a/build/fbcode_builder/manifests/autoconf b/build/fbcode_builder/manifests/autoconf index 8c8b88397..60cff9c50 100644 --- a/build/fbcode_builder/manifests/autoconf +++ b/build/fbcode_builder/manifests/autoconf @@ -10,6 +10,9 @@ autoconf [rpms] autoconf +[pps] +autoconf + [download] url = http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz sha256 = 954bd69b391edc12d6a4a51a2dd1476543da5c6bbf05a95b59dc0dd6fd4c2969 diff --git a/build/fbcode_builder/manifests/automake b/build/fbcode_builder/manifests/automake index 37ffb95d2..b098ac2df 100644 --- a/build/fbcode_builder/manifests/automake +++ b/build/fbcode_builder/manifests/automake @@ -10,6 +10,9 @@ automake [rpms] automake +[pps] +automake + [download] url = http://ftp.gnu.org/gnu/automake/automake-1.16.1.tar.gz sha256 = 608a97523f97db32f1f5d5615c98ca69326ced2054c9f82e65bade7fc4c9dea8 diff --git a/build/fbcode_builder/manifests/boost b/build/fbcode_builder/manifests/boost index 969f615bd..923e52314 100644 --- a/build/fbcode_builder/manifests/boost +++ b/build/fbcode_builder/manifests/boost @@ -22,6 +22,9 @@ boost # Boost cmake detection on homebrew adds this as requirement: https://github.com/Homebrew/homebrew-core/issues/67427#issuecomment-754187345 icu4c +[pps] +boost + [rpms.all(distro=centos_stream,distro_vers=8)] boost169 boost169-math diff --git a/build/fbcode_builder/manifests/cmake b/build/fbcode_builder/manifests/cmake index 71548f119..06d1c9b0a 100644 --- a/build/fbcode_builder/manifests/cmake +++ b/build/fbcode_builder/manifests/cmake @@ -11,6 +11,9 @@ cmake [rpms] cmake +[pps] +cmake + [dependencies] ninja diff --git a/build/fbcode_builder/manifests/double-conversion b/build/fbcode_builder/manifests/double-conversion index 2d7265e8d..720d9a2ec 100644 --- a/build/fbcode_builder/manifests/double-conversion +++ b/build/fbcode_builder/manifests/double-conversion @@ -15,6 +15,9 @@ libdouble-conversion-dev double-conversion double-conversion-devel +[pps] +double-conversion + [build] builder = cmake subdir = double-conversion-3.1.4 diff --git a/build/fbcode_builder/manifests/libcurl b/build/fbcode_builder/manifests/libcurl index 466b4497c..8c94e4679 100644 --- a/build/fbcode_builder/manifests/libcurl +++ b/build/fbcode_builder/manifests/libcurl @@ -8,6 +8,9 @@ libcurl [debs] libcurl4-openssl-dev +[pps] +libcurl-gnutls + [download] url = https://curl.haxx.se/download/curl-7.65.1.tar.gz sha256 = 821aeb78421375f70e55381c9ad2474bf279fc454b791b7e95fc83562951c690 diff --git a/build/fbcode_builder/manifests/libelf b/build/fbcode_builder/manifests/libelf index a46aab879..194d340fc 100644 --- a/build/fbcode_builder/manifests/libelf +++ b/build/fbcode_builder/manifests/libelf @@ -7,6 +7,9 @@ elfutils-libelf-devel-static [debs] libelf-dev +[pps] +libelf + [download] url = https://ftp.osuosl.org/pub/blfs/conglomeration/libelf/libelf-0.8.13.tar.gz sha256 = 591a9b4ec81c1f2042a97aa60564e0cb79d041c52faa7416acb38bc95bd2c76d diff --git a/build/fbcode_builder/manifests/libevent b/build/fbcode_builder/manifests/libevent index 1c073333f..91a2af90c 100644 --- a/build/fbcode_builder/manifests/libevent +++ b/build/fbcode_builder/manifests/libevent @@ -10,6 +10,9 @@ libevent [rpms] libevent-devel +[pps] +libevent + # Note that the CMakeLists.txt file is present only in # git repo and not in the release tarball, so take care # to use the github generated source tarball rather than diff --git a/build/fbcode_builder/manifests/libffi b/build/fbcode_builder/manifests/libffi index 0511287c2..b520358fd 100644 --- a/build/fbcode_builder/manifests/libffi +++ b/build/fbcode_builder/manifests/libffi @@ -11,6 +11,9 @@ libffi libffi-devel libffi +[pps] +libffi + [download] url = https://github.com/libffi/libffi/releases/download/v3.4.2/libffi-3.4.2.tar.gz sha256 = 540fb721619a6aba3bdeef7d940d8e9e0e6d2c193595bc243241b77ff9e93620 diff --git a/build/fbcode_builder/manifests/libgit2 b/build/fbcode_builder/manifests/libgit2 index 33e6b506f..42bbfca92 100644 --- a/build/fbcode_builder/manifests/libgit2 +++ b/build/fbcode_builder/manifests/libgit2 @@ -7,6 +7,9 @@ libgit2 [rpms] libgit2-devel +[pps] +libgit2 + # Ubuntu 18.04 libgit2 has clash with libcurl4-openssl-dev as it depends on # libcurl4-gnutls-dev. Should be ok from 20.04 again # There is a description at https://github.com/r-hub/sysreqsdb/issues/77 diff --git a/build/fbcode_builder/manifests/libmnl b/build/fbcode_builder/manifests/libmnl index 1f8d609c1..2b39d6cb3 100644 --- a/build/fbcode_builder/manifests/libmnl +++ b/build/fbcode_builder/manifests/libmnl @@ -12,6 +12,9 @@ libmnl-static [debs] libmnl-dev +[pps] +libmnl + [download] url = http://www.netfilter.org/pub/libmnl/libmnl-1.0.4.tar.bz2 sha256 = 171f89699f286a5854b72b91d06e8f8e3683064c5901fb09d954a9ab6f551f81 diff --git a/build/fbcode_builder/manifests/libnl b/build/fbcode_builder/manifests/libnl index 560885c2e..f71e10a58 100644 --- a/build/fbcode_builder/manifests/libnl +++ b/build/fbcode_builder/manifests/libnl @@ -9,6 +9,9 @@ libnl3 libnl-3-dev libnl-route-3-dev +[pps] +libnl + [download] url = https://www.infradead.org/~tgr/libnl/files/libnl-3.2.25.tar.gz sha256 = 8beb7590674957b931de6b7f81c530b85dc7c1ad8fbda015398bc1e8d1ce8ec5 diff --git a/build/fbcode_builder/manifests/libsodium b/build/fbcode_builder/manifests/libsodium index 9ffd9bf4d..2cdeb8c78 100644 --- a/build/fbcode_builder/manifests/libsodium +++ b/build/fbcode_builder/manifests/libsodium @@ -11,6 +11,9 @@ libsodium libsodium-devel libsodium-static +[pps] +libsodium + [download.not(os=windows)] url = https://github.com/jedisct1/libsodium/releases/download/1.0.20-RELEASE/libsodium-1.0.20.tar.gz sha256 = ebb65ef6ca439333c2bb41a0c1990587288da07f6c7fd07cb3a18cc18d30ce19 diff --git a/build/fbcode_builder/manifests/libtool b/build/fbcode_builder/manifests/libtool index 887a23cdf..72eb2175a 100644 --- a/build/fbcode_builder/manifests/libtool +++ b/build/fbcode_builder/manifests/libtool @@ -10,6 +10,9 @@ libtool [debs] libtool +[pps] +libtool + [download] url = http://ftp.gnu.org/gnu/libtool/libtool-2.4.6.tar.gz sha256 = e3bd4d5d3d025a36c21dd6af7ea818a2afcd4dfc1ea5a17b39d7854bcd0c06e3 diff --git a/build/fbcode_builder/manifests/libusb b/build/fbcode_builder/manifests/libusb index 9b97c3a59..ccbec8053 100644 --- a/build/fbcode_builder/manifests/libusb +++ b/build/fbcode_builder/manifests/libusb @@ -11,6 +11,9 @@ libusb libusb-devel libusb +[pps] +libusb + [download] url = https://github.com/libusb/libusb/releases/download/v1.0.22/libusb-1.0.22.tar.bz2 sha256 = 75aeb9d59a4fdb800d329a545c2e6799f732362193b465ea198f2aa275518157 diff --git a/build/fbcode_builder/manifests/lz4 b/build/fbcode_builder/manifests/lz4 index 084d6a4ae..68a2c3061 100644 --- a/build/fbcode_builder/manifests/lz4 +++ b/build/fbcode_builder/manifests/lz4 @@ -13,6 +13,9 @@ lz4-static [debs] liblz4-dev +[pps] +lz4 + [download] url = https://github.com/lz4/lz4/archive/v1.8.3.tar.gz sha256 = 33af5936ac06536805f9745e0b6d61da606a1f8b4cc5c04dd3cbaca3b9b4fc43 diff --git a/build/fbcode_builder/manifests/nghttp2 b/build/fbcode_builder/manifests/nghttp2 index 5ebdce0a4..f2b3f6b31 100644 --- a/build/fbcode_builder/manifests/nghttp2 +++ b/build/fbcode_builder/manifests/nghttp2 @@ -8,6 +8,9 @@ libnghttp2 [debs] libnghttp2-dev +[pps] +libnghttp2 + [download] url = https://github.com/nghttp2/nghttp2/releases/download/v1.47.0/nghttp2-1.47.0.tar.gz sha256 = 62f50f0e9fc479e48b34e1526df8dd2e94136de4c426b7680048181606832b7c diff --git a/build/fbcode_builder/manifests/ninja b/build/fbcode_builder/manifests/ninja index 713c59d69..e50827986 100644 --- a/build/fbcode_builder/manifests/ninja +++ b/build/fbcode_builder/manifests/ninja @@ -10,6 +10,9 @@ ninja [rpms] ninja-build +[pps] +ninja + [download.os=windows] url = https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-win.zip sha256 = bbde850d247d2737c5764c927d1071cbb1f1957dcabda4a130fa8547c12c695f diff --git a/build/fbcode_builder/manifests/openssl b/build/fbcode_builder/manifests/openssl index 0f1be2219..beef31c9e 100644 --- a/build/fbcode_builder/manifests/openssl +++ b/build/fbcode_builder/manifests/openssl @@ -13,6 +13,9 @@ openssl openssl-devel openssl-libs +[pps] +openssl + [download] url = https://www.openssl.org/source/openssl-1.1.1l.tar.gz sha256 = 0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1 diff --git a/build/fbcode_builder/manifests/patchelf b/build/fbcode_builder/manifests/patchelf index f9d050424..7025dc66a 100644 --- a/build/fbcode_builder/manifests/patchelf +++ b/build/fbcode_builder/manifests/patchelf @@ -7,6 +7,9 @@ patchelf [debs] patchelf +[pps] +patchelf + [download] url = https://github.com/NixOS/patchelf/archive/0.10.tar.gz sha256 = b3cb6bdedcef5607ce34a350cf0b182eb979f8f7bc31eae55a93a70a3f020d13 diff --git a/build/fbcode_builder/manifests/python b/build/fbcode_builder/manifests/python index c2e98e571..00fed973c 100644 --- a/build/fbcode_builder/manifests/python +++ b/build/fbcode_builder/manifests/python @@ -15,6 +15,9 @@ python3.8-dev [debs.not(all(distro=ubuntu,distro_vers="18.04"))] python3-all-dev +[pps] +python3 + [download] url = https://www.python.org/ftp/python/3.8.13/Python-3.8.13.tgz sha256 = 903b92d76354366b1d9c4434d0c81643345cef87c1600adfa36095d7b00eede4 diff --git a/build/fbcode_builder/manifests/re2 b/build/fbcode_builder/manifests/re2 index 060f342c1..1fe1eccbd 100644 --- a/build/fbcode_builder/manifests/re2 +++ b/build/fbcode_builder/manifests/re2 @@ -11,6 +11,9 @@ libre2-dev re2 re2-devel +[pps] +re2 + [download] url = https://github.com/google/re2/archive/2020-11-01.tar.gz sha256 = 8903cc66c9d34c72e2bc91722288ebc7e3ec37787ecfef44d204b2d6281954d7 diff --git a/build/fbcode_builder/manifests/snappy b/build/fbcode_builder/manifests/snappy index b184c2aa7..c458a0ae8 100644 --- a/build/fbcode_builder/manifests/snappy +++ b/build/fbcode_builder/manifests/snappy @@ -10,6 +10,9 @@ libsnappy-dev [rpms] snappy-devel +[pps] +snappy + [download] url = https://github.com/google/snappy/archive/1.1.7.tar.gz sha256 = 3dfa02e873ff51a11ee02b9ca391807f0c8ea0529a4924afa645fbf97163f9d4 diff --git a/build/fbcode_builder/manifests/sqlite3 b/build/fbcode_builder/manifests/sqlite3 index c87d4cf93..1966f0fab 100644 --- a/build/fbcode_builder/manifests/sqlite3 +++ b/build/fbcode_builder/manifests/sqlite3 @@ -11,6 +11,9 @@ sqlite sqlite-devel sqlite-libs +[pps] +sqlite3 + [download] url = https://sqlite.org/2019/sqlite-amalgamation-3280000.zip sha256 = d02fc4e95cfef672b45052e221617a050b7f2e20103661cda88387349a9b1327 diff --git a/build/fbcode_builder/manifests/zlib b/build/fbcode_builder/manifests/zlib index 8c52088db..bb32e63eb 100644 --- a/build/fbcode_builder/manifests/zlib +++ b/build/fbcode_builder/manifests/zlib @@ -15,6 +15,9 @@ zlib-static zlib-ng-compat-devel zlib-ng-compat-static +[pps] +zlib + [download] url = https://zlib.net/zlib-1.3.1.tar.gz sha256 = 9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23 diff --git a/build/fbcode_builder/manifests/zstd b/build/fbcode_builder/manifests/zstd index 18484f4b1..aac189fb8 100644 --- a/build/fbcode_builder/manifests/zstd +++ b/build/fbcode_builder/manifests/zstd @@ -12,6 +12,9 @@ libzstd-dev libzstd-devel libzstd +[pps] +zstd + [download] url = https://github.com/facebook/zstd/releases/download/v1.5.5/zstd-1.5.5.tar.gz sha256 = 9c4396cc829cfae319a6e2615202e82aad41372073482fce286fac78646d3ee4