git » ardour.git » main » tree

[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=2
pkgdesc="Professional-grade digital audio workstation"
arch=(x86_64 'armv7h')
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=('SKIP'
            '94b681f989e834f5de25ce87da9c174b11d90617063f8c96147d7eb470391b35f6d54b85de16da8d963cacb01b50d1c1fab0fddd18eb3b086fe17124ecfa4f65'
            'a3da14925bc25d8a57ba3e137c4b2b04010054667ac4ae2aec116ce6c157b03c9dd76bf4d73c313022282362d19b91683f062d6ab2ee0c73a576d3fa6272bd1d')
b2sums=('SKIP'
        '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,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: