diff options
Diffstat (limited to 'pcr/ring')
-rw-r--r-- | pcr/ring/.gitignore | 2 | ||||
-rw-r--r-- | pcr/ring/0001-contrib-recursive-dependency-tracking.patch | 169 | ||||
-rw-r--r-- | pcr/ring/PKGBUILD | 223 | ||||
-rwxr-xr-x | pcr/ring/prune-pkgnames | 106 | ||||
-rwxr-xr-x | pcr/ring/upd-helper | 109 |
5 files changed, 0 insertions, 609 deletions
diff --git a/pcr/ring/.gitignore b/pcr/ring/.gitignore deleted file mode 100644 index 5d4ba407d..000000000 --- a/pcr/ring/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/*/ -/notable-changes-*--*.patch diff --git a/pcr/ring/0001-contrib-recursive-dependency-tracking.patch b/pcr/ring/0001-contrib-recursive-dependency-tracking.patch deleted file mode 100644 index 030c5cf94..000000000 --- a/pcr/ring/0001-contrib-recursive-dependency-tracking.patch +++ /dev/null @@ -1,169 +0,0 @@ -From f50c8a7e1fbdf317013f19b962093b068ed6e0f7 Mon Sep 17 00:00:00 2001 -From: Luke Shumaker <lukeshu@parabola.nu> -Date: Wed, 13 Dec 2017 13:49:07 -0500 -Subject: [PATCH] contrib: recursive dependency tracking - -Let's say we're building gnutls (since the system version is too new). -gnutls depends on nettle. -Let's say we're using the system nettle (naturally in FOUND_PKGS). -nettle depends on gmp. - -With the old (non-recursive) dependency tracking, we would end up building -gmp just for nettle, even though we aren't even building nettle! ---- - contrib/src/README | 17 +++++------------ - contrib/src/ffmpeg/rules.mak | 2 +- - contrib/src/flac/rules.mak | 2 +- - contrib/src/gnutls/rules.mak | 2 +- - contrib/src/main.mak | 3 ++- - contrib/src/nettle/rules.mak | 2 +- - contrib/src/opendht/rules.mak | 2 +- - contrib/src/secp256k1/rules.mak | 2 +- - contrib/src/vorbis/rules.mak | 4 ++-- - 9 files changed, 15 insertions(+), 21 deletions(-) - -diff --git a/contrib/src/README b/contrib/src/README -index 581a39219..d03ff1899 100644 ---- a/contrib/src/README -+++ b/contrib/src/README -@@ -92,18 +92,11 @@ Dependencies - If package bar depends on package foo, the special DEPS_bar variable - should be defined as follow: - -- DEPS_bar = foo $(DEPS_foo) -- --Note that dependency resolution is unfortunately _not_ recursive. --Therefore $(DEPS_foo) really should be specified explicitly as shown --above. (In practice, this will not make any difference insofar as there --are no pure second-level nested dependencies. For instance, libass --depends on FontConfig, which depends on FreeType, but libass depends --directly on FreeType anyway.) -- --Also note that DEPS_bar is set "recursively" with =, rather than --"immediately" with :=. This is so that $(DEPS_foo) is expanded --correctly, even if DEPS_foo it is defined after DEPS_bar. -+ DEPS_bar = foo -+ -+Dependency resolution is recursive (unlike in previous versions); the -+above will cause bar to also depend on the dependencies of foo. -+However, it will not correctly handle cycles. - - Implementation note: - -diff --git a/contrib/src/ffmpeg/rules.mak b/contrib/src/ffmpeg/rules.mak -index b1db5d131..e86403e25 100644 ---- a/contrib/src/ffmpeg/rules.mak -+++ b/contrib/src/ffmpeg/rules.mak -@@ -11,7 +11,7 @@ ifeq ($(call need_pkg,"libavutil >= 55.75.100 libavcodec >= 57.106.101 libavform - PKGS_FOUND += ffmpeg - endif - --DEPS_ffmpeg = iconv zlib x264 vpx opus speex $(DEPS_vpx) -+DEPS_ffmpeg = iconv zlib x264 vpx opus speex - - FFMPEGCONF = \ - --cc="$(CC)" \ -diff --git a/contrib/src/flac/rules.mak b/contrib/src/flac/rules.mak -index 7abc69938..857593aad 100644 ---- a/contrib/src/flac/rules.mak -+++ b/contrib/src/flac/rules.mak -@@ -47,7 +47,7 @@ FLACCONF += --disable-asm-optimizations - endif - endif - --DEPS_flac = ogg $(DEPS_ogg) -+DEPS_flac = ogg - - .flac: flac - cd $< && $(HOSTVARS) ./configure $(FLACCONF) -diff --git a/contrib/src/gnutls/rules.mak b/contrib/src/gnutls/rules.mak -index 843135814..4441fcf91 100644 ---- a/contrib/src/gnutls/rules.mak -+++ b/contrib/src/gnutls/rules.mak -@@ -60,7 +60,7 @@ ifdef HAVE_IOS - GNUTLS_CONF += --disable-hardware-acceleration - endif - --DEPS_gnutls = nettle $(DEPS_nettle) iconv $(DEPS_iconv) -+DEPS_gnutls = nettle iconv - - - #Workaround for localtime_r function -diff --git a/contrib/src/main.mak b/contrib/src/main.mak -index 51cbbfbcd..542f2228c 100644 ---- a/contrib/src/main.mak -+++ b/contrib/src/main.mak -@@ -391,7 +391,8 @@ PKGS_AUTOMATIC := $(filter-out $(PKGS_FOUND),$(PKGS)) - # Apply manual selection (from bootstrap): - PKGS_MANUAL := $(sort $(PKGS_ENABLE) $(filter-out $(PKGS_DISABLE),$(PKGS_AUTOMATIC))) - # Resolve dependencies: --PKGS_DEPS := $(filter-out $(PKGS_FOUND) $(PKGS_MANUAL),$(sort $(foreach p,$(PKGS_MANUAL),$(DEPS_$(p))))) -+dep_on = $(sort $(foreach p,$(filter-out $(PKGS_FOUND),$(1)),$(p) $(call dep_on,$(DEPS_$(p))))) -+PKGS_DEPS := $(call dep_on,$(PKGS_MANUAL)) - PKGS := $(sort $(PKGS_MANUAL) $(PKGS_DEPS)) - - convert-static: -diff --git a/contrib/src/nettle/rules.mak b/contrib/src/nettle/rules.mak -index f811297a6..b924c7f87 100644 ---- a/contrib/src/nettle/rules.mak -+++ b/contrib/src/nettle/rules.mak -@@ -19,7 +19,7 @@ nettle: nettle-$(NETTLE_VERSION).tar.gz .sum-nettle - $(UPDATE_AUTOCONFIG) - $(MOVE) - --DEPS_nettle = gmp $(DEPS_gmp) -+DEPS_nettle = gmp - - .nettle: nettle - ifdef HAVE_IOS -diff --git a/contrib/src/opendht/rules.mak b/contrib/src/opendht/rules.mak -index 4443a6fc0..b7fbe8ec8 100644 ---- a/contrib/src/opendht/rules.mak -+++ b/contrib/src/opendht/rules.mak -@@ -15,7 +15,7 @@ ifneq ($(call need_pkg,"libargon2"),) - DEPS_opendht += argon2 - endif - ifneq ($(call need_pkg,"gnutls >= 3.3.0"),) --DEPS_opendht += gnutls $(DEPS_gnutls) -+DEPS_opendht += gnutls - endif - - $(TARBALLS)/opendht-$(OPENDHT_VERSION).tar.gz: -diff --git a/contrib/src/secp256k1/rules.mak b/contrib/src/secp256k1/rules.mak -index c5681629d..5b4f84e43 100644 ---- a/contrib/src/secp256k1/rules.mak -+++ b/contrib/src/secp256k1/rules.mak -@@ -7,7 +7,7 @@ PKGS += secp256k1 - ifeq ($(call need_pkg,"libsecp256k1"),) - PKGS_FOUND += secp256k1 - endif --DEPS_secp256k1 = gmp $(DEPS_gmp) -+DEPS_secp256k1 = gmp - - $(TARBALLS)/secp256k1-$(SECP256K1_VERSION).tar.gz: - $(call download,$(SECP256K1_URL)) -diff --git a/contrib/src/vorbis/rules.mak b/contrib/src/vorbis/rules.mak -index 1fb268514..e20cc7493 100644 ---- a/contrib/src/vorbis/rules.mak -+++ b/contrib/src/vorbis/rules.mak -@@ -36,7 +36,7 @@ endif - $(UPDATE_AUTOCONFIG) - $(MOVE) - --DEPS_vorbis = ogg $(DEPS_ogg) -+DEPS_vorbis = ogg - - .vorbis: vorbis - $(RECONF) -Im4 -@@ -47,7 +47,7 @@ DEPS_vorbis = ogg $(DEPS_ogg) - .sum-vorbisenc: .sum-vorbis - touch $@ - --DEPS_vorbisenc = vorbis $(DEPS_vorbis) -+DEPS_vorbisenc = vorbis - - .vorbisenc: - touch $@ --- -2.15.1 - diff --git a/pcr/ring/PKGBUILD b/pcr/ring/PKGBUILD deleted file mode 100644 index 43422a337..000000000 --- a/pcr/ring/PKGBUILD +++ /dev/null @@ -1,223 +0,0 @@ -# Maintainer: Luke Shumaker <lukeshu@parabola.nu> -# Contributor: Omar Vega Ramos <ovruni@gnu.org.pe> -# Contributor: Isaac David <isacdaavid@at@isacdaavid@dot@info> - -_pkgver=20171129.2.cf5bbff -_SOURCE_DATE_EPOCH=1511972974 -# The above are thing things that you must set each new version. -# -# 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 -# -# But I automated that for you! -# ./upd-helper set-pkgver YYYYMMDD.N.GITVER -# -# 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=1 -arch=("i686" "x86_64") -url="https://gnu.org/software/ring/" -source=("http://dl.ring.cx/ring-release/tarballs/${pkgbase}_${_pkgver}.tar.gz" - 0001-contrib-recursive-dependency-tracking.patch) -license=('GPL3') -sha256sums=('0a23f8052a4df2a7aee40434cd59f17d0d5e97c73306ba35f99f2721b305ed48' - 'a9b308e524ea5b0b5db09fd55e6c0d96edbea6594f987e10e7b77251217f8e0c') - - -# 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=( - #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 -) - -_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 - gnome-icon-theme-symbolic - libnm-glib - qrencode -) - -makedepends=( - cmake - doxygen - "${_makedepends_daemon[@]}" - "${_depends_daemon[@]}" - "${_makedepends_lrc[@]}" - "${_depends_lrc[@]}" - "${_makedepends_client_gnome[@]}" - "${_depends_client_gnome[@]}" -) - -# The above list of dependencies can be unwieldy! Running -# `./upd-helper find-dups` will suggest things that can be removed. - -# 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() { - 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() ( - set -x - - cd "$srcdir/ring-project/daemon/contrib" - mkdir native - cd native - ../bootstrap \ - --disable-downloads \ - --disable-dbus-cpp \ - --disable-gsm \ - --disable-natpmp \ - --enable-pjproject \ - --disable-restbed - 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 ${pkgdesc,}" - depends=("${_depends_daemon[@]}") - provides=("ring-daemon=2:$_pkgver") # AUR version scheme - - cd "$srcdir/ring-project/daemon" - make DESTDIR="$pkgdir" install -} - -package_ring-lrc() { - pkgdesc="A client library for ${pkgdesc,}" - depends=("${_depends_lrc[@]}" "ring-daemon=${epoch:+$epoch:}$pkgver") - provides=("libringclient=2:$_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 ${pkgdesc,}" - depends=("${_depends_client_gnome[@]}" "ring-lrc=${epoch:+$epoch:}$pkgver") - provides=("ring-gnome=3:$_pkgver") # AUR name - replaces=("ring-gnome") # AUR name - - cd "$srcdir/ring-project/client-gnome/build" - make DESTDIR="$pkgdir" install -} diff --git a/pcr/ring/prune-pkgnames b/pcr/ring/prune-pkgnames deleted file mode 100755 index 3d76b1fce..000000000 --- a/pcr/ring/prune-pkgnames +++ /dev/null @@ -1,106 +0,0 @@ -#!/usr/bin/env python3 -# Copyright 2017 Luke Shumaker <lukeshu@parabola.nu> -# -# This is a little program that is useful for helping prune lists of -# dependencies. I should clean it up, document it, and add it to -# libretools. - -import pyalpm -import pycman.config - -def get_by_depspec(depspec): - global dbs - global pkgs - - dep = pyalpm.find_satisfier(pkgs.values(), depspec) - if dep is not None: - return dep - for db in dbs: - dep = pyalpm.find_satisfier(db.search('.*'), depspec) - if dep is not None: - return dep - return None - -def handlepkg(pkg): - global pkgs - global deps - global ignore - - if pkg.name in pkgs: - return - pkgs[pkg.name] = pkg - deps[pkg.name] = set([get_by_depspec(depspec) for depspec in pkg.depends]) - for dep in deps[pkg.name]: - ignore.add(dep.name) - handlepkg(dep) - -class DepTree(object): - def __init__(self, pkgname, reasons=[]): - self.pkgname = pkgname - thresh = 0 - if len(reasons) > 0: - thresh = min([reason.height for reason in reasons]) - self.reasons = [reason for reason in reasons if reason.height <= thresh] - self.height = 1+thresh - def __str__(self): - if len(self.reasons) == 0: - return self.pkgname - if len(self.reasons) == 1: - return self.pkgname+"<-"+str(self.reasons[0]) - else: - return self.pkgname+"<-{"+(",".join([str(reason) for reason in self.reasons]))+"}" - -# keeping track of 'visited' is important because of cycles -def getreasons(reasons, dupname, visited=[]): - global deps - global pkgs - - if dupname in reasons: - return DepTree(dupname) - - required_by = [pkgname for pkgname, deplist in deps.items() if (dupname in [dep.name for dep in deplist])] - in_groups = pkgs[dupname].groups - - myreasons_pkgs = [getreasons(reasons, myreason, visited+[dupname]) for myreason in set(required_by)-set(visited)] - myreasons_grps = [DepTree(g) for g in reasons.intersection(set(pkgs[dupname].groups))] - return DepTree(dupname, myreasons_pkgs + myreasons_grps) - -def main(args): - pycman_options = pycman.config.make_parser().parse_args([]) - handle = pycman.config.init_with_config_and_options(pycman_options) - - showdups = False - pkgnames = set() - grpnames = set() - - global dbs, pkgs, deps, ignore - dbs = handle.get_syncdbs() - pkgs = {} - deps = {} - ignore = set() - - for arg in args: - if arg == "-d": - showdups = True - continue - pkg = get_by_depspec(arg) - if pkg is not None: - pkgnames.add(pkg.name) - handlepkg(pkg) - else: - grpnames.add(arg) - for pkg in pyalpm.find_grp_pkgs(dbs, arg): - ignore.add(pkg.name) - handlepkg(pkg) - if not showdups: - print("\n".join(pkgnames-ignore)) - else: - reasons = pkgnames.union(grpnames) - for dupname in sorted(pkgnames.intersection(ignore)): - print(getreasons(reasons-{dupname}, dupname)) - return 0 - -if __name__ == "__main__": - import sys - ret = main(sys.argv[1:]) - sys.exit(ret) diff --git a/pcr/ring/upd-helper b/pcr/ring/upd-helper deleted file mode 100755 index c48bdf7c5..000000000 --- a/pcr/ring/upd-helper +++ /dev/null @@ -1,109 +0,0 @@ -#!/usr/bin/env bash -#!/usr/bin/env python3 -# Copyright 2017 Luke Shumaker <lukeshu@parabola.nu> -# -# This is a little program to automate some tedious bits of -# maintaining the GNU Ring package. - -set -euE -. "$(librelib messages)" -startdir="$(dirname -- "$(readlink -f -- "$0")")" - -prune-pkgnames() { - xargs "$startdir"/prune-pkgnames "$@" -} - -diff-filter() { - awk ' -BEGIN{p=0} -/^diff/{p=0} -/^diff.*make-ring\.py/{p=1} -/^diff.*scripts\/install\.sh/{p=1} -/^diff.*daemon\/contrib\/.*\/rules\.mak/{p=1} -{if (p) print} -' -} - -notable-diff() { - if [[ $# != 2 ]]; then - >&2 echo "Usage $0 notable-diff OLD-SRCDIR NEW-SRCDIR" - fi - - diff_flags=( - -ruN - --no-dereference - --exclude='*.bz2' - --exclude='*.xz' - --exclude='*.gz' - --exclude='*.png' - ) - - diff "${diff_flags[@]}" "$1"/ring-project "$2"/ring-project | diff-filter -} - -set-pkgver() { - if [[ $# != 1 ]]; then - >&2 echo "Usage $0 set-pkgver NEW-VALUE-FOR-_pkgver" - fi - - rm -rf src - - # get the old sources, for diffing later - makepkg -o - . PKGBUILD - oldpkgver=$_pkgver - mv src src-$oldpkgver - - # update _pkgver - sed -i "s/^_pkgver=.*/_pkgver=$1/" PKGBUILD - # update *sums - updpkgsums - - # update _SOURCE_DATE_EPOCH - gitget bare https://gerrit-ring.savoirfairelinux.com/ring-project ring-project.git - date=$(cd ring-project.git && git log -n1 --format=%ct "${1##*.}") - sed -i "s/^_SOURCE_DATE_EPOCH=.*/_SOURCE_DATE_EPOCH=$date/" PKGBUILD - - # get the new sources - makepkg -o - - # diff the old and new sources - notable-diff src-$oldpkgver src > notable-changes-${oldpkgver}--$1.patch - msg 'As the packager, you should be aware of changes in:' - diffstat -C < notable-changes-${oldpkgver}--$1.patch -} - -ignored-depends() { - pacman -Sgq base-devel - COLUMNS= LC_ALL=C pacman -Qi ffmpeg <&-|sed -n 's/^Depends On\s*://p'|xargs printf '%s\n'|sed -e 's/=.*//' -e 's/\.so$//' -} - -diff-depends() { - if [[ $# != 0 ]]; then - >&2 echo "Usage $0 diff-depends" - fi - makepkg -o # for make-ring.py - . PKGBUILD - cd src/ring-project - comm \ - <(printf '%s\n' "${makedepends[@]}" "${_depends_daemon[@]}" "${_depends_lrc[@]}" "${_depends_client_gnome[@]}" | prune-pkgnames base base-devel | sort) \ - <(python3 -c 'print("\n".join(__import__("make-ring").ARCH_LINUX_DEPENDENCIES))' | prune-pkgnames base base-devel | sort) \ - | tr $'\t' , | column -s, -t -o ' | ' -N 'only PKGBUILD,only make-ring.py,both' -} - -find-dups() { - . PKGBUILD - msg 'Duplicated build-time depends:' - printf '%s\n' "${makedepends[@]}" | prune-pkgnames -d base-devel - msg 'Duplicated run-time depends:' - printf '%s\n' "${_depends_daemon[@]}" "${_depends_lrc[@]}" "${_depends_client_gnome[@]}" | prune-pkgnames -d base -} - -{ - cmds=(set-pkgver notable-diff diff-depends find-dups) - if ! in_array "${1:-}" "${cmds[@]}"; then - >&2 print 'Commands are: %s' "${cmds[*]}" - exit 1 - fi - "$@" -} |