#!/bin/bash

# Slackware build script for irssi-python

# Written by B. Watson (yalhcru@gmail.com)

# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.

# A note about the download URL: I'm stuck using the github
# auto-generated one, even though upstream created a static release
# tarball. Unfortunately, the release tarball is un-buildable because it's
# missing various files. Also it's missing the entire doc/ directory.

# VERSION is the irssi-python version, an underscore, and the irssi
# version we're building it for.
# Unfortunately we have to pick an irssi version to be the default,
# because the DOWNLOAD links are static (can't have $VERSION or such in
# them). This build will have to be updated any time Pat does an irssi
# version update.

# 20211208 bkw: update for vtest4_1.2.3.

cd $(dirname $0) ; CWD=$(pwd)

PRGNAM=irssi-python
VERSION=${VERSION:-test4_1.2.3}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}

PYIRSSI_VER="$( echo $VERSION | cut -d_ -f1 )"
IRSSI_VER="$(   echo $VERSION | cut -d_ -f2 )"

# Alert the user (but don't stop the build) if $IRSSI_VER doesn't match
# the installed version of irssi.
SYS_IRSSI="$( irssi --version | cut -d' ' -f2 )"
if [ "$IRSSI_VER" != "$SYS_IRSSI" ]; then
  cat <<EOF
***
*** WARNING: building for irssi $IRSSI_VER, but installed version is $SYS_IRSSI!
*** Continuing build in 5 seconds, or press ^C to abort.
***
EOF
  sleep 5
fi

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=i586 ;;
    arm*) ARCH=arm ;;
       *) ARCH=$( uname -m ) ;;
  esac
fi

if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
  echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
  exit 0
fi

TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

if [ "$ARCH" = "i586" ]; then
  SLKCFLAGS="-O2 -march=i586 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"
else
  SLKCFLAGS="-O2"
  LIBDIRSUFFIX=""
fi

set -e

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM
mkdir -p $PRGNAM
cd $PRGNAM
tar xvf $CWD/$PRGNAM-$PYIRSSI_VER.tar.gz
tar xvf $CWD/irssi-$IRSSI_VER.tar.xz
chown -R root:root .
find -L .  -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
        \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+

# According to its INSTALL doc, irssi-python is supposed to need
# "the configured Irssi sources". But test4 builds fine without
# running ./configure in the irssi source dir. Leaving this here,
# commented out, for reference.
## cd irssi-$IRSSI_VER
## CFLAGS="$SLKCFLAGS" \
## ./configure \
##   --prefix=/usr \
##   --libdir=/usr/lib${LIBDIRSUFFIX} \
##   --mandir=/usr/man \
##   --sysconfdir=/etc \
##   --docdir=/usr/doc/irssi-$VERSION \
##   --enable-ipv6 \
##   --with-textui \
##   --with-proxy \
##   --with-perl-lib=vendor \
##   --build=$ARCH-slackware-linux
## cd $TMP/$PRGNAM

cd $PRGNAM-$PYIRSSI_VER

# patch comes from upstream git, commit 84e90f7d.
patch -p1 < $CWD/abi18.diff

autoreconf -ivf -I.

CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
  --with-irssi=$TMP/$PRGNAM/irssi-$IRSSI_VER \
  --prefix=/usr \
  --libdir=/usr/lib${LIBDIRSUFFIX} \
  --sysconfdir=/etc \
  --localstatedir=/var \
  --mandir=/usr/man \
  --docdir=/usr/doc/$PRGNAM-$VERSION \
  --build=$ARCH-slackware-linux

make -C src constants
make
make install-strip DESTDIR=$PKG

rm -f $PKG/usr/lib*/irssi/modules/*.la

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a AUTHORS COPYING ChangeLog NEWS README TODO classes.txt docs/*html \
      $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild

# 20211208 bkw: it might be redundant to include the irssi version
# in the slack-desc, since it's now in the actual version number, but
# belt and suspenders...
mkdir -p $PKG/install
sed "s/@IRSSI_VER@/$IRSSI_VER/" $CWD/slack-desc > $PKG/install/slack-desc

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
