summaryrefslogtreecommitdiff
path: root/pcr/ring/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'pcr/ring/PKGBUILD')
-rw-r--r--pcr/ring/PKGBUILD206
1 files changed, 130 insertions, 76 deletions
diff --git a/pcr/ring/PKGBUILD b/pcr/ring/PKGBUILD
index da0b1b885..43422a337 100644
--- a/pcr/ring/PKGBUILD
+++ b/pcr/ring/PKGBUILD
@@ -2,92 +2,118 @@
# Contributor: Omar Vega Ramos <ovruni@gnu.org.pe>
# Contributor: Isaac David <isacdaavid@at@isacdaavid@dot@info>
-# 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
-# NOTE: the same has also been seen for 'enchant' and 'jsoncpp'
-
-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##*.}
+_pkgver=20171129.2.cf5bbff
+_SOURCE_DATE_EPOCH=1511972974
+# The above are thing things that you must set each new version.
#
-# from inside of the repository created by
+# The _SOURCE_DATE_EPOCH should be
+# git log -n1 --format=%ct "${_pkgver##*.}"
+# from the git repo
+# git clone https://gerrit-ring.savoirfairelinux.com/ring-project
#
-# git clone https://gerrit-ring.savoirfairelinux.com/ring-project
+# But I automated that for you!
+# ./upd-helper set-pkgver YYYYMMDD.N.GITVER
#
-# TODO: the above is really not appropriate - we are not building from git master
-# the source date should be the date of the tarball
-# which is actually made from git 'production' branch
-#
-# git clone https://gerrit-ring.savoirfairelinux.com/ring-project
-# cd ring-project
-# git log production -n1 --format=%ct ${_pkgver##*.}
+# It will update _pkgver, _SOURCE_DATE_EPOCH, and sha256sums, and give
+# you a summary of files that have changed that I think you (future
+# me?), as the packager, should care about.
+pkgbase=ring
+pkgname=(ring-daemon ring-lrc ring-client-gnome)
+# stick a bunch of keywords in the pkgdesc because "ring" is a
+# terrible search term.
+pkgdesc="The GNU Ring (formerly ring.cx and SFLphone) VoIP system"
epoch=1
pkgver=1.0_${_pkgver}
-pkgrel=2.3
+pkgrel=1
arch=("i686" "x86_64")
-url="https://ring.cx/"
+url="https://gnu.org/software/ring/"
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')
+ 0001-contrib-recursive-dependency-tracking.patch)
license=('GPL3')
-sha256sums=('4f58183d7669b2fa06d72828f9fc8ceeec74d598bd656618cdd8cbe6a0ec55c6'
- '4d2040fae7dea3306580ac5b9c3d60e64314305db1b59d2d14c802a12e45e6f9')
+sha256sums=('0a23f8052a4df2a7aee40434cd59f17d0d5e97c73306ba35f99f2721b305ed48'
+ 'a9b308e524ea5b0b5db09fd55e6c0d96edbea6594f987e10e7b77251217f8e0c')
-# Get this list by looking at `daemon/contrib/src/*/rules.mak`; look
-# for packages that add themselves to both PKGS and FOUND_PKGS.
+# Get this list by looking at `daemon/contrib/src/*/rules.mak`.
+#
+# This is the complete list (with "lib" prepended or similar as
+# necessary).
+#
+# Entries are commented out if
+# - it's something we don't need to name because it's already in the
+# deps list ("DUP"). Actually, don't comment out any .so files
+# that we name for DUPs.
+# - we won't be using it ("IGNORE"); these are things that don't add
+# themselves to PKGS, and aren't in DEPS_* for another package that
+# we don't IGNORE
+# - or we (*gasp*) want to use the contrib version instead of the
+# system version ("CONTRIB")
+#
+# Also note when we forcefully override the build-system's automatic
+# logic on when to use the system version vs the contrib version
+# ("FORCE"). For system packages, these are things we don't IGNORE,
+# but don't add themselves PKGS_FOUND. For contrib packages, these
+# are things that might get added to PKG_FOUND that we don't want to.
+# We'll be adding `--disable-PKG` or `--enable-PKG` flags to
+# `../bootstrap` below for these.
_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
+ #argon2 # DUP: opendht->argon2 (DEPS_opendht)
+ #asio # CONTRIB: want commit f5c57, which isn't in a stable release yet
+ dbus-c++ # FORCE: no PKGS_FOUND logic because alleged gcc7 bug?
+ ffmpeg libavutil.so libavcodec.so libavformat.so libavdevice.so libswscale.so
+ #flac # DUP: libsndfile->flac
+ #libgcrypt # IGNORE: not in PKGS (?)
+ #gmp # IGNORE: not in PKGS (DEPS_nettle DEPS_secp256k1)
+ #gnutls # CONTRIB: ring is not yet compatible with gnutls>=3.5.11
+ #libgpg-error # IGNORE: not in PKGS (DEPS_gcrypt)
+ #gsm # FORCE+DUP: IDK why no PKGS_FOUND; ffmpeg->gsm
+ #glibc # DUP: base->glibc (contribname=iconv)
+ #jack # IGNORE: not in PKGS: ("disabled by default for now")
+ jsoncpp #
+ msgpack-c #
+ libnatpmp # FORCE: package doesn't include a pkg-config file
+ #nettle # DUP: {gnutls,opendht}->nettle
+ #libogg # DUP: ffmpeg->{libvorbis,speex,flac}->libogg
+ opendht #
+ #opus # DUP: ffmpeg->opus
+ #pcre # DUP: {base,base-devel}->grep->pcre
+ #pjproject # CONTRIB+FORCE: Added patches for gnutls
+ portaudio #
+ restbed # FORCE: package doesn't include a pkg-config file
+ #libsamplerate # DUP: {ffmpeg,portaudio}->jack->libsamplerate
+ secp256k1-git libsecp256k1.so
+ #libsndfile # DUP: libsamplerate->libsndfile
+ #speex # DUP: ffmpeg->speex
+ #speexdsp # DUP: speex>-speexdsp
+ libupnp #
+ #util-linux # DUP: {base,base-devel}->util-linux (DEPS_prproject=uuid)
+ libvorbisenc.so # DUP: ffmpeg->libvorbis
+ #libvpx # IGNORE: not in PKGS (DEPS_ffmpeg)
+ #x264 # IGNORE: not in PKGS (DEPS_ffmpeg)
+ yaml-cpp #
+ #zlib # DUP: {pcre,ffmpeg,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_daemon=(
+ boost # a compile-time dep for some features in yaml-cpp
+)
+_depends_daemon=(
+ "${_daemon_contrib[@]}"
+ libidn2
+)
_makedepends_lrc=(qt5-tools)
_depends_lrc=(qt5-base)
_makedepends_client_gnome=()
-_depends_client_gnome=(clutter-gtk evolution-data-server libnm-glib qrencode)
+_depends_client_gnome=(
+ clutter-gtk
+ evolution-data-server
+ gnome-icon-theme-symbolic
+ libnm-glib
+ qrencode
+)
makedepends=(
cmake
@@ -100,19 +126,47 @@ makedepends=(
"${_depends_client_gnome[@]}"
)
-#checkdepends=(cppunit swig)
+# The above list of dependencies can be unwieldy! Running
+# `./upd-helper find-dups` will suggest things that can be removed.
-_makedepends_ringpy=(autoconf-archive gnome-icon-theme-symbolic libe-book)
+# make-ring.py says we also need the following, but I don't agree
+# (`./upd-helper diff-depends` will help you update this list):
+#
+# - autoconf-archive: for building from git, not release tarballs
+# - cppunit: for testing
+# - libe-book: They are confusing 'libebook' (which Arch & Parabola don't have) with the different 'libe-book' (which we do have)
+# - swig: for ring-daemon NodeJS module
+# - yasm: for building contrib vpx
prepare() {
- cp "$srcdir/kashmir.tar.gz" "$srcdir/ring-project/daemon/contrib/tarballs/"
+ cd "$srcdir/ring-project/daemon"
+ patch -p1 -i "$srcdir/0001-contrib-recursive-dependency-tracking.patch"
+
+ # Remove unused contrib tarballs, to ensure that we didn't make a mistake
+ local file
+ for file in "$srcdir/ring-project/daemon/contrib/tarballs/"*; do
+ case "${file##*/}" in
+ asio-*) : skip "$file" ;;
+ gnutls-*) : skip "$file" ;;
+ pjproject-*) : skip "$file" ;;
+ *) rm -f -- "$file" ;;
+ esac
+ done
}
-build() {
+build() (
+ set -x
+
cd "$srcdir/ring-project/daemon/contrib"
mkdir native
cd native
- ../bootstrap --disable-downloads --disable-natpmp --disable-asio
+ ../bootstrap \
+ --disable-downloads \
+ --disable-dbus-cpp \
+ --disable-gsm \
+ --disable-natpmp \
+ --enable-pjproject \
+ --disable-restbed
make BATCH_MODE=1
cd "$srcdir/ring-project/daemon"
@@ -137,10 +191,10 @@ build() {
-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"
+ pkgdesc="The communication daemon of ${pkgdesc,}"
depends=("${_depends_daemon[@]}")
provides=("ring-daemon=2:$_pkgver") # AUR version scheme
@@ -149,7 +203,7 @@ package_ring-daemon() {
}
package_ring-lrc() {
- pkgdesc="A client library for the GNU Ring VoIP system"
+ pkgdesc="A client library for ${pkgdesc,}"
depends=("${_depends_lrc[@]}" "ring-daemon=${epoch:+$epoch:}$pkgver")
provides=("libringclient=2:$_pkgver") # AUR name
replaces=("libringclient") # AUR name
@@ -159,7 +213,7 @@ package_ring-lrc() {
}
package_ring-client-gnome() {
- pkgdesc="A GTK+3 user interface for the GNU Ring VoIP system"
+ pkgdesc="A GTK+3 user interface for ${pkgdesc,}"
depends=("${_depends_client_gnome[@]}" "ring-lrc=${epoch:+$epoch:}$pkgver")
provides=("ring-gnome=3:$_pkgver") # AUR name
replaces=("ring-gnome") # AUR name