# Maintainer: Luke Shumaker # Contributor: Omar Vega Ramos # Contributor: Isaac David # TODO: add explicit versioned dependency canary on icu to the # appropriate package(s) -- à la iceweasel -- so as to avoid # breakage when Arch bumps the soname pkgbase=ring pkgname=(ring-daemon ring-lrc ring-client-gnome) pkgdesc="The GNU Ring VoIP system" pkgver=20171024.1.eadbdeb _SOURCE_DATE_EPOCH=1508858419 # To figure out what the above value of _SOURCE_DATE_EPOCH should be, # run # # git log -n1 --format=%ct ${_pkgver##*.} # # from inside of the repository created by # # git clone https://gerrit-ring.savoirfairelinux.com/ring-project pkgrel=2.2 arch=("i686" "x86_64") url="https://ring.cx/" source=("http://dl.ring.cx/ring-release/tarballs/${pkgbase}_${pkgver}.tar.gz" 'kashmir.tar.gz::https://github.com/Corvusoft/kashmir-dependency/archive/master.tar.gz') noextract=('kashmir.tar.gz') license=('GPL3') sha256sums=('4f58183d7669b2fa06d72828f9fc8ceeec74d598bd656618cdd8cbe6a0ec55c6' '4d2040fae7dea3306580ac5b9c3d60e64314305db1b59d2d14c802a12e45e6f9') # Get this list by looking at `daemon/contrib/src/*/rules.mak`; look # for packages that add themselves to both PKGS and FOUND_PKGS. _daemon_contrib=( boost # CONTRIB: TODO: IDK: no PKGS_FOUND logic crypto++ ffmpeg #gnutls # DUP: {ffmpeg,opendht}->gnutls #gsm # CONTRIB: TODO: IDK: no PKGS_FOUND logic #jack # DUP: ffmpeg->jack jsoncpp msgpack-c libnatpmp # NOTE: force system version; see below #libsamplerate # DUP: ffmpeg->jack->libsamplerate #libsndfile # DUP: ffmpeg->libsamplerate->libsndfile libupnp #libvorbis # DUP: ffmpeg->libvorbis #libogg # DUP: ffmpeg->{libvorbis,speex}->libogg #nettle # DUP: {ffmpeg,opendht}->gnutls->nettle opendht #opus # DUP: ffmpeg->opus #pcre # DUP: {base,base-devel}->grep->pcre #pjproject # CONTRIB: Added patches for gnutls restbed #secp256k1 # CONTRIB: extra crypto, AUR package #speex # DUP: ffmpeg->speex #speexdsp # DUP: ffmpeg->speex->speexdsp yaml-cpp #zlib # DUP: {pcre,ffmpeg,opendht,gnutls}->zlib ) # We may pass several `--disable-X` flags to `../bootstrap` below; to # force the system version of dependencies. # # Disable contrib 'natpmp' to force the system version of libnatpmp # because the detection logic uses pkg-config, but the libnatpmp # package doesn't include pkg-config files; so the build system thinks # we don't have it. _makedepends_daemon=() _depends_daemon=("${_daemon_contrib[@]}" dbus-c++) _makedepends_lrc=(qt5-tools) _depends_lrc=(qt5-base) _makedepends_client_gnome=() _depends_client_gnome=(clutter-gtk evolution-data-server libnm-glib qrencode) makedepends=( cmake doxygen "${_makedepends_daemon[@]}" "${_depends_daemon[@]}" "${_makedepends_lrc[@]}" "${_depends_lrc[@]}" "${_makedepends_client_gnome[@]}" "${_depends_client_gnome[@]}" ) #checkdepends=(cppunit swig) _makedepends_ringpy=(autoconf-archive gnome-icon-theme-symbolic libe-book) prepare() { cp "$srcdir/kashmir.tar.gz" "$srcdir/ring-project/daemon/contrib/tarballs/" } build() { cd "$srcdir/ring-project/daemon/contrib" mkdir native cd native ../bootstrap --disable-downloads --disable-natpmp --disable-asio make BATCH_MODE=1 cd "$srcdir/ring-project/daemon" ./autogen.sh ./configure --prefix=/usr make RING_DIRTY_REPO= RING_REVISION=$_pkgver cd "$srcdir/ring-project/lrc" mkdir build cd build cmake .. \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=Release \ -DRING_BUILD_DIR="$srcdir/ring-project/daemon/src" make cd "$srcdir/ring-project/client-gnome" mkdir build cd build SOURCE_DATE_EPOCH=$_SOURCE_DATE_EPOCH cmake .. \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=Release \ -DLibRingClient_PROJECT_DIR="$srcdir/ring-project/lrc" make } package_ring-daemon() { pkgdesc="The communication daemon of the GNU Ring VoIP system" depends=("${_depends_daemon[@]}") cd "$srcdir/ring-project/daemon" make DESTDIR="$pkgdir" install } package_ring-lrc() { pkgdesc="A client library for the GNU Ring VoIP system" depends=("${_depends_lrc[@]}" "ring-daemon=$pkgver") provides=("libringclient=$pkgver") # AUR name replaces=("libringclient") # AUR name cd "$srcdir/ring-project/lrc/build" make DESTDIR="$pkgdir" install } package_ring-client-gnome() { pkgdesc="A GTK+3 user interface for the GNU Ring VoIP system" depends=("${_depends_client_gnome[@]}" "ring-lrc=$pkgver") provides=("ring-gnome=$pkgver") # AUR name replaces=("ring-gnome") # AUR name cd "$srcdir/ring-project/client-gnome/build" make DESTDIR="$pkgdir" install }