summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author Eugen Wissner2022-06-26 08:54:40 +0200
committer Willy Sudiarto Raharjo2022-07-02 04:55:47 +0200
commitccc2ad1a6d39d7b44718326a2d07a82b59879338 (patch)
tree7dd3ac48384d25fa8b91329ea56572c99d07b17b
parentc816c272e63efbc9c5aece65e640ca25432cdbb5 (diff)
downloadslackbuilds-ccc2ad1a6d39d7b44718326a2d07a82b59879338.tar.gz
development/hhvm: Updated for version 4.153.1
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
-rw-r--r--development/hhvm/0001-Link-static-libiberty.patch24
-rw-r--r--development/hhvm/etc/rc.hhvm2
-rw-r--r--development/hhvm/hhvm.SlackBuild133
-rw-r--r--development/hhvm/hhvm.info56
-rw-r--r--development/hhvm/patches/0001-liburing.patch74
-rw-r--r--development/hhvm/patches/0002-download.patch186
6 files changed, 399 insertions, 76 deletions
diff --git a/development/hhvm/0001-Link-static-libiberty.patch b/development/hhvm/0001-Link-static-libiberty.patch
deleted file mode 100644
index 1f35da35d7..0000000000
--- a/development/hhvm/0001-Link-static-libiberty.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-libiberty is part of GCC and is provided only statically on Slackware. We
-patch CMake to use it.
-Patches CMake to avoid downloading during the build since we use prefetched
-sources.
---- a/third-party/folly/CMakeLists.txt 2021-04-22 08:09:46.000000000 +0200
-+++ b/third-party/folly/CMakeLists.txt 2021-05-03 07:43:23.777873092 +0200
-@@ -298,3 +298,6 @@
- # Just assume we have sched.h
- target_compile_definitions(folly PUBLIC "FOLLY_HAVE_SCHED_H=1")
- endif()
-+
-+target_link_libraries(folly /usr/lib64/libiberty.a)
-+target_include_directories(folly PUBLIC /usr/include/libiberty)
---- a/third-party/brotli/CMakeLists.txt 2021-04-22 08:09:46.000000000 +0200
-+++ b/third-party/brotli/CMakeLists.txt 2021-05-03 06:21:46.202704488 +0200
-@@ -6,8 +6,6 @@
- # version.
- ExternalProject_Add(
- bundled_brotli
-- GIT_REPOSITORY https://github.com/google/brotli
-- GIT_TAG 4b5771bee7995d3d606221caa455c044d80434df
- CMAKE_ARGS
- -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
- -DCMAKE_INSTALL_INCLUDEDIR=include
diff --git a/development/hhvm/etc/rc.hhvm b/development/hhvm/etc/rc.hhvm
index 073e973a03..049fb521d4 100644
--- a/development/hhvm/etc/rc.hhvm
+++ b/development/hhvm/etc/rc.hhvm
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
#
### BEGIN INIT INFO
# Provides: hhvm
diff --git a/development/hhvm/hhvm.SlackBuild b/development/hhvm/hhvm.SlackBuild
index cbaa474322..8075136a61 100644
--- a/development/hhvm/hhvm.SlackBuild
+++ b/development/hhvm/hhvm.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for HHVM
-# Copyright 2015-2021 Eugene Wissner, Dachau, Germany
+# Copyright 2015-2022 Eugene Wissner, Dachau, Germany
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,13 +25,13 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=hhvm
-VERSION=${VERSION:-4.104.1}
+VERSION=${VERSION:-4.153.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
-OPAM_STAMP="221708b"
-CARGO_BUILD="1"
+OPAM_STAMP="12fbd9f"
+CARGO_BUILD="2"
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
@@ -70,34 +70,99 @@ rm -rf $PRGNAM-$VERSION
tar Jxvf $CWD/$PRGNAM-$VERSION.tar.xz
cd $PRGNAM-$VERSION
-mkdir -p hphp/hack/facebook third-party/brotli/bundled_brotli-prefix/src
-
-mkdir -p hphp/hack/_build/opam
+mkdir -p hphp/hack/facebook hphp/hack/_build/opam
tar Jxvf $CWD/hack-switch-$OPAM_STAMP.tar.xz -C hphp/hack/_build/opam
-# hhvm prepares an opam switch (an isolated envrionment with a specific OCaml
-# compiler version) during the build, it downloads and builds all dependencies.
-# To avoid doing this at runtime, I provide a prebuilt switch. Unfortunately
-# it contains references to absolute paths it has been built in. Therefore if
-# the user doesn't build in the standard directory, we put a link there, so
-# that opam can find binaries.
-if [ "$TMP" != '/tmp/SBo' ]
-then
- rm -rf /tmp/SBo/hhvm-$VERSION/hphp/hack/_build/opam
- mkdir -p /tmp/SBo/hhvm-$VERSION/hphp/hack/_build/opam
- ln -s $TMP/$PRGNAM-$VERSION/hphp/hack/_build/opam/hack-switch \
- /tmp/SBo/hhvm-$VERSION/hphp/hack/_build/opam/hack-switch
-fi
-
-tar Jxvf $CWD/cargo-home-$CARGO_BUILD.tar.xz -C hphp/hack
-tar Jxvf $CWD/brotli-4b5771be.tar.xz -C third-party/brotli/bundled_brotli-prefix/src
-
-install -m 0755 -D $CWD/opam-2.0.7-x86_64-linux \
- third-party/opam/opamDownload-prefix/src/opam-2.0.7-x86_64-linux
-install -m 0644 -D $CWD/rust-1.43.0-x86_64-unknown-linux-gnu.tar.gz \
- third-party/rustc/bundled_rust-prefix/src/rust-1.43.0-x86_64-unknown-linux-gnu.tar.gz
-install -m 0644 -D $CWD/fmt-6.1.2.zip third-party/fmt/fmt-prefix/src/fmt-6.1.2.zip
-install -m 0644 -D $CWD/fb-prod8-202010.tar.gz \
- third-party/fb-mysql/bundled_fbmysqlclient-prefix/src/fb-prod8-202010.tar.gz
+tar Jxvf $CWD/cargo-home-$CARGO_BUILD.tar.xz -C hphp/hack/_build
+
+install -m 0755 -D $CWD/opam-2.1.0-x86_64-linux \
+ third-party/opam/opamDownload-prefix/src/opam-2.1.0-x86_64-linux
+
+install -m 0644 -D $CWD/fmt-6.1.2.zip third-party/fmt/bundled_fmt-prefix/src/fmt-6.1.2.zip
+unzip $CWD/fmt-6.1.2.zip -d third-party/fmt/bundled_fmt-prefix/src
+mv third-party/fmt/bundled_fmt-prefix/src/fmt-6.1.2 third-party/fmt/bundled_fmt-prefix/src/bundled_fmt
+
+mkdir -p third-party/re2/bundled_re2-prefix/src/bundled_re2
+install -m 0644 -D $CWD/re2-2021-11-01.tar.gz third-party/re2/bundled_re2-prefix/src/re2-2021-11-01.tar.gz
+tar zxvf $CWD/re2-2021-11-01.tar.gz \
+ -C third-party/re2/bundled_re2-prefix/src/bundled_re2 \
+ --strip-components=1
+
+mkdir -p third-party/brotli/bundled_brotli-prefix/src/bundled_brotli
+install -m 0644 -D $CWD/brotli-v1.0.9.tar.gz third-party/brotli/bundled_brotli-prefix/src/brotli-v1.0.9.tar.gz
+tar zxvf $CWD/brotli-v1.0.9.tar.gz \
+ -C third-party/brotli/bundled_brotli-prefix/src/bundled_brotli \
+ --strip-components=1
+
+mkdir -p third-party/rustc/bundled_rust-prefix/src/bundled_rust
+install -m 0644 -D $CWD/rustc-2021-11-29-rust-nightly-x86_64-unknown-linux-gnu.tar.gz \
+ third-party/rustc/bundled_rust-prefix/src/rustc-2021-11-29-rust-nightly-x86_64-unknown-linux-gnu.tar.gz
+tar zxvf $CWD/rustc-2021-11-29-rust-nightly-x86_64-unknown-linux-gnu.tar.gz \
+ -C third-party/rustc/bundled_rust-prefix/src/bundled_rust \
+ --strip-components=1
+
+mkdir -p third-party/proxygen/bundled_proxygen-prefix/src/bundled_proxygen
+install -m 0644 -D $CWD/proxygen-v2022.01.31.00.tar.gz \
+ third-party/proxygen/bundled_proxygen-prefix/src/proxygen-v2022.01.31.00.tar.gz
+tar zxvf $CWD/proxygen-v2022.01.31.00.tar.gz \
+ -C third-party/proxygen/bundled_proxygen-prefix/src/bundled_proxygen
+
+mkdir -p third-party/folly/bundled_folly-prefix/src/bundled_folly
+install -m 0644 -D $CWD/folly-v2022.03.14.00.tar.gz \
+ third-party/folly/bundled_folly-prefix/src/folly-v2022.03.14.00.tar.gz
+tar zxvf $CWD/folly-v2022.03.14.00.tar.gz \
+ -C third-party/folly/bundled_folly-prefix/src/bundled_folly
+
+mkdir -p third-party/fb-mysql/bundled_fbmysqlclient-prefix/src/bundled_fbmysqlclient
+install -m 0644 -D $CWD/fb-prod8-202101.tar.gz \
+ third-party/fb-mysql/bundled_fbmysqlclient-prefix/src/fb-prod8-202101.tar.gz
+tar -zxvf $CWD/fb-prod8-202101.tar.gz \
+ -C third-party/fb-mysql/bundled_fbmysqlclient-prefix/src/bundled_fbmysqlclient
+
+mkdir -p third-party/wangle/bundled_wangle-prefix/src/bundled_wangle
+install -m 0644 -D $CWD/wangle-v2022.01.31.00.tar.gz \
+ third-party/wangle/bundled_wangle-prefix/src/wangle-v2022.01.31.00.tar.gz
+tar -zxvf $CWD/wangle-v2022.01.31.00.tar.gz \
+ -C third-party/wangle/bundled_wangle-prefix/src/bundled_wangle
+
+mkdir -p third-party/squangle/bundled_squangle-prefix/src/bundled_squangle
+install -m 0644 -D $CWD/squangle-v2022.01.31.00.tar.gz \
+ third-party/squangle/bundled_squangle-prefix/src/squangle-2022.01.31.00.tar.gz
+tar -zxvf $CWD/squangle-v2022.01.31.00.tar.gz \
+ -C third-party/squangle/bundled_squangle-prefix/src/bundled_squangle \
+ --strip-components=1
+
+mkdir -p third-party/watchman/bundled_watchman-prefix/src/bundled_watchman
+install -m 0644 -D $CWD/watchman-v2022.01.31.00.tar.gz \
+ third-party/watchman/bundled_watchman-prefix/src/watchman-v2022.01.31.00.tar.gz
+tar -zxvf $CWD/watchman-v2022.01.31.00.tar.gz \
+ -C third-party/watchman/bundled_watchman-prefix/src/bundled_watchman \
+ --strip-components=1
+
+mkdir -p third-party/thrift/bundled_thrift-prefix/src/bundled_thrift
+install -m 0644 -D $CWD/fbthrift-v2022.01.31.00.tar.gz \
+ third-party/thrift/bundled_thrift-prefix/src/fbthrift-v2022.01.31.00.tar.gz
+tar -zxvf $CWD/fbthrift-v2022.01.31.00.tar.gz \
+ -C third-party/thrift/bundled_thrift-prefix/src/bundled_thrift \
+ --strip-components=1
+
+mkdir -p third-party/mcrouter/bundled_mcrouter-prefix/src/bundled_mcrouter
+install -m 0644 -D $CWD/mcrouter-v2022.01.31.00.tar.gz \
+ third-party/mcrouter/bundled_mcrouter-prefix/src/mcrouter-v2022.01.31.00.tar.gz
+tar -zxvf $CWD/mcrouter-v2022.01.31.00.tar.gz \
+ -C third-party/mcrouter/bundled_mcrouter-prefix/src/bundled_mcrouter \
+ --strip-components=1
+
+mkdir -p third-party/timelib/bundled_timelib-prefix/src/bundled_timelib
+install -m 0644 -D $CWD/timelib-2021.07.tar.gz third-party/timelib/bundled_timelib-prefix/src/timelib-2021.07.tar.gz
+tar -zxvf $CWD/timelib-2021.07.tar.gz \
+ -C third-party/timelib/bundled_timelib-prefix/src/bundled_timelib \
+ --strip-components=1
+
+mkdir -p third-party/fizz/bundled_fizz-prefix/src/bundled_fizz
+install -m 0644 -D $CWD/fizz-v2022.01.31.00.tar.gz \
+ third-party/fizz/bundled_fizz-prefix/src/fizz-v2022.01.31.00.tar.gz
+tar -zxvf $CWD/fizz-v2022.01.31.00.tar.gz \
+ -C third-party/fizz/bundled_fizz-prefix/src/bundled_fizz
# The working directory is hphp/hack.
cat << EOF > hphp/hack/facebook/fetch_opam2_repo_hack.sh
@@ -107,7 +172,8 @@ echo facebook/index-$OPAM_STAMP
EOF
chmod 0755 hphp/hack/facebook/fetch_opam2_repo_hack.sh
-patch -p1 --verbose -i $CWD/0001-Link-static-libiberty.patch
+patch -p1 --verbose -i $CWD/patches/0001-liburing.patch
+patch -p1 --verbose -i $CWD/patches/0002-download.patch
chown -R root:root .
find -L . \
@@ -123,11 +189,12 @@ cmake \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib${LIBDIRSUFFIX} \
- -DENABLE_MCROUTER=false \
+ -DENABLE_MCROUTER=true \
-DENABLE_EXTENSION_IMAGICK=false \
-DNON_DISTRIBUTABLE_BUILD=true \
-DENABLE_LD_GOLD=true \
-DUSE_JEMALLOC=true \
+ -DUSE_BUNDLED_TZDATA=OFF \
-DFORCE_BUNDLED_LZ4=OFF \
-DMYSQL_UNIX_SOCK_ADDR=/var/run/mysqld/mysqld.sock \
-DCMAKE_BUILD_TYPE=Release .
diff --git a/development/hhvm/hhvm.info b/development/hhvm/hhvm.info
index 229a8e4000..5500afa0c1 100644
--- a/development/hhvm/hhvm.info
+++ b/development/hhvm/hhvm.info
@@ -1,26 +1,46 @@
PRGNAM="hhvm"
-VERSION="4.104.1"
+VERSION="4.153.1"
HOMEPAGE="https://hhvm.com/"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://download.dlackware.com/hosted-sources/hhvm/hhvm-4.104.1.tar.xz \
- https://static.rust-lang.org/dist/rust-1.43.0-x86_64-unknown-linux-gnu.tar.gz \
- https://download.dlackware.com/hosted-sources/hhvm/opam-2.0.7-x86_64-linux \
- https://download.dlackware.com/hosted-sources/hhvm/brotli-4b5771be.tar.xz \
+DOWNLOAD_x86_64="https://download.dlackware.com/hosted-sources/hhvm/hhvm-4.153.1.tar.xz \
+ https://static.rust-lang.org/dist/2021-11-29/rust-nightly-x86_64-unknown-linux-gnu.tar.gz \
+ https://download.dlackware.com/hosted-sources/hhvm/opam-2.1.0-x86_64-linux \
+ https://download.dlackware.com/hosted-sources/hhvm/brotli-v1.0.9.tar.gz \
https://download.dlackware.com/hosted-sources/hhvm/fmt-6.1.2.zip \
- https://download.dlackware.com/hosted-sources/hhvm/cargo-home-1.tar.xz \
- https://download.dlackware.com/hosted-sources/hhvm/index-221708b.tar.gz \
- https://download.dlackware.com/hosted-sources/hhvm/hack-switch-221708b.tar.xz \
- https://download.dlackware.com/hosted-sources/hhvm/fb-prod8-202010.tar.gz"
-MD5SUM_x86_64="0bddb92bbf45f8a7d2ef84256293ef63 \
- c1cb2b3d0c9edb4b61b01ba6b090d01b \
- b4398cb8403252321510fadd87a4a265 \
- 7553d4e66d8d5d78af3e53b1083f17b4 \
+ https://download.dlackware.com/hosted-sources/hhvm/cargo-home-2.tar.xz \
+ https://download.dlackware.com/hosted-sources/hhvm/index-12fbd9f.tar.gz \
+ https://download.dlackware.com/hosted-sources/hhvm/hack-switch-12fbd9f.tar.xz \
+ https://download.dlackware.com/hosted-sources/hhvm/fb-prod8-202101.tar.gz \
+ https://download.dlackware.com/hosted-sources/hhvm/fbthrift-v2022.01.31.00.tar.gz \
+ https://download.dlackware.com/hosted-sources/hhvm/fizz-v2022.01.31.00.tar.gz \
+ https://download.dlackware.com/hosted-sources/hhvm/folly-v2022.03.14.00.tar.gz \
+ https://download.dlackware.com/hosted-sources/hhvm/mcrouter-v2022.01.31.00.tar.gz \
+ https://download.dlackware.com/hosted-sources/hhvm/proxygen-v2022.01.31.00.tar.gz \
+ https://download.dlackware.com/hosted-sources/hhvm/re2-2021-11-01.tar.gz \
+ https://download.dlackware.com/hosted-sources/hhvm/squangle-v2022.01.31.00.tar.gz \
+ https://download.dlackware.com/hosted-sources/hhvm/timelib-2021.07.tar.gz \
+ https://download.dlackware.com/hosted-sources/hhvm/wangle-v2022.01.31.00.tar.gz \
+ https://download.dlackware.com/hosted-sources/hhvm/watchman-v2022.01.31.00.tar.gz"
+MD5SUM_x86_64="516cfdda0ef2c7c95ee4ab8d5326f48d \
+ 89838b0c4768d43f88da2b2f37e53ae5 \
+ 87d949d8dd93061c5f727094da67f315 \
+ c2274f0c7af8470ad514637c35bcee7d \
5ec643b082a34254ad07136e7cbd4220 \
- 38b0384806e3415c0a7c42e4a0facf5b \
- c1c35bc5a0198f25be9c13cb88c7df2f \
- 95ef57a2272d3405257dff3395220847 \
- f5f484685fe2a7cdaa1d3f3c107bb23b"
-REQUIRES="tbb glog libdwarf libmemcached double-conversion"
+ 20cdff02f59435ad514a509859028095 \
+ 684797a17c2a638f18d615f66ba329ed \
+ 2e0b9b2605c28e40097a04d6d2935f0d \
+ b12a3ffd803fd7f60d679f3feb4d5354 \
+ 5af19e555bbe4ba1cd203117f1d5fb79 \
+ 3d652c69d93936beafdd08bb696d72bd \
+ 18b79091ae379c7a919b97eaad310445 \
+ 81d8ddf74d97b1d0671d449368f9e5c8 \
+ fe8684e89b65c8256ad1b2a0d1d2e620 \
+ 8db4cf198c296eb001b4bf7ac194e598 \
+ 43e92f04885bac22f4d40be0b03ddbe0 \
+ 7b869e86c44b5a3d9296149285c8bd69 \
+ 5041b92a50ec110fdfde69a3ea2e4daf \
+ 1f9ebaac101929b0bf319ebc18c8a10a"
+REQUIRES="tbb glog libdwarf libmemcached double-conversion gflags"
MAINTAINER="Eugene Wissner"
EMAIL="belka@caraus.de"
diff --git a/development/hhvm/patches/0001-liburing.patch b/development/hhvm/patches/0001-liburing.patch
new file mode 100644
index 0000000000..54349434cf
--- /dev/null
+++ b/development/hhvm/patches/0001-liburing.patch
@@ -0,0 +1,74 @@
+--- a/third-party/proxygen/bundled_proxygen-prefix/src/bundled_proxygen/proxygen/lib/services/WorkerThread.cpp 2022-06-16 13:33:00.766000000 +0200
++++ b/third-party/proxygen/bundled_proxygen-prefix/src/bundled_proxygen/proxygen/lib/services/WorkerThread.cpp 2022-06-16 13:37:39.111000000 +0200
+@@ -17,7 +17,7 @@
+ #include <glog/logging.h>
+ #include <signal.h>
+
+-#if !FOLLY_MOBILE && __has_include(<liburing.h>)
++#if !FOLLY_MOBILE && false
+
+ DEFINE_int32(pwt_io_uring_capacity, -1, "io_uring backend capacity");
+ DEFINE_int32(pwt_io_uring_max_submit, 128, "io_uring backend max submit");
+--- a/third-party/folly/bundled_folly-prefix/src/bundled_folly/folly/experimental/io/IoUringBackend.h 2022-06-16 13:38:45.523000000 +0200
++++ b/third-party/folly/bundled_folly-prefix/src/bundled_folly/folly/experimental/io/IoUringBackend.h 2022-06-16 13:43:08.748000000 +0200
+@@ -40,11 +40,7 @@
+ #include <poll.h>
+ #endif
+
+-#if __has_include(<liburing.h>)
+-#include <liburing.h>
+-#endif
+-
+-#if __has_include(<liburing.h>)
++#if false
+
+ namespace folly {
+
+--- a/third-party/folly/bundled_folly-prefix/src/bundled_folly/folly/lang/Badge.h 2022-06-16 13:38:45.611000000 +0200
++++ b/third-party/folly/bundled_folly-prefix/src/bundled_folly/folly/lang/Badge.h 2022-06-16 13:45:32.863000000 +0200
+@@ -92,10 +92,7 @@
+ typename = std::enable_if_t<folly::IsOneOf<Holder, Holders...>::value>>
+ /* implicit */ constexpr any_badge(badge<Holder>) noexcept {}
+
+- template <
+- typename... OtherHolders,
+- typename = std::enable_if_t<folly::StrictConjunction<
+- folly::IsOneOf<OtherHolders, Holders...>...>::value>>
++ template <typename... OtherHolders>
+ /* implicit */ constexpr any_badge(any_badge<OtherHolders...>) noexcept {}
+ };
+
+--- a/third-party/folly/bundled_folly-prefix/src/bundled_folly/folly/experimental/io/IoUringBackend.cpp 2022-06-16 14:12:06.191000000 +0200
++++ b/third-party/folly/bundled_folly-prefix/src/bundled_folly/folly/experimental/io/IoUringBackend.cpp 2022-06-16 14:09:28.887000000 +0200
+@@ -31,7 +31,7 @@
+ #include <sys/timerfd.h>
+ #endif
+
+-#if __has_include(<liburing.h>)
++#if false
+
+ extern "C" FOLLY_ATTR_WEAK void eb_poll_loop_pre_hook(uint64_t* call_time);
+ extern "C" FOLLY_ATTR_WEAK void eb_poll_loop_post_hook(
+--- a/third-party/proxygen/bundled_proxygen-prefix/src/bundled_proxygen/proxygen/lib/stats/PeriodicStats.h 2022-06-16 14:28:37.919000000 +0200
++++ b/third-party/proxygen/bundled_proxygen-prefix/src/bundled_proxygen/proxygen/lib/stats/PeriodicStats.h 2022-06-16 14:24:03.920000000 +0200
+@@ -163,7 +163,7 @@
+ void modifyData(T* newData, bool sync = false) {
+ auto* oldData = data_.exchange(newData);
+ if (sync) {
+- folly::synchronize_rcu();
++ folly::rcu_synchronize();
+ delete oldData;
+ } else {
+ folly::rcu_retire(oldData);
+--- a/third-party/zstd/CMakeLists.txt 2022-06-18 17:24:56.022000000 +0200
++++ a/third-party/zstd/CMakeLists.txt 2022-06-18 17:26:10.462000000 +0200
+@@ -2,8 +2,7 @@
+
+ option(FORCE_BUNDLED_ZSTD "Always build zstd, instead of using the system version" OFF)
+ if (NOT FORCE_BUNDLED_ZSTD)
+- set(CAN_USE_SYSTEM_ZSTD OFF)
+- find_library(ZSTD_LIB NAMES zstd)
++ find_library(ZSTD_LIB NAMES zstd libzstd)
+ find_path(ZSTD_INCLUDE_DIR NAMES zstd.h)
+ set(CMAKE_REQUIRED_INCLUDES "${ZSTD_INCLUDE_DIR}")
+ check_cxx_source_compiles("
diff --git a/development/hhvm/patches/0002-download.patch b/development/hhvm/patches/0002-download.patch
new file mode 100644
index 0000000000..768668ad5b
--- /dev/null
+++ b/development/hhvm/patches/0002-download.patch
@@ -0,0 +1,186 @@
+#--- a/third-party/fb-mysql/CMakeLists.txt 2022-06-16 16:50:22.283000000 +0200
+#+++ b/third-party/fb-mysql/CMakeLists.txt 2022-06-16 18:30:00.373739502 +0200
+@@ -12,10 +12,6 @@
+
+ SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
+ FB_MYSQL_DOWNLOAD_ARGS
+- SOURCE_URL
+- "https://github.com/facebook/mysql-5.6/archive/refs/tags/fb-prod8-202101.tar.gz"
+- SOURCE_HASH
+- "SHA512=4e07ae4e6628792ec5d77af7e524bddc2e9ac361dff4b93060f9fb5804d72a7144824ac84138487a3b4dcac350453cd5f17afd9a951b9d8248c292bf378e1e78"
+ )
+ ExternalProject_Add(
+ bundled_fbmysqlclient
+--- a/third-party/proxygen/CMakeLists.txt 2022-06-16 16:51:48.652000000 +0200
++++ b/third-party/proxygen/CMakeLists.txt 2022-06-16 18:30:00.391586726 +0200
+@@ -18,10 +18,6 @@
+
+ SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
+ PROXYGEN_SOURCE_ARGS
+- SOURCE_URL
+- "https://github.com/facebook/proxygen/releases/download/v2022.01.31.00/proxygen-v2022.01.31.00.tar.gz"
+- SOURCE_HASH
+- "SHA256=5360a8ccdfb2f5a6c7b3eed331ec7ab0e2c792d579c6fff499c85c516c11fe14"
+ )
+
+ ExternalProject_Add(
+--- a/third-party/wangle/CMakeLists.txt 2022-06-16 16:51:48.652000000 +0200
++++ b/third-party/wangle/CMakeLists.txt 2022-06-16 18:30:00.394195460 +0200
+@@ -20,10 +20,6 @@
+
+ SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
+ WANGLE_SOURCE_ARGS
+- SOURCE_URL
+- "https://github.com/facebook/wangle/releases/download/v2022.01.31.00/wangle-v2022.01.31.00.tar.gz"
+- SOURCE_HASH
+- "SHA256=1002e9c32b6f4837f6a760016e3b3e22f3509880ef3eaad191c80dc92655f23f"
+ )
+
+ ExternalProject_Add(
+--- a/third-party/squangle/CMakeLists.txt 2022-06-16 16:51:48.652000000 +0200
++++ b/third-party/squangle/CMakeLists.txt 2022-06-16 18:30:00.396715727 +0200
+@@ -16,10 +16,6 @@
+
+ SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
+ SQUANGLE_SOURCE_ARGS
+- SOURCE_URL
+- "https://github.com/facebook/squangle/archive/refs/tags/v2022.01.31.00.tar.gz"
+- SOURCE_HASH
+- "SHA256=78988eacf99d380da4c660161bcb20305e4b54369e17b1bb866c5fb188acff76"
+ FILENAME_PREFIX
+ "squangle-"
+ )
+--- a/third-party/watchman/CMakeLists.txt 2022-06-16 16:51:48.652000000 +0200
++++ b/third-party/watchman/CMakeLists.txt 2022-06-16 18:30:00.404187081 +0200
+@@ -5,10 +5,6 @@
+
+ SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
+ WATCHMAN_DOWNLOAD_ARGS
+- SOURCE_URL "https://github.com/facebook/watchman/archive/refs/tags/v2022.01.31.00.tar.gz"
+- SOURCE_HASH "SHA256=5a253c289141d19b8c6fb05e4d12a75343c62d236f98dbbf6af4a50dc0550d90"
+- # The tarball name is just the tag name, which can conflict in the cache
+- FILENAME_PREFIX "watchman-"
+ )
+
+ get_target_property(BOOST_INCLUDE_DIR boost INTERFACE_INCLUDE_DIRECTORIES)
+--- a/third-party/thrift/CMakeLists.txt 2022-06-16 16:51:48.652000000 +0200
++++ b/third-party/thrift/CMakeLists.txt 2022-06-16 18:30:00.406737187 +0200
+@@ -20,10 +20,6 @@
+
+ SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
+ THRIFT_SOURCE_ARGS
+- SOURCE_URL
+- "https://github.com/facebook/fbthrift/archive/refs/tags/v2022.01.31.00.tar.gz"
+- SOURCE_HASH
+- "SHA256=6194127fd9e6771bd34f502a84b292278bf3a6ee7b87377afd1ae287a5572f48"
+ FILENAME_PREFIX
+ "fbthrift-"
+ )
+--- a/third-party/mcrouter/CMakeLists.txt 2022-06-16 16:51:48.651000000 +0200
++++ b/third-party/mcrouter/CMakeLists.txt 2022-06-16 18:30:00.412827594 +0200
+@@ -5,10 +5,6 @@
+
+ SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
+ MCROUTER_DOWNLOAD_ARGS
+- SOURCE_URL "https://github.com/facebook/mcrouter/archive/refs/tags/v2022.01.31.00.tar.gz"
+- SOURCE_HASH "SHA256=478b8d0b88bdca7c65863764b50dc46f92d849c39f8b34ecc657884106c9b4e6"
+- # The tarball name is just the tag name, which can conflict in the cache
+- FILENAME_PREFIX "mcrouter-"
+ )
+
+ set(
+--- a/third-party/timelib/CMakeLists.txt 2022-06-16 16:51:48.652000000 +0200
++++ b/third-party/timelib/CMakeLists.txt 2022-06-16 18:30:00.417958866 +0200
+@@ -6,10 +6,6 @@
+
+ SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
+ TIMELIB_DOWNLOAD_ARGS
+- SOURCE_URL "https://github.com/derickr/timelib/archive/refs/tags/2021.07.tar.gz"
+- SOURCE_HASH "SHA512=7bc56d20360937af10f63960e443cc8bd4d24c5369f697241e54da21465d4512bd16cfa6f0efcf2b847cc19781e1cecf93c9e19a1efa4f1a7012c9fa442eeabe"
+- # Look for timelib-YYYY.MM.tar.gz in download cache, not just YYYY.MM.tar.gz
+- FILENAME_PREFIX "timelib-"
+ )
+
+ if(USE_BUNDLED_TZDATA)
+--- a/third-party/folly/CMakeLists.txt 2022-06-16 16:51:48.651000000 +0200
++++ b/third-party/folly/CMakeLists.txt 2022-06-16 18:30:00.433286243 +0200
+@@ -3,10 +3,6 @@
+
+ SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
+ FOLLY_SOURCE_ARGS
+- SOURCE_URL
+- "https://github.com/facebook/folly/releases/download/v2022.01.31.00/folly-v2022.01.31.00.tar.gz"
+- SOURCE_HASH
+- "SHA256=7b8d5dd2eb51757858247af0ad27af2e3e93823f84033a628722b01e06cd68a9"
+ )
+
+ get_target_property(BOOST_INCLUDE_DIR boost INTERFACE_INCLUDE_DIRECTORIES)
+--- a/third-party/rustc/CMakeLists.txt 2022-06-17 13:07:47.767000000 +0200
++++ b/third-party/rustc/CMakeLists.txt 2022-06-17 13:07:58.963000000 +0200
+@@ -15,14 +15,6 @@
+
+ SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
+ RUST_DOWNLOAD_ARGS
+- Linux_URL
+- "https://static.rust-lang.org/dist/${RUST_NIGHTLY_VERSION}/rust-nightly-x86_64-unknown-linux-gnu.tar.gz"
+- Darwin_URL
+- "https://static.rust-lang.org/dist/${RUST_NIGHTLY_VERSION}/rust-nightly-x86_64-apple-darwin.tar.gz"
+- Linux_HASH
+- "SHA512=a7ec879851bd1bb8bf57b77860c4d99b0b76702182782520ab5f5053b6b113f3a0890c1e8210f8c010f43ea0804abdeeb90422534498e47178cad3643ddcca32"
+- Darwin_HASH
+- "SHA512=b5655f92605e9a69b3ce49e73b92a960c4bc9bcb34edcef0d6b4829cec7258b0d00f398f41b0ce1fc399fe3cc35c91ca347eb2e0fe6b853aa94167f6dcf58697"
+ # The original filename doesn't contain any version information, so add the version information as a prefix to avoid cache collisions when updating later
+ FILENAME_PREFIX "rustc-${RUST_NIGHTLY_VERSION}-"
+ )
+--- a/third-party/re2/CMakeLists.txt 2022-06-17 15:01:26.146000000 +0200
++++ b/third-party/re2/CMakeLists.txt 2022-06-17 15:02:34.110000000 +0200
+@@ -12,10 +12,6 @@
+
+ SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
+ RE2_SOURCE_ARGS
+- SOURCE_URL
+- "https://github.com/google/re2/archive/refs/tags/2021-11-01.tar.gz"
+- SOURCE_HASH
+- "SHA256=8c45f7fba029ab41f2a7e6545058d9eec94eef97ce70df58e92d85cfc08b4669"
+ FILENAME_PREFIX "re2-"
+ )
+
+--- a/third-party/brotli/CMakeLists.txt 2022-06-17 14:02:02.526000000 +0200
++++ b/third-party/brotli/CMakeLists.txt 2022-06-17 14:02:09.824000000 +0200
+@@ -4,10 +4,6 @@
+ include(HPHPFunctions)
+ SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
+ BROTLI_SOURCE_ARGS
+- SOURCE_URL
+- "https://github.com/google/brotli/archive/refs/tags/v1.0.9.tar.gz"
+- SOURCE_HASH
+- "SHA256=f9e8d81d0405ba66d181529af42a3354f838c939095ff99930da6aa9cdf6fe46"
+ FILENAME_PREFIX "brotli-"
+ )
+
+--- a/third-party/fmt/CMakeLists.txt 2022-06-18 16:55:18.677000000 +0200
++++ b/third-party/fmt/CMakeLists.txt 2022-06-18 16:55:29.015000000 +0200
+@@ -3,10 +3,6 @@
+
+ SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
+ FMT_SOURCE_ARGS
+- SOURCE_URL
+- "https://github.com/fmtlib/fmt/releases/download/6.1.2/fmt-6.1.2.zip"
+- SOURCE_HASH
+- "SHA512=d21085a2010786ff18c47acb033d9e4d51a3d58f9707cd9adf0f44642c1e4d80fd8cddafe58d95bb4f3e4a84ac5799caafead4a9feb12cc549b03d4d389fcc93"
+ )
+
+ set(INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/fmt-prefix")
+--- a/third-party/fizz/CMakeLists.txt 2022-06-19 10:24:50.285000000 +0200
++++ b/third-party/fizz/CMakeLists.txt 2022-06-19 10:25:03.587000000 +0200
+@@ -22,10 +22,6 @@
+
+ SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
+ FIZZ_SOURCE_ARGS
+- SOURCE_URL
+- "https://github.com/facebookincubator/fizz/releases/download/v2022.01.31.00/fizz-v2022.01.31.00.tar.gz"
+- SOURCE_HASH
+- "SHA256=32a60e78d41ea2682ce7e5d741b964f0ea83642656e42d4fea90c0936d6d0c7d"
+ )
+
+ set(