summaryrefslogtreecommitdiffstats
path: root/development/hhvm/hhvm.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to 'development/hhvm/hhvm.SlackBuild')
-rw-r--r--development/hhvm/hhvm.SlackBuild81
1 files changed, 52 insertions, 29 deletions
diff --git a/development/hhvm/hhvm.SlackBuild b/development/hhvm/hhvm.SlackBuild
index 0585b2097b..f4486a1bd7 100644
--- a/development/hhvm/hhvm.SlackBuild
+++ b/development/hhvm/hhvm.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for HHVM
-# Copyright 2015-2020 Eugene Wissner, Dachau, Germany
+# Copyright 2015-2021 Eugene Wissner, Dachau, Germany
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,12 +23,12 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=hhvm
-VERSION=${VERSION:-4.56.1}
+VERSION=${VERSION:-4.104.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
-OPAM_STAMP="6ef290f5"
-CARGO_STAMP="1ecc6299db9ec823"
+OPAM_STAMP="221708b"
+CARGO_BUILD="1"
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
@@ -60,45 +60,68 @@ rm -rf $PRGNAM-$VERSION
tar Jxvf $CWD/$PRGNAM-$VERSION.tar.xz
cd $PRGNAM-$VERSION
-mkdir -p hphp/hack/_build/opam hphp/hack/facebook
+mkdir -p hphp/hack/facebook third-party/brotli/bundled_brotli-prefix/src
+
+mkdir -p hphp/hack/_build/opam
tar Jxvf $CWD/hack-switch-$OPAM_STAMP.tar.xz -C hphp/hack/_build/opam
-tar Jxvf $CWD/cargo-home-$CARGO_STAMP.tar.xz -C hphp/hack
+# 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
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+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
-cp $CWD/opam-full-2.0.3.tar.gz third-party/ocaml/
+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/rust-prefix/src/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/libzip-1.6.1.tar.gz third-party/libzip/libzipBuild-prefix/src/libzip-1.6.1.tar.gz
+install -m 0644 -D $CWD/fb-prod8-202010.tar.gz \
+ third-party/fb-mysql/bundled_fbmysqlclient-prefix/src/fb-prod8-202010.tar.gz
+# The working directory is hphp/hack.
cat << EOF > hphp/hack/facebook/fetch_opam2_repo_hack.sh
#!/bin/sh
-echo $CWD/index-$OPAM_STAMP
+cp $CWD/index-$OPAM_STAMP.tar.gz facebook/
+echo facebook/index-$OPAM_STAMP
EOF
chmod 0755 hphp/hack/facebook/fetch_opam2_repo_hack.sh
-patch -p1 -i $CWD/0001-Link-static-libiberty.patch
+patch -p1 --verbose -i $CWD/0001-Link-static-libiberty.patch
+
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
export CMAKE_PREFIX_PATH=`pwd`
cmake \
- -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
- -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS -lncursesw -I/usr/kerberos/include -I/usr/include/libiberty" \
- -DCMAKE_CXX_STANDARD=14 \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib${LIBDIRSUFFIX} \
- -DENABLE_MCROUTER=false \
- -DNON_DISTRIBUTABLE_BUILD=true \
- -DENABLE_LD_GOLD=true \
- -DUSE_JEMALLOC=false \
- -DMYSQL_UNIX_SOCK_ADDR=/var/run/mysqld/mysqld.sock \
- -DCMAKE_BUILD_TYPE=Release .
-make
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_STANDARD=17 \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib${LIBDIRSUFFIX} \
+ -DENABLE_MCROUTER=false \
+ -DENABLE_EXTENSION_IMAGICK=false \
+ -DNON_DISTRIBUTABLE_BUILD=true \
+ -DENABLE_LD_GOLD=true \
+ -DUSE_JEMALLOC=true \
+ -DFORCE_BUNDLED_LZ4=OFF \
+ -DMYSQL_UNIX_SOCK_ADDR=/var/run/mysqld/mysqld.sock \
+ -DCMAKE_BUILD_TYPE=Release .
+make || make -j1
make install DESTDIR=$PKG
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \