git » ardour.git » arch-main » tree

[arch-main] / PKGBUILD

# Maintainer: David Runge <dvzrv@archlinux.org>
# Contributor: Ray Rashif <schiv@archlinux.org>
# Contributor: SpepS <dreamspepser at yahoo dot it>

pkgname=ardour
pkgver=8.11
pkgrel=1
pkgdesc="Professional-grade digital audio workstation"
arch=(x86_64)
url="https://ardour.org/"
license=(
  CC0-1.0
  GPL-2.0-or-later
  GPL-3.0-or-later
  MIT
)
groups=(pro-audio)
depends=(
  cairo
  gcc-libs
  glibc
  hicolor-icon-theme
  libsigc++
  libx11
  libxext
  sh
  taglib
)
makedepends=(
  aubio
  boost
  cairomm
  cppunit
  curl
  dbus
  doxygen
  fftw
  flac
  fluidsynth
  fontconfig
  freetype2
  git
  glib2
  glibmm
  graphviz
  hidapi
  itstool
  jack
  libarchive
  liblo
  liblrdf
  libltc
  libogg
  libpng
  libpulse
  libsamplerate
  libsndfile
  libusb
  libwebsockets
  libxml2
  lilv
  lv2
  pango
  pangomm
  readline
  rubberband
  serd
  sord
  sratom
  unzip
  vamp-plugin-sdk
  waf
)
optdepends=(
  'harvid: for video timeline and MP3 export'
  'new-session-manager: for session management'
  'xjadeo: for video monitoring'
)
provides=(
  ladspa-host
  lv2-host
  vamp-host
  vst-host
  vst3-host
)
source=(
  $pkgname::git+https://github.com/$pkgname/$pkgname.git#tag=$pkgver
  $pkgname-midi-$pkgver.zip::http://stuff.ardour.org/loops/ArdourBundledMedia.zip
  $pkgname-7.0-re-vendor_qm-dsp.patch
)
noextract=($pkgname-midi-$pkgver.zip)
sha512sums=('6437c080222c2970805cd16fd30f42bf4674f98fdcd4037ad99390b139ccf059bbe27ecc622d80992e34096351e58a5d47dc415805aaa48e170ead2305e21627'
            '94b681f989e834f5de25ce87da9c174b11d90617063f8c96147d7eb470391b35f6d54b85de16da8d963cacb01b50d1c1fab0fddd18eb3b086fe17124ecfa4f65'
            'a3da14925bc25d8a57ba3e137c4b2b04010054667ac4ae2aec116ce6c157b03c9dd76bf4d73c313022282362d19b91683f062d6ab2ee0c73a576d3fa6272bd1d')
b2sums=('d300a2b86a0fff8da07df174da0b42febbb93861957a7d8c7befdcf41cc0d6d2bcc950b0fb761179cfac089cb62d56936ac3df2aba2404978108e3fb76869562'
        'e31be6b51a217e2f7f799aa1d6e8c3cd024d80ab2d8d4371496a2b8bf0215749979217b565909841a346d6b3128fbfd674d2fae64b9fe741a5b418cd184c23be'
        '73845adce9a48938cd7aef5fbc65f492e470de316620d278365d247c80caef44531e850fbd3d2f5de65a8562e67aabfd982c938439bd3670726a27bc003be017')

pkgver() {
  cd $pkgname
  git describe --tags --abbrev=7 | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
}

prepare() {
  # using vendored version of qm-dsp because qm-dsp >= 1.8.0 is not compatible
  patch -Np1 -d $pkgname -i ../$pkgname-7.0-re-vendor_qm-dsp.patch

  cd $pkgname
  # unsetting gtk2 rc (FS#54389)
  sed -e '8iexport GTK2_RC_FILES=/dev/null' -i gtk2_ardour/ardour.sh.in

  # Fixes to use system waf:
  # making sure, that subdirectories can be picked up with local includes
  touch __init__.py
  # making ancient 'misc.py' include available to system installed waf
  sed -e "s/('misc')/('misc', tooldir='tools')/" \
      -i {gtk2_ardour,headless,luasession,session_utils,libs/fst}/wscript
  # make custom 'autowaf' include compatible with system installed waf
  find . -type f \
         -iname "*wscript*" \
         -exec sed -e 's/from waflib.extras import autowaf/from tools import autowaf/g' \
                   -e 's/import waflib.extras.autowaf/from tools import autowaf/g' \
                   -i {} \;
}

build() {
  local waf_configure_options=(
    --prefix=/usr
    --configdir=/etc
    --cxx17
    --freedesktop
    --no-phone-home
    --optimize
    --ptformat
    --use-external-libs
    --with-backends="alsa,dummy,jack,pulseaudio"
  )

  cd $pkgname
  export LINKFLAGS="$LDFLAGS"
  ./waf configure "${waf_configure_options[@]}"
  ./waf build -v
}

package() {
  depends+=(
    alsa-lib libasound.so
    aubio libaubio.so
    cairomm libcairomm-1.0.so
    curl libcurl.so
    dbus libdbus-1.so
    fftw libfftw3f.so libfftw3f_threads.so
    fluidsynth libfluidsynth.so
    fontconfig libfontconfig.so
    glib2 libglib-2.0.so libgobject-2.0.so
    glibmm libglibmm-2.4.so
    jack libjack.so
    libarchive libarchive.so
    liblo liblo.so
    libpulse libpulse.so
    liblrdf liblrdf.so
    libltc libltc.so
    libpng libpng16.so
    libsamplerate libsamplerate.so
    libsndfile libsndfile.so
    libusb libusb-1.0.so
    libwebsockets libwebsockets.so
    libxml2 libxml2.so
    lilv liblilv-0.so
    pango libpango-1.0.so libpangocairo-1.0.so libpangoft2-1.0.so
    pangomm libpangomm-1.4.so
    readline libreadline.so
    rubberband librubberband.so
    vamp-plugin-sdk libvamp-hostsdk.so libvamp-sdk.so
  )

  (
    cd $pkgname
    ./waf i18n --destdir="$pkgdir"
    ./waf install --destdir="$pkgdir"
    install -vDm 644 $pkgname.1 -t "$pkgdir/usr/share/man/man1/"
    mv "$pkgdir"/usr/share/{appdata,metainfo}
  )

  # installation of MIDI files is a bit of a horrorshow, as upstream is not flexible about tarball naming, etc.
  install -vdm 755 "$pkgdir/usr/share/$pkgname${pkgver/.*/}/media/"
  unzip $pkgname-midi-$pkgver.zip -d "$pkgdir/usr/share/$pkgname${pkgver/.*/}/media/"
  install -vdm 755 "$pkgdir/usr/share/licenses/$pkgname/"
  ln -s "/usr/share/$pkgname${pkgver/.*/}/media/MIDI Beats/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE.beats"
  ln -s "/usr/share/$pkgname${pkgver/.*/}/media/MIDI Chords/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE.chords"
  ln -s "/usr/share/$pkgname${pkgver/.*/}/media/MIDI Progressions/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE.progressions"
}
# vim:set ts=2 sw=2 et: