#!/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=fcitx
export VERSION=${VERSION:-4.2.9.8}
export BUILD=${BUILD:-2}
slack_var_pkgseries
# Defaults are taken from the slackkit package:
#export PKGARCH=${PKGARCH:-arm}
#export PKGARCH=${PKGARCH:-noarch}
#export PKGARCH=${PKGARCH:-fw}
#export PKGARCH=$( slack_archtype )
#export BUILD=${BUILD:-1_slack15.0}
#export PKGSERIES=${PKGSERIES:-patches}
#export PKGSERIES=${PKGSERIES:-../pasture}
#export PKGSERIES=${PKGSERIES:-../extra}
#export PKGSERIES=${PKGSERIES:-x}
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):
{ slackcheckpkgdeps acl             || installpkg $PKGSTORE/a/acl-[0-9]*.t?z     || exit 99; }
{ slackcheckpkgdeps dbus            || installpkg $PKGSTORE/a/dbus-[0-9]*.t?z    || exit 99; }
{ slackcheckpkgdeps elogind         || installpkg $PKGSTORE/a/elogind-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps eudev           || installpkg $PKGSTORE/a/eudev-[0-9]*.t?z   || exit 99; }
{ slackcheckpkgdeps pam             || installpkg $PKGSTORE/a/pam-[0-9]*.t?z     || exit 99; }
{ slackcheckpkgdeps util-linux      || installpkg $PKGSTORE/a/util-linux-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps xz              || installpkg $PKGSTORE/a/xz-[0-9]*.t?z      || exit 99; }
{ slackcheckpkgdeps sox             || installpkg $PKGSTORE/ap/sox-[0-9]*.t?z    || exit 99; }
{ slackcheckpkgdeps gettext-tools   || installpkg $PKGSTORE/d/gettext-tools-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libtool         || installpkg $PKGSTORE/d/libtool-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps QtAV            || installpkg $PKGSTORE/l/QtAV-[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 boost           || installpkg $PKGSTORE/l/boost-[0-9]*.t?z   || exit 99; }
{ slackcheckpkgdeps cairo           || installpkg $PKGSTORE/l/cairo-[0-9]*.t?z   || exit 99; }
{ slackcheckpkgdeps cfitsio         || installpkg $PKGSTORE/l/cfitsio-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps cryfs           || installpkg $PKGSTORE/l/cryfs-[0-9]*.t?z   || exit 99; }
{ slackcheckpkgdeps cryptopp        || installpkg $PKGSTORE/l/cryptopp-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps dotconf         || installpkg $PKGSTORE/l/dotconf-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps espeak-ng       || installpkg $PKGSTORE/l/espeak-ng-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps ffmpeg          || installpkg $PKGSTORE/l/ffmpeg-[0-9]*.t?z  || exit 99; }
{ slackcheckpkgdeps fftw            || installpkg $PKGSTORE/l/fftw-[0-9]*.t?z    || exit 99; }
{ slackcheckpkgdeps freetype        || installpkg $PKGSTORE/l/freetype-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps fribidi         || installpkg $PKGSTORE/l/fribidi-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps fuse            || installpkg $PKGSTORE/l/fuse-[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 gmp             || installpkg $PKGSTORE/l/gmp-[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+2           || installpkg $PKGSTORE/l/gtk+2-[0-9]*.t?z   || exit 99; }
{ slackcheckpkgdeps gtk+3           || installpkg $PKGSTORE/l/gtk+3-[0-9]*.t?z   || exit 99; }
{ slackcheckpkgdeps harfbuzz        || installpkg $PKGSTORE/l/harfbuzz-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps icu4c           || installpkg $PKGSTORE/l/icu4c-[0-9]*.t?z   || exit 99; }
{ slackcheckpkgdeps imagemagick     || installpkg $PKGSTORE/l/imagemagick-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps json-c          || installpkg $PKGSTORE/l/json-c-[0-9]*.t?z  || exit 99; }
{ slackcheckpkgdeps kdsoap          || installpkg $PKGSTORE/l/kdsoap-[0-9]*.t?z  || exit 99; }
{ slackcheckpkgdeps libao           || installpkg $PKGSTORE/l/libao-[0-9]*.t?z   || exit 99; }
{ slackcheckpkgdeps libappindicator || installpkg $PKGSTORE/l/libappindicator-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libburn         || installpkg $PKGSTORE/l/libburn-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libcap          || installpkg $PKGSTORE/l/libcap-[0-9]*.t?z  || exit 99; }
{ slackcheckpkgdeps libdbusmenu     || installpkg $PKGSTORE/l/libdbusmenu-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libdvdread      || installpkg $PKGSTORE/l/libdvdread-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libexif         || installpkg $PKGSTORE/l/libexif-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libindicator    || installpkg $PKGSTORE/l/libindicator-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libjpeg-turbo   || installpkg $PKGSTORE/l/libjpeg-turbo-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libpng          || installpkg $PKGSTORE/l/libpng-[0-9]*.t?z  || exit 99; }
{ slackcheckpkgdeps libqalculate    || installpkg $PKGSTORE/l/libqalculate-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libsamplerate   || installpkg $PKGSTORE/l/libsamplerate-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libsecret       || installpkg $PKGSTORE/l/libsecret-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libsndfile      || installpkg $PKGSTORE/l/libsndfile-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libtiff         || installpkg $PKGSTORE/l/libtiff-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libvorbis       || installpkg $PKGSTORE/l/libvorbis-[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 libxml2         || installpkg $PKGSTORE/l/libxml2-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps mlt             || installpkg $PKGSTORE/l/mlt-[0-9]*.t?z     || exit 99; }
{ slackcheckpkgdeps mpfr            || installpkg $PKGSTORE/l/mpfr-[0-9]*.t?z    || exit 99; }
{ slackcheckpkgdeps ncurses         || installpkg $PKGSTORE/l/ncurses-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps openal-soft     || installpkg $PKGSTORE/l/openal-soft-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps opencv          || installpkg $PKGSTORE/l/opencv-[0-9]*.t?z  || exit 99; }
{ slackcheckpkgdeps openexr         || installpkg $PKGSTORE/l/openexr-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps pango           || installpkg $PKGSTORE/l/pango-[0-9]*.t?z   || exit 99; }
{ slackcheckpkgdeps phonon          || installpkg $PKGSTORE/l/phonon-[0-9]*.t?z  || exit 99; }
{ slackcheckpkgdeps pipewire        || installpkg $PKGSTORE/l/pipewire-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps polkit          || installpkg $PKGSTORE/l/polkit-[0-9]*.t?z  || exit 99; }
{ slackcheckpkgdeps pulseaudio      || installpkg $PKGSTORE/l/pulseaudio-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps qrencode        || installpkg $PKGSTORE/l/qrencode-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps qt5             || installpkg $PKGSTORE/l/qt5-[0-9]*.t?z     || exit 99; }
{ slackcheckpkgdeps readline        || installpkg $PKGSTORE/l/readline-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps sbc             || installpkg $PKGSTORE/l/sbc-[0-9]*.t?z     || exit 99; }
{ slackcheckpkgdeps sdl             || installpkg $PKGSTORE/l/sdl-[0-9]*.t?z     || exit 99; }
{ slackcheckpkgdeps speech-dispatcher || installpkg $PKGSTORE/l/speech-dispatcher-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps vid.stab        || installpkg $PKGSTORE/l/vid.stab-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps curl            || installpkg $PKGSTORE/n/curl-[0-9]*.t?z    || exit 99; }
{ slackcheckpkgdeps OpenCC          || installpkg $PKGSTORE/x/OpenCC-[0-9]*.t?z  || exit 99; }
{ slackcheckpkgdeps fontconfig      || installpkg $PKGSTORE/x/fontconfig-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libX11          || installpkg $PKGSTORE/x/libX11-[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 libXinerama     || installpkg $PKGSTORE/x/libXinerama-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libXrender      || installpkg $PKGSTORE/x/libXrender-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libXv           || installpkg $PKGSTORE/x/libXv-[0-9]*.t?z   || exit 99; }
{ slackcheckpkgdeps libglvnd        || installpkg $PKGSTORE/x/libglvnd-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps libva           || installpkg $PKGSTORE/x/libva-[0-9]*.t?z   || exit 99; }
{ slackcheckpkgdeps libxkbfile      || installpkg $PKGSTORE/x/libxkbfile-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps vulkan-sdk      || installpkg $PKGSTORE/x/vulkan-sdk-[0-9]*.t?z || exit 99; }
{ slackcheckpkgdeps xine-lib        || installpkg $PKGSTORE/xap/xine-lib-[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
