# Maintainer: Alexey Pavlov <Alexpux@gmail.com>

pkgbase=readline
pkgname=('libreadline' 'libreadline-devel')
_basever=8.2
_patchlevel=010 #prepare for some patches
pkgver=${_basever}.${_patchlevel}
pkgrel=1
pkgdesc="GNU readline library"
arch=('i686' 'x86_64')
url="https://tiswww.case.edu/php/chet/readline/rltop.html"
msys2_repository_url="https://git.savannah.gnu.org/cgit/readline.git"
license=('GPL')
makedepends=('ncurses-devel' 'autotools' 'gcc')
options=('!emptydirs')
source=(https://ftp.gnu.org/gnu/readline/readline-${_basever}.tar.gz{,.sig}
        inputrc
        readline-7.0.3-3.clipboard.patch
        readline-7.0.3-3.src.patch
        readline-6.3-msys2.patch
        readline-6.3-paste-utf8.patch)
if [ $_patchlevel -gt 0 ]; then
    for (( p=1; p<=$((10#${_patchlevel})); p++ )); do
        source=(${source[@]} https://ftp.gnu.org/gnu/readline/readline-${_basever}-patches/readline${_basever//./}-$(printf "%03d" $p){,.sig})
    done
fi
sha256sums=('3feb7171f16a84ee82ca18a36d7b9be109a52c04f492a053331d7d1095007c35'
            'SKIP'
            '6ff0b86e0b98f453b3ce06270c649ef336e2b881be0bc7dd8f5d470afbdac75e'
            '2f5e37a3260e61de1300b6467bff0c4561f45dbfde187f996981007602098774'
            'cdb4f97d641acde59ada6f22141e6a6743f756fc183f5cb43d6c9f8ae563da29'
            '96d002c8815b29ed5dbe89d9b251182c6e60111acc3d236acb8d1bbb2f896457'
            '8ce80150b6da67c551ffebb18650cfceef8d5e0eddbc848bcef20b8ec176af05'
            'bbf97f1ec40a929edab5aa81998c1e2ef435436c597754916e6a5868f273aff7'
            'SKIP'
            'e06503822c62f7bc0d9f387d4c78c09e0ce56e53872011363c74786c7cd4c053'
            'SKIP'
            '24f587ba46b46ed2b1868ccaf9947504feba154bb8faabd4adaea63ef7e6acb0'
            'SKIP'
            '79572eeaeb82afdc6869d7ad4cba9d4f519b1218070e17fa90bbecd49bd525ac'
            'SKIP'
            '622ba387dae5c185afb4b9b20634804e5f6c1c6e5e87ebee7c35a8f065114c99'
            'SKIP'
            'c7b45ff8c0d24d81482e6e0677e81563d13c74241f7b86c4de00d239bc81f5a1'
            'SKIP'
            '5911a5b980d7900aabdbee483f86dab7056851e6400efb002776a0a4a1bab6f6'
            'SKIP'
            'a177edc9d8c9f82e8c19d0630ab351f3fd1b201d655a1ddb5d51c4cee197b26a'
            'SKIP'
            '3d9885e692e1998523fd5c61f558cecd2aafd67a07bd3bfe1d7ad5a31777a116'
            'SKIP'
            '758e2ec65a0c214cfe6161f5cde3c5af4377c67d820ea01d13de3ca165f67b4c'
            'SKIP')
validpgpkeys=('7C0135FB088AAF6C66C650B9BB5869F064EA74AB') # Chet Ramey

prepare() {
  cd ${srcdir}/${pkgbase}-${_basever}
  for (( p=1; p<=$((10#${_patchlevel})); p++ )); do
    msg "applying patch readline${_basever//./}-$(printf "%03d" $p)"
    patch -p0 -i $srcdir/readline${_basever//./}-$(printf "%03d" $p)
  done
  patch -p2 -i ${srcdir}/readline-7.0.3-3.src.patch
  patch -p1 -i ${srcdir}/readline-6.3-msys2.patch
  patch -p1 -i ${srcdir}/readline-6.3-paste-utf8.patch
  patch -p1 -i ${srcdir}/readline-7.0.3-3.clipboard.patch
}

build() {
  local CYGWIN_CHOST="$(echo "${CHOST}" | sed 's|-msys$|-cygwin|')"

  mkdir -p ${srcdir}/build-static-${MSYSTEM} && cd ${srcdir}/build-static-${MSYSTEM}

  ../${pkgbase}-${_basever}/configure \
    --prefix=/usr \
    --build=${CYGWIN_CHOST} \
    --host=${CYGWIN_CHOST} \
    --with-curses \
    --disable-shared \
    --enable-static \
    bash_cv_termcap_lib=libncurses \
    CFLAGS="${CFLAGS} -DNCURSES_STATIC"

  make

  make DESTDIR=${srcdir}/dest install

  mkdir -p ${srcdir}/build-shared-${MSYSTEM} && cd ${srcdir}/build-shared-${MSYSTEM}

  ../${pkgbase}-${_basever}/configure \
    --prefix=/usr \
    --build=${CYGWIN_CHOST} \
    --host=${CYGWIN_CHOST} \
    --with-curses \
    --disable-static \
    --enable-shared \
    bash_cv_termcap_lib=libncurses

  make

  make DESTDIR=${srcdir}/dest install
}

package_libreadline() {
  depends=('ncurses')
  groups=('libraries')
  backup=('etc/inputrc')

  mkdir -p ${pkgdir}/usr
  cp -rf ${srcdir}/dest/usr/bin ${pkgdir}/usr/
  cp -rf ${srcdir}/dest/usr/share ${pkgdir}/usr/

  install -Dm644 inputrc "${pkgdir}"/etc/inputrc
}

package_libreadline-devel() {
  groups=('development')
  options=('staticlibs')
  depends=("libreadline=${pkgver}" 'ncurses-devel')
  pkgdesc="readline headers and libraries"

  mkdir -p ${pkgdir}/usr
  cp -rf ${srcdir}/dest/usr/include ${pkgdir}/usr/
  cp -rf ${srcdir}/dest/usr/lib ${pkgdir}/usr/
}
