Commit Graph

10229 Commits

Author SHA1 Message Date
svcscm
879fa0195d Updating submodules
Reviewed By: yns88

fbshipit-source-id: fc7ce07d6d471f7cd7c29aa964e25513eb555b97
2019-06-06 14:26:21 -07:00
svcscm
27986b163c Updating submodules
Reviewed By: yns88

fbshipit-source-id: 4eba2250734c708448297a61ec08ea4848c5991e
2019-06-06 12:20:34 -07:00
Shrikrishna Khare
8ddaae9bb5 fbcode_builder: getdeps: fboss: add libnl manifest
Summary:
This is towards getting open source FBOSS to build using fbcode_builder.
libnl is one of the dependencies for FBOSS. This patch adds a manifest
file to build libnl.

Reviewed By: wez

Differential Revision: D15686853

fbshipit-source-id: f7549df6dc1005630193b024be6e1ea330cc6646
2019-06-06 11:40:16 -07:00
Shrikrishna Khare
621b5a5b6d fbcode_builder: getdeps: fboss: add libcurl manifest
Summary:
This is towards getting open source FBOSS to build using fbcode_builder.
libcurl is one of the dependencies for FBOSS. This patch adds a manifest
file to build libcurl.

Reviewed By: wez

Differential Revision: D15683387

fbshipit-source-id: 8df5c413e7dff06d1a19e0ce3b1706bff2f1ab54
2019-06-06 11:40:16 -07:00
Shrikrishna Khare
e6ee12101b fbcode_builder: getdeps: fboss: add libusb manifest
Summary:
This is towards getting open source FBOSS to build using fbcode_builder.
libusb is one of the dependencies for FBOSS. This patch adds a manifest
file to build libusb. FBOSS does not need libudev, so we avoid unncessary
dependency by passing right argument to ./configure.

Reviewed By: wez

Differential Revision: D15683386

fbshipit-source-id: 1d35caecf4012ddc0df24a7305019d522b4763fa
2019-06-06 11:40:15 -07:00
Wez Furlong
c0545b0fde getdeps: disable ccache on sandcastle
Summary:
We sometimes see some flakeyness in our internal CI, so we can live
without it there.

Reviewed By: pkaush

Differential Revision: D15695124

fbshipit-source-id: 1d76ae89e245d9c95937e8818826c544c0ae8fc3
2019-06-06 10:34:21 -07:00
svcscm
1b732ac596 Updating submodules
Reviewed By: yns88

fbshipit-source-id: b0865f81ccf2d2a3bfc799f1b7b519944b175948
2019-06-06 10:34:21 -07:00
svcscm
4d6e1b0176 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 272785544f0b07e99ddaa926ca5ae5675aad7ff7
2019-06-06 01:07:00 -07:00
svcscm
b9469fcfae Updating submodules
Reviewed By: yns88

fbshipit-source-id: 060bf204b6400515bbc8f1b9b3ef34bef9d32560
2019-06-05 20:25:19 -07:00
svcscm
4e805c175f Updating submodules
Reviewed By: yns88

fbshipit-source-id: 6608ac4be8c338ff5a8116b275bbad487d317972
2019-06-05 16:26:35 -07:00
Shrikrishna Khare
a59a824bcd fbcode_builder: getdeps: fboss: add libmnl manifest
Summary:
This is towards getting open source FBOSS to build using fbcode_builder.
libmnl is one of the dependencies for FBOSS. This patch adds a manifest file
to build the specific version of libmnl for FBOSS.

Reviewed By: wez

Differential Revision: D15633176

fbshipit-source-id: dd51997ae950f53842711fbf2d044e84cdf437e7
2019-06-05 15:35:52 -07:00
Shrikrishna Khare
8f31d757f6 fbcode_builder: getdeps: fboss: add OpenNSL fetcher
Summary:
This is towards getting open source FBOSS to build using fbcode_builder.
OpenNSL is one of the dependencies for FBOSS.

OpenNSL is github repository with headers and prebuilt opaque library. Thus, we
can't/don't need to build it. Thus, OpenNSL manifest uses NopBuilder.

fbcode_builder expects the library to be in installed/lib and headers to be in
installed/include, but OpenNSL lib structure is different.  Thus, add explicit
[install.fields] rule for bin/wedge => lib. Once a rule(s) is provided, we must
provide rule(s) for all, so add rule for include => include as well.

Reviewed By: wez

Differential Revision: D15593639

fbshipit-source-id: facb36ff7b9a31f5952ecbc1a9fdb834c0e68d11
2019-06-05 15:35:52 -07:00
Shrikrishna Khare
7ddefe5e25 fbcode_builder: getdeps: fboss: add iproute2 fetcher
Summary:
This is towards getting open source FBOSS to build using fbcode_builder.
iproute2 is one of the dependencies for FBOSS. This patch adds a manifest file
to build the specific version of iproute2 needed for FBOSS.

Additionally, the default git clone depth of 100 is insufficient for the
version of iproute2 FBOSS depends on. Thus, this patch extends the git SCHEMA
to add optional argument depth. The default remains 100.

The usual /configure --prefix does not work for iproute2. Thus, we need to add
a custom builder that:
  - copies sources to build directory, builds, and
  - installs to installed directory using DEST_DIR.
  - it must also explicitly copy include from build dir to install dir

Reviewed By: wez

Differential Revision: D15588809

fbshipit-source-id: ac5eab24134e078d88b85b4be433c78b05ef8ce5
2019-06-05 15:35:52 -07:00
svcscm
9dc40798dd Updating submodules
Reviewed By: yns88

fbshipit-source-id: 3d2afd8a36da65a0ef25912bc16b16e25586c7ef
2019-06-05 12:53:48 -07:00
svcscm
0401eb8c4b Updating submodules
Reviewed By: yns88

fbshipit-source-id: 7320cf0fbb946c1253e7f922eb7b37ca05c7a8f1
2019-06-05 07:26:13 -07:00
svcscm
b0c01fa21e Updating submodules
Reviewed By: yns88

fbshipit-source-id: 758ed93c179a989049bd95ee21b8d5bd7d0c7fbb
2019-06-04 16:10:43 -07:00
svcscm
6cef5f8708 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 71f9061208ef1bf6de05d4073317a31d57cd2afb
2019-06-04 15:27:21 -07:00
svcscm
99f58b3088 Updating submodules
Reviewed By: yns88

fbshipit-source-id: b1182b79f2b06cf6879c808c25c5114c5d370b4f
2019-06-04 14:54:24 -07:00
svcscm
d5a977142b Updating submodules
Reviewed By: yns88

fbshipit-source-id: 74ddca07c092029ac647a1c5b2289054a7682e66
2019-06-04 14:42:14 -07:00
svcscm
841596c01e Updating submodules
Reviewed By: yns88

fbshipit-source-id: 0256f2f4afaeaa2c16074dbca3b9a03ca434c7de
2019-06-03 23:35:13 -07:00
svcscm
9fd80b9f77 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 78da9883833816604d48521fba14d82b62783325
2019-06-03 23:35:12 -07:00
svcscm
b12561dcdb Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 7c9684fdf3a784c088590377063b29fff44d0c8d
2019-06-03 05:25:38 -07:00
svcscm
b2d4a50c30 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 05b2dec2c79de762dfbc70879abd1d65924ef14c
2019-06-02 15:25:11 -07:00
svcscm
087ff36cbd Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 5983a7bf21f8f326eaa259ff239fc6c9f2002ae4
2019-06-01 21:25:46 -07:00
svcscm
06e1490c1a Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 1ef44be44460f740fd2c5da5c3513f8a818da340
2019-05-31 21:15:42 -07:00
svcscm
1f4cd5eeab Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 6cdaadc0e3e573e4f1edbfb749841607a32550fc
2019-05-31 17:21:20 -07:00
svcscm
e8daac0e33 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: fc732eeae6492e83097fe9f04e72f71efbbc83f7
2019-05-31 14:40:09 -07:00
svcscm
e3074630ac Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 6e46adf69b6c41139fb5937d9a429133bbc690b8
2019-05-30 20:07:45 -07:00
svcscm
e9a080078c Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 618c29a0d185c50ed29c9554677a45ac28b35dda
2019-05-30 18:02:39 -07:00
svcscm
e66868f36d Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: f803465b8810d1de52b1312600ccef4b92c3032c
2019-05-30 15:53:19 -07:00
svcscm
51fbd14c3e Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 19c7aa34142245ed8e0caf245fea8ec5e94ad554
2019-05-30 15:11:10 -07:00
svcscm
17cc40f1a5 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 80a731a1b8b04df01cb0d68ec39d4af10e0b61b7
2019-05-30 13:08:57 -07:00
svcscm
5436028259 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: af765acb032edbe24f9b777b17289114c1b29d06
2019-05-29 18:11:56 -07:00
svcscm
bade84fcf2 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: e80baf12df66161b4cc9e63601427aa1cab2a7c6
2019-05-29 11:59:09 -07:00
svcscm
47b9872112 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: cf8b6798a2b4b214bd5ff096d8286efbc1c80460
2019-05-29 11:38:21 -07:00
svcscm
f10edf0fe4 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: b507922505288b4a855bd9eab830c50b39a6935b
2019-05-29 09:33:04 -07:00
svcscm
9da4e9fa52 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: e34d14b44c2717b1eb7d90802963d1a846d3ded1
2019-05-28 23:56:50 -07:00
svcscm
fcd0b3279a Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: cdb44b8de504d5a874aaa7457030244ea950c2d5
2019-05-28 21:39:39 -07:00
svcscm
341f49aff1 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: c7c9c961e7725ddc06fbd498845fbd14a7585ddb
2019-05-28 17:06:41 -07:00
svcscm
a9ca486c57 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 23ed059bc8aa5ca054eddc56f843b3e3e840f4ee
2019-05-28 15:23:54 -07:00
svcscm
8e338d311c Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: f6a2b8b18c5134d524aff0f143537e64c539461a
2019-05-28 12:17:38 -07:00
svcscm
acea2fdd21 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 9888f8fc0a43c7e7236c362549bb8a8056ce17cd
2019-05-27 21:54:44 -07:00
svcscm
a492a10b29 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 7923a83955279e90e6203bdf0360254595c93cc3
2019-05-27 13:56:18 -07:00
Yuhan Hao
362250ecbe update README.md on ubuntu and gcc version
Summary: it seems since D15286181, we updated docker os_image to ubuntu18 and gcc7. this diff changes the README.md to reflect the change.

Reviewed By: yfeldblum

Differential Revision: D15513580

fbshipit-source-id: 0a3518c21c912903921946850bd08c948f09c295
2019-05-27 13:33:44 -07:00
svcscm
ef2a1f4a3c Updating submodules
Reviewed By: yns88

fbshipit-source-id: 486adefe13e0e760259f7a99d967b129b6166a97
2019-05-26 16:24:54 -07:00
svcscm
80d22bde6b Updating submodules
Reviewed By: yns88

fbshipit-source-id: 4549fe1fd2f9cfafafd813e56b9b613b69aa4286
2019-05-25 18:24:31 -07:00
svcscm
0527adffc8 Updating submodules
Reviewed By: yns88

fbshipit-source-id: e0c180bab83e960c1823cc5b93a5b9365c38fa99
2019-05-24 18:01:31 -07:00
svcscm
0052f18227 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 44f5e05da5db0b84aafdd7dcd6ac599d932b4f6d
2019-05-24 18:01:31 -07:00
svcscm
6e28b54e00 Updating submodules
Reviewed By: yns88

fbshipit-source-id: c3f4cc756039a82cef77c8f8853f9f1c8ff3f570
2019-05-24 15:16:56 -07:00
Wez Furlong
50de2ef9cc getdeps: configure testpilot to use collections and tag tests
Summary:
This should enable test pilot to skip broken/flakey tests.

The `--tag-new-tests` flag is only appropriate for code that has been
landed on master and is used by the FB infra to classify new tests
appropriately.

For continuous builds we use a test collection with different parameters
from the normal developer facing flow so that the infra can re-assess
their status and enable/disable high-signal/noisy tests.

Depends: D15495344

Reviewed By: Ben0mega

Differential Revision: D15500955

fbshipit-source-id: f3b7976cec6a5cf70f5d128b38bde11620b26918
2019-05-24 14:12:53 -07:00
svcscm
d0cf03fbdf Updating submodules
Reviewed By: yns88

fbshipit-source-id: aec64d6f6501f49d0ffca80885a12f602668fcf7
2019-05-24 14:12:53 -07:00
svcscm
3a538cb756 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 2787b3c4c2e78fb0924a40062733a5d9310213b8
2019-05-24 12:56:19 -07:00
svcscm
b66dd572ac Updating submodules
Reviewed By: yns88

fbshipit-source-id: 07b9fc7c0cd5fe3a0ff5d0ba7b23e755af5f7e61
2019-05-24 12:49:05 -07:00
svcscm
b18012df1e Updating submodules
Reviewed By: yns88

fbshipit-source-id: 58b230ad12620032f391733c7f9c1e44aeaa390b
2019-05-23 19:46:14 -07:00
svcscm
e688fa4885 Updating submodules
Reviewed By: yns88

fbshipit-source-id: ce6205829ac1b83b6782800e20851540196579f6
2019-05-23 15:58:05 -07:00
Matt Glazar
99dd3b54fd Reuse old build dir on Windows
Summary:
getdeps.py's find_existing_win32_subst_for_path function tries to reuse an existing build directory alias. (On Windows, the build directory is aliased to a drive letter to shorten paths.) If this function does not find and existing build directory alias, getdeps.py invalidates many of its caches.

On my Windows machine, find_existing_win32_subst_for_path always fails, so all of my builds are super slow. This happens because find_existing_win32_subst_for_path is given a path with a lower-case drive letter ("c:\users\..."), but the subst command returns paths with an upper-case drive letter ("C:\users\...").

When comparing paths, use ntpath.normpath. This makes the comparison case-insensitive for drive letters. (It also makes the comparison case-insensitive for other path components.)

On Linux and macOS, this diff should not change behavior.

Reviewed By: wez

Differential Revision: D15466096

fbshipit-source-id: 1669aa0a6eaeb6012154f3a9e24eba3f835262c6
2019-05-23 15:41:34 -07:00
svcscm
94eec81eb8 Updating submodules
Reviewed By: yns88

fbshipit-source-id: f4fcf1355821735cd8c6dd4883376bfc4e2ad823
2019-05-23 14:37:41 -07:00
svcscm
b38e6accbc Updating submodules
Reviewed By: yns88

