diff options
Diffstat (limited to 'development/hhvm/hhvm.SlackBuild')
-rw-r--r-- | development/hhvm/hhvm.SlackBuild | 81 |
1 files changed, 52 insertions, 29 deletions
diff --git a/development/hhvm/hhvm.SlackBuild b/development/hhvm/hhvm.SlackBuild index 0585b2097b37b..f4486a1bd762e 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 \ |