#!/bin/bash

# arm/build
# Check package dependencies, set metadata and launch
# package build script.
# by Stuart Winter <mozes@slackware.com>
#
source /usr/share/slackdev/buildkit.sh

# Information about this package:
export PKGNAM=qt5
export VERSION=${VERSION:-5.15.3_20211130_014c375b}
export BUILD=${BUILD:-2}
slack_var_pkgseries
#export BUILD=${BUILD:-1_slack15.0}
export SLACKPACKAGE=$PKGNAM-$VERSION-$PKGARCH-$BUILD.txz

# If building in /patches for a Stable Release, we drop the packages into /tmp/patches/
slack_findpkgstore_is_stablerelease && {
    export PKGSTORE=/tmp/
    export PKGSERIES=/patches/
    mkdir -vpm755 $PKGSTORE/$PKGSERIES ;}

# Ensure base ARM packages are installed first:
slackbasedeps

# Ensure $PKGNAM isn't already installed:
slackfailpkgdeps $PKGNAM || removepkg $PKGNAM

# Ensure specific build dependencies (mainly libraries):
# Circular or indirect dependency.  openal-soft needs qt5 to build.
#{ slackcheckpkgdeps openal-soft     || installpkg $PKGSTORE/l/openal-soft-[0-9]*.t?z || exit 99; }
#
{ slackcheckpkgdeps dbus            || installpkg $PKGSTORE/a/dbus-[0-9]*.t?z    || exit 99; }
{ slackcheckpkgdeps eudev           || installpkg $PKGSTORE/a/eudev-[0-9]*.t?z   || exit 99; }
{ slackcheckpkgdeps pciutils        || installpkg $PKGSTORE/a/pciutils-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps cups            || installpkg $PKGSTORE/ap/cups-[0-9]*.t?z   || exit 99; }
{ slackcheckpkgdeps mariadb         || installpkg $PKGSTORE/ap/mariadb-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps sqlite          || installpkg $PKGSTORE/ap/sqlite-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps llvm            || installpkg $PKGSTORE/d/llvm-[0-9]*.t?z    || exit 99; }
{ slackcheckpkgdeps SDL2            || installpkg $PKGSTORE/l/SDL2-[0-9]*.t?z    || exit 99; }
{ slackcheckpkgdeps alsa-lib        || installpkg $PKGSTORE/l/alsa-lib-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps atk             || installpkg $PKGSTORE/l/atk-[0-9]*.t?z     || exit 99; }
{ slackcheckpkgdeps cairo           || installpkg $PKGSTORE/l/cairo-[0-9]*.t?z   || exit 99; }
{ slackcheckpkgdeps expat           || installpkg $PKGSTORE/l/expat-[0-9]*.t?z   || exit 99; }
{ slackcheckpkgdeps freetype        || installpkg $PKGSTORE/l/freetype-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps gdk-pixbuf2     || installpkg $PKGSTORE/l/gdk-pixbuf2-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps glib2           || installpkg $PKGSTORE/l/glib2-[0-9]*.t?z   || exit 99; }
{ slackcheckpkgdeps gst-plugins-base || installpkg $PKGSTORE/l/gst-plugins-base-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps gstreamer       || installpkg $PKGSTORE/l/gstreamer-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps gtk+3           || installpkg $PKGSTORE/l/gtk+3-[0-9]*.t?z   || exit 99; }
{ slackcheckpkgdeps hunspell        || installpkg $PKGSTORE/l/hunspell-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps icu4c           || installpkg $PKGSTORE/l/icu4c-[0-9]*.t?z   || exit 99; }
{ slackcheckpkgdeps jasper          || installpkg $PKGSTORE/l/jasper-[0-9]*.t?z  || exit 99; }
{ slackcheckpkgdeps lcms2           || installpkg $PKGSTORE/l/lcms2-[0-9]*.t?z   || exit 99; }
{ slackcheckpkgdeps libevent        || installpkg $PKGSTORE/l/libevent-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libjpeg-turbo   || installpkg $PKGSTORE/l/libjpeg-turbo-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libmng          || installpkg $PKGSTORE/l/libmng-[0-9]*.t?z  || exit 99; }
{ slackcheckpkgdeps libpng          || installpkg $PKGSTORE/l/libpng-[0-9]*.t?z  || exit 99; }
{ slackcheckpkgdeps libtiff         || installpkg $PKGSTORE/l/libtiff-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libvpx          || installpkg $PKGSTORE/l/libvpx-[0-9]*.t?z  || exit 99; }
{ slackcheckpkgdeps libwebp         || installpkg $PKGSTORE/l/libwebp-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libxkbcommon    || installpkg $PKGSTORE/l/libxkbcommon-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps mozilla-nss     || installpkg $PKGSTORE/l/mozilla-nss-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps opus            || installpkg $PKGSTORE/l/opus-[0-9]*.t?z    || exit 99; }
{ slackcheckpkgdeps pango           || installpkg $PKGSTORE/l/pango-[0-9]*.t?z   || exit 99; }
{ slackcheckpkgdeps pcre2           || installpkg $PKGSTORE/l/pcre2-[0-9]*.t?z   || exit 99; }
{ slackcheckpkgdeps pulseaudio      || installpkg $PKGSTORE/l/pulseaudio-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps zstd            || installpkg $PKGSTORE/l/zstd-[0-9]*.t?z    || exit 99; }
{ slackcheckpkgdeps bluez           || installpkg $PKGSTORE/n/bluez-[0-9]*.t?z   || exit 99; }
{ slackcheckpkgdeps openssl         || installpkg $PKGSTORE/n/openssl-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps fontconfig      || installpkg $PKGSTORE/x/fontconfig-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libICE          || installpkg $PKGSTORE/x/libICE-[0-9]*.t?z  || exit 99; }
{ slackcheckpkgdeps libSM           || installpkg $PKGSTORE/x/libSM-[0-9]*.t?z   || exit 99; }
{ slackcheckpkgdeps libX11          || installpkg $PKGSTORE/x/libX11-[0-9]*.t?z  || exit 99; }
{ slackcheckpkgdeps libXScrnSaver   || installpkg $PKGSTORE/x/libXScrnSaver-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libXcomposite   || installpkg $PKGSTORE/x/libXcomposite-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libXcursor      || installpkg $PKGSTORE/x/libXcursor-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libXdamage      || installpkg $PKGSTORE/x/libXdamage-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libXext         || installpkg $PKGSTORE/x/libXext-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libXfixes       || installpkg $PKGSTORE/x/libXfixes-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libXi           || installpkg $PKGSTORE/x/libXi-[0-9]*.t?z   || exit 99; }
{ slackcheckpkgdeps libXrender      || installpkg $PKGSTORE/x/libXrender-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libXtst         || installpkg $PKGSTORE/x/libXtst-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libdrm          || installpkg $PKGSTORE/x/libdrm-[0-9]*.t?z  || exit 99; }
{ slackcheckpkgdeps libglvnd        || installpkg $PKGSTORE/x/libglvnd-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libinput        || installpkg $PKGSTORE/x/libinput-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libxcb          || installpkg $PKGSTORE/x/libxcb-[0-9]*.t?z  || exit 99; }
{ slackcheckpkgdeps mesa            || installpkg $PKGSTORE/x/mesa-[0-9]*.t?z    || exit 99; }
{ slackcheckpkgdeps mtdev           || installpkg $PKGSTORE/x/mtdev-[0-9]*.t?z   || exit 99; }
{ slackcheckpkgdeps xcb-util-image  || installpkg $PKGSTORE/x/xcb-util-image-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps xcb-util-keysyms || installpkg $PKGSTORE/x/xcb-util-keysyms-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps xcb-util-renderutil || installpkg $PKGSTORE/x/xcb-util-renderutil-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps xcb-util-wm     || installpkg $PKGSTORE/x/xcb-util-wm-[0-9]*.t?z || exit 99; }

# Launch the package build script:
BUILDLOG=$SLKPORTARCH-$( basename $SLACKPACKAGE .t?z ).build.log
( ./$PKGNAM.SlackBuild ) >& /dev/stdout | tee $BUILDLOG

# Compress the build log:
bzip2 -9fvz $BUILDLOG
