mirror of
https://github.com/facebook/proxygen.git
synced 2025-08-07 07:02:53 +03:00
getdeps: allow satisfying deps from system packages
Summary: From the outset, we wanted to be sure that getdeps was able to source and build the dependencies so that we knew that we'd have a repeatable build. This came at the cost of build times: having to build boost on each CI run is a bit of a chore. This commit adds three new elements to the manifest files: * `rpms` - a list of RPM names that are all required to be present in order to consider the dependency satisfied * `debs` - like `rpms` above, but scoped to debian package names * `preinstalled.env` - a list of environment variables that if they are all set and non-empty will satisfy the dependency. A new `--allow-system-packages` option to getdeps enables the new logic that looks for system packages; it is off by default, but enabled in the generated GitHub Actions workflows. A new `install-system-deps` subcommand is provided that will attempt to install the system packages needed to satisfy the build. This typically needs to be run via sudo and is thus broken out separately from the main getdeps build flow. I made a pass over the manifest files and added package names that satisfy the build on ubuntu-18 and fedora-31. shri-khare: I renamed the `Python3.7.6` manifest to just `python` as part of this change; the version of python that it pulls in through the normal build is the same and I believe that an equal or newer version of python3 is available in the GH actions builder. The `preinstalled.env` is used only by the boost manifest: it references the name of an environment variable that is set by the github windows hosts and that points to a pre-built and pre-installed copy of boost. Since there is no package manager that we can easily query for this sort of thing, probing from the environment seems like a reasonable and fast way to check for this. We may need to evolve this over time to become more feature rich, but this seems like a good starting point. This commit has the potential to save 20 minutes of build time from each public CI build just due to the boost dependency alone! Refs: https://github.com/facebook/watchman/pull/797 Reviewed By: yfeldblum Differential Revision: D20740410 fbshipit-source-id: 6c38019449c54465127656c3d18a6ff1f30adaea
This commit is contained in:
committed by
Facebook GitHub Bot
parent
410ebf580a
commit
5f2a16b70b
180
.github/workflows/main.yml
vendored
180
.github/workflows/main.yml
vendored
@@ -15,191 +15,195 @@ jobs:
|
|||||||
runs-on: ubuntu-18.04
|
runs-on: ubuntu-18.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v1
|
||||||
|
- name: Install system deps
|
||||||
|
run: sudo python3 build/fbcode_builder/getdeps.py --allow-system-packages install-system-deps --recursive proxygen
|
||||||
- name: Fetch boost
|
- name: Fetch boost
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests boost
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests boost
|
||||||
- name: Fetch ninja
|
- name: Fetch ninja
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests ninja
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests ninja
|
||||||
- name: Fetch cmake
|
- name: Fetch cmake
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests cmake
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests cmake
|
||||||
- name: Fetch double-conversion
|
- name: Fetch double-conversion
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests double-conversion
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests double-conversion
|
||||||
- name: Fetch fmt
|
- name: Fetch fmt
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests fmt
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests fmt
|
||||||
- name: Fetch gflags
|
- name: Fetch gflags
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests gflags
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests gflags
|
||||||
- name: Fetch glog
|
- name: Fetch glog
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests glog
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests glog
|
||||||
- name: Fetch googletest
|
- name: Fetch googletest
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests googletest
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests googletest
|
||||||
- name: Fetch libevent
|
- name: Fetch libevent
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libevent
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests libevent
|
||||||
- name: Fetch snappy
|
- name: Fetch snappy
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests snappy
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests snappy
|
||||||
- name: Fetch zstd
|
- name: Fetch zstd
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests zstd
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests zstd
|
||||||
- name: Fetch folly
|
- name: Fetch folly
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests folly
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests folly
|
||||||
- name: Fetch autoconf
|
- name: Fetch autoconf
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests autoconf
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests autoconf
|
||||||
- name: Fetch automake
|
- name: Fetch automake
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests automake
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests automake
|
||||||
- name: Fetch libtool
|
- name: Fetch libtool
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libtool
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests libtool
|
||||||
- name: Fetch gperf
|
- name: Fetch gperf
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests gperf
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests gperf
|
||||||
- name: Fetch libsodium
|
- name: Fetch libsodium
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libsodium
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests libsodium
|
||||||
- name: Fetch fizz
|
- name: Fetch fizz
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests fizz
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests fizz
|
||||||
- name: Fetch mvfst
|
- name: Fetch mvfst
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests mvfst
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests mvfst
|
||||||
- name: Fetch wangle
|
- name: Fetch wangle
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests wangle
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests wangle
|
||||||
- name: Build boost
|
- name: Build boost
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests boost
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests boost
|
||||||
- name: Build ninja
|
- name: Build ninja
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests ninja
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests ninja
|
||||||
- name: Build cmake
|
- name: Build cmake
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests cmake
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests cmake
|
||||||
- name: Build double-conversion
|
- name: Build double-conversion
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests double-conversion
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests double-conversion
|
||||||
- name: Build fmt
|
- name: Build fmt
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests fmt
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests fmt
|
||||||
- name: Build gflags
|
- name: Build gflags
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests gflags
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests gflags
|
||||||
- name: Build glog
|
- name: Build glog
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests glog
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests glog
|
||||||
- name: Build googletest
|
- name: Build googletest
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests googletest
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests googletest
|
||||||
- name: Build libevent
|
- name: Build libevent
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests libevent
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests libevent
|
||||||
- name: Build snappy
|
- name: Build snappy
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests snappy
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests snappy
|
||||||
- name: Build zstd
|
- name: Build zstd
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests zstd
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests zstd
|
||||||
- name: Build folly
|
- name: Build folly
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests folly
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests folly
|
||||||
- name: Build autoconf
|
- name: Build autoconf
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests autoconf
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests autoconf
|
||||||
- name: Build automake
|
- name: Build automake
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests automake
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests automake
|
||||||
- name: Build libtool
|
- name: Build libtool
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests libtool
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests libtool
|
||||||
- name: Build gperf
|
- name: Build gperf
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests gperf
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests gperf
|
||||||
- name: Build libsodium
|
- name: Build libsodium
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests libsodium
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests libsodium
|
||||||
- name: Build fizz
|
- name: Build fizz
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests fizz
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests fizz
|
||||||
- name: Build mvfst
|
- name: Build mvfst
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests mvfst
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests mvfst
|
||||||
- name: Build wangle
|
- name: Build wangle
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests wangle
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests wangle
|
||||||
- name: Build proxygen
|
- name: Build proxygen
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --src-dir=. proxygen --project-install-prefix proxygen:/usr/local
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --src-dir=. proxygen --project-install-prefix proxygen:/usr/local
|
||||||
- name: Copy artifacts
|
- name: Copy artifacts
|
||||||
run: python3 build/fbcode_builder/getdeps.py fixup-dyn-deps --src-dir=. proxygen _artifacts/linux --final-install-prefix /usr/local
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fixup-dyn-deps --src-dir=. proxygen _artifacts/linux --final-install-prefix /usr/local
|
||||||
- uses: actions/upload-artifact@master
|
- uses: actions/upload-artifact@master
|
||||||
with:
|
with:
|
||||||
name: proxygen
|
name: proxygen
|
||||||
path: _artifacts
|
path: _artifacts
|
||||||
- name: Test proxygen
|
- name: Test proxygen
|
||||||
run: python3 build/fbcode_builder/getdeps.py test --src-dir=. proxygen --project-install-prefix proxygen:/usr/local
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages test --src-dir=. proxygen --project-install-prefix proxygen:/usr/local
|
||||||
mac:
|
mac:
|
||||||
runs-on: macOS-latest
|
runs-on: macOS-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v1
|
||||||
|
- name: Install system deps
|
||||||
|
run: sudo python3 build/fbcode_builder/getdeps.py --allow-system-packages install-system-deps --recursive proxygen
|
||||||
- name: Fetch boost
|
- name: Fetch boost
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests boost
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests boost
|
||||||
- name: Fetch openssl
|
- name: Fetch openssl
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests openssl
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests openssl
|
||||||
- name: Fetch ninja
|
- name: Fetch ninja
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests ninja
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests ninja
|
||||||
- name: Fetch cmake
|
- name: Fetch cmake
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests cmake
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests cmake
|
||||||
- name: Fetch double-conversion
|
- name: Fetch double-conversion
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests double-conversion
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests double-conversion
|
||||||
- name: Fetch fmt
|
- name: Fetch fmt
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests fmt
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests fmt
|
||||||
- name: Fetch gflags
|
- name: Fetch gflags
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests gflags
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests gflags
|
||||||
- name: Fetch glog
|
- name: Fetch glog
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests glog
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests glog
|
||||||
- name: Fetch googletest
|
- name: Fetch googletest
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests googletest
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests googletest
|
||||||
- name: Fetch libevent
|
- name: Fetch libevent
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libevent
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests libevent
|
||||||
- name: Fetch snappy
|
- name: Fetch snappy
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests snappy
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests snappy
|
||||||
- name: Fetch zstd
|
- name: Fetch zstd
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests zstd
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests zstd
|
||||||
- name: Fetch folly
|
- name: Fetch folly
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests folly
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests folly
|
||||||
- name: Fetch autoconf
|
- name: Fetch autoconf
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests autoconf
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests autoconf
|
||||||
- name: Fetch automake
|
- name: Fetch automake
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests automake
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests automake
|
||||||
- name: Fetch libtool
|
- name: Fetch libtool
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libtool
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests libtool
|
||||||
- name: Fetch gperf
|
- name: Fetch gperf
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests gperf
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests gperf
|
||||||
- name: Fetch libsodium
|
- name: Fetch libsodium
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libsodium
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests libsodium
|
||||||
- name: Fetch fizz
|
- name: Fetch fizz
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests fizz
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests fizz
|
||||||
- name: Fetch mvfst
|
- name: Fetch mvfst
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests mvfst
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests mvfst
|
||||||
- name: Fetch wangle
|
- name: Fetch wangle
|
||||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests wangle
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests wangle
|
||||||
- name: Build boost
|
- name: Build boost
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests boost
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests boost
|
||||||
- name: Build openssl
|
- name: Build openssl
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests openssl
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests openssl
|
||||||
- name: Build ninja
|
- name: Build ninja
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests ninja
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests ninja
|
||||||
- name: Build cmake
|
- name: Build cmake
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests cmake
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests cmake
|
||||||
- name: Build double-conversion
|
- name: Build double-conversion
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests double-conversion
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests double-conversion
|
||||||
- name: Build fmt
|
- name: Build fmt
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests fmt
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests fmt
|
||||||
- name: Build gflags
|
- name: Build gflags
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests gflags
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests gflags
|
||||||
- name: Build glog
|
- name: Build glog
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests glog
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests glog
|
||||||
- name: Build googletest
|
- name: Build googletest
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests googletest
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests googletest
|
||||||
- name: Build libevent
|
- name: Build libevent
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests libevent
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests libevent
|
||||||
- name: Build snappy
|
- name: Build snappy
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests snappy
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests snappy
|
||||||
- name: Build zstd
|
- name: Build zstd
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests zstd
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests zstd
|
||||||
- name: Build folly
|
- name: Build folly
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests folly
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests folly
|
||||||
- name: Build autoconf
|
- name: Build autoconf
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests autoconf
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests autoconf
|
||||||
- name: Build automake
|
- name: Build automake
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests automake
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests automake
|
||||||
- name: Build libtool
|
- name: Build libtool
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests libtool
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests libtool
|
||||||
- name: Build gperf
|
- name: Build gperf
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests gperf
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests gperf
|
||||||
- name: Build libsodium
|
- name: Build libsodium
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests libsodium
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests libsodium
|
||||||
- name: Build fizz
|
- name: Build fizz
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests fizz
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests fizz
|
||||||
- name: Build mvfst
|
- name: Build mvfst
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests mvfst
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests mvfst
|
||||||
- name: Build wangle
|
- name: Build wangle
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests wangle
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests wangle
|
||||||
- name: Build proxygen
|
- name: Build proxygen
|
||||||
run: python3 build/fbcode_builder/getdeps.py build --src-dir=. proxygen --project-install-prefix proxygen:/usr/local
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --src-dir=. proxygen --project-install-prefix proxygen:/usr/local
|
||||||
- name: Copy artifacts
|
- name: Copy artifacts
|
||||||
run: python3 build/fbcode_builder/getdeps.py fixup-dyn-deps --src-dir=. proxygen _artifacts/mac --final-install-prefix /usr/local
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fixup-dyn-deps --src-dir=. proxygen _artifacts/mac --final-install-prefix /usr/local
|
||||||
- uses: actions/upload-artifact@master
|
- uses: actions/upload-artifact@master
|
||||||
with:
|
with:
|
||||||
name: proxygen
|
name: proxygen
|
||||||
path: _artifacts
|
path: _artifacts
|
||||||
- name: Test proxygen
|
- name: Test proxygen
|
||||||
run: python3 build/fbcode_builder/getdeps.py test --src-dir=. proxygen --project-install-prefix proxygen:/usr/local
|
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages test --src-dir=. proxygen --project-install-prefix proxygen:/usr/local
|
||||||
|
@@ -21,9 +21,11 @@ import getdeps.cache as cache_module
|
|||||||
from getdeps.buildopts import setup_build_options
|
from getdeps.buildopts import setup_build_options
|
||||||
from getdeps.dyndeps import create_dyn_dep_munger
|
from getdeps.dyndeps import create_dyn_dep_munger
|
||||||
from getdeps.errors import TransientFailure
|
from getdeps.errors import TransientFailure
|
||||||
|
from getdeps.fetcher import SystemPackageFetcher
|
||||||
from getdeps.load import ManifestLoader
|
from getdeps.load import ManifestLoader
|
||||||
from getdeps.manifest import ManifestParser
|
from getdeps.manifest import ManifestParser
|
||||||
from getdeps.platform import HostType
|
from getdeps.platform import HostType
|
||||||
|
from getdeps.runcmd import run_cmd
|
||||||
from getdeps.subcmd import SubCmd, add_subcommands, cmd
|
from getdeps.subcmd import SubCmd, add_subcommands, cmd
|
||||||
|
|
||||||
|
|
||||||
@@ -310,6 +312,45 @@ class FetchCmd(ProjectCmdBase):
|
|||||||
fetcher.update()
|
fetcher.update()
|
||||||
|
|
||||||
|
|
||||||
|
@cmd("install-system-deps", "Install system packages to satisfy the deps for a project")
|
||||||
|
class InstallSysDepsCmd(ProjectCmdBase):
|
||||||
|
def setup_project_cmd_parser(self, parser):
|
||||||
|
parser.add_argument(
|
||||||
|
"--recursive",
|
||||||
|
help="install the transitive deps also",
|
||||||
|
action="store_true",
|
||||||
|
default=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
def run_project_cmd(self, args, loader, manifest):
|
||||||
|
if args.recursive:
|
||||||
|
projects = loader.manifests_in_dependency_order()
|
||||||
|
else:
|
||||||
|
projects = [manifest]
|
||||||
|
|
||||||
|
cache = cache_module.create_cache()
|
||||||
|
all_packages = {}
|
||||||
|
for m in projects:
|
||||||
|
ctx = loader.ctx_gen.get_context(m.name)
|
||||||
|
packages = m.get_required_system_packages(ctx)
|
||||||
|
for k, v in packages.items():
|
||||||
|
merged = all_packages.get(k, [])
|
||||||
|
merged += v
|
||||||
|
all_packages[k] = merged
|
||||||
|
|
||||||
|
manager = loader.build_opts.host_type.get_package_manager()
|
||||||
|
if manager == "rpm":
|
||||||
|
packages = sorted(list(set(all_packages["rpm"])))
|
||||||
|
if packages:
|
||||||
|
run_cmd(["dnf", "install", "-y"] + packages)
|
||||||
|
elif manager == "deb":
|
||||||
|
packages = sorted(list(set(all_packages["deb"])))
|
||||||
|
if packages:
|
||||||
|
run_cmd(["apt", "install", "-y"] + packages)
|
||||||
|
else:
|
||||||
|
print("I don't know how to install any packages on this system")
|
||||||
|
|
||||||
|
|
||||||
@cmd("list-deps", "lists the transitive deps for a given project")
|
@cmd("list-deps", "lists the transitive deps for a given project")
|
||||||
class ListDepsCmd(ProjectCmdBase):
|
class ListDepsCmd(ProjectCmdBase):
|
||||||
def run_project_cmd(self, args, loader, manifest):
|
def run_project_cmd(self, args, loader, manifest):
|
||||||
@@ -402,6 +443,12 @@ class BuildCmd(ProjectCmdBase):
|
|||||||
for m in projects:
|
for m in projects:
|
||||||
fetcher = loader.create_fetcher(m)
|
fetcher = loader.create_fetcher(m)
|
||||||
|
|
||||||
|
if isinstance(fetcher, SystemPackageFetcher):
|
||||||
|
# We are guaranteed that if the fetcher is set to
|
||||||
|
# SystemPackageFetcher then this item is completely
|
||||||
|
# satisfied by the appropriate system packages
|
||||||
|
continue
|
||||||
|
|
||||||
if args.clean:
|
if args.clean:
|
||||||
fetcher.clean()
|
fetcher.clean()
|
||||||
|
|
||||||
@@ -650,7 +697,7 @@ jobs:
|
|||||||
job_name = "mac"
|
job_name = "mac"
|
||||||
runs_on = "macOS-latest"
|
runs_on = "macOS-latest"
|
||||||
|
|
||||||
getdeps = f"{py3} build/fbcode_builder/getdeps.py"
|
getdeps = f"{py3} build/fbcode_builder/getdeps.py --allow-system-packages"
|
||||||
|
|
||||||
out.write(" %s:\n" % job_name)
|
out.write(" %s:\n" % job_name)
|
||||||
out.write(" runs-on: %s\n" % runs_on)
|
out.write(" runs-on: %s\n" % runs_on)
|
||||||
@@ -662,6 +709,11 @@ jobs:
|
|||||||
# that we want it to use them!
|
# that we want it to use them!
|
||||||
out.write(" - name: Fix Git config\n")
|
out.write(" - name: Fix Git config\n")
|
||||||
out.write(" run: git config --system core.longpaths true\n")
|
out.write(" run: git config --system core.longpaths true\n")
|
||||||
|
else:
|
||||||
|
out.write(" - name: Install system deps\n")
|
||||||
|
out.write(
|
||||||
|
f" run: sudo {getdeps} install-system-deps --recursive {manifest.name}\n"
|
||||||
|
)
|
||||||
|
|
||||||
projects = loader.manifests_in_dependency_order()
|
projects = loader.manifests_in_dependency_order()
|
||||||
|
|
||||||
@@ -769,6 +821,12 @@ def parse_args():
|
|||||||
action="store_false",
|
action="store_false",
|
||||||
dest="facebook_internal",
|
dest="facebook_internal",
|
||||||
)
|
)
|
||||||
|
add_common_arg(
|
||||||
|
"--allow-system-packages",
|
||||||
|
help="Allow satisfying third party deps from installed system packages",
|
||||||
|
action="store_true",
|
||||||
|
default=False,
|
||||||
|
)
|
||||||
|
|
||||||
ap = argparse.ArgumentParser(
|
ap = argparse.ArgumentParser(
|
||||||
description="Get and build dependencies and projects", parents=[common_args]
|
description="Get and build dependencies and projects", parents=[common_args]
|
||||||
|
@@ -54,6 +54,7 @@ class BuildOptions(object):
|
|||||||
num_jobs=0,
|
num_jobs=0,
|
||||||
use_shipit=False,
|
use_shipit=False,
|
||||||
vcvars_path=None,
|
vcvars_path=None,
|
||||||
|
allow_system_packages=False,
|
||||||
):
|
):
|
||||||
""" fbcode_builder_dir - the path to either the in-fbsource fbcode_builder dir,
|
""" fbcode_builder_dir - the path to either the in-fbsource fbcode_builder dir,
|
||||||
or for shipit-transformed repos, the build dir that
|
or for shipit-transformed repos, the build dir that
|
||||||
@@ -107,6 +108,7 @@ class BuildOptions(object):
|
|||||||
self.fbcode_builder_dir = fbcode_builder_dir
|
self.fbcode_builder_dir = fbcode_builder_dir
|
||||||
self.host_type = host_type
|
self.host_type = host_type
|
||||||
self.use_shipit = use_shipit
|
self.use_shipit = use_shipit
|
||||||
|
self.allow_system_packages = allow_system_packages
|
||||||
if vcvars_path is None and is_windows():
|
if vcvars_path is None and is_windows():
|
||||||
|
|
||||||
# On Windows, the compiler is not available in the PATH by
|
# On Windows, the compiler is not available in the PATH by
|
||||||
@@ -386,6 +388,13 @@ def setup_build_options(args, host_type=None):
|
|||||||
temp = tempfile.gettempdir()
|
temp = tempfile.gettempdir()
|
||||||
|
|
||||||
scratch_dir = os.path.join(temp, "fbcode_builder_getdeps-%s" % munged)
|
scratch_dir = os.path.join(temp, "fbcode_builder_getdeps-%s" % munged)
|
||||||
|
if not is_windows() and os.geteuid() == 0:
|
||||||
|
# Running as root; in the case where someone runs
|
||||||
|
# sudo getdeps.py install-system-deps
|
||||||
|
# and then runs as build without privs, we want to avoid creating
|
||||||
|
# a scratch dir that the second stage cannot write to.
|
||||||
|
# So we generate a different path if we are root.
|
||||||
|
scratch_dir += "-root"
|
||||||
|
|
||||||
if not os.path.exists(scratch_dir):
|
if not os.path.exists(scratch_dir):
|
||||||
os.makedirs(scratch_dir)
|
os.makedirs(scratch_dir)
|
||||||
@@ -415,4 +424,5 @@ def setup_build_options(args, host_type=None):
|
|||||||
num_jobs=args.num_jobs,
|
num_jobs=args.num_jobs,
|
||||||
use_shipit=args.use_shipit,
|
use_shipit=args.use_shipit,
|
||||||
vcvars_path=args.vcvars_path,
|
vcvars_path=args.vcvars_path,
|
||||||
|
allow_system_packages=args.allow_system_packages,
|
||||||
)
|
)
|
||||||
|
@@ -151,6 +151,46 @@ class LocalDirFetcher(object):
|
|||||||
return self.path
|
return self.path
|
||||||
|
|
||||||
|
|
||||||
|
class SystemPackageFetcher(object):
|
||||||
|
def __init__(self, build_options, packages):
|
||||||
|
self.manager = build_options.host_type.get_package_manager()
|
||||||
|
self.packages = packages.get(self.manager)
|
||||||
|
if self.packages:
|
||||||
|
self.installed = None
|
||||||
|
else:
|
||||||
|
self.installed = False
|
||||||
|
|
||||||
|
def packages_are_installed(self):
|
||||||
|
if self.installed is not None:
|
||||||
|
return self.installed
|
||||||
|
|
||||||
|
if self.manager == "rpm":
|
||||||
|
result = run_cmd(["rpm", "-q"] + self.packages, allow_fail=True)
|
||||||
|
self.installed = result == 0
|
||||||
|
elif self.manager == "deb":
|
||||||
|
result = run_cmd(["dpkg", "-s"] + self.packages, allow_fail=True)
|
||||||
|
self.installed = result == 0
|
||||||
|
else:
|
||||||
|
self.installed = False
|
||||||
|
|
||||||
|
return self.installed
|
||||||
|
|
||||||
|
def update(self):
|
||||||
|
assert self.installed
|
||||||
|
return ChangeStatus(all_changed=False)
|
||||||
|
|
||||||
|
def hash(self):
|
||||||
|
return "0" * 40
|
||||||
|
|
||||||
|
def get_src_dir(self):
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
class PreinstalledNopFetcher(SystemPackageFetcher):
|
||||||
|
def __init__(self):
|
||||||
|
self.installed = True
|
||||||
|
|
||||||
|
|
||||||
class GitFetcher(Fetcher):
|
class GitFetcher(Fetcher):
|
||||||
DEFAULT_DEPTH = 100
|
DEFAULT_DEPTH = 100
|
||||||
|
|
||||||
|
@@ -25,8 +25,10 @@ from .expr import parse_expr
|
|||||||
from .fetcher import (
|
from .fetcher import (
|
||||||
ArchiveFetcher,
|
ArchiveFetcher,
|
||||||
GitFetcher,
|
GitFetcher,
|
||||||
|
PreinstalledNopFetcher,
|
||||||
ShipitTransformerFetcher,
|
ShipitTransformerFetcher,
|
||||||
SimpleShipitTransformerFetcher,
|
SimpleShipitTransformerFetcher,
|
||||||
|
SystemPackageFetcher,
|
||||||
)
|
)
|
||||||
from .py_wheel_builder import PythonWheelBuilder
|
from .py_wheel_builder import PythonWheelBuilder
|
||||||
|
|
||||||
@@ -74,6 +76,9 @@ SCHEMA = {
|
|||||||
},
|
},
|
||||||
"cmake.defines": {"optional_section": True},
|
"cmake.defines": {"optional_section": True},
|
||||||
"autoconf.args": {"optional_section": True},
|
"autoconf.args": {"optional_section": True},
|
||||||
|
"rpms": {"optional_section": True},
|
||||||
|
"debs": {"optional_section": True},
|
||||||
|
"preinstalled.env": {"optional_section": True},
|
||||||
"b2.args": {"optional_section": True},
|
"b2.args": {"optional_section": True},
|
||||||
"make.args": {"optional_section": True},
|
"make.args": {"optional_section": True},
|
||||||
"header-only": {"optional_section": True, "fields": {"includedir": REQUIRED}},
|
"header-only": {"optional_section": True, "fields": {"includedir": REQUIRED}},
|
||||||
@@ -318,6 +323,27 @@ class ManifestParser(object):
|
|||||||
""" returns true if this is an FB first-party project """
|
""" returns true if this is an FB first-party project """
|
||||||
return self.shipit_project is not None
|
return self.shipit_project is not None
|
||||||
|
|
||||||
|
def get_required_system_packages(self, ctx):
|
||||||
|
""" Returns dictionary of packager system -> list of packages """
|
||||||
|
return {
|
||||||
|
"rpm": self.get_section_as_args("rpms", ctx),
|
||||||
|
"deb": self.get_section_as_args("debs", ctx),
|
||||||
|
}
|
||||||
|
|
||||||
|
def _is_satisfied_by_preinstalled_environment(self, ctx):
|
||||||
|
envs = self.get_section_as_args("preinstalled.env", ctx)
|
||||||
|
if not envs:
|
||||||
|
return False
|
||||||
|
for key in envs:
|
||||||
|
val = os.environ.get(key, None)
|
||||||
|
print(f"Testing ENV[{key}]: {repr(val)}")
|
||||||
|
if val is None:
|
||||||
|
return False
|
||||||
|
if len(val) == 0:
|
||||||
|
return False
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
def create_fetcher(self, build_options, ctx):
|
def create_fetcher(self, build_options, ctx):
|
||||||
use_real_shipit = (
|
use_real_shipit = (
|
||||||
ShipitTransformerFetcher.available() and build_options.use_shipit
|
ShipitTransformerFetcher.available() and build_options.use_shipit
|
||||||
@@ -339,6 +365,16 @@ class ManifestParser(object):
|
|||||||
# We can use the code from fbsource
|
# We can use the code from fbsource
|
||||||
return ShipitTransformerFetcher(build_options, self.shipit_project)
|
return ShipitTransformerFetcher(build_options, self.shipit_project)
|
||||||
|
|
||||||
|
# Can we satisfy this dep with system packages?
|
||||||
|
if build_options.allow_system_packages:
|
||||||
|
if self._is_satisfied_by_preinstalled_environment(ctx):
|
||||||
|
return PreinstalledNopFetcher()
|
||||||
|
|
||||||
|
packages = self.get_required_system_packages(ctx)
|
||||||
|
package_fetcher = SystemPackageFetcher(build_options, packages)
|
||||||
|
if package_fetcher.packages_are_installed():
|
||||||
|
return package_fetcher
|
||||||
|
|
||||||
repo_url = self.get("git", "repo_url", ctx=ctx)
|
repo_url = self.get("git", "repo_url", ctx=ctx)
|
||||||
if repo_url:
|
if repo_url:
|
||||||
rev = self.get("git", "rev")
|
rev = self.get("git", "rev")
|
||||||
|
@@ -87,6 +87,15 @@ class HostType(object):
|
|||||||
self.distrovers or "none",
|
self.distrovers or "none",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def get_package_manager(self):
|
||||||
|
if not self.is_linux():
|
||||||
|
return None
|
||||||
|
if self.distro in ("fedora", "centos"):
|
||||||
|
return "rpm"
|
||||||
|
if self.distro in ("debian", "ubuntu"):
|
||||||
|
return "deb"
|
||||||
|
return None
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def from_tuple_string(s):
|
def from_tuple_string(s):
|
||||||
ostype, distro, distrovers = s.split("-")
|
ostype, distro, distrovers = s.split("-")
|
||||||
|
@@ -54,9 +54,13 @@ def run_cmd(cmd, env=None, cwd=None, allow_fail=False, log_file=None):
|
|||||||
log.write(msg)
|
log.write(msg)
|
||||||
sys.stdout.write(msg)
|
sys.stdout.write(msg)
|
||||||
|
|
||||||
_run_cmd(cmd, env=env, cwd=cwd, allow_fail=allow_fail, log_fn=log_function)
|
return _run_cmd(
|
||||||
|
cmd, env=env, cwd=cwd, allow_fail=allow_fail, log_fn=log_function
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
_run_cmd(cmd, env=env, cwd=cwd, allow_fail=allow_fail, log_fn=sys.stdout.write)
|
return _run_cmd(
|
||||||
|
cmd, env=env, cwd=cwd, allow_fail=allow_fail, log_fn=sys.stdout.write
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def _run_cmd(cmd, env, cwd, allow_fail, log_fn):
|
def _run_cmd(cmd, env, cwd, allow_fail, log_fn):
|
||||||
|
@@ -1,6 +1,12 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = autoconf
|
name = autoconf
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
autoconf
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
autoconf
|
||||||
|
|
||||||
[download]
|
[download]
|
||||||
url = http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
|
url = http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
|
||||||
sha256 = 954bd69b391edc12d6a4a51a2dd1476543da5c6bbf05a95b59dc0dd6fd4c2969
|
sha256 = 954bd69b391edc12d6a4a51a2dd1476543da5c6bbf05a95b59dc0dd6fd4c2969
|
||||||
|
@@ -1,6 +1,12 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = automake
|
name = automake
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
automake
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
automake
|
||||||
|
|
||||||
[download]
|
[download]
|
||||||
url = http://ftp.gnu.org/gnu/automake/automake-1.16.1.tar.gz
|
url = http://ftp.gnu.org/gnu/automake/automake-1.16.1.tar.gz
|
||||||
sha256 = 608a97523f97db32f1f5d5615c98ca69326ced2054c9f82e65bade7fc4c9dea8
|
sha256 = 608a97523f97db32f1f5d5615c98ca69326ced2054c9f82e65bade7fc4c9dea8
|
||||||
|
@@ -1,6 +1,12 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = bison
|
name = bison
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
bison
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
bison
|
||||||
|
|
||||||
[download.not(os=windows)]
|
[download.not(os=windows)]
|
||||||
url = https://mirrors.kernel.org/gnu/bison/bison-3.3.tar.gz
|
url = https://mirrors.kernel.org/gnu/bison/bison-3.3.tar.gz
|
||||||
sha256 = fdeafb7fffade05604a61e66b8c040af4b2b5cbb1021dcfe498ed657ac970efd
|
sha256 = fdeafb7fffade05604a61e66b8c040af4b2b5cbb1021dcfe498ed657ac970efd
|
||||||
|
@@ -9,6 +9,45 @@ sha256 = 8f32d4617390d1c2d16f26a27ab60d97807b35440d45891fa340fc2648b04406
|
|||||||
url = https://versaweb.dl.sourceforge.net/project/boost/boost/1.69.0/boost_1_69_0.zip
|
url = https://versaweb.dl.sourceforge.net/project/boost/boost/1.69.0/boost_1_69_0.zip
|
||||||
sha256 = d074bcbcc0501c4917b965fc890e303ee70d8b01ff5712bae4a6c54f2b6b4e52
|
sha256 = d074bcbcc0501c4917b965fc890e303ee70d8b01ff5712bae4a6c54f2b6b4e52
|
||||||
|
|
||||||
|
[preinstalled.env]
|
||||||
|
BOOST_ROOT_1_69_0
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
libboost-all-dev
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
boost
|
||||||
|
boost-math
|
||||||
|
boost-test
|
||||||
|
boost-fiber
|
||||||
|
boost-graph
|
||||||
|
boost-log
|
||||||
|
boost-openmpi
|
||||||
|
boost-timer
|
||||||
|
boost-chrono
|
||||||
|
boost-locale
|
||||||
|
boost-thread
|
||||||
|
boost-atomic
|
||||||
|
boost-random
|
||||||
|
boost-static
|
||||||
|
boost-contract
|
||||||
|
boost-date-time
|
||||||
|
boost-iostreams
|
||||||
|
boost-container
|
||||||
|
boost-coroutine
|
||||||
|
boost-filesystem
|
||||||
|
boost-system
|
||||||
|
boost-stacktrace
|
||||||
|
boost-regex
|
||||||
|
boost-devel
|
||||||
|
boost-context
|
||||||
|
boost-python3-devel
|
||||||
|
boost-type_erasure
|
||||||
|
boost-wave
|
||||||
|
boost-python3
|
||||||
|
boost-serialization
|
||||||
|
boost-program-options
|
||||||
|
|
||||||
[build]
|
[build]
|
||||||
builder = boost
|
builder = boost
|
||||||
|
|
||||||
|
@@ -1,6 +1,13 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = cmake
|
name = cmake
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
cmake
|
||||||
|
|
||||||
|
# All current deb based distros have a cmake that is too old
|
||||||
|
#[debs]
|
||||||
|
#cmake
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
ninja
|
ninja
|
||||||
|
|
||||||
|
@@ -32,7 +32,7 @@ libnl
|
|||||||
libsai
|
libsai
|
||||||
OpenNSA
|
OpenNSA
|
||||||
re2
|
re2
|
||||||
Python-3.7.6
|
python
|
||||||
|
|
||||||
[shipit.pathmap]
|
[shipit.pathmap]
|
||||||
fbcode/fboss/github = .
|
fbcode/fboss/github = .
|
||||||
|
@@ -1,6 +1,12 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = flex
|
name = flex
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
flex
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
flex
|
||||||
|
|
||||||
[download.not(os=windows)]
|
[download.not(os=windows)]
|
||||||
url = https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz
|
url = https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz
|
||||||
sha256 = e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995
|
sha256 = e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995
|
||||||
|
@@ -1,6 +1,13 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = libcurl
|
name = libcurl
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
libcurl-devel
|
||||||
|
libcurl
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
libcurl4-openssl-dev
|
||||||
|
|
||||||
[download]
|
[download]
|
||||||
url = https://curl.haxx.se/download/curl-7.65.1.tar.gz
|
url = https://curl.haxx.se/download/curl-7.65.1.tar.gz
|
||||||
sha256 = 821aeb78421375f70e55381c9ad2474bf279fc454b791b7e95fc83562951c690
|
sha256 = 821aeb78421375f70e55381c9ad2474bf279fc454b791b7e95fc83562951c690
|
||||||
|
@@ -1,6 +1,12 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = libelf
|
name = libelf
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
elfutils-libelf-devel-static
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
libelf-dev
|
||||||
|
|
||||||
[download]
|
[download]
|
||||||
url = https://ftp.osuosl.org/pub/blfs/conglomeration/libelf/libelf-0.8.13.tar.gz
|
url = https://ftp.osuosl.org/pub/blfs/conglomeration/libelf/libelf-0.8.13.tar.gz
|
||||||
sha256 = 591a9b4ec81c1f2042a97aa60564e0cb79d041c52faa7416acb38bc95bd2c76d
|
sha256 = 591a9b4ec81c1f2042a97aa60564e0cb79d041c52faa7416acb38bc95bd2c76d
|
||||||
|
@@ -1,6 +1,12 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = libevent
|
name = libevent
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
libevent-devel
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
libevent-dev
|
||||||
|
|
||||||
# Note that the CMakeLists.txt file is present only in
|
# Note that the CMakeLists.txt file is present only in
|
||||||
# git repo and not in the release tarball, so take care
|
# git repo and not in the release tarball, so take care
|
||||||
# to use the github generated source tarball rather than
|
# to use the github generated source tarball rather than
|
||||||
|
@@ -1,6 +1,12 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = libgit2
|
name = libgit2
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
libgit2-devel
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
libgit2-dev
|
||||||
|
|
||||||
[download]
|
[download]
|
||||||
url = https://github.com/libgit2/libgit2/archive/v0.28.1.tar.gz
|
url = https://github.com/libgit2/libgit2/archive/v0.28.1.tar.gz
|
||||||
sha256 = 0ca11048795b0d6338f2e57717370208c2c97ad66c6d5eac0c97a8827d13936b
|
sha256 = 0ca11048795b0d6338f2e57717370208c2c97ad66c6d5eac0c97a8827d13936b
|
||||||
|
@@ -1,6 +1,13 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = libmnl
|
name = libmnl
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
libmnl-devel
|
||||||
|
libmnl-static
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
libmnl-dev
|
||||||
|
|
||||||
[download]
|
[download]
|
||||||
url = http://www.lg.ps.pl/mirrors/ftp.netfilter.org/libmnl/libmnl-1.0.4.tar.bz2
|
url = http://www.lg.ps.pl/mirrors/ftp.netfilter.org/libmnl/libmnl-1.0.4.tar.bz2
|
||||||
sha256 = 171f89699f286a5854b72b91d06e8f8e3683064c5901fb09d954a9ab6f551f81
|
sha256 = 171f89699f286a5854b72b91d06e8f8e3683064c5901fb09d954a9ab6f551f81
|
||||||
|
@@ -1,6 +1,13 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = libnl
|
name = libnl
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
libnl3-devel
|
||||||
|
libnl3
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
libnl-3-dev
|
||||||
|
|
||||||
[download]
|
[download]
|
||||||
url = https://www.infradead.org/~tgr/libnl/files/libnl-3.2.25.tar.gz
|
url = https://www.infradead.org/~tgr/libnl/files/libnl-3.2.25.tar.gz
|
||||||
sha256 = 8beb7590674957b931de6b7f81c530b85dc7c1ad8fbda015398bc1e8d1ce8ec5
|
sha256 = 8beb7590674957b931de6b7f81c530b85dc7c1ad8fbda015398bc1e8d1ce8ec5
|
||||||
|
@@ -1,6 +1,13 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = libsodium
|
name = libsodium
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
libsodium-devel
|
||||||
|
libsodium-static
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
libsodium-dev
|
||||||
|
|
||||||
[download.not(os=windows)]
|
[download.not(os=windows)]
|
||||||
url = https://github.com/jedisct1/libsodium/releases/download/1.0.17/libsodium-1.0.17.tar.gz
|
url = https://github.com/jedisct1/libsodium/releases/download/1.0.17/libsodium-1.0.17.tar.gz
|
||||||
sha256 = 0cc3dae33e642cc187b5ceb467e0ad0e1b51dcba577de1190e9ffa17766ac2b1
|
sha256 = 0cc3dae33e642cc187b5ceb467e0ad0e1b51dcba577de1190e9ffa17766ac2b1
|
||||||
|
@@ -1,6 +1,12 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = libtool
|
name = libtool
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
libtool
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
libtool
|
||||||
|
|
||||||
[download]
|
[download]
|
||||||
url = http://ftp.gnu.org/gnu/libtool/libtool-2.4.6.tar.gz
|
url = http://ftp.gnu.org/gnu/libtool/libtool-2.4.6.tar.gz
|
||||||
sha256 = e3bd4d5d3d025a36c21dd6af7ea818a2afcd4dfc1ea5a17b39d7854bcd0c06e3
|
sha256 = e3bd4d5d3d025a36c21dd6af7ea818a2afcd4dfc1ea5a17b39d7854bcd0c06e3
|
||||||
|
@@ -1,6 +1,13 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = libusb
|
name = libusb
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
libusb-devel
|
||||||
|
libusb
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
libusb-1.0-0-dev
|
||||||
|
|
||||||
[download]
|
[download]
|
||||||
url = https://github.com/libusb/libusb/releases/download/v1.0.22/libusb-1.0.22.tar.bz2
|
url = https://github.com/libusb/libusb/releases/download/v1.0.22/libusb-1.0.22.tar.bz2
|
||||||
sha256 = 75aeb9d59a4fdb800d329a545c2e6799f732362193b465ea198f2aa275518157
|
sha256 = 75aeb9d59a4fdb800d329a545c2e6799f732362193b465ea198f2aa275518157
|
||||||
|
@@ -1,6 +1,13 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = libzmq
|
name = libzmq
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
zeromq-devel
|
||||||
|
zeromq
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
libzmq-dev
|
||||||
|
|
||||||
[download]
|
[download]
|
||||||
url = https://github.com/zeromq/libzmq/releases/download/v4.3.1/zeromq-4.3.1.tar.gz
|
url = https://github.com/zeromq/libzmq/releases/download/v4.3.1/zeromq-4.3.1.tar.gz
|
||||||
sha256 = bcbabe1e2c7d0eec4ed612e10b94b112dd5f06fcefa994a0c79a45d835cd21eb
|
sha256 = bcbabe1e2c7d0eec4ed612e10b94b112dd5f06fcefa994a0c79a45d835cd21eb
|
||||||
|
@@ -1,6 +1,13 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = lz4
|
name = lz4
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
lz4-devel
|
||||||
|
lz4-static
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
liblz4-dev
|
||||||
|
|
||||||
[download]
|
[download]
|
||||||
url = https://github.com/lz4/lz4/archive/v1.8.3.tar.gz
|
url = https://github.com/lz4/lz4/archive/v1.8.3.tar.gz
|
||||||
sha256 = 33af5936ac06536805f9745e0b6d61da606a1f8b4cc5c04dd3cbaca3b9b4fc43
|
sha256 = 33af5936ac06536805f9745e0b6d61da606a1f8b4cc5c04dd3cbaca3b9b4fc43
|
||||||
|
@@ -1,6 +1,13 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = nghttp2
|
name = nghttp2
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
libnghttp2-devel
|
||||||
|
libnghttp2
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
libnghttp2-dev
|
||||||
|
|
||||||
[download]
|
[download]
|
||||||
url = https://github.com/nghttp2/nghttp2/releases/download/v1.39.2/nghttp2-1.39.2.tar.gz
|
url = https://github.com/nghttp2/nghttp2/releases/download/v1.39.2/nghttp2-1.39.2.tar.gz
|
||||||
sha256 = fc820a305e2f410fade1a3260f09229f15c0494fc089b0100312cd64a33a38c0
|
sha256 = fc820a305e2f410fade1a3260f09229f15c0494fc089b0100312cd64a33a38c0
|
||||||
|
@@ -1,6 +1,12 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = ninja
|
name = ninja
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
ninja-build
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
ninja-build
|
||||||
|
|
||||||
[download.os=windows]
|
[download.os=windows]
|
||||||
url = https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-win.zip
|
url = https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-win.zip
|
||||||
sha256 = 2d70010633ddaacc3af4ffbd21e22fae90d158674a09e132e06424ba3ab036e9
|
sha256 = 2d70010633ddaacc3af4ffbd21e22fae90d158674a09e132e06424ba3ab036e9
|
||||||
|
@@ -1,6 +1,13 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = openssl
|
name = openssl
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
openssl-devel
|
||||||
|
openssl
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
libssl-dev
|
||||||
|
|
||||||
[download]
|
[download]
|
||||||
url = https://www.openssl.org/source/openssl-1.1.1f.tar.gz
|
url = https://www.openssl.org/source/openssl-1.1.1f.tar.gz
|
||||||
sha256 = 186c6bfe6ecfba7a5b48c47f8a1673d0f3b0e5ba2e25602dd23b629975da3f35
|
sha256 = 186c6bfe6ecfba7a5b48c47f8a1673d0f3b0e5ba2e25602dd23b629975da3f35
|
||||||
|
@@ -1,6 +1,12 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = patchelf
|
name = patchelf
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
patchelf
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
patchelf
|
||||||
|
|
||||||
[download]
|
[download]
|
||||||
url = https://github.com/NixOS/patchelf/archive/0.10.tar.gz
|
url = https://github.com/NixOS/patchelf/archive/0.10.tar.gz
|
||||||
sha256 = b3cb6bdedcef5607ce34a350cf0b182eb979f8f7bc31eae55a93a70a3f020d13
|
sha256 = b3cb6bdedcef5607ce34a350cf0b182eb979f8f7bc31eae55a93a70a3f020d13
|
||||||
|
@@ -1,6 +1,13 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = pcre
|
name = pcre
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
pcre-devel
|
||||||
|
pcre-static
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
libpcre3-dev
|
||||||
|
|
||||||
[download]
|
[download]
|
||||||
url = https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
|
url = https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
|
||||||
sha256 = 0b8e7465dc5e98c757cc3650a20a7843ee4c3edf50aaf60bb33fd879690d2c73
|
sha256 = 0b8e7465dc5e98c757cc3650a20a7843ee4c3edf50aaf60bb33fd879690d2c73
|
||||||
|
@@ -1,5 +1,12 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = Python-3.7.6
|
name = python
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
python3
|
||||||
|
python3-devel
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
python3-all-dev
|
||||||
|
|
||||||
[download.os=linux]
|
[download.os=linux]
|
||||||
url = https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tgz
|
url = https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tgz
|
@@ -1,6 +1,13 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = re2
|
name = re2
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
re2
|
||||||
|
re2-devel
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
libre2-dev
|
||||||
|
|
||||||
[download]
|
[download]
|
||||||
url = https://github.com/google/re2/archive/2019-06-01.tar.gz
|
url = https://github.com/google/re2/archive/2019-06-01.tar.gz
|
||||||
sha256 = 02b7d73126bd18e9fbfe5d6375a8bb13fadaf8e99e48cbb062e4500fc18e8e2e
|
sha256 = 02b7d73126bd18e9fbfe5d6375a8bb13fadaf8e99e48cbb062e4500fc18e8e2e
|
||||||
|
@@ -1,6 +1,13 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = snappy
|
name = snappy
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
snappy
|
||||||
|
snappy-devel
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
libsnappy-dev
|
||||||
|
|
||||||
[download]
|
[download]
|
||||||
url = https://github.com/google/snappy/archive/1.1.7.tar.gz
|
url = https://github.com/google/snappy/archive/1.1.7.tar.gz
|
||||||
sha256 = 3dfa02e873ff51a11ee02b9ca391807f0c8ea0529a4924afa645fbf97163f9d4
|
sha256 = 3dfa02e873ff51a11ee02b9ca391807f0c8ea0529a4924afa645fbf97163f9d4
|
||||||
|
@@ -1,6 +1,13 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = sqlite3
|
name = sqlite3
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
sqlite-devel
|
||||||
|
sqlite-libs
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
libsqlite3-dev
|
||||||
|
|
||||||
[download]
|
[download]
|
||||||
url = https://sqlite.org/2019/sqlite-amalgamation-3280000.zip
|
url = https://sqlite.org/2019/sqlite-amalgamation-3280000.zip
|
||||||
sha256 = d02fc4e95cfef672b45052e221617a050b7f2e20103661cda88387349a9b1327
|
sha256 = d02fc4e95cfef672b45052e221617a050b7f2e20103661cda88387349a9b1327
|
||||||
|
@@ -1,6 +1,13 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = zlib
|
name = zlib
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
zlib-devel
|
||||||
|
zlib-static
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
zlib1g-dev
|
||||||
|
|
||||||
[download]
|
[download]
|
||||||
url = http://www.zlib.net/zlib-1.2.11.tar.gz
|
url = http://www.zlib.net/zlib-1.2.11.tar.gz
|
||||||
sha256 = c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1
|
sha256 = c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1
|
||||||
|
@@ -1,6 +1,13 @@
|
|||||||
[manifest]
|
[manifest]
|
||||||
name = zstd
|
name = zstd
|
||||||
|
|
||||||
|
[rpms]
|
||||||
|
libzstd-devel
|
||||||
|
libzstd
|
||||||
|
|
||||||
|
[debs]
|
||||||
|
libzstd1-dev
|
||||||
|
|
||||||
[git]
|
[git]
|
||||||
repo_url = https://github.com/facebook/zstd.git
|
repo_url = https://github.com/facebook/zstd.git
|
||||||
rev = v1.3.8
|
rev = v1.3.8
|
||||||
|
Reference in New Issue
Block a user