1
0
mirror of https://github.com/facebook/proxygen.git synced 2025-08-05 19:55:47 +03:00

23 Commits

Author SHA1 Message Date
Alex Hornby
26616c4c75 getdeps: update github windows runner and internal CI to VS 2022
Summary:
X-link: https://github.com/facebookincubator/fizz/pull/163

The github [windows-2019 actions image was retired by github](https://github.com/actions/runner-images/issues/12045),  so all jobs on it fail

Update to windows-2022 to get them running again

windows-2022 has [different tools and versions than windows-2019](https://github.com/actions/runner-images/issues/3949).  Notably it moves from Visual Studio 2019 (aka msvc 16.x) to Visual Studio 2022 (aka msvc 17.x), hence the update to buildopts.py discovery

In the course of regenerating the github actions I also fixed a couple of issues that stopped regeneration matching repo contents
  * a few workflows were using workflow_dispatch, added support
  * there were a trailing and double spaces for project_prefix, fixed (use ignore whitespace to remove this from review!)

Reviewed By: bigfootjon, yfeldblum

Differential Revision: D78019509

fbshipit-source-id: f8b0e9438bfc6b481b4207ad82bc1002e496a2d9
2025-07-09 22:23:08 -07:00
Simon Marlow
66f3fad54b Only add direct deps to GETDEPS_CABAL_FLAGS
Summary:
X-link: https://github.com/facebookincubator/zstrong/pull/899

You shouldn't be able to depend on a library unless it is in your direct dependencies, also this shortens the massive GETDEPS_CABAL_FLAGS to something more sensible.

Reviewed By: chadaustin

Differential Revision: D58244928

fbshipit-source-id: 3e93f26ef197252cd723a65c1752dad53b5327b6
2024-07-02 09:32:47 -07:00
Conner Nilsen
cf2e8bc5d4 Pyre Configurationless migration for] [batch:88/244] (#723)
Summary: Pull Request resolved: https://github.com/facebookincubator/zstrong/pull/723

Reviewed By: grievejia

Differential Revision: D54471437

fbshipit-source-id: bc644553e31464ceb632034e4ce3f05ba30fbbcd
2024-03-04 18:15:44 -08:00
Alex Hornby
018b10ba1d use system patchelf in eden fs build
Summary:
X-link: https://github.com/facebookincubator/velox/pull/7072

use system patchelf in eden fs build

Saves us from doing a fetch and build of autoconf, libtool, automake and patchelf during the arfifacts part of CI

X-link: https://github.com/facebook/sapling/pull/750

Reviewed By: sggutier

Differential Revision: D50313417

Pulled By: genevievehelsel

fbshipit-source-id: 7c585357c848c15a65c5797d6c8750d1119b6efd
2023-10-16 12:10:14 -07:00
Sasha Krassovsky
4608c0b404 Add Dictionary Encoded vectors to PyVelox (#3859)
Summary:
This PR adds support for dictionary vectors in PyVelox. Currently base vectors are supported only for primitive (physical) types , and this also thus extends to Dictionary vectors.
Dictionary vectors are required for additional fuzzer support, and expression eval in pyvelox.

X-link: https://github.com/facebookincubator/velox/pull/3859

Reviewed By: pedroerp

Differential Revision: D45409925

Pulled By: kgpai

fbshipit-source-id: 6b05a0d543332fea48d912f93f267896d005f4e2
2023-04-28 15:22:07 -07:00
Mark Shroyer
3c731d28dd Teach getdeps to find VS 2022 Professional's dumpbin.exe (#4581)
Summary:
X-link: https://github.com/facebookincubator/velox/pull/4581

Allows one to do getdeps builds on machines using Visual Studio 2022
Professional.

Reviewed By: chadaustin

Differential Revision: D44804055

fbshipit-source-id: 7a1042a3c1f4b6b44707afdb7e33294ad1851462
2023-04-12 10:51:18 -07:00
Chad Austin
a8609a821c fixup-dyn-deps: handle duplicate dynamic library paths
Summary:
On GitHub Actions macos-10.15 image, some of the build dependencies
for Watchman reference
/usr/local/opt/openssl@1.1/lib/libcrypto.1.1.dylib and others
reference
/usr/local/Cellar/openssl@1.1/1.1.1m/lib/libcrypto.1.1.dylib.

To avoid overwriting libcrypto in the artifact directory, key
processed_deps on the destination path.

Reviewed By: xavierd

Differential Revision: D34882663

fbshipit-source-id: 60d021bf9956d9b3e34e8945ccec234d31031369
2022-03-17 13:41:28 -07:00
Pyre Bot Jr
e77a9fe43a Add annotations to opensource/fbcode_builder
Reviewed By: shannonzhu

Differential Revision: D34224272

fbshipit-source-id: 52e19886ab3d4fb015a557244660dd4357a35c17
2022-02-14 16:22:09 -08:00
Chad Austin
5cd35796ba add freebsd support
Summary: Add some basic support for FreeBSD to getdeps.

Reviewed By: ahornby

Differential Revision: D33989129

fbshipit-source-id: 42ff5f160b7e19c12196bb2e52a726f7815487bd
2022-02-08 18:08:18 -08:00
Chad Austin
4fb4756ec9 remove legacy __future__ imports
Summary: The future is now.

Reviewed By: xavierd

Differential Revision: D33714537

fbshipit-source-id: 8d282bbe7391c4b72b70dab54a5c252060fba457
2022-01-24 20:23:34 -08:00
Andres Suarez
b5f1afe216 Update copyright headers from Facebook to Meta
Reviewed By: bhamodi

Differential Revision: D33330724

fbshipit-source-id: 8a798435742dedc96e2b6912179736b6a1c72491
2021-12-27 14:41:24 -08:00
Wez Furlong
98b76fab50 getdeps: GH actions: strip artifacts before capturing them (#809)
Summary:
On Linux the debug info sections in projects downstream from folly and
thrift are huge due to a lot of C++ template usage.

We build in RelWithDebInfo mode as that is most useful when debugging
locally and because the build times are long, but most casual consumers
of the binaries via GH actions really don't care about debug info,
and this should save ~180MB of size in (for example) the watchman
executables.

Pull Request resolved: https://github.com/facebook/watchman/pull/809
Refs: https://github.com/facebook/watchman/issues/804

Test Plan:
Review the artifact size on the linux build in this PR (see
https://github.com/facebook/watchman/actions/runs/91688952) and confirm that it
is a bit smaller than 180MB; now under 3 MB.

Reviewed By: simpkins

Differential Revision: D21318302

Pulled By: wez

fbshipit-source-id: f78bc5e735dd78771e0604abae64c0a23cf9158d
2020-04-29 19:09:47 -07:00
Adam Simpkins
8c46dddb17 emit a script to use for running commands from the build directory
Summary:
On Windows the build artifacts cannot be easily run directly from the build
output directory without installing them.  The `$PATH` environment variable
needs to be set correctly so that the runtime library dependencies can be
found.

This updates the builder code to emit a `run.ps1` wrapper script in the build
output directory that sets `$PATH` to support running build artifacts directly
from the build directory.

Additionally, this updates the CMake-specific builder to set properly when
running the tests with `ctest`.

Reviewed By: wez

Differential Revision: D20688290

fbshipit-source-id: 5d0f4d685692bca7e37370bd88309cf7634d87f0
2020-03-31 15:35:58 -07:00
Wez Furlong
d61c5c4816 getdeps: fixup the dyndeps fixed up by fixup dyndeps
Summary:
On linux we didn't account for the `--final-install-prefix` argument
which meant that the binaries would always be rewritten to be relative to
the destdir.

This commit fixes that.

Refs: https://github.com/facebook/watchman/issues/760

(this doesn't deal with the compiled in statedir being in the scratch path though)

Reviewed By: simpkins

Differential Revision: D20659749

fbshipit-source-id: 1e8e198a58361882249c33a67f54a7d97b849257
2020-03-26 05:51:02 -07:00
Wez Furlong
d46c088003 getdeps: embrace python3 a bit more
Summary:
Ensure that we are referencing python3 in the paths
that we generate for the github actions workflows, and remove
some shebangs that influence how our internal linters process
the python code.

Reviewed By: fanzeyi

Differential Revision: D20659747

fbshipit-source-id: 6f300f8e91edf7701bb27babc7b1418958cf0a10
2020-03-26 05:46:31 -07:00
Wez Furlong
31d721301c getdeps: dyndeps: gracefully handle empty files
Summary:
Don't error out if we can't read the ELF/MACH-O header; just treat
it is not an object.

Reviewed By: chadaustin, simpkins

Differential Revision: D19253434

fbshipit-source-id: c5ecc7f0bc7a20e2611b7e2ff754355155f095da
2020-01-09 07:30:36 -08:00
Andres Suarez
18fe084a4e Relicense getdeps from BSD to MIT
Summary: See https://fb.workplace.com/groups/osssupport/permalink/2846876118694318/

Reviewed By: wez

Differential Revision: D17750243

fbshipit-source-id: 9e149df1f8e09203820f50d0fcac4a5cecf52e33
2019-10-10 13:23:48 -07:00
Wez Furlong
4040bc13f6 getdeps: fixup-dyn-deps: use patchelf from our manifest on linux
Summary:
On linux we use `patchelf` to manipulate dynamic deps but it
isn't guaranteed to be installed everywhere.  We have a manifest file
that describes how to build it, but so far nothing has told getdeps
that it should build it.

This diff updates the ELF dep munging code to literally run
`getdeps.py build patchelf` and then use that patchelf binary to
manipulate the object files.

Refs: https://github.com/facebook/watchman/pull/750

Reviewed By: pkaush

Differential Revision: D17705351

Pulled By: wez

fbshipit-source-id: 358ef239edb389fbd51fa023ff553963aa80b6c7
2019-10-02 17:51:14 -07:00
Wez Furlong
f3531c5fa5 getdeps: adjust fixup-dyn-deps to optionally use absolute paths
Summary:
This commit teaches fixup-dyn-deps how to generate correct
absolute paths in the context of the ultimate install path (specified
via the `--final-install-prefix` option)

Absolute paths are desirable if you have, for example, an executable
that you wish to install with the setuid bit set.

Reviewed By: simpkins

Differential Revision: D17361491

fbshipit-source-id: 4c4f3f15208266300622f84dc9cd1ba83883dfb7
2019-09-16 17:38:07 -07:00
Adam Simpkins
8614512565 improve the code that searches for dumpbin.exe
Summary:
Fix dyndeps.py to find dumpbin.exe in more situations.

Previously the code looked for dumpbin.exe under Visual Studio directories
named either `BuildTools` or `Community`.  On a system with an MSVC 2017
Professional install it is instead located under a directory named
`Professional`.  This updates the glob to allow any directory name here.

Reviewed By: pkaush

Differential Revision: D16207692

fbshipit-source-id: 1a57ec29653a89fd3e751b3e4408a298b4632b11
2019-07-11 19:06:46 -07:00
Puneet Kaushik
afe6a5bd6e getdeps: Extend is_objfile() to Windows class to only select files with .exe extension
Summary: is_objfile() is used to find the executable files in the given project. Getdeps will only find and copy the dependencies of the binaries identified by this function. On Windows we will copy only the dependencies for an exe file.

Reviewed By: chadaustin

Differential Revision: D16185962

fbshipit-source-id: f6b5089401b242514a845e3a97b3804051d93c1c
2019-07-11 08:17:06 -07:00
Puneet Kaushik
9f2fd4ecc5 getdeps: Add subclass to copy dependencies for PE executables on Windows
Summary: This adds a subclass to copy the dynamic dependencies on Windows.

Reviewed By: wez

Differential Revision: D16110433

fbshipit-source-id: 14d876947f3ec504382fef0d459367a7119ff6cb
2019-07-05 15:00:05 -07:00
Wez Furlong
94da945325 getdeps: dynamic dependency munging
Summary:
This diff adds a `fixup-dyn-deps` subcommand that is intended to
aid in packaging on multiple platforms.

Its purpose is to copy a set of executable object files from the getdeps
installation directories and place them into an installation staging
area that will then be used to create some kind of package (rpm, tarball etc.).

The dynamic dependencies of the executables are determined and also copied
into the destination area, and the important part: the execute is rewritten
such that it will load the deps out of an alternate installation prefix.

The implementation of this command draws on similar scripts in use for
the watchman and eden packaging on windows and macos.  This diff adds
linux support using the `patchelf` utility.

Reviewed By: pkaush

Differential Revision: D16101902

fbshipit-source-id: 5885125971947139407841e08c0cf9f35fdf5895
2019-07-03 16:22:00 -07:00