commit:     851cb3b5ceb043715584d238e84b9fd69f7356c3
Author:     Jannis Achstetter <kripton <AT> kripserver <DOT> net>
AuthorDate: Sun Sep 13 14:42:05 2020 +0000
Commit:     Richard Freeman <rich0 <AT> gentoo <DOT> org>
CommitDate: Fri Oct 23 19:52:50 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=851cb3b5

media-radio/direwolf: Bump to v1.5

Closes: https://bugs.gentoo.org/681666
Closes: https://bugs.gentoo.org/705100
Closes: https://bugs.gentoo.org/724720
Closes: https://bugs.gentoo.org/727636
Package-Manager: Portage-3.0.6, Repoman-3.0.1
Signed-off-by: Jannis Achstetter <kripton <AT> kripserver.net>
Closes: https://github.com/gentoo/gentoo/pull/17530
Signed-off-by: Richard Freeman <rich0 <AT> gentoo.org>

 media-radio/direwolf/Manifest                      |   1 +
 media-radio/direwolf/direwolf-1.5.ebuild           |  59 +++++
 media-radio/direwolf/files/1.5-makefile.patch      | 295 +++++++++++++++++++++
 .../direwolf/files/direwolf-gpsd-API-9.patch       | 213 +++++++++++++++
 media-radio/direwolf/metadata.xml                  |  12 +-
 5 files changed, 577 insertions(+), 3 deletions(-)

diff --git a/media-radio/direwolf/Manifest b/media-radio/direwolf/Manifest
index 53191833547..04bed6f619c 100644
--- a/media-radio/direwolf/Manifest
+++ b/media-radio/direwolf/Manifest
@@ -1 +1,2 @@
 DIST direwolf-1.4.tar.gz 17554878 BLAKE2B 
a8eea6777df93d66d67c993c23eba86f37ff1e23d95df842b17be1a9a0b83c4bb0b7b14b97f43a1756512d060e50136712d1d9d499b2567eabbe1092a2f5edf0
 SHA512 
597b0652e910642d5a3c538297e4306f9317c29b3629e7fd96cc33b92b2f09d743cea8b8a0cc6451347dc0877fcf1f3933a420ae58e33ad7be7d899f80036eb3
+DIST direwolf-1.5.tar.gz 17996557 BLAKE2B 
6860075b764248f1e0ff06e2a533e2e31f65851ea45d74fb0aca11827940c6df0a8bab4b6b78aa98847ee54b2b344d3c5fc8da6947f9113d2fac6d3ea427d68b
 SHA512 
c23e2ccebd47235f76a9583e14cf8e8df299b8f7456a6388534536e7b1114b3d9b9efee43da2c1708e01a0b9534db0ed93314368e20e9002bfcd5b3a2855d8a5

diff --git a/media-radio/direwolf/direwolf-1.5.ebuild 
b/media-radio/direwolf/direwolf-1.5.ebuild
new file mode 100644
index 00000000000..deaf27c9ab1
--- /dev/null
+++ b/media-radio/direwolf/direwolf-1.5.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit eutils systemd
+
+DESCRIPTION="Decoded Information from Radio Emissions for Windows Or Linux 
Fans"
+HOMEPAGE="https://github.com/wb2osz/direwolf/blob/master/README.md";
+SRC_URI="https://github.com/wb2osz/direwolf/archive/${PV}.tar.gz -> 
${P}.tar.gz"
+
+LICENSE="GPL-2 BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="gps hamlib udev"
+
+RDEPEND="
+       media-libs/alsa-lib:=
+       gps? ( sci-geosciences/gpsd )
+       hamlib? ( media-libs/hamlib )
+       udev? ( virtual/libudev )
+"
+BDEPEND="hamlib? ( virtual/pkgconfig )"
+DEPEND="${RDEPEND}"
+
+DOCS=( CHANGES.md README.md doc/2400-4800-PSK-for-APRS-Packet-Radio.pdf 
doc/A-Better-APRS-Packet-Demodulator-Part-1-1200-baud.pdf 
doc/A-Better-APRS-Packet-Demodulator-Part-2-9600-baud.pdf 
doc/A-Closer-Look-at-the-WA8LMF-TNC-Test-CD.pdf doc/APRS-Telemetry-Toolkit.pdf 
doc/APRStt-Implementation-Notes.pdf doc/APRStt-interface-for-SARTrack.pdf 
doc/APRStt-Listening-Example.pdf doc/Going-beyond-9600-baud.pdf 
doc/Raspberry-Pi-APRS.pdf doc/Raspberry-Pi-APRS-Tracker.pdf 
doc/Raspberry-Pi-SDR-IGate.pdf doc/README.md 
doc/Successful-APRS-IGate-Operation.pdf doc/User-Guide.pdf 
doc/WA8LMF-TNC-Test-CD-Results.pdf direwolf.conf dw-start.sh sdr.conf 
telemetry-toolkit/telem-m0xer-3.txt telemetry-toolkit/telem-balloon.conf 
telemetry-toolkit/telem-volts.conf )
+
+INSTALLDIR="${D}"
+
+src_prepare() {
+       eapply "${FILESDIR}/${PV}-makefile.patch"
+       eapply "${FILESDIR}/direwolf-gpsd-API-9.patch"
+
+       eapply_user
+
+       if use gps ; then
+               sed -i -e 's/#enable_gpsd/enable_gpsd/' Makefile.linux || die 
"Sed failed!"
+       fi
+
+       if use hamlib; then
+               sed -i -e 's/#enable_hamlib/enable_hamlib/' Makefile.linux || 
die "Sed failed!"
+       fi
+
+       if use udev ; then
+               sed -i -e 's/#enable_cm108/enable_cm108/' Makefile.linux || die 
"Sed failed!"
+       fi
+}
+
+src_install() {
+       dodir /usr
+       dodir /usr/bin
+       keepdir /var/log/direwolf
+       emake DESTDIR="${D}" install
+       insinto /etc/direwolf/
+       doins direwolf.conf
+       einstalldocs
+       systemd_dounit "${FILESDIR}"/direwolf.service
+       systemd_dounit "${FILESDIR}"/direwolf-kiss.service
+}

diff --git a/media-radio/direwolf/files/1.5-makefile.patch 
b/media-radio/direwolf/files/1.5-makefile.patch
new file mode 100644
index 00000000000..860d57811aa
--- /dev/null
+++ b/media-radio/direwolf/files/1.5-makefile.patch
@@ -0,0 +1,295 @@
+--- direwolf-1.5/Makefile.linux.orig   2020-09-13 16:24:04.878630130 +0200
++++ direwolf-1.5/Makefile.linux        2020-09-13 16:30:13.744462027 +0200
+@@ -13,7 +13,7 @@
+       @echo "        sudo make install"
+       @echo " "
+ 
+-CC := gcc
++#CC := gcc
+ 
+ # Just for fun, let's see how clang compares to gcc.  First install like this:
+ #     sudo apt-get update
+@@ -32,7 +32,7 @@
+ # we will inherit options already set in build environment.
+ # Explanation - https://github.com/wb2osz/direwolf/pull/38
+ 
+-CFLAGS += -O3 -pthread -Igeotranz -D_XOPEN_SOURCE=600 -D_DEFAULT_SOURCE=1 
-Wall
++CFLAGS += -pthread -Igeotranz -D_XOPEN_SOURCE=600 -D_DEFAULT_SOURCE=1
+ 
+ # That was fine for a recent Ubuntu and Raspbian Jessie.
+ # However, Raspbian wheezy was then missing declaration for strsep and 
definition of fd_set.
+@@ -97,7 +97,7 @@
+ 
+ arch := $(shell echo | gcc -E -dM - | grep __i386__)
+ ifneq ($(arch),)
+-CFLAGS += -march=pentium3
++#CFLAGS += -march=pentium3
+ endif
+ 
+ 
+@@ -154,7 +154,7 @@
+ 
+ useffast := $(shell gcc --help -v 2>/dev/null | grep ffast-math)
+ ifneq ($(useffast),)
+-CFLAGS += -ffast-math
++#CFLAGS += -ffast-math
+ endif
+ 
+ 
+@@ -217,7 +217,7 @@
+ 
+ neon := $(shell cat /proc/cpuinfo | grep neon)
+ ifneq ($(neon),)
+-CFLAGS += -mfpu=neon
++#CFLAGS += -mfpu=neon
+ endif
+ 
+ 
+@@ -276,7 +276,7 @@
+ # Finding libgps.so* is more difficult because it
+ # is in different places on different operating systems.
+ 
+-enable_gpsd := $(wildcard /usr/include/gps.h)
++#enable_gpsd := 1
+ ifneq ($(enable_gpsd),)
+ CFLAGS += -DENABLE_GPSD
+ LDFLAGS += -lgps
+@@ -285,10 +285,10 @@
+ 
+ # Enable hamlib support if header file is present.
+ 
+-enable_hamlib := $(wildcard /usr/include/hamlib/rig.h 
/usr/local/include/hamlib/rig.h)
++#enable_hamlib := 1
+ ifneq ($(enable_hamlib),)
+ CFLAGS += -DUSE_HAMLIB
+-LDFLAGS += -lhamlib
++LDFLAGS += $(shell pkg-config --libs hamlib)
+ endif
+ 
+ 
+@@ -304,7 +304,7 @@
+ 
+ # Enable cm108 PTT support if libudev header file is present.
+ 
+-enable_cm108 := $(wildcard /usr/include/libudev.h)
++#enable_cm108 := 1
+ ifneq ($(enable_cm108),)
+ CFLAGS += -DUSE_CM108
+ LDFLAGS += -ludev
+@@ -536,6 +536,7 @@
+ # If not specified on the make command line, this is our default.
+ 
+ DESTDIR ?= /usr/local
++INSTALLDIR ?= $(DESTDIR)/usr/
+ 
+ # However, if you are preparing a "binary" DEB or RPM package, the 
installation location
+ # would normally be  /usr/...  instead.   In this case, use a command line 
like this:
+@@ -560,15 +561,15 @@
+       @echo '[Desktop Entry]' > $@
+       @echo 'Type=Application' >> $@
+ ifneq ($(wildcard /usr/bin/lxterminal),)
+-      @echo "Exec=lxterminal -t \"Dire Wolf\" -e \"$(DESTDIR)/bin/direwolf\"" 
>> $@
++      @echo "Exec=lxterminal -t \"Dire Wolf\" -e 
\"$(INSTALLDIR)/bin/direwolf\"" >> $@
+ else ifneq ($(wildcard /usr/bin/lxterm),)
+-      @echo "Exec=lxterm -hold -title \"Dire Wolf\" -bg white -e 
\"$(DESTDIR)/bin/direwolf\"" >> $@
++      @echo "Exec=lxterm -hold -title \"Dire Wolf\" -bg white -e 
\"$(INSTALLDIR)/bin/direwolf\"" >> $@
+ else
+-      @echo "Exec=xterm -hold -title \"Dire Wolf\" -bg white -e 
\"$(DESTDIR)/bin/direwolf\"" >> $@
++      @echo "Exec=xterm -hold -title \"Dire Wolf\" -bg white -e 
\"$(INSTALLDIR)/bin/direwolf\"" >> $@
+ endif
+       @echo 'Name=Dire Wolf' >> $@
+       @echo 'Comment=APRS Soundcard TNC' >> $@
+-      @echo 'Icon=$(DESTDIR)/share/direwolf/pixmaps/dw-icon.png' >> $@
++      @echo 'Icon=$(INSTALLDIR)/share/direwolf/pixmaps/dw-icon.png' >> $@
+       @echo "Path=$(HOME)" >> $@
+       @echo '#Terminal=true' >> $@
+       @echo 'Categories=HamRadio' >> $@
+@@ -585,102 +586,104 @@
+ # Applications, not installed with package manager, normally go in 
/usr/local/bin.
+ # /usr/bin is used instead when installing from .DEB or .RPM package.
+ #
+-      $(INSTALL) -D --mode=755 direwolf $(DESTDIR)/bin/direwolf
+-      $(INSTALL) -D --mode=755 decode_aprs $(DESTDIR)/bin/decode_aprs
+-      $(INSTALL) -D --mode=755 text2tt $(DESTDIR)/bin/text2tt
+-      $(INSTALL) -D --mode=755 tt2text $(DESTDIR)/bin/tt2text
+-      $(INSTALL) -D --mode=755 ll2utm $(DESTDIR)/bin/ll2utm
+-      $(INSTALL) -D --mode=755 utm2ll $(DESTDIR)/bin/utm2ll
+-      $(INSTALL) -D --mode=755 aclients $(DESTDIR)/bin/aclients
+-      $(INSTALL) -D --mode=755 log2gpx $(DESTDIR)/bin/log2gpx
+-      $(INSTALL) -D --mode=755 gen_packets $(DESTDIR)/bin/gen_packets
+-      $(INSTALL) -D --mode=755 atest $(DESTDIR)/bin/atest
+-      $(INSTALL) -D --mode=755 ttcalc $(DESTDIR)/bin/ttcalc
+-      $(INSTALL) -D --mode=755 kissutil $(DESTDIR)/bin/kissutil
+-      $(INSTALL) -D --mode=755 cm108 $(DESTDIR)/bin/cm108
+-      $(INSTALL) -D --mode=755 dwespeak.sh $(DESTDIR)/bin/dwspeak.sh
++      $(INSTALL) -D --mode=755 direwolf $(INSTALLDIR)/bin/direwolf
++      $(INSTALL) -D --mode=755 decode_aprs $(INSTALLDIR)/bin/decode_aprs
++      $(INSTALL) -D --mode=755 text2tt $(INSTALLDIR)/bin/text2tt
++      $(INSTALL) -D --mode=755 tt2text $(INSTALLDIR)/bin/tt2text
++      $(INSTALL) -D --mode=755 ll2utm $(INSTALLDIR)/bin/ll2utm
++      $(INSTALL) -D --mode=755 utm2ll $(INSTALLDIR)/bin/utm2ll
++      $(INSTALL) -D --mode=755 aclients $(INSTALLDIR)/bin/aclients
++      $(INSTALL) -D --mode=755 log2gpx $(INSTALLDIR)/bin/log2gpx
++      $(INSTALL) -D --mode=755 gen_packets $(INSTALLDIR)/bin/gen_packets
++      $(INSTALL) -D --mode=755 atest $(INSTALLDIR)/bin/atest
++      $(INSTALL) -D --mode=755 ttcalc $(INSTALLDIR)/bin/ttcalc
++      $(INSTALL) -D --mode=755 kissutil $(INSTALLDIR)/bin/kissutil
++      $(INSTALL) -D --mode=755 cm108 $(INSTALLDIR)/bin/cm108
++      $(INSTALL) -D --mode=755 dwespeak.sh $(INSTALLDIR)/bin/dwspeak.sh
+ #
+ # Telemetry Toolkit executables.   Other .conf and .txt files will go into 
doc directory.
+ #
+-      $(INSTALL) -D --mode=755 telemetry-toolkit/telem-balloon.pl 
$(DESTDIR)/bin/telem-balloon.pl
+-      $(INSTALL) -D --mode=755 telemetry-toolkit/telem-bits.pl 
$(DESTDIR)/bin/telem-bits.pl
+-      $(INSTALL) -D --mode=755 telemetry-toolkit/telem-data.pl 
$(DESTDIR)/bin/telem-data.pl
+-      $(INSTALL) -D --mode=755 telemetry-toolkit/telem-data91.pl 
$(DESTDIR)/bin/telem-data91.pl
+-      $(INSTALL) -D --mode=755 telemetry-toolkit/telem-eqns.pl 
$(DESTDIR)/bin/telem-eqns.pl
+-      $(INSTALL) -D --mode=755 telemetry-toolkit/telem-parm.pl 
$(DESTDIR)/bin/telem-parm.pl
+-      $(INSTALL) -D --mode=755 telemetry-toolkit/telem-seq.sh 
$(DESTDIR)/bin/telem-seq.sh
+-      $(INSTALL) -D --mode=755 telemetry-toolkit/telem-unit.pl 
$(DESTDIR)/bin/telem-unit.pl
+-      $(INSTALL) -D --mode=755 telemetry-toolkit/telem-volts.py 
$(DESTDIR)/bin/telem-volts.py
++      $(INSTALL) -D --mode=755 telemetry-toolkit/telem-balloon.pl 
$(INSTALLDIR)/bin/telem-balloon.pl
++      $(INSTALL) -D --mode=755 telemetry-toolkit/telem-bits.pl 
$(INSTALLDIR)/bin/telem-bits.pl
++      $(INSTALL) -D --mode=755 telemetry-toolkit/telem-data.pl 
$(INSTALLDIR)/bin/telem-data.pl
++      $(INSTALL) -D --mode=755 telemetry-toolkit/telem-data91.pl 
$(INSTALLDIR)/bin/telem-data91.pl
++      $(INSTALL) -D --mode=755 telemetry-toolkit/telem-eqns.pl 
$(INSTALLDIR)/bin/telem-eqns.pl
++      $(INSTALL) -D --mode=755 telemetry-toolkit/telem-parm.pl 
$(INSTALLDIR)/bin/telem-parm.pl
++      $(INSTALL) -D --mode=755 telemetry-toolkit/telem-seq.sh 
$(INSTALLDIR)/bin/telem-seq.sh
++      $(INSTALL) -D --mode=755 telemetry-toolkit/telem-unit.pl 
$(INSTALLDIR)/bin/telem-unit.pl
++      $(INSTALL) -D --mode=755 telemetry-toolkit/telem-volts.py 
$(INSTALLDIR)/bin/telem-volts.py
+ #
+ # Misc. data such as "tocall" to system mapping.
+ #
+-      $(INSTALL) -D --mode=644 tocalls.txt 
$(DESTDIR)/share/direwolf/tocalls.txt
+-      $(INSTALL) -D --mode=644 symbols-new.txt 
$(DESTDIR)/share/direwolf/symbols-new.txt
+-      $(INSTALL) -D --mode=644 symbolsX.txt 
$(DESTDIR)/share/direwolf/symbolsX.txt
++      $(INSTALL) -D --mode=644 tocalls.txt 
$(INSTALLDIR)/share/direwolf/tocalls.txt
++      $(INSTALL) -D --mode=644 symbols-new.txt 
$(INSTALLDIR)/share/direwolf/symbols-new.txt
++      $(INSTALL) -D --mode=644 symbolsX.txt 
$(INSTALLDIR)/share/direwolf/symbolsX.txt
+ #
+ # For desktop icon.
+ #
+-      $(INSTALL) -D --mode=644 dw-icon.png 
$(DESTDIR)/share/direwolf/pixmaps/dw-icon.png
+-      $(INSTALL) -D --mode=644 direwolf.desktop 
$(DESTDIR)/share/applications/direwolf.desktop
++      $(INSTALL) -D --mode=644 dw-icon.png 
$(INSTALLDIR)/share/direwolf/pixmaps/dw-icon.png
++      $(INSTALL) -D --mode=644 direwolf.desktop 
$(INSTALLDIR)/share/applications/direwolf.desktop
+ #
+ # Documentation.  Various plain text files and PDF.
+ #
+-      $(INSTALL) -D --mode=644 CHANGES.md 
$(DESTDIR)/share/doc/direwolf/CHANGES.md
+-      $(INSTALL) -D --mode=644 LICENSE-dire-wolf.txt 
$(DESTDIR)/share/doc/direwolf/LICENSE-dire-wolf.txt
+-      $(INSTALL) -D --mode=644 LICENSE-other.txt 
$(DESTDIR)/share/doc/direwolf/LICENSE-other.txt
++      $(INSTALL) -D --mode=644 CHANGES.md 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/CHANGES.md
++      $(INSTALL) -D --mode=644 LICENSE-dire-wolf.txt 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/LICENSE-dire-wolf.txt
++      $(INSTALL) -D --mode=644 LICENSE-other.txt 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/LICENSE-other.txt
+ #
+ # ./README.md is an overview for the project main page.
+ # Maybe we could stick it in some other place.
+ # doc/README.md contains an overview of the PDF file contents and is more 
useful here.
+ #
+-      $(INSTALL) -D --mode=644 doc/README.md 
$(DESTDIR)/share/doc/direwolf/README.md
+-      $(INSTALL) -D --mode=644 doc/2400-4800-PSK-for-APRS-Packet-Radio.pdf 
$(DESTDIR)/share/doc/direwolf/2400-4800-PSK-for-APRS-Packet-Radio.pdf
+-      $(INSTALL) -D --mode=644 
doc/A-Better-APRS-Packet-Demodulator-Part-1-1200-baud.pdf 
$(DESTDIR)/share/doc/direwolf/A-Better-APRS-Packet-Demodulator-Part-1-1200-baud.pdf
+-      $(INSTALL) -D --mode=644 
doc/A-Better-APRS-Packet-Demodulator-Part-2-9600-baud.pdf 
$(DESTDIR)/share/doc/direwolf/A-Better-APRS-Packet-Demodulator-Part-2-9600-baud.pdf
+-      $(INSTALL) -D --mode=644 
doc/A-Closer-Look-at-the-WA8LMF-TNC-Test-CD.pdf 
$(DESTDIR)/share/doc/direwolf/A-Closer-Look-at-the-WA8LMF-TNC-Test-CD.pdf
+-      $(INSTALL) -D --mode=644 doc/APRS-Telemetry-Toolkit.pdf 
$(DESTDIR)/share/doc/direwolf/APRS-Telemetry-Toolkit.pdf
+-      $(INSTALL) -D --mode=644 doc/APRStt-Implementation-Notes.pdf 
$(DESTDIR)/share/doc/direwolf/APRStt-Implementation-Notes.pdf
+-      $(INSTALL) -D --mode=644 doc/APRStt-interface-for-SARTrack.pdf 
$(DESTDIR)/share/doc/direwolf/APRStt-interface-for-SARTrack.pdf
+-      $(INSTALL) -D --mode=644 doc/APRStt-Listening-Example.pdf 
$(DESTDIR)/share/doc/direwolf/APRStt-Listening-Example.pdf
+-      $(INSTALL) -D --mode=644 doc/Bluetooth-KISS-TNC.pdf 
$(DESTDIR)/share/doc/direwolf/Bluetooth-KISS-TNC.pdf
+-      $(INSTALL) -D --mode=644 doc/Going-beyond-9600-baud.pdf 
$(DESTDIR)/share/doc/direwolf/Going-beyond-9600-baud.pdf
+-      $(INSTALL) -D --mode=644 doc/Raspberry-Pi-APRS.pdf 
$(DESTDIR)/share/doc/direwolf/Raspberry-Pi-APRS.pdf
+-      $(INSTALL) -D --mode=644 doc/Raspberry-Pi-APRS-Tracker.pdf 
$(DESTDIR)/share/doc/direwolf/Raspberry-Pi-APRS-Tracker.pdf
+-      $(INSTALL) -D --mode=644 doc/Raspberry-Pi-SDR-IGate.pdf 
$(DESTDIR)/share/doc/direwolf/Raspberry-Pi-SDR-IGate.pdf
+-      $(INSTALL) -D --mode=644 doc/Successful-APRS-IGate-Operation.pdf 
$(DESTDIR)/share/doc/direwolf/Successful-APRS-IGate-Operation.pdf
+-      $(INSTALL) -D --mode=644 doc/User-Guide.pdf 
$(DESTDIR)/share/doc/direwolf/User-Guide.pdf
+-      $(INSTALL) -D --mode=644 doc/WA8LMF-TNC-Test-CD-Results.pdf 
$(DESTDIR)/share/doc/direwolf/WA8LMF-TNC-Test-CD-Results.pdf
++      $(INSTALL) -D --mode=644 doc/README.md 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/README.md
++      $(INSTALL) -D --mode=644 doc/2400-4800-PSK-for-APRS-Packet-Radio.pdf 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/2400-4800-PSK-for-APRS-Packet-Radio.pdf
++      $(INSTALL) -D --mode=644 
doc/A-Better-APRS-Packet-Demodulator-Part-1-1200-baud.pdf 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/A-Better-APRS-Packet-Demodulator-Part-1-1200-baud.pdf
++      $(INSTALL) -D --mode=644 
doc/A-Better-APRS-Packet-Demodulator-Part-2-9600-baud.pdf 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/A-Better-APRS-Packet-Demodulator-Part-2-9600-baud.pdf
++      $(INSTALL) -D --mode=644 
doc/A-Closer-Look-at-the-WA8LMF-TNC-Test-CD.pdf 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/A-Closer-Look-at-the-WA8LMF-TNC-Test-CD.pdf
++      $(INSTALL) -D --mode=644 doc/APRS-Telemetry-Toolkit.pdf 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/APRS-Telemetry-Toolkit.pdf
++      $(INSTALL) -D --mode=644 doc/APRStt-Implementation-Notes.pdf 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/APRStt-Implementation-Notes.pdf
++      $(INSTALL) -D --mode=644 doc/APRStt-interface-for-SARTrack.pdf 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/APRStt-interface-for-SARTrack.pdf
++      $(INSTALL) -D --mode=644 doc/APRStt-Listening-Example.pdf 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/APRStt-Listening-Example.pdf
++      $(INSTALL) -D --mode=644 doc/Bluetooth-KISS-TNC.pdf 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/Bluetooth-KISS-TNC.pdf
++      $(INSTALL) -D --mode=644 doc/Going-beyond-9600-baud.pdf 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/Going-beyond-9600-baud.pdf
++      $(INSTALL) -D --mode=644 doc/Raspberry-Pi-APRS.pdf 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/Raspberry-Pi-APRS.pdf
++      $(INSTALL) -D --mode=644 doc/Raspberry-Pi-APRS-Tracker.pdf 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/Raspberry-Pi-APRS-Tracker.pdf
++      $(INSTALL) -D --mode=644 doc/Raspberry-Pi-SDR-IGate.pdf 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/Raspberry-Pi-SDR-IGate.pdf
++      $(INSTALL) -D --mode=644 doc/Successful-APRS-IGate-Operation.pdf 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/Successful-APRS-IGate-Operation.pdf
++      $(INSTALL) -D --mode=644 doc/User-Guide.pdf 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/User-Guide.pdf
++      $(INSTALL) -D --mode=644 doc/WA8LMF-TNC-Test-CD-Results.pdf 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/WA8LMF-TNC-Test-CD-Results.pdf
+ #
+ # Various sample config and other files go into examples under the doc 
directory.
+ # When building from source, these can be put in home directory with "make 
install-conf".
+ # When installed from .DEB or .RPM package, the user will need to copy these 
to
+ # the home directory or other desired location.
+ #
+-      $(INSTALL) -D --mode=644 direwolf.conf 
$(DESTDIR)/share/doc/direwolf/examples/direwolf.conf
+-      $(INSTALL) -D --mode=755 dw-start.sh 
$(DESTDIR)/share/doc/direwolf/examples/dw-start.sh
+-      $(INSTALL) -D --mode=644 sdr.conf 
$(DESTDIR)/share/doc/direwolf/examples/sdr.conf
+-      $(INSTALL) -D --mode=644 telemetry-toolkit/telem-m0xer-3.txt 
$(DESTDIR)/share/doc/direwolf/examples/telem-m0xer-3.txt
+-      $(INSTALL) -D --mode=644 telemetry-toolkit/telem-balloon.conf 
$(DESTDIR)/share/doc/direwolf/examples/telem-balloon.conf
+-      $(INSTALL) -D --mode=644 telemetry-toolkit/telem-volts.conf 
$(DESTDIR)/share/doc/direwolf/examples/telem-volts.conf
++      $(INSTALL) -D --mode=644 direwolf.conf 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/examples/direwolf.conf
++      $(INSTALL) -D --mode=755 dw-start.sh 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/examples/dw-start.sh
++      $(INSTALL) -D --mode=644 sdr.conf 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/examples/sdr.conf
++      $(INSTALL) -D --mode=644 telemetry-toolkit/telem-m0xer-3.txt 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/examples/telem-m0xer-3.txt
++      $(INSTALL) -D --mode=644 telemetry-toolkit/telem-balloon.conf 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/examples/telem-balloon.conf
++      $(INSTALL) -D --mode=644 telemetry-toolkit/telem-volts.conf 
$(INSTALLDIR)/share/doc/direwolf-$(PV)/examples/telem-volts.conf
+ #
+ # "man" pages
+ #
+-      $(INSTALL) -D --mode=644 man1/aclients.1 
$(DESTDIR)/share/man/man1/aclients.1
+-      $(INSTALL) -D --mode=644 man1/atest.1 $(DESTDIR)/share/man/man1/atest.1
+-      $(INSTALL) -D --mode=644 man1/decode_aprs.1 
$(DESTDIR)/share/man/man1/decode_aprs.1
+-      $(INSTALL) -D --mode=644 man1/direwolf.1 
$(DESTDIR)/share/man/man1/direwolf.1
+-      $(INSTALL) -D --mode=644 man1/gen_packets.1 
$(DESTDIR)/share/man/man1/gen_packets.1
+-      $(INSTALL) -D --mode=644 man1/kissutil.1 
$(DESTDIR)/share/man/man1/kissutil.1
+-      $(INSTALL) -D --mode=644 man1/ll2utm.1 
$(DESTDIR)/share/man/man1/ll2utm.1
+-      $(INSTALL) -D --mode=644 man1/log2gpx.1 
$(DESTDIR)/share/man/man1/log2gpx.1
+-      $(INSTALL) -D --mode=644 man1/text2tt.1 
$(DESTDIR)/share/man/man1/text2tt.1
+-      $(INSTALL) -D --mode=644 man1/tt2text.1 
$(DESTDIR)/share/man/man1/tt2text.1
+-      $(INSTALL) -D --mode=644 man1/utm2ll.1 
$(DESTDIR)/share/man/man1/utm2ll.1
++      $(INSTALL) -D --mode=644 man1/aclients.1 
$(INSTALLDIR)/share/man/man1/aclients.1
++      $(INSTALL) -D --mode=644 man1/atest.1 
$(INSTALLDIR)/share/man/man1/atest.1
++      $(INSTALL) -D --mode=644 man1/decode_aprs.1 
$(INSTALLDIR)/share/man/man1/decode_aprs.1
++      $(INSTALL) -D --mode=644 man1/direwolf.1 
$(INSTALLDIR)/share/man/man1/direwolf.1
++      $(INSTALL) -D --mode=644 man1/gen_packets.1 
$(INSTALLDIR)/share/man/man1/gen_packets.1
++      $(INSTALL) -D --mode=644 man1/kissutil.1 
$(INSTALLDIR)/share/man/man1/kissutil.1
++      $(INSTALL) -D --mode=644 man1/ll2utm.1 
$(INSTALLDIR)/share/man/man1/ll2utm.1
++      $(INSTALL) -D --mode=644 man1/log2gpx.1 
$(INSTALLDIR)/share/man/man1/log2gpx.1
++      $(INSTALL) -D --mode=644 man1/text2tt.1 
$(INSTALLDIR)/share/man/man1/text2tt.1
++      $(INSTALL) -D --mode=644 man1/tt2text.1 
$(INSTALLDIR)/share/man/man1/tt2text.1
++      $(INSTALL) -D --mode=644 man1/utm2ll.1 
$(INSTALLDIR)/share/man/man1/utm2ll.1
+ #
+ # Set group and mode of HID devices corresponding to C-Media USB Audio 
adapters.
+ # This will allow us to use the CM108/CM119 GPIO pins for PTT.
+ #
+-      $(INSTALL) -D --mode=644 99-direwolf-cmedia.rules 
/etc/udev/rules.d/99-direwolf-cmedia.rules
++ifneq ($(enable_cm108),)
++      $(INSTALL) -D --mode=644 99-direwolf-cmedia.rules 
$(DESTDIR)/lib/udev/rules.d/99-direwolf-cmedia.rules
++endif
+ #
+       @echo " "
+       @echo "If this is your first install, not an upgrade, type this to put 
a copy"
+@@ -693,7 +696,7 @@
+ # Put sample configuration & startup files in home directory.
+ # This step would be done as ordinary user.
+ # Some people like to put the direwolf config file in /etc/ax25.
+-# Note that all of these are also in $(DESTDIR)/share/doc/direwolf/examples/.
++# Note that all of these are also in 
$(INSTALLDIR)/share/doc/direwolf/examples/.
+ 
+ # The Raspberry Pi has ~/Desktop but Ubuntu does not.
+ 
+@@ -724,7 +727,7 @@
+ 
+ .PHONY: install-rpi
+ install-rpi : 
+-      ln -f -s $(DESTDIR)/share/applications/direwolf.desktop 
~/Desktop/direwolf.desktop
++      ln -f -s $(INSTALLDIR)/share/applications/direwolf.desktop 
~/Desktop/direwolf.desktop
+ 
+ 
+ 

diff --git a/media-radio/direwolf/files/direwolf-gpsd-API-9.patch 
b/media-radio/direwolf/files/direwolf-gpsd-API-9.patch
new file mode 100644
index 00000000000..ffaf84dee56
--- /dev/null
+++ b/media-radio/direwolf/files/direwolf-gpsd-API-9.patch
@@ -0,0 +1,213 @@
+--- direwolf-1.5/dwgpsd.orig.c 2020-09-13 13:25:07.294828708 +0200
++++ direwolf-1.5/dwgpsd.c      2020-09-13 13:26:48.957086728 +0200
+@@ -1,7 +1,7 @@
+ //
+ //    This file is part of Dire Wolf, an amateur radio packet TNC.
+ //
+-//    Copyright (C) 2013, 2014, 2015  John Langner, WB2OSZ
++//    Copyright (C) 2013, 2014, 2015, 2020  John Langner, WB2OSZ
+ //
+ //    This program is free software: you can redistribute it and/or modify
+ //    it under the terms of the GNU General Public License as published by
+@@ -54,10 +54,10 @@
+ 
+ #include <gps.h>
+ 
+-// Debian bug report:  direwolf (1.2-1) FTBFS with libgps22 as part of the 
gpsd transition (#803605):
+-// dwgps.c claims to only support GPSD_API_MAJOR_VERSION 5, but also builds 
successfully with
+-// GPSD_API_MAJOR_VERSION 6 provided by libgps22 when the attached patch is 
applied.
+-#if GPSD_API_MAJOR_VERSION < 5 || GPSD_API_MAJOR_VERSION > 6
++// An incompatibility was introduced with version 7
++// and again with 9 and again with 10.
++
++#if GPSD_API_MAJOR_VERSION < 5 || GPSD_API_MAJOR_VERSION > 10
+ #error libgps API version might be incompatible.
+ #endif
+ 
+@@ -112,7 +112,7 @@
+  *              shared region via dwgps_put_data.
+  *
+  *            The application calls dwgps_read to get the most 
+- 8            recent information.                     
++ *            recent information.                     
+  *
+  *--------------------------------------------------------------------*/
+ 
+@@ -122,7 +122,7 @@
+  * Originally, I wanted to use the shared memory interface to gpsd
+  * because it is simpler and more efficient.  Just access it when we
+  * actually need the data and we don't have a lot of extra unnecessary
+- * busy work going on.
++ * busy work going on constantly polling it when we don't need the 
information.
+  *
+  * The current version of gpsd, supplied with Raspian (Wheezy), is 3.6 from 
back in 
+  * May 2012, is missing support for the shared memory interface.  
+@@ -138,13 +138,28 @@
+  *    cd gpsd-3.11
+  *    scons prefix=/usr libdir=lib/arm-linux-gnueabihf shm_export=True 
python=False
+  *    sudo scons udev-install
+- * 
++ *
+  * For now, we will use the socket interface.  Maybe get back to this again 
someday.
+  *
+  * Update:  January 2016.
+  *
+  *    I'm told that the shared memory interface might work in Raspian, Jessie 
version.
+  *    Haven't tried it yet.
++ *
++ * June 2020:  This is how to build the most recent.
++ *
++ *    Based on https://www.satsignal.eu/raspberry-pi/UpdatingGPSD.html
++ *
++ *    git clone https://gitlab.com/gpsd/gpsd.git  gpsd-gitlab
++ *    cd gpsd-gitlab
++ *    scons --config=force
++ *    scons
++ *    sudo scons install
++ *
++ *    The problem we have here is that the library is put in /usr/local/lib 
and direwolf
++ *    can't find it there.  Solution  is to define environment variable:
++ *
++ *    export LD_LIBRARY_PATH=/use/local/lib
+  */
+ 
+ 
+@@ -228,7 +243,7 @@
+  *
+  *--------------------------------------------------------------------*/
+ 
+-#define TIMEOUT 30
++#define TIMEOUT 15
+ 
+ #if ENABLE_GPSD
+ 
+@@ -251,13 +266,34 @@
+ 
+       while (1) {
+ 
++// Example code found here:
++// https://lists.nongnu.org/archive/html/gpsd-dev/2017-11/msg00001.html
++
+           if ( ! gps_waiting(&gpsdata, TIMEOUT * 1000000)) {
+           text_color_set(DW_COLOR_ERROR);
+-          dw_printf ("GPSD: Timeout waiting for GPS data.\n");
+-          /* Fall thru to read which should get error and bail out. */
++          dw_printf ("------------------------------------------\n");
++          dw_printf ("dwgpsd: Timeout waiting for GPS data.\n");
++          dw_printf ("Is GPSD daemon running?\n");
++          dw_printf ("Troubleshooting tip:  Try running cgps or xgps.\n");
++          dw_printf ("------------------------------------------\n");
++          info.fix = DWFIX_ERROR;
++          SLEEP_MS(5000);
++          continue;
+         }
+ 
++// https://github.com/wb2osz/direwolf/issues/196
++// https://bugzilla.redhat.com/show_bug.cgi?id=1674812
++
++// gps_read has two new parameters in API version 7.
++// It looks like this could be used to obtain the JSON message from the 
daemon.
++// Specify NULL, instead of message buffer space, if this is not desired.
++// Why couldn't they add a new function instead of introducing 
incompatibility?
++
++#if GPSD_API_MAJOR_VERSION >= 7
++        if (gps_read (&gpsdata, NULL, 0) == -1) {
++#else
+         if (gps_read (&gpsdata) == -1) {
++#endif
+           text_color_set(DW_COLOR_ERROR);
+ 
+           dw_printf ("------------------------------------------\n");
+@@ -274,16 +310,47 @@
+           break;   // Jump out of loop and terminate thread.
+         }
+ 
++#if GPSD_API_MAJOR_VERSION >= 9
++
++// The gps.h revision history says:
++//     *       mark altitude in gps_fix_t as deprecated and undefined
++// This seems really stupid to me.
++// If it is deprecated and undefined then take it out.  Someone trying to use
++// it would get a compile error and know that something needs to be done.
++// Instead we all just go merrily on our way using a field that is 
[allegedly] undefined.
++// Why not simply add more variables with different definitions of altitude
++// and keep the original variable working as it always did?
++// If it is truly undefined, as the comment would have us believe, numerous
++// people will WASTE VAST AMOUNTS OF TIME pondering why altitude is now 
broken in
++// their applications.
++
++#define stupid_altitude altMSL
++#else
++#define stupid_altitude altitude
++#endif
++
++#if GPSD_API_MAJOR_VERSION >= 10
++
++// They did it again.  Whimsical incompatibilities that cause
++// pain and aggravation for everyone trying to use this library.
++//
++//    error: ‘struct gps_data_t’ has no member named ‘status’
++//
++// Yes, I can understand that it is a more logical place but it breaks
++// all existing code that uses this.
++// I'm really getting annoyed about wasting so much time on keeping up with 
all
++// of these incompatibilities that are completely unnecessary.
++
++#define stupid_status fix.status
++#else
++#define stupid_status status
++#endif
++
++        // Inform user about change in fix status.
++
+         switch (gpsdata.fix.mode) {
+           default:
+           case MODE_NOT_SEEN:
+-            if (info.fix >= DWFIX_2D) {
+-              text_color_set(DW_COLOR_INFO);
+-              dw_printf ("GPSD: Lost location fix.\n");
+-            }
+-            info.fix = DWFIX_NOT_SEEN;
+-            break;
+-
+           case MODE_NO_FIX:
+             if (info.fix >= DWFIX_2D) {
+               text_color_set(DW_COLOR_INFO);
+@@ -309,11 +376,7 @@
+             break;
+         }
+ 
+-          /* Data is available. */
+-          // TODO:  what is gpsdata.status?
+-
+-
+-        if (gpsdata.status >= STATUS_FIX && gpsdata.fix.mode >= MODE_2D) {
++        if (gpsdata.stupid_status >= STATUS_FIX && gpsdata.fix.mode >= 
MODE_2D) {
+ 
+           info.dlat = isnan(gpsdata.fix.latitude) ? G_UNKNOWN : 
gpsdata.fix.latitude;
+           info.dlon = isnan(gpsdata.fix.longitude) ? G_UNKNOWN : 
gpsdata.fix.longitude;
+@@ -321,9 +384,15 @@
+           info.speed_knots = isnan(gpsdata.fix.speed) ? G_UNKNOWN : 
(MPS_TO_KNOTS * gpsdata.fix.speed);
+ 
+           if (gpsdata.fix.mode >= MODE_3D) {
+-            info.altitude = isnan(gpsdata.fix.altitude) ? G_UNKNOWN : 
gpsdata.fix.altitude;
++            info.altitude = isnan(gpsdata.fix.stupid_altitude) ? G_UNKNOWN : 
gpsdata.fix.stupid_altitude;
+           }
+         }
++        else {
++          // Keep the last known location.
++          // Using info.fix, the caller knows if the location is current 
(DWFIX_[23]D),
++          // last known (DWFIX_NONE), or never known (DWFIX_NOT_SEEN).
++          info.fix = DWFIX_NO_FIX;
++        }
+ 
+         info.timestamp = time(NULL);
+         if (s_debug >= 2) {
+@@ -357,6 +426,7 @@
+ 
+ #if ENABLE_GPSD
+ 
++      gps_stream (&gpsdata, WATCH_DISABLE, NULL);
+       gps_close (&gpsdata);
+ 
+ #endif

diff --git a/media-radio/direwolf/metadata.xml 
b/media-radio/direwolf/metadata.xml
index b9c6cabfa90..b2d8ba721f3 100644
--- a/media-radio/direwolf/metadata.xml
+++ b/media-radio/direwolf/metadata.xml
@@ -1,7 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
 <pkgmetadata>
-<maintainer type="person">
-       <email>ri...@gentoo.org</email>
-</maintainer>
+       <maintainer type="person">
+               <email>ri...@gentoo.org</email>
+       </maintainer>
+       <use>
+               <flag name="hamlib">Enables support by the Hamlib amateur radio 
rig control library</flag>
+       </use>
+       <upstream>
+               <remote-id type="github">wb2osz/direwolf</remote-id>
+       </upstream>
 </pkgmetadata>

Reply via email to