diff options
author | Jannis Achstetter <kripton@kripserver.net> | 2020-09-13 16:42:05 +0200 |
---|---|---|
committer | Richard Freeman <rich0@gentoo.org> | 2020-10-23 15:52:50 -0400 |
commit | 851cb3b5ceb043715584d238e84b9fd69f7356c3 (patch) | |
tree | 501a52b1446cb4197265c0830cdff0982b27cda3 | |
parent | dev-libs/libfilezilla: Removed old (diff) | |
download | gentoo-851cb3b5ceb043715584d238e84b9fd69f7356c3.tar.gz gentoo-851cb3b5ceb043715584d238e84b9fd69f7356c3.tar.bz2 gentoo-851cb3b5ceb043715584d238e84b9fd69f7356c3.zip |
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@kripserver.net>
Closes: https://github.com/gentoo/gentoo/pull/17530
Signed-off-by: Richard Freeman <rich0@gentoo.org>
-rw-r--r-- | media-radio/direwolf/Manifest | 1 | ||||
-rw-r--r-- | media-radio/direwolf/direwolf-1.5.ebuild | 59 | ||||
-rw-r--r-- | media-radio/direwolf/files/1.5-makefile.patch | 295 | ||||
-rw-r--r-- | media-radio/direwolf/files/direwolf-gpsd-API-9.patch | 213 | ||||
-rw-r--r-- | 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 531918335474..04bed6f619c7 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 000000000000..deaf27c9ab1d --- /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 000000000000..860d57811aa2 --- /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 000000000000..ffaf84dee568 --- /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 b9c6cabfa90c..b2d8ba721f3d 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>rich0@gentoo.org</email> -</maintainer> + <maintainer type="person"> + <email>rich0@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> |