# Maintainer: David P. <megver83@parabola.nu>
# Maintainer: Luke Shumaker <lukeshu@parabola.nu>
# Contributor: Joshua Ismael Haase Hernández (xihh) <hahj87@gmail.com>
# Contributor: fauno <fauno@kiwwwi.com.ar>
# Contributor: Márcio Silva <coadde@hyperbola.info>
# Contributor: bill-auger <bill-auger@programmer.net>

# nonsystemd changes and rationale:
# - replace systemd-nspawn with bwrap
# - do not package gitget (unmodified in this build)

# Upstream information

pkgbase=libretools
pkgname=(libretools librelib gitget)
pkgdesc="Programs for Parabola development"
url="https://git.parabola.nu/packages/libretools.git/"
license=(GPL-2.0-or-later GPL-3.0-or-later)

pkgver=20260104
source=(https://repo.parabola.nu/other/$pkgname/$pkgname-$pkgver.tar.gz{,.sig})
sha256sums=('26e49ca233b871bf03cae9c79229b2c13bf6a1466f2a5cab556891fa87a74836'
            'SKIP'
            '02121572ee945a11620fa679241cfb8e26fc79a4a02a9231a4d28cc3aaef6fb3')
validpgpkeys=('99195DD3BB6FE10A2F36ED8445698744D4FFBFC9')  # Luke Shumaker

# Package information

pkgrel=1
arch=('any')
#makedepends=(ruby-ronn-ng) # XXX
_pacman_constraints=('pacman>=7.1' 'pacman<7.2')
checkdepends=(
  bats-assert
  bats-file
  git
  "${_pacman_constraints[@]}"
  expac
  openssh
  rsync
  tokyocabinet
)

# Nonsystemd

source+=(nonsystemd.patch)
pkgrel+=.nonsystemd1
unset "pkgname[2]"

# Build instructions

prepare() {
  cd "$srcdir/$pkgbase-$pkgver"
  patch -Np1 -i ../nonsystemd.patch
}

build() {
  if ! ./test-rubygems.rb
  then echo "\`rubygems\` seems to be broken again - man pages will not be built"
       sed -i 's|^enable_manpages = .*|enable_manpages =|' $pkgbase-$pkgver/config.mk
  fi

  cd "$srcdir/$pkgbase-$pkgver"
  make
}

check() {
  cd "$srcdir/$pkgbase-$pkgver"
  SUDO_USER= make check BATS_FLAGS='--filter-tags !network,!sudo,!btrfs,!locale-es'
}

package_librelib() {
  pkgdesc="The shell library portion of libretools"
  license=(GPL-2.0-or-later)
  conflicts=('xbs')
  optdepends=(
    'libretools: for blacklist.sh'
    'wget: for blacklist.sh'
  )

  cd "$srcdir/$pkgbase-$pkgver"
  make install-librelib DESTDIR="$pkgdir"
}

package_gitget() {
  pkgdesc="A simple to use downloader for Git URLs"
  license=(GPL-2.0-or-later)
  depends=("librelib=$pkgver" git)

  cd "$srcdir/$pkgbase-$pkgver"
  make install-gitget DESTDIR="$pkgdir"
}

package_libretools() {
  backup=(etc/libretools.conf
          etc/libretools.d/chroot.conf
          etc/libretools.d/libredbdiff.conf
          etc/libretools.d/librefetch.conf)
  conflicts=(devtools)
  depends=(
    "librelib=$pkgver"
    "gitget=$pkgver"     # `createworkdir`
    "${_pacman_constraints[@]}"
    arch-install-scripts # `mkarchroot` uses `pacstrap`
    binutils             # `libremakepkg`->`makepkg` uses `strip`
    expac                # `libredbdiff`
    fakeroot             # `libremakepkg`->`makepkg` uses `fakeroot`
    make                 # `librefetch`
    openssh              # `librerelease`
    #pacutils             # `librechroot` uses `pacsift` # TODO: not yet, it doesn't
    python-jsonschema    # `librefetch`
    rsync                # `librerelease` and `makechrootpkg.sh`
    #'systemd-tools>=234' # `systemd-nspawn` # TODO: merge 'nonsystemd' branch
    tokyocabinet         # `toru`
    #namcap               # `libremakepkg` # FIXME: Namcap is currently disabled in libremakepkg :-(
    subversion           # `diff-unfree`
    wget                 # `aur`, optdepend for librelib:`blacklist`
  )
  optdepends=(
    'qemu-user-static-binfmt: To build ARM packages from x86'
  )
  depends+=(bubblewrap)

  cd "$srcdir/$pkgbase-$pkgver"
  make install-libretools DESTDIR="$pkgdir"
}
