# Maintainer: David Runge <dvzrv@archlinux.org>
# Contributor: Ray Rashif <schiv@archlinux.org>
# Contributor: damir <damir@archlinux.org>

pkgname=fluidsynth
pkgver=2.5.1
pkgrel=1
pkgdesc="A real-time software synthesizer based on the SoundFont 2 specifications"
arch=(x86_64 aarch64)
url="https://www.fluidsynth.org/"
_url="https://github.com/fluidsynth/fluidsynth"
license=(LGPL-2.1-or-later)
groups=(pro-audio)
depends=(
  gcc-libs
  glibc
  sdl3
)
makedepends=(
  alsa-lib
  cmake
  dbus
  doxygen
  glib2
  jack
  ladspa
  libpipewire
  libpulse
  libsndfile
  portaudio
  readline
  systemd-libs
)
provides=(
  libfluidsynth.so
  soundfont-synthesizer
)
backup=(etc/conf.d/$pkgname)
source=(
  $pkgname-$pkgver.tar.gz::$_url/archive/v$pkgver.tar.gz
  $pkgname-2.5.0-disable-lock-and-writable-run-dir.patch
)
sha512sums=('0e897a1a3e1499150c26dc0ce4fc1fa4e5323cd84e0f1b6cdf305b4cfd3fd46cbefddf490241e8645a9bd291e485a830d109b1c7a83e13b816f0345839c4c36c'
            '39fc1693e8398fad2eabc84a6a75b4e788e79d70a48318514f1877399d5b46789989c77c6d4b9c7fd1ca86b31446329012099f737405c3ce733d006f54812e45')
b2sums=('76dbbdee1c5cd9a159db4f9195bf51bd83a848697b547e25c6c9ba83dfbaf4884739dd8cdf1ae5a7fccf2a182448daf96679da9e5a669f7b75cdb58f0f186c05'
        '8b589d1a9dbfb0d1a9262efb0c14b46c6900fa3871f85f3f0e31d4d863090ad10ee7b8758a26c196881f18b82bbc3cc203d256ebd4138ada4f2eb00eafc68652')

prepare() {
  # Directories in /run should never be world-writable by all users.
  # https://github.com/FluidSynth/fluidsynth/issues/1683
  # https://gitlab.archlinux.org/archlinux/packaging/packages/fluidsynth/-/issues/7
  patch -Np1 -d $pkgname-$pkgver -i ../$pkgname-2.5.0-disable-lock-and-writable-run-dir.patch
}

build() {
  local cmake_options=(
    -B build
    -D CMAKE_BUILD_TYPE=None
    -D CMAKE_INSTALL_PREFIX=/usr
    -D FLUID_DAEMON_ENV_FILE=/etc/conf.d/fluidsynth
    -D LIB_SUFFIX=""
    -D enable-ladspa=ON
    -D enable-portaudio=ON
    -S $pkgname-$pkgver
    -W no-dev
  )

  cmake "${cmake_options[@]}"
  cmake --build build --verbose
}

check() {
  make check -k -C build
}

package() {
  depends+=(
    alsa-lib libasound.so
    dbus libdbus-1.so
    glib2 libglib-2.0.so libgmodule-2.0.so
    jack libjack.so
    libpipewire libpipewire-0.3.so
    libpulse libpulse-simple.so
    libsndfile libsndfile.so
    portaudio libportaudio.so
    readline libreadline.so
    systemd-libs libsystemd.so
  )

  DESTDIR="$pkgdir" cmake --install build
  install -vDm 644 build/$pkgname.service -t "$pkgdir/usr/lib/systemd/user/"
  install -vDm 644 build/$pkgname.tmpfiles "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf"
  install -vDm 644 build/$pkgname.conf "$pkgdir/etc/conf.d/$pkgname"
  install -vDm 644 $pkgname-$pkgver/{AUTHORS,{CONTRIBUTING,README}.md,THANKS,TODO} -t "$pkgdir/usr/share/doc/$pkgname/"
}