fbshipit-source-id: be2204aaec30448b0800cb0082a9720dbebc6fb4
2019-05-23 12:54:59 -07:00
svcscm
aed6f1f6ac Updating submodules
Reviewed By: yns88

fbshipit-source-id: b5893fc78fb7f930efdcdca45cb810602413b6d7
2019-05-23 11:57:23 -07:00
svcscm
3150fe8175 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 267d1831a445f8fbc993276992ae931d0586f205
2019-05-22 23:14:50 -07:00
svcscm
be5394641c Updating submodules
Reviewed By: yns88

fbshipit-source-id: 0e0725abbc162776e16fda955b71162493ea30b3
2019-05-22 23:14:50 -07:00
svcscm
d11daf6f6f Updating submodules
Reviewed By: yns88

fbshipit-source-id: 4f2cb905e806c20a3319ef4470efeda1d9f13549
2019-05-22 18:36:46 -07:00
svcscm
4cf8c33987 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: e7ee25c1739d6bf36ffaeb0bcf7881d37b0c1999
2019-05-22 15:05:14 -07:00
svcscm
54035867a0 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: b38820b1e0cb8fff33e8d4d3dfa700589926ddad
2019-05-22 14:46:37 -07:00
svcscm
8901f5a1b9 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 6e2e9c2cf98ca746b6667e9546bcb3c8bafdd938
2019-05-21 22:26:49 -07:00
svcscm
ab80f396f3 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 0c38aa2ae3101ba6b7589c48968d7ff4922ab4c0
2019-05-20 22:30:13 -07:00
Jingyi Yang
08fa3c9564 sigar + libzmq
Summary: Add lizmq and sigar in prepare for fbzmq oss build migration.

Reviewed By: wez

Differential Revision: D15387435

fbshipit-source-id: 1ec2057972bf801a1598af0a1ae87f958394d812
2019-05-20 21:39:24 -07:00
svcscm
9d2c1f7841 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 25eddc1ba7e9cbedc01777c525b12301e110a3f8
2019-05-20 21:39:24 -07:00
svcscm
17951f7ca7 Updating submodules
Reviewed By: yns88

fbshipit-source-id: e74da7df7975d6d70acaff60783850f25eaa79fe
2019-05-20 19:56:17 -07:00
Wez Furlong
b04ce1a181 watchman: fixup FB internal mac packaging
Summary:
with the reshuffling around getdeps.py, and changes in folly/thrift/wangle,
our internal package stopped building.  This diff brings it back to life.  It is
a little bit interwined:

* Introduce a `--facebook-internal` switch to getdeps that causes `fb` in the
  build context to be set to `on` rather than `off`.  This allows specifying
  options in the manifest that are FB specific.
* Introduce cmake options to control the WATCHMAN_STATE_DIR and whether cmake
  should attempt to create WATCHMAN_STATE_DIR when it is installed.
* For FB specific builds on macOS, set the state dir to match our existing location
  and disable creation of WATCHMAN_STATE_DIR because that will ultimately be
  handling during package installation and we don't have privs for that on
  the machine generating the package.
* Adjust Facebook CI scripts to use getdeps for building and testing watchman

Reviewed By: simpkins

Differential Revision: D15337970

fbshipit-source-id: 8ab3c1f810decf5f0b16337dc1cbe6dc73d26426
2019-05-20 19:32:38 -07:00
svcscm
67c95c5be6 Updating submodules
Reviewed By: yns88

fbshipit-source-id: d62a75b49797fb15dcd37bfda53623b0d5a88d95
2019-05-20 19:32:38 -07:00
svcscm
07cf91ec0f Updating submodules
Reviewed By: yns88

fbshipit-source-id: a802526d720ab892dba6f456db9658b63b4808d8
2019-05-20 16:43:07 -07:00
svcscm
cdc6249feb Updating submodules
Reviewed By: yns88

fbshipit-source-id: 8360e4ed2f6b77c9572e4e66e0c36dbf5b3a4560
2019-05-20 14:03:50 -07:00
svcscm
457a46f10b Updating submodules
Reviewed By: yns88

fbshipit-source-id: 78ac51bee4063446b3c1df6d88bdac591ccdf083
2019-05-20 11:30:15 -07:00
Wez Furlong
86c0aab8d2 getdeps: allow tagging a build with its schedule type
Summary:
The schedule type is used to differentiate between a build run during
code review (and thus runs code that isn't yet in the master branch),
from continuous or other types of run that operate on landed code.

This doesn't change any behavior yet; this diff just adds
the plumbing to pass down an optional arbitrary schedule type string
from the CI system.

In the future, we'll use the schedule type to influence the behavior
of running tests.

Reviewed By: strager

Differential Revision: D15300120

fbshipit-source-id: 3b46afef2ff171b3fa095763dd5006a54ea328b8
2019-05-20 11:06:43 -07:00
svcscm
542fb77651 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: d98894f2e946fdc94df510a5e822d6b71ee33e3d
2019-05-20 11:06:43 -07:00
svcscm
1de8701afe Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 4acf6896feb9857504b0d7656b348f734c45957b
2019-05-19 19:43:02 -07:00
Luca Niccolini
33ec8c8bfc enable CMake build (with HTTP/3)
Reviewed By: udippant

Differential Revision: D15368849

fbshipit-source-id: 5e101fc38417b807a531fa456b38234d6dd08b7a
2019-05-19 19:17:18 -07:00
svcscm
8f8d1c3e6d Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: bd6f006a4542e6abb3d7e9d55a83a8205dd88ec4
2019-05-19 19:17:18 -07:00
svcscm
2c743e3db5 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 629fe69e46f7f6862953260b6edccf2ac647eb0c
2019-05-19 17:25:00 -07:00
svcscm
956f565b10 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 7d46eb023b039d5d9039ad0248cd5b62b19d8c18
2019-05-18 20:25:18 -07:00
svcscm
fd4a7d0ed0 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: d9231df25576dc0a1c0c1cba4417de698a44d00e
2019-05-18 13:25:00 -07:00
svcscm
9811b8cc4b Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: e3239991ae70019270f345797319f5d36cf76167
2019-05-17 13:21:49 -07:00
svcscm
514e0ad019 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 004262d046427b2f776ed5b39c26ff844a293ee8
2019-05-17 11:48:37 -07:00
svcscm
4f65904d70 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 1b3cc2cd6728cfea9896b6f0ac154701ce5d5d80
2019-05-17 10:53:48 -07:00
svcscm
3e1d96cfd2 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: c9ce2616e3bb920071709e6a0c9804bb2270d430
2019-05-17 09:57:23 -07:00
svcscm
3c1f145619 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 8277abfa10e0682c0b5f6e7143395a5c7cc88c9e
2019-05-16 17:22:34 -07:00
Wez Furlong
38525f5795 getdeps: add support for using ccache in cmake builds
Summary:
if we find ccache in the path, then we instruct cmake to use
it as the compiler launcher.

Reviewed By: pkaush

Differential Revision: D15375441

fbshipit-source-id: 602fe54742a5ec07b0533bd2cf63cb905b051e85
2019-05-16 16:55:09 -07:00
svcscm
2d69091122 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: cf0d2c992f104f2c573c90996ddb715d3b134086
2019-05-16 15:30:27 -07:00
svcscm
70fd415367 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: feb7619f7df233f909c94d520d8d71370621a060
2019-05-16 15:30:26 -07:00
svcscm
9ede5b6c0a Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 266e5ce8fc981249b1cf3fae0ec1d65e9e827b4e
2019-05-16 11:28:45 -07:00
Wez Furlong
e09f8a970e getdeps: correctly handle the install_dir value
Summary:
We were computing `SCRATCH/install` and hashing based on that value,
but the build stuff was later computing `SCRATCH/installed` and passing that
to the builders.

Fixup the mismatch.

Reviewed By: simpkins

Differential Revision: D15337969

fbshipit-source-id: 70288f2d9286aaacf4c1f6e0dac4680a55edac6d
2019-05-16 11:23:36 -07:00
svcscm
b00c108061 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: c039fd8f99e7dc9395aca49f95f5fe825602c201
2019-05-16 11:23:36 -07:00
svcscm
2dcc9817df Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 28617a25839a6eed95bea0b67a38eb88885bf37e
2019-05-15 19:30:06 -07:00
svcscm
431b6ae8f4 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 70092d996d1da6ce6f93ad0f5e10f5c7f20f9f28
2019-05-15 19:30:06 -07:00
svcscm
f6d4041fcc Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: ef3eb7f43897cdabf61ed8c1abd600bdf6983e7a
2019-05-15 14:42:39 -07:00
svcscm
5594dddb51 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 7fb8cfc6810e8b4f3a40a9ae8c20b21f43cad1a2
2019-05-15 11:35:00 -07:00
svcscm
846fcfc637 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: 63e9b4a8cf5b15a6ba20d1946aac36c1604d8079
2019-05-14 18:57:17 -07:00
svcscm
47150015d8 Updating submodules
Reviewed By: cdelahousse

fbshipit-source-id: f514c0e7f58af85e42d6ef6e22a05373c0b82735
2019-05-10 17:14:29 -07:00
Udip Pant
e4db25f8b7 update docker os_image to ubuntu18 and gcc7
Summary:
This diff updates docker os_image to ubuntu18 and gcc7 in travis settings.
The dependencies that we work with internally (e.g. gcc7, boost and so on) are not present in the ubuntu-16.04. Further, the support for gcc5 is going away. So maintaining this compatibility for these platforms is painful, especially for new projects, such as mvfst.

Reviewed By: simpkins

Differential Revision: D15286181

fbshipit-source-id: eb0da9556cdb17d0aa132ac2aa4c35f9c6eccd97
2019-05-10 16:39:16 -07:00
John Strizich
b22731e3b5 add option to pass options to git clone
Summary: We need this for dependencies that require submodules

Reviewed By: saifhhasan, GirasoleY

Differential Revision: D15282792

fbshipit-source-id: b0cc8d645e73668252409934fd6741fb211e30ae
2019-05-10 13:55:46 -07:00
Zeyi (Rice) Fan
92a977f6eb fix encoding issue when building on Windows
Summary:
On Windows, the writing operation would fail with:

```
Traceback (most recent call last):
  File ".\opensource\fbcode_builder\getdeps.py", line 400, in <module>
    sys.exit(main())
  File ".\opensource\fbcode_builder\getdeps.py", line 393, in main
    return args.func(args)
  File ".\opensource\fbcode_builder\getdeps.py", line 236, in run
    change_status = fetcher.update()
  File "C:\open\fbsource\fbcode\opensource\fbcode_builder\getdeps\fetcher.py", line 451, in update
    return mapping.mirror(self.build_options.fbsource_dir, self.repo_dir)
  File "C:\open\fbsource\fbcode\opensource\fbcode_builder\getdeps\fetcher.py", line 400, in mirror
    f.write(name + "\n")
  File "C:\Python36\lib\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 104-105: character maps to <undefined>
```

and this is caused by a file in libgit2: https://github.com/libgit2/libgit2/blob/master/tests/resources/status/%E8%BF%99, which is intended to test handling non-ASCII path.

Python on Windows will write file in cp1252 encoding by default, which does not contain that Chines character. (Caveat: that file on my system doesn't have the correct file name as well, it is being encoded in IBM861 for some reason. However the characters in IBM861 does not exist in CP1252 either)

Reviewed By: wez

Differential Revision: D15281521

fbshipit-source-id: 8a75e32bc1042167c945d67e26b549fda83b6b41
2019-05-10 13:17:32 -07:00
Wez Furlong
002101dec8 getdeps: introduce TransientFailure exception type
Summary:
The goal is to return an error code > 127 in the case of a
transient, retryable, infrastructure error.  This diff generates
those in the case of failure in downloading a URL or from interacting
with LFS.

Reviewed By: strager

Differential Revision: D15266838

fbshipit-source-id: 4f52a791320123968869032c37912dded464a86e
2019-05-10 12:52:45 -07:00
Wez Furlong
942723f3bf getdeps: respect cmake WORKING_DIRECTORY for tests
Summary:
the cmake `add_test` and related functions allow specifying
the WORKING_DIRECTORY to use for tests.  We weren't respecting this
value, so this diff looks up the WORKING_DIRECTORY from the ctest
json info and adjusts the buck test info json blob that we pass
on the testpilot.

Since that interface only allows passing an argv array, we use
the `cmake -E chdir` command to run a command in a specified
directory in a portable manner.

Reviewed By: strager

Differential Revision: D15274012

fbshipit-source-id: 1f02d461d73178745794703d455494e31c2e09ed
2019-05-10 12:47:21 -07:00
svcscm
c1315f01c9 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 5a216fbe29ff5a849e75a7ed5a592efa63619268
2019-05-10 10:27:16 -07:00
svcscm
51dd8f9d94 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 91dc5e42744a02690b9d41cd403d9a21f14d3f9b
2019-05-10 09:25:12 -07:00
svcscm
8e152931b1 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 98bb7ad690a6b1e0a58d7bff4b275b5db359023f
2019-05-09 19:14:30 -07:00
Yuhan Hao
4ad67b815c remove mstch from fbthrift's fbcode_builder spec
Summary: mstch is no longer required for fbthrift, we can remove it from oss build spec

Reviewed By: vitaut

Differential Revision: D15280267

fbshipit-source-id: 5008e54af9c927f23b0d6acbf0d9beb6e004eee1
2019-05-09 12:39:24 -07:00
Yuhan Hao
d763f711db mstch is no longer required for fbthrift
Summary: mstch is no longer required for fbthrift, we can remove it from manifests

Reviewed By: vitaut

Differential Revision: D15279652

fbshipit-source-id: 1772de7ab51fbfe048808f66290c4ca79de60608
2019-05-09 12:39:24 -07:00
svcscm
361ae853d1 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 31f0b02454d176526e3e0a7c0b44b6266c6b739a
2019-05-09 12:39:24 -07:00
svcscm
415e8ca18d Updating submodules
Reviewed By: zpao

fbshipit-source-id: 98327ac3301e41f5639132e1d801a7bdd67f1956
2019-05-08 19:30:45 -07:00
Wez Furlong
8c4f92f243 getdeps: introduce build --enable-tests option
Summary:
This controls whether tests are built or not.
They are not built by default.  When `--enable-tests` is turned on,
tests are enabled for the named project only, not all of the deps.
This results in a faster build, because eg: the number of tests in
folly is very large and consumers of folly don't want to spend so
much time waiting to build tests when really all they want to do
is build their own project.

Reviewed By: strager

Differential Revision: D15246336

fbshipit-source-id: 2e22fd60c983b059f71639602712087f2a188ec6
2019-05-08 08:21:16 -07:00
Wez Furlong
5c6d7a8904 getdeps: if the hash has changed, force a cmake reconfigure
Summary:
This is needed to correctly pick up changes made to
eg: cmake.defines sections in the manifest for first-party
projects.

Reviewed By: strager

Differential Revision: D15246337

fbshipit-source-id: 35e525e885f87d6136d5ff3b94ebf34516ab947c
2019-05-08 08:21:15 -07:00
Udip Pant
a7a9264951 add fbcode_builder_config for mvfst build in oss
Summary: support for fbcode_build and travis build

Reviewed By: siyengar

Differential Revision: D15184766

fbshipit-source-id: 5117164c324d3d3c867592a88670a53b6f862477
2019-05-07 19:40:54 -07:00
svcscm
b70bb662d4 Updating submodules
Reviewed By: zpao

fbshipit-source-id: be10e59bd10367e147cd7ad0711c518d9c314efa
2019-05-07 17:41:36 -07:00
svcscm
45eec107a4 Updating submodules
Reviewed By: zpao

fbshipit-source-id: b3267d5d3b59fb5332d414acae0b74d3edc882e0
2019-05-06 20:27:30 -07:00
svcscm
6dd34a5b26 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 0cdde8d4f33e5e943498932887949010bb5b116d
2019-05-06 16:10:41 -07:00
svcscm
a5ddb1ca01 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 3e253cbb94aea2cae546d91ec69a16ee18684a40
2019-05-05 20:26:23 -07:00
svcscm
cfd3d04418 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 0972ca4ab41cb6c83da5acb7630c0af010e666fb
2019-05-04 20:23:42 -07:00
svcscm
183f165629 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 49abcc2e79050e1c113ebc9ed25a84299e26eeb6
2019-05-04 17:25:40 -07:00
svcscm
d43ecab69c Updating submodules
Reviewed By: yns88

fbshipit-source-id: 4197239d4f138b1a5171717fea1fe210efcc3121
2019-05-03 16:58:19 -07:00
Wez Furlong
5a1d9629dd fbcode_builder: getdeps: add build --no-deps flag
Summary:
This is useful especially on Windows where the up-to-date
checks for the dependencies take a long time.

The idea is that you might run this to start:

```
$ getdeps.py build eden
```

and then while in the edit/debug/build iteration cycle:

```
$ getdeps.py build --no-deps eden
```

Reviewed By: pkaush

Differential Revision: D15200352

fbshipit-source-id: 086f2f49db967ef4d1914a69fa80067104d79136
2019-05-03 15:59:45 -07:00
Wez Furlong
0ce8361867 fbcode_builder: getdeps: add sqlite3 builder
Summary:
Previously, we were using autoconf to build sqlite,
but that isn't available on Windows.  Instead, here's a builder
that generates a little cmake configuration for building and
installing sqlite.

Using cmake for this means that we can test the same builder
on all platforms that need to pull in sqlite.

Reviewed By: simpkins

Differential Revision: D15179387

fbshipit-source-id: fccf969182565982bd5be55545a2d2625aa99124
2019-05-03 15:59:45 -07:00
Wez Furlong
ce422057b1 fbcode_builder: getdeps: add LFS caching for ArchiveFetcher
Summary:
When running in FB infra, prefer to download from our local LFS
server rather than going out to the internet.

Fall back to a normal internet download if the LFS get fails for some reason.

Upload to LFS after successfully verifying the hash for the downloaded archive.

Add a subcommand that performs a fetch for all possible platforms so that it
is easier to ensure that the lfs-pointers file is up to date.

Reviewed By: simpkins

Differential Revision: D14978660

fbshipit-source-id: 240fc32fc7003d1e06c88b80d85054dae36e2f31
2019-05-03 15:59:45 -07:00
Wez Furlong
12b0708dd8 eden: getdeps: add fb-mercurial dep to enable treemanifest
Summary:
In order to pull in the treemanifest and other libraries
from our mercurial repo, add a manifest file for it, and then
adjust the logic in our cmake module to look for it.

The fb-mercurial manifest just copies the source tree to the
installation dir.  In the future, we could teach it to invoke
the build for real.

Reviewed By: simpkins

Differential Revision: D14969806

fbshipit-source-id: cb270c5003a1c134eeea92c7481a84938f1c5957
2019-05-03 15:59:44 -07:00
Wez Furlong
e81956ff66 fbcode_builder: getdeps: add show-inst-dir and show-source-dir commands
Summary:
This prints out the installation or source prefix for a given project.
This is useful in eg: packaging scripts to figure out where they can
find the built artifacts.

Reviewed By: simpkins

Differential Revision: D14967378

fbshipit-source-id: 7e1b5de2ca7219af24cfb07b4b42de22aa410469
2019-05-03 15:59:44 -07:00
Wez Furlong
0273305ebc fbcode_builder: getdeps: use testpilot when available to record tests
Summary:
If `testpilot` is available, generate a buck compatible json file describing the available test binaries and feed that to testpilot to have it run the tests.

A later (yet to be written) diff will be able to pass appropriate flags down to testpilot in continuous runs and that will allow testpilot to auto-disable and file tasks for tests in the opensource builds.

Reviewed By: simpkins

Differential Revision: D14766856

fbshipit-source-id: 4e144ff18f6788cf5e830d29788eabd2dbbae46a
2019-05-03 15:59:44 -07:00
Wez Furlong
23ad8b952a fbcode_builder: getdeps: introduce loader class
Summary:
The loader makes it possible to monkey patch the functions
that are responsible for loading manifests.  It is intended to be use
in tests that are run in bucks sandboxed environment and that don't
have direct access to the manifest files on disk.

Reviewed By: simpkins

Differential Revision: D14781326

fbshipit-source-id: 18f69f8ce5768dc605b1a9388a80b7b7b9ffe0f4
2019-05-03 15:59:43 -07:00
Wez Furlong
27776a83b1 fbcode_builder: getdeps: beef up hash computation
Summary:
previously, a relatively lame hash was computed to use
for the build directory based on some hash of the source directory.
That was good enough to get things off the ground, but in the
interest of being able to cache the build outputs and safely
invalidate them we need a slightly more rigorous implementation.

This diff computes a hash based on the manifest contents and
relevant environmental factors.

The hash is used to name the build directory which will ultimately
be cached eg: using the travis/appveyor cache directory configuration
and some other means for the FB internal CI.

The hash needs to be sufficient that we change the hash when
the manifests change.  We can tolerate a false positive change
in hash (it just means that a build will take longer), but
cannot tolerate a false negative (which would result in an
incorrect build).

Reviewed By: simpkins

Differential Revision: D14710332

fbshipit-source-id: ebc2e74eafc6f3305d4412a82195bc9fb9dfa615
2019-05-03 15:59:43 -07:00
Wez Furlong
d0c916cba3 fbcode_builder: getdeps: add sandcastle subcommand
Summary:
This command schedules a facebook specific sandcastle job for the current
commit in your repo for each of the platforms we have support for in
sandcastle.

You can use `--dry-run` to have it print out the job specs.

To support this, I've moved around some of the support utilities
to make it easier to import them.

Reviewed By: simpkins

Differential Revision: D14710330

fbshipit-source-id: fb1e2a2ce78e52894291159514977da97028b37f
2019-05-03 15:59:43 -07:00
Wez Furlong
dc0bf56686 fbcode_builder: getdeps: add testing concept
Summary:
Adds a `test` subcommand that runs the tests for project.
We're mostly interested in the 1st party facebook projects for this.

The `sandcastle` flow will run the `test` subcommand just for the "leaf" project--the one named on the command line.

Reviewed By: simpkins

Differential Revision: D14710331

fbshipit-source-id: 7d04a46cfd723894d61018de2f230140b52285ac
2019-05-03 15:59:43 -07:00
Wez Furlong
de839282fe fbcode_builder: getdeps: add clean command
Summary:
This cleans up the scratch dir, removing everything except
for downloaded tarballs.

Reviewed By: simpkins

Differential Revision: D14781328

fbshipit-source-id: 9304e44a268cf7996c5e572a2eca219aefbf4b46
2019-05-03 15:59:43 -07:00
Wez Furlong
e00b67a09c fbcode_builder: getdeps: add flag to use the real shipit
Summary:
This fixes a TODO; in our CI environment we want to use the
real shipit, so we'll use this flag to make that happen.

Reviewed By: simpkins

Differential Revision: D14695576

fbshipit-source-id: 64ee72c210e2472d295dcbd39c86549273b68452
2019-05-03 15:59:42 -07:00
Wez Furlong
bd1fc45e7b watchman: add cmake option to select whether we build with eden
Summary:
This makes it possible to disable eden (and thus thrift) support.

I've defaulted this to off so that we don't break the existing
watchman CI.

Reviewed By: simpkins, strager

Differential Revision: D14726767

fbshipit-source-id: 0f4d0597d901a91850f1ba6d71609c059c064c22
2019-05-03 15:59:42 -07:00
Wez Furlong
2955869d76 getdeps: add build subcommand
Summary:
adds the command that is used to drive a build.

The dependencies of the named project are computed using
the same mechanism behind the `list-deps` subcommand.
If a manifest specifies that it uses the `cmake` builder then
a dependency on `cmake` is synthesized so that we can download
a recent version of cmake ahead of time.

The build command uses the fetcher to update the src and then
executes the builder.

Reviewed By: simpkins

Differential Revision: D14691011

fbshipit-source-id: 31ae59614651ef021a9505e89c13b5717b440071
2019-05-03 15:59:42 -07:00
Wez Furlong
99e2691544 fbcode_builder: getdeps: add NopBuilder
Summary:
this could do with a better name; the NopBuilder doesn't actually
build anything, but instead copies some files to the destination location.

This is used together with eg: cmake to install pre-built binaries downloaded
from a tarball.

Reviewed By: simpkins

Differential Revision: D14691015

fbshipit-source-id: a938e977aa4ec5a664bdb8085ff708319a204594
2019-05-03 15:59:42 -07:00
Wez Furlong
5f8f6bfe0f fbcode_builder: getdeps: add Boost builder
Summary:
the boost builder knows how to perform the non-standard
configure and build for boost.

Ideally we'd just build this statically and be happy but there are
some nuances I've observed while building on different platforms:

* One of our projects (thrift or wangle) explicitly requests static
  boost linkage for reasons unspecified
* on darwin the install_name is broken when building dynamic libs

For the sake of expediency in getting getdeps up and running, the
solution for the moment is to build static on posix systems and
build both static and shared on windows systems.

Reviewed By: simpkins

Differential Revision: D14691009

fbshipit-source-id: 634770a6f53c3ada42d1877cc6c3dacc6eed7d18
2019-05-03 15:59:41 -07:00
Wez Furlong
b2bd703660 fbcode_builder: getdeps: add OpenSSL builder
Summary:
the openssl builder knows how to perform the non-standard
configuration and build steps to build openssl.

On Linux systems the manifests for our projects don't mention
openssl, causing them to pick up the system openssl.

On Mac, apple don't ship openssl headers so we need to build our own.
On Windows there is no standard openssl installation so we also need
to build our own.

As a result, this builder only works on windows and mac.

Reviewed By: simpkins

Differential Revision: D14691010

fbshipit-source-id: 9f8979f9eaeb5209c290cf4f43c97c0cb43d13a2
2019-05-03 15:59:41 -07:00
Wez Furlong
fc9da12b9c fbcode_builder: getdeps: add NinjaBootstrap builder
Summary:
this builder is used to bootstrap the ninja build tool.

On Windows and mac the manifest for ninja is set to download a pre-built executable.
While pre-built executables are available for linux they aren't portable enough
for our purposes so we need to be able to build it for ourselves.

Reviewed By: simpkins

Differential Revision: D14690992

fbshipit-source-id: b60fd02ad04f58dc7c2931280341791270609737
2019-05-03 15:59:41 -07:00
Wez Furlong
1a5ebc8999 fbcode_builder: getdeps: add CMakeBuilder
Summary:
the cmake builder knows how to use cmake to configure a build
for (preferably) and out-of-src build.  The `cmake.defines` section of
the manifest is used to pass `-Dkey=value` options to the cmake configure
command line.

We prefer to use `ninja` to execute the build so that we can use more
cores than 1 on Windows and just for consistency across platforms
with mac and linux.

Reviewed By: simpkins

Differential Revision: D14690998

fbshipit-source-id: 8102e8b4a47da515ca001772788ed0e5f2645ad7
2019-05-03 15:59:41 -07:00
Wez Furlong
2e76bd33f8 fbcode_builder: getdeps: add AutoconfBuilder
Summary:
the autoconf builder performs an out-of-source build using
the autoconf suite to configure the build rules.

The `autoconf.args` section from the manifest is passed to the `./configure`
command line.

If an `autogen.sh` script is present then it will be used to regenerate
a missing `configure` script, otherwise we'll try `autoreconf`.

Reviewed By: simpkins

Differential Revision: D14691002

fbshipit-source-id: ab8cceafb833dab513d5a50c65f4c895a4f40047
2019-05-03 15:59:41 -07:00
Wez Furlong
3e89ba51f2 fbcode_builder: getdeps: add MakeBuilder
Summary:
the make builder runs `make` in the source directory.
The `make.args` section from the manifest is passed as arguments
to the `make` invocation.

Reviewed By: simpkins

Differential Revision: D14690996

fbshipit-source-id: 180d657ad05f0c0266a8c1d30979d8d1473958c9
2019-05-03 15:59:40 -07:00
Wez Furlong
9b87d8495d fbcode_builder: getdeps: add BuilderBase class
Summary:
a builder knows how to build and install a project.

Later diffs add concrete implementations of the BuilderBase

Reviewed By: simpkins

Differential Revision: D14691018

fbshipit-source-id: 89b14614b5160353cd7e59f27037afcdf6229eb7
2019-05-03 15:59:40 -07:00
Wez Furlong
b936bf4243 fbcode_builder: getdeps: add list-deps subcommand
Summary:
While the command isn't necessarily super useful
on its own, it does show that the plumbing for walking the
deps is functioning, and that is important when it comes
to building.

The output lists the projects in the order that they
would be built.

The `fetch` command has been augmented to add a `--recursive`
flag that uses the same mechanism to recursively fetch
the dependencies.

Reviewed By: simpkins

Differential Revision: D14691004

fbshipit-source-id: b00bf6ad4742f8bb0a70698f71a5fe03d6a1f453
2019-05-03 15:59:40 -07:00
Wez Furlong
955804d469 fbcode_builder: getdeps: add fetch subcommand
Summary:
Adds a command that can be used to trigger a fetch for a project

```
$  ./opensource/fbcode_builder/getdeps.py fetch zstd
Cloning https://github.com/facebook/zstd.git...
 ---
+ git clone --depth=100 https://github.com/facebook/zstd.git /data/users/wez/scratch/dataZusersZwezZfbsource/fbcode_builder_getdeps/repos/github.com-facebook-zstd.git
Cloning into '/data/users/wez/scratch/dataZusersZwezZfbsource/fbcode_builder_getdeps/repos/github.com-facebook-zstd.git'...
remote: Enumerating objects: 3816, done.
remote: Counting objects: 100% (3816/3816), done.
remote: Compressing objects: 100% (1415/1415), done.
remote: Total 3816 (delta 2556), reused 3312 (delta 2288), pack-reused 0
Receiving objects: 100% (3816/3816), 2.93 MiB | 9.59 MiB/s, done.
Resolving deltas: 100% (2556/2556), done.
Updating /data/users/wez/scratch/dataZusersZwezZfbsource/fbcode_builder_getdeps/repos/github.com-facebook-zstd.git -> v1.3.8
 ---
+ git -C /data/users/wez/scratch/dataZusersZwezZfbsource/fbcode_builder_getdeps/repos/github.com-facebook-zstd.git fetch origin v1.3.8
From https://github.com/facebook/zstd
 * tag               v1.3.8     -> FETCH_HEAD
 ---
+ git -C /data/users/wez/scratch/dataZusersZwezZfbsource/fbcode_builder_getdeps/repos/github.com-facebook-zstd.git checkout FETCH_HEAD
Note: checking out 'FETCH_HEAD'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 470344d Merge pull request #1479 from facebook/visualTest
 ---
+ git -C /data/users/wez/scratch/dataZusersZwezZfbsource/fbcode_builder_getdeps/repos/github.com-facebook-zstd.git submodule update --init
```

Reviewed By: simpkins

Differential Revision: D14691008

fbshipit-source-id: 3afa391360518a08ebd6ff97f5b8b4993f10c4e8
2019-05-03 15:59:40 -07:00
Wez Furlong
749d6a25ca fbcode_builder: getdeps: add SimpleShipitTransformer fetcher
Summary:
This fetcher knows how to transform a 1st party project
from fbsource into approximately the same shape as ShipIt produces
for the github repo mirrors.  It does this by reading shipit
mapping information from the manifest file for the project.

Since this fetcher uses data in the manifest and is implemented
directly in the getdeps codebase, it is suitable for iterating
on the opensource builds directly out of fbsource on both devservers
and laptops inside FB.

Reviewed By: simpkins

Differential Revision: D14691012

fbshipit-source-id: 05f68a7be64a2e465937b24b8825d25d3348ed13
2019-05-03 15:59:40 -07:00
Wez Furlong
1487071305 fbcode_builder: getdeps: add ShipitTransformer fetcher
Summary:
This fetcher knows how to take a 1st party FB project
from fbsource and transform it to the same shape as our github
repos using ShipIt.  The transformation creates a transformed
mirror of the code in scratch space (rather than mutating fbsource
directly).

This can only be used in environments where shipit is available.
A later diff implements an alternative that works in more environments.

Reviewed By: simpkins

Differential Revision: D14691013

fbshipit-source-id: 539e307755c9fc0a098a235868ab622652061494
2019-05-03 15:59:39 -07:00
Wez Furlong
fbacd6695b fbcode_builder: getdeps: add ArchiveFetcher
Summary:
this fetcher knows how to download a URL that references
an archive and extract the sources from it.  Compressed tarballs
and zipfiles are supported.

Reviewed By: simpkins

Differential Revision: D14690994

fbshipit-source-id: ffbbd1d9479b0d5aa3e5cd13fe11a560e9d01c2a
2019-05-03 15:59:39 -07:00
Wez Furlong
56639c769f fbcode_builder: getdeps: add GitFetcher
Summary: this fetcher knows how to check out sources via git.

Reviewed By: simpkins

Differential Revision: D14691000

fbshipit-source-id: 60f1ffbfed7b32a019aef6aa70ae0903f2782451
2019-05-03 15:59:39 -07:00
Wez Furlong
681e3b5278 fbcode_builder: getdeps: define the Fetcher interface
Summary:
Fetchers are used to fetch a source directory from a
source defined in a manifest file.

More details can be found in comments on the various methods.

The Manifest class offers a create_fetcher method for constructing
an appropriate fetcher.  This is just a stub in this commit, but
will expand over the course of the next few diffs as concrete
fetcher instances are added.

Reviewed By: simpkins

Differential Revision: D14691001

fbshipit-source-id: 8c9038eacae3345e9403d5d1304bf979a9ee1555
2019-05-03 15:59:39 -07:00
Wez Furlong
76276d4921 fbcode_builder: getdeps: add build options
Summary:
The build options class contains some environmental and
build related information that will be passed down to fetcher
and builder objects that will be introduced in later diffs.

Reviewed By: simpkins

Differential Revision: D14691007

fbshipit-source-id: e8fe7322f590667ac28a5a3925a072056df0b3e3
2019-05-03 15:59:38 -07:00
Wez Furlong
ac0e9c91c6 fbcode_builder: getdeps: add platform type tuple helper
Summary:
This will feed into the manifest context for system
dependent manifest sections.  This is essentially the same
code borrowed from the watchman and eden getdeps.py.

Reviewed By: simpkins

Differential Revision: D14690997

fbshipit-source-id: 3d3ae146237a2cd49609aaa2bd0e785ebe21f02c
2019-05-03 15:59:38 -07:00
Wez Furlong
192a4108a6 fbcode_builder: getdeps: add copytree helper
Summary:
this module adds some functions that help with copying
directory trees.  The copytree function is aware of eden and will
issue a prefetch prior to walking the directory.

Reviewed By: simpkins

Differential Revision: D14691006

fbshipit-source-id: 079bf850756f61aca17978453d07bc73b2f91788
2019-05-03 15:59:38 -07:00
Wez Furlong
3d0d9e6d53 fbcode_builder: getdeps: add run_cmd() function
Summary:
This runs a command, raising an exception if it exits with a non-zero error status.

It prints out the arguments in a mostly copy-and-pasteable form, with PATH-like
env vars pretty printed to make it easier to see what is being invoked; here's
an example of how cmake is being invoked later in this stack:

```
 ---
+ CMAKE_PREFIX_PATH=\
+      /data/users/wez/scratch/dataZusersZwezZfbsource/fbcode_builder_getdeps/installed/ninja-5d7ec7:\
+      /data/users/wez/scratch/dataZusersZwezZfbsource/fbcode_builder_getdeps/installed/cmake-91dc9a:\
+ PKG_CONFIG_PATH=\
+      /data/users/wez/scratch/dataZusersZwezZfbsource/fbcode_builder_getdeps/installed/ninja-5d7ec7/lib/pkgconfig:\
+      /data/users/wez/scratch/dataZusersZwezZfbsource/fbcode_builder_getdeps/installed/cmake-91dc9a/lib/pkgconfig:\
+ cd /data/users/wez/scratch/dataZusersZwezZfbsource/fbcode_builder_getdeps/build/zstd-470344 && \
+ cmake configure /data/users/wez/scratch/dataZusersZwezZfbsource/fbcode_builder_getdeps/repos/github.com-facebook-zstd.git/build/cmake -DCMAKE_INST
ALL_PREFIX=/data/users/wez/scratch/dataZusersZwezZfbsource/fbcode_builder_getdeps/installed/zstd-470344 -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=R
elWithDebInfo -G Ninja
```

Reviewed By: simpkins

Differential Revision: D14690999

fbshipit-source-id: cdb0c681c7dfdfdc6e8c96bf4830bfbcf666411b
2019-05-03 15:59:38 -07:00
Wez Furlong
0bc46905d0 fbcode_builder: add getdeps main entrypoint
Summary:
This is the new getdeps entrypoint.  It lives in `opensource/fbcode_builder` so that
it is synced into the various opensource projects at FB.

In the incarnation in this diff is has a single subcommand that can be used to validate
a manifest file.

Reviewed By: sinancepel

Differential Revision: D14690995

fbshipit-source-id: 53f8ec9bafb7b1930970079e3ce20f496ac1c188
2019-05-03 15:59:37 -07:00
Wez Furlong
4b50455edb fbcode_builder: getdeps: add envfuncs.py
Summary:
Add some helpers for manipulating environment variables
that will hold either compiler flags or paths.

These are used in later diffs when setting up arguments/environment
for eg: cmake.

Reviewed By: sinancepel, simpkins

Differential Revision: D14690993

fbshipit-source-id: 7f9753cd99d968550fe9e3ba8b7017a44683061e
2019-05-03 15:59:37 -07:00
Wez Furlong
5ec4990bc8 fbcode_builder: add manifest files for some dependencies
Summary:
These are ported over from the logic in the watchman and eden getdeps
scripts, with additions to help bootstrap a build environment.

These are sufficient to build watchman with thrift support on windows, mac and
linux, and eden on mac and linux when combined with the getdeps code that
follows in later diffs in this stack.

Reviewed By: simpkins

Differential Revision: D14691005

fbshipit-source-id: 7f8b02fedcdc020e2d0e758c466959d8161d4587
2019-05-03 15:59:37 -07:00
Wez Furlong
f272c533f3 fbcode_builder: add manifest file parser
Summary:
Adds a parser for manifest files that describe projects
that may be either 1st party or 3rd party.

A selection of manifest files appears in a later diff in this stack.

This diff provides the raw parser and a couple of low level helpers.
It also defines a mechanism for validating the schema to help catch
structural (rather than semantic) issues with manifest file contents.

Later diffs in the stack add helpers for accessing the data in
a higher level way.

Reviewed By: sinancepel

Differential Revision: D14691003

fbshipit-source-id: 7d2930a3359ede0f6e21fdc45686b083ab7a9ffa
2019-05-03 15:59:37 -07:00
Wez Furlong
04281b1122 fbcode_builder: getdeps: add boolean expression parser
Summary:
As part of folding getdeps into fbcode_builder, this
expression parser is needed to allow constrained and deterministic
conditionals in the manifest file format.

For example, the watchman manifest will use this cargo-inspired syntax
for system dependent sections:

```
[dependencies]
folly

[dependencies.not(os=windows)]
thrift
```

Reviewed By: sinancepel

Differential Revision: D14691014

fbshipit-source-id: 080bcdb20579da40d225799f5f22debe65708b03
2019-05-03 15:59:37 -07:00
svcscm
0625ec48dc Updating submodules
Reviewed By: yns88

fbshipit-source-id: 345b0ecaa54caf0c4e07824749d884f9a024c57e
2019-05-02 21:48:57 -07:00
svcscm
cc9f3b92c2 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 7988b6e87f28004495c59a3a94e93204f392e36f
2019-05-02 20:42:35 -07:00
svcscm
a131c46009 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 3d32d5e564285b9d60e6c84944e89acfaac43153
2019-05-02 19:32:56 -07:00
svcscm
3587e4fd7d Updating submodules
Reviewed By: yns88

fbshipit-source-id: 89fcc80618a65cea87d30988a498cf50d948b5f5
2019-05-02 16:18:40 -07:00
svcscm
4d41f562ee Updating submodules
Reviewed By: yns88

fbshipit-source-id: c3448d193e49051cc00769ad43e7a59daaa979db
2019-05-02 09:59:39 -07:00
svcscm
3d3e525821 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 79aa2ff2fc1a08bce3e34c5123cc0559902a6bf1
2019-05-01 20:31:18 -07:00
svcscm
2c29080a9b Updating submodules
Reviewed By: yns88

fbshipit-source-id: 8a8c2e064e41bcfc7eaea0e6d6413277a6db7823
2019-05-01 20:09:44 -07:00
svcscm
812b99977a Updating submodules
Reviewed By: yns88

fbshipit-source-id: d8c980be58a6f17abc38b8ea19d71d0efd8f7100
2019-05-01 17:41:32 -07:00
svcscm
4387530823 Updating submodules
Reviewed By: yns88

fbshipit-source-id: e7090567ddcb01dbcb8b1823525938c44df4a0ce
2019-05-01 10:04:21 -07:00
svcscm
a0f6e720d6 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 80b839b89f04818388d339ef8e801fc065a26c2b
2019-05-01 09:22:57 -07:00
svcscm
150ac51f9a Updating submodules
Reviewed By: yns88

fbshipit-source-id: b8f638d43ab0d8ce61ca964bd2a4248540d13001
2019-04-30 18:55:23 -07:00
svcscm
789c6131b2 Updating submodules
Reviewed By: yns88

fbshipit-source-id: 4967478aee4a308095460545bf3dbe0f3cded657
2019-04-30 15:20:37 -07:00
svcscm
8498a633b1 Updating submodules
Reviewed By: yns88

fbshipit-source-id: d03118e363bf26c0bc437fe04c4e3d0f314b82ef
2019-04-29 19:21:48 -07:00
svcscm
c736f2adc9 Updating submodules
Reviewed By: yns88

fbshipit-source-id: a1db5d4e3d0520adcc3bb91b3a901ded46dde12d
2019-04-29 19:21:48 -07:00
Adam Simpkins
f13e0d9f83 Fix-up commit to resync shipit
Summary:
The previous commit did not update the facebookincubator/fizz-rev.txt
hash (due to running an older version of the shipit code), which is
confusing newer shipit releases that want to keep this file up-to-date.

fbshipit-source-id: 459ae013d33f3f157856320e67a8f6b16ea5e32a
2019-04-29 16:32:15 -07:00
svcscm
bdb8dea71f Updating submodules
Reviewed By: zpao

fbshipit-source-id: 459ae013d33f3f157856320e67a8f6b16ea5e32a
2019-04-26 16:53:29 -07:00
svcscm
5528f00ae5 Updating submodules
Reviewed By: zpao

fbshipit-source-id: fd36b9f5749a92b1d5f976a73fc9910850ff32bb
2019-04-26 14:26:31 -07:00
svcscm
573075ac37 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 4ce80b9af230ab92702c494990f59cfaa70f545a
2019-04-26 14:11:36 -07:00
svcscm
94e464bd14 Updating submodules
Reviewed By: zpao

fbshipit-source-id: 8c7985dae0573e787dbba51c4acc87883ead2fb1
2019-04-26 12:24:13 -07:00
Adam Simpkins
bcad7419bf add fbcode_builder sources
Summary:
Initial commit to include the fbcode_builder sources in the
eden github repository.

fbshipit-source-id: 49098cecda04a7e9dd9dcc0b569fffc96f0f719b
2019-04-26 11:31:58 -07:00