# Maintainer: Alexey Pavlov _realname=readline pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _basever=8.3 _patchlevel=003 pkgver=${_basever}.${_patchlevel} pkgrel=1 pkgdesc="MinGW port of readline for editing typed command lines (mingw-w64)" arch=('any') mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clangarm64') url="https://tiswww.case.edu/php/chet/readline/rltop.html" msys2_repository_url="https://git.savannah.gnu.org/cgit/readline.git" msys2_references=( "cpe: cpe:/a:gnu:readline" ) license=('spdx:GPL-3.0-or-later') depends=("${MINGW_PACKAGE_PREFIX}-cc-libs" #"${MINGW_PACKAGE_PREFIX}-ncurses" "${MINGW_PACKAGE_PREFIX}-termcap" ) makedepends=("${MINGW_PACKAGE_PREFIX}-cc" "${MINGW_PACKAGE_PREFIX}-autotools") source=("https://ftp.gnu.org/gnu/${_realname}/${_realname}-${_basever}.tar.gz"{,.sig} # Patch adopted from https://hg.octave.org/mxe-octave/file/41e50d658de0/src/readline-1-sigwinch.patch "0001-sigwinch.patch" # Patch adopted from https://hg.octave.org/mxe-octave/file/41e50d658de0/src/readline-2-event-hook.patch "0002-event-hook.patch" "0003-no-winsize.patch" "0004-locale.patch") if [ ${_patchlevel} -gt 00 ]; then for (( p=1; p<=$((10#${_patchlevel})); p++ )); do source=(${source[@]} https://ftp.gnu.org/gnu/${_realname}/${_realname}-${_basever}-patches/readline${_basever//./}-$(printf "%03d" $p){,.sig}) done fi validpgpkeys=('7C0135FB088AAF6C66C650B9BB5869F064EA74AB') sha256sums=('fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc' 'SKIP' '2b30dcb0804abb6e7e4f44cd119bddef94c1b1d7ebff43dda401e710eda2fd0f' 'd537a4b137ef605e6494e4ebf083fa7958166963911d4426791c258488e3a4af' '20a2e2501718ca1c9db96d99a2e0e30e9a4a069fe01d27053e542e42dbc49e5a' '72ed438ae142ba9d5498652dfdf4fb517265bcf9a67199b7c5b35cc24fa25b9e' '21f0a03106dbe697337cd25c70eb0edbaa2bdb6d595b45f83285cdd35bac84de' 'SKIP' 'e27364396ba9f6debf7cbaaf1a669e2b2854241ae07f7eca74ca8a8ba0c97472' 'SKIP' '72dee13601ce38f6746eb15239999a7c56f8e1ff5eb1ec8153a1f213e4acdb29' 'SKIP') apply_patch_with_msg() { for _patch in "$@" do msg2 "Applying $_patch" patch -Np1 -i "${srcdir}/$_patch" done } prepare() { cd "${srcdir}/readline-${_basever}" # Apply upstream patches for (( p=1; p<=$((10#${_patchlevel})); p++ )); do msg "applying patch readline${_basever//./}-$(printf "%03d" $p)" patch -Np0 -i "${srcdir}"/readline${_basever//./}-$(printf "%03d" $p) done apply_patch_with_msg \ 0001-sigwinch.patch \ 0002-event-hook.patch \ 0003-no-winsize.patch \ 0004-locale.patch # Remove RPATH from shared objects (FS#14366) sed -i 's|-Wl,-rpath,$(libdir) ||g' support/shobj-conf # Fully spell out linker option sed -i 's|-Wl,--export-all |-Wl,--export-all-symbols |g' support/shobj-conf } build() { mkdir -p "${srcdir}"/build-${MSYSTEM} && cd "${srcdir}"/build-${MSYSTEM} export CFLAGS="$CFLAGS -DNEED_EXTERN_PC=1" # Use extern PC variable from libtermcap # XXX: make mingw-w64 provide a dummy alarm() function CFLAGS+=" -D__USE_MINGW_ALARM -D_POSIX" ../${_realname}-${_basever}/configure \ --prefix=${MINGW_PREFIX} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ --enable-shared \ --without-curses make } package() { cd "${srcdir}/build-${MSYSTEM}" make install DESTDIR="${pkgdir}" install -Dm644 "${srcdir}/${_realname}-${_basever}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" }