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

pkgname=fluidsynth
pkgver=2.5.3
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=('704d14f16a2d9adfc19700fd79dc96c76557876b15abc3afa7d2b9545e2e19810ee797b8614851b81243e3fc8d0871b4053080321a0fa292141a7a522431eeeb'
            '39fc1693e8398fad2eabc84a6a75b4e788e79d70a48318514f1877399d5b46789989c77c6d4b9c7fd1ca86b31446329012099f737405c3ce733d006f54812e45')
b2sums=('ad8d906ba5db05044c321ce7c6fe49a8203aaa08009f0f13f3dc92903fcb9defa18f2e33456b50d0d5f785c1e75d5910d77eb03616f1bf90b5e9e5ad8b7cc39b'
        '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/"
}
