add media-radio/dxlAPRS

This commit is contained in:
Jörg Deckert 2025-01-07 15:09:27 +01:00
parent 10ff9a1553
commit 145e94f2b7
14 changed files with 333 additions and 0 deletions

View File

@ -0,0 +1,2 @@
EBUILD dxlAPRS-0.ebuild 200 BLAKE2B a8a095b9b07e749a89ace55f95c85e1defb7fec246fc10383185ae4d48132c8556b2a559e85d1b9ed859df987258089ca35aab3ee5e7b2c871edf0d79a45e7f1 SHA512 8d2e14a3674920b8b0b590880ff309f7f7fec1b459868ae539c44616706b9cfb0b7c134a0a1f7bee274ee1a812665167172cc9fc480c542bb400d67337118f33
MISC metadata.xml 168 BLAKE2B 2e0e000b4c3b6ca04c12903fdbe278415c05a822623c52e9aa95cbbf3d50bcb1246b7edbda7d2f6b559af8950c6374e6e0a69b76319964cfe686bf50b0604a57 SHA512 4dcf45d1809e8390a2d8155c8ebfe0dd610203e392aeab0ccd8a10f42cc8532a4925eff32b35e7a6c35598a4efd288229034ec0732299dbd8cfa0acff705fed3

View File

@ -0,0 +1,10 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit acct-group
DESCRIPTION="A group for media-radio/dxlAPRS"
ACCT_GROUP_ID="611"

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
</pkgmetadata>

View File

@ -0,0 +1,2 @@
EBUILD dxlAPRS-0.ebuild 267 BLAKE2B 2a42a70429ef0db6874e9d36e070075fd93076b85a0f951bbb299e8ac8e84bc186a9741ffbe042c672f8cdc2e63698be4b4ca9221aa6c9f43951873d034647bc SHA512 e95d99362cd5f7bf9856f7992cc428e204e2a4c4be3b67ec95dc4d1ee79dc68f7859ce897127c7a5f6125e43307f217b648cc23d7a9209b42fbb66ef8632ae91
MISC metadata.xml 168 BLAKE2B 2e0e000b4c3b6ca04c12903fdbe278415c05a822623c52e9aa95cbbf3d50bcb1246b7edbda7d2f6b559af8950c6374e6e0a69b76319964cfe686bf50b0604a57 SHA512 4dcf45d1809e8390a2d8155c8ebfe0dd610203e392aeab0ccd8a10f42cc8532a4925eff32b35e7a6c35598a4efd288229034ec0732299dbd8cfa0acff705fed3

View File

@ -0,0 +1,13 @@
# Copyright 2019-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit acct-user
ACCT_USER_ID="611"
ACCT_USER_GROUPS=( dxlAPRS dialout )
ACCT_USER_HOME=/var/lib/dxlaprs
ACCT_USER_HOME_PERMS=02750
acct-user_add_deps

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
</pkgmetadata>

View File

@ -0,0 +1,8 @@
AUX dxlAPRS-20241117-gcc-new.patch 3613 BLAKE2B ee7634021414d55c763bf5025f47bf68d521199ea907c8a04e2fba878abb17259f7bedb0953da579ec8ead1888f6aebd9480295521307df02661bed72d5a4372 SHA512 56b2725ebf0910c554904fdd2f89efd875ab5406aa5925e88b6a1039f90f474e076f367e8c5ae8ae2007ab3cce29536e72557aa053a05b6c455eeb62865009d9
AUX dxlAPRS-20241117-no-static-linking.patch 830 BLAKE2B 8b062022d7ba880dcb6c04df30d148a8aa99ab3f19849e0640a44ed474425d0fd0e559102da5d3dac284267a00374840b23c059be41a72e35c7b7da0b171d40d SHA512 3450b8370cecbe3c8d11948413638062792b1e5ab415173de1e99e5efb12fbde8037864247329f0f03d17288c546d057c82a0c3c49e940dc2c5377929e056b45
AUX ra02.service 748 BLAKE2B a9f21b2ddab1d1ec3906c32c67277a1f0d0558192f5c516214576892ab871cc4f5b1c52bc5e23066a6633f927970ee54e26a71d9e5946523ee1caf8ba442e2e3 SHA512 99cbfdde556edd55dd3c12eb03eb99886aa3147eeb4638c964df921241761f0c18feb70d0e760972ee6f3b6cdbfd0b86537103ff4261af217dcb1f0b7b552b8a
AUX udpbox.service 653 BLAKE2B b512a416ac6ad8edef27040a195d6b47548154fdc951744dc0d13def99bba93bd04d30fc6aa87d89f560227f6988b586de7989782a14ac68069577d8aa22a855 SHA512 3faa1e4a0aa67f91da2d38966497e8dfe65bc164187f5ce5fe2cf3dbe870497862b1fd85a3bfc2dff757016a45db8dd5582fbfaddf5e0c1286356392bdc93682
AUX udpflex.service 674 BLAKE2B e9c235a0ea82691c3290962ea3cde495558eb83bcf4514fb8b2dc2784d44b1aac64b619836146fac7c6256ea4c4cd987793971be1af4c113eae54f9fc3aaec92 SHA512 c743ef69c83b5a7505297e0a0356d8619f65ad4b38f4ef662cfdea2b48c206356e07d53dad11f3b6658e727e4b5375cd101a017bca47fe83055ae7241cc0d157
AUX udpgate4.service 1149 BLAKE2B 9ad91b5481a3ea49d40ff22fe594b765745d30382c5cb99493fab7be1d7e7536152aa974a60f99aa8425563070713cbce41338cbda14093745f9c415eca7c6c1 SHA512 c353091ddd558572147f11e529c4765d9e6f6d175c646978c44f8c9ba37728288c95511c51230c2659167fb5f6c5a0307b7077aa0b6b76906ec70461faad2f7b
DIST dxlAPRS-20241117.tar.gz 19794087 BLAKE2B 2c2e5e28e3959958653df7a9ff0d66b8f97a52f0bd8b73249cb644a10f31e56d1d870a2fbb95d12ee4285a7856fd81e83fe2dfd7c23a888cdd063114c7daf2ba SHA512 a890e836df2d75e9436e825afc60adf94de017df8e9cbeab8e32374b5915b5b0894ae7e94f08e2cd68db542eded7d46344902de5cd3207acca9a90a39cd3d9bc
EBUILD dxlAPRS-20241117.ebuild 1129 BLAKE2B 8d77d27d8437e8cf62e9547dca8199016ca8d1a68566c15e527e2596c2df076c6f4392d48ec7a762c9c9a894744fe8c2f7c6d1a2a4a86686674f5104dd38eafe SHA512 d5309c2744ab3094a210849cf213ffbf502f5f0080fdf87b82692f8214f879b71d43d6bf7fcd2dfebc01287cb0f328d21e6aee03de2c2e864f4e62c23b7de917

View File

@ -0,0 +1,49 @@
# $Header: $
EAPI="7"
inherit systemd
COMMIT="6f75aa58501eab7dd8b04fc5324f169882bd28b8"
DESCRIPTION="APRS-Toolchain by OE5DXL"
HOMEPAGE="https://dxlwiki.dl1nux.de/"
SRC_URI="https://github.com/oe5hpm/dxlAPRS/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
KEYWORDS="amd64 x86"
LICENSE="GPL-2"
SLOT="0"
RDEPEND="acct-group/dxlAPRS
acct-user/dxlAPRS
media-libs/libjpeg-turbo
media-libs/libpng
sci-libs/fftw
x11-libs/libX11
x11-libs/libXext"
DEPEND=${RDEPEND}
S=${WORKDIR}/${PN}-${COMMIT}/src
PATCHES=(
"${FILESDIR}/${P}-gcc-new.patch"
"${FILESDIR}/${P}-no-static-linking.patch"
)
src_install() {
arch="$(uname -m)"
rm ../out-${arch}/*.o
dobin ../out-${arch}/*
insinto /usr/share/${PN}/www
doins -r ../dxlAPRS_common/www/*
insinto /usr/share/${PN}/aprsmap
doins -r ../aprsmap_common/*
systemd_dounit "${FILESDIR}"/ra02.service
systemd_dounit "${FILESDIR}"/udpbox.service
systemd_dounit "${FILESDIR}"/udpflex.service
systemd_dounit "${FILESDIR}"/udpgate4.service
}

View File

@ -0,0 +1,106 @@
diff -Naur src.orig/cleanup.c src/cleanup.c
--- src.orig/cleanup.c 2024-11-17 18:24:00.000000000 +0100
+++ src/cleanup.c 2024-12-17 22:12:51.805849977 +0100
@@ -31,7 +31,7 @@
strncpy(line, ut.ut_line, UT_LINESIZE);
bzero(ut.ut_name, UT_NAMESIZE);
bzero(ut.ut_host, UT_HOSTSIZE);
- time(&ut.ut_time);
+ time((time_t *) &ut.ut_time);
lseek(fd, -(off_t)sizeof(struct utmp), L_INCR);
write(fd, &ut, sizeof(struct utmp));
close(fd);
@@ -56,7 +56,7 @@
strncpy(ut.ut_line, line, sizeof(ut.ut_line));
strncpy(ut.ut_name, name, sizeof(ut.ut_name));
strncpy(ut.ut_host, host, sizeof(ut.ut_host));
- time(&ut.ut_time);
+ time((time_t *) &ut.ut_time);
if (write(fd, &ut, sizeof(struct utmp)) != sizeof(struct utmp))
ftruncate(fd, buf.st_size);
}
diff -Naur src.orig/fftw.c src/fftw.c
--- src.orig/fftw.c 2024-11-17 18:24:00.000000000 +0100
+++ src/fftw.c 2024-12-17 21:53:32.872758461 +0100
@@ -9,14 +9,14 @@
#include <sys/types.h>
#include <stdlib.h>
-static fftwf_plan p;
+static fftw_plan p;
fftwf_complex* plan(uint n)
{
fftwf_complex *io;
io = (fftwf_complex*) fftw_malloc(sizeof(fftwf_complex) * n);
- p = fftw_plan_dft_1d(n, io, io, FFTW_FORWARD, FFTW_ESTIMATE);
+ p = fftw_plan_dft_1d(n, (fftw_complex *)io, (fftw_complex *)io, FFTW_FORWARD, FFTW_ESTIMATE);
return io;
}
diff -Naur src.orig/gpspos.c src/gpspos.c
--- src.orig/gpspos.c 2024-11-17 18:24:00.000000000 +0100
+++ src/gpspos.c 2024-12-17 20:14:30.995289257 +0100
@@ -1306,7 +1306,7 @@
sizeof(struct YUMA_structAlmanac [32]));
memset((char *)rinexalm,(char)0,
sizeof(struct structEphemeris [3072]));
- semok = fnsem[0UL] && SEM_ReadAlmanacDataFromFile(fnsem, (char *)alm,
+ semok = fnsem[0UL] && SEM_ReadAlmanacDataFromFile(fnsem, (SEM_structAlmanac *)alm,
32U, &cnt);
if (semok) {
for (i = 0UL; i<=31UL; i++) {
@@ -1314,9 +1314,9 @@
} /* end for */
}
yumaok = fnyuma[0UL] && YUMA_ReadAlmanacDataFromFile(fnyuma,
- (char *)yumaalm, 32U, &cnt);
+ (YUMA_structAlmanac *)yumaalm, 32U, &cnt);
rinexok = fnrinex[0UL] && RINEX_DecodeGPSNavigationFile(fnrinex,
- (char *) &rinexklobuchar, (char *)rinexalm, 3071UL,
+ (GNSS_structKlobuchar *) &rinexklobuchar, (GPS_structEphemeris *)rinexalm, 3071UL,
&ri);
if (rinexok && ri>0UL) {
if (verb) {
diff -Naur src.orig/l2cat.c src/l2cat.c
--- src.orig/l2cat.c 2024-11-17 18:24:00.000000000 +0100
+++ src/l2cat.c 2024-12-17 22:31:30.565938321 +0100
@@ -1729,7 +1729,7 @@
l2_L2Init(1000U, sockset, eventproc);
l2_l2verb = verb;
l2_dupchk = axudpchk;
- signal(SIGCHLD, cleanup); /*CleanWho*/
+ signal(SIGCHLD, (void *)cleanup); /*CleanWho*/
/*
MOVE(ADR(mycall), ADR(hc[0*7]), 7); (* via call *)
MOVE(ADR(mycall), ADR(hc[1*7]), 7); (* connect call *)
diff -Naur src.orig/radio.c src/radio.c
--- src.orig/radio.c 2024-11-17 18:24:00.000000000 +0100
+++ src/radio.c 2024-12-17 22:07:56.525826660 +0100
@@ -154,20 +154,20 @@
char s[1001];
float fr;
unsigned long n;
- unsigned long m;
- long ni;
+ uint32_t m;
+ int32_t ni;
char ok0;
mono = 0;
rds = 0;
verb = 0;
- afc = 50UL;
+ uint32_t afc = 50UL;
strncpy(url,"127.0.0.1",1001u);
strncpy(port,"1234",1001u);
soundfn[0] = 0;
tune = 100000000UL;
- ifwidth = 0UL;
+ uint32_t ifwidth = 0UL;
firw = 0.0f;
- firl = 16UL;
+ uint32_t firl = 16UL;
for (;;) {
osi_NextArg(s, 1001ul);
if (s[0U]==0) break;

View File

@ -0,0 +1,22 @@
diff -Naur src.orig/Makefile src/Makefile
--- src.orig/Makefile 2024-11-17 18:24:00.000000000 +0100
+++ src/Makefile 2024-12-18 20:10:30.311297575 +0100
@@ -144,9 +144,6 @@
OUT := $(if $(OUT),$(OUT),../out-x86_32/)
CFLAGS += -m32
LFLAGS += -m32
- TARGETS += $(OUT)aprsmap-x86_32
-else ifneq ($(HOSTOS),Darwin)
-TARGETS += $(OUT)aprsmap-x86_64
endif
OUT := $(if $(OUT),$(OUT),../out-x86_64/)
# -------------------------- x86_32 (default) specific ------------------------
@@ -528,7 +525,7 @@
$(OUT)waterfall3: $(OBJ_WATERFALL3) $(OBJ_COMMON)
@echo [ linking ] $@
- $(CC) $(LFLAGS) -o $@ $(OBJ_WATERFALL3) $(OBJ_COMMON) $(GFXLIBS) $(EXTLIB)libfftw3.a -lm
+ $(CC) $(LFLAGS) -o $@ $(OBJ_WATERFALL3) $(OBJ_COMMON) $(GFXLIBS) -lfftw3 -lm
@$(STRIP) $@ $(STRIPFLAGS)
$(OUT)downsample: $(OBJ_DOWNSAMPLE) $(OBJ_COMMON)

View File

@ -0,0 +1,28 @@
[Unit]
Description=APRS LoRa connector
Documentation=https://github.com/oe5hpm/dxlAPRS
After=network.target
[Service]
User=dxlaprs
SupplementaryGroups=gpio
Environment="INOUT0=-a -L 127.0.0.1:9702:0"
Environment="INOUT1="
Environment="INOUT2="
Environment="INOUT3="
Environment="INOUT4="
Environment="INOUT5="
Environment="INOUT6="
Environment="INOUT7="
Environment="INOUT8="
Environment="INOUT9="
##Environment="GPIO=8 10 9 11"
Environment="GPIO=520 522 521 523"
Environment="RXFREQ=433.775"
Environment="TXFREQ=433.900"
Environment="EXTPARAM=-v"
ExecStart=/usr/bin/ra02 -p $GPIO $INOUT0 -f ${RXFREQ} -F ${TXFREQ} $INOUT1 $INOUT2 $INOUT3 $INOUT4 $INOUT5 $INOUT6 $INOUT7 $INOUT8 $INOUT9 $EXTPARAM
Type=simple
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,23 @@
[Unit]
Description=axudp in/out ui/aprs stream splitter, filter, digipeater
Documentation=https://github.com/oe5hpm/dxlAPRS
After=network.target
[Service]
User=dxlaprs
Environment="INOUT0=-R 127.0.0.1:9201 -l 127.0.0.1:10201"
Environment="INOUT1=-R 127.0.0.1:9702 -l 127.0.0.1:10702"
Environment="INOUT2="
Environment="INOUT3="
Environment="INOUT4="
Environment="INOUT5="
Environment="INOUT6="
Environment="INOUT7="
Environment="INOUT8="
Environment="INOUT9="
Environment="EXTPARAM=-v"
ExecStart=/usr/bin/udpbox $INOUT0 $INOUT1 $INOUT2 $INOUT3 $INOUT4 $INOUT5 $INOUT6 $INOUT7 $INOUT8 $INOUT9 $EXTPARAM
Type=simple
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,27 @@
[Unit]
Description=KISS TNC connector
Documentation=https://github.com/oe5hpm/dxlAPRS
After=network.target
[Service]
User=dxlaprs
SupplementaryGroups=dialout
Environment="INOUT0=-U 127.0.0.1:9201:0"
Environment="INOUT1="
Environment="INOUT2="
Environment="INOUT3="
Environment="INOUT4="
Environment="INOUT5="
Environment="INOUT6="
Environment="INOUT7="
Environment="INOUT8="
Environment="INOUT9="
Environment="KISSTCP=-T 127.0.0.1:8001"
Environment="EXTPARAM=-V"
ExecStart=/usr/bin/udpflex $KISSTCP $INOUT0 $INOUT1 $INOUT2 $INOUT3 $INOUT4 $INOUT5 $INOUT6 $INOUT7 $INOUT8 $INOUT9 $EXTPARAM
Type=simple
Restart=on-failure
RestartSec=30s
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,33 @@
[Unit]
Description=APRS iGate
Documentation=https://github.com/oe5hpm/dxlAPRS
After=network.target
[Service]
User=dxlaprs
Environment="CALL=MYCALL"
Environment="INOUT0=-R 127.0.0.1:0:10201#2m"
Environment="INOUT1=-R 127.0.0.1:0:10702#LoRa"
Environment="INOUT2="
Environment="INOUT3="
Environment="INOUT4="
Environment="INOUT5="
Environment="INOUT6="
Environment="INOUT7="
Environment="INOUT8="
Environment="INOUT9="
Environment="KEEPHEARDDIRECT=10080"
Environment="KEEPHEARDINDIRECT=1440"
Environment="HEARDMAXLINES=50"
Environment="SHOWHEARD=60"
Environment="NETBEACON=30:/etc/dxlAPRS/netbeacon.txt"
Environment="GATEWAY=/etc/dxlAPRS/gateway.txt"
Environment="PASSWORD=/etc/dxlAPRS/password.txt"
Environment="LOCALPORT=14580"
Environment="WWWPORT=14501"
Environment="WWWDIR=/usr/share/dxlAPRS/www/"
ExecStart=/usr/bin/udpgate4 -s ${CALL} $INOUT0 $INOUT1 $INOUT2 $INOUT3 $INOUT4 $INOUT5 $INOUT6 $INOUT7 $INOUT8 $INOUT9 -H ${KEEPHEARDDIRECT} -I ${KEEPHEARDINDIRECT} -u ${HEARDMAXLINES} -B ${SHOWHEARD} -n ${NETBEACON} -g ${GATEWAY} -p ${PASSWORD} -t ${LOCALPORT} -w ${WWWPORT} -D ${WWWDIR} -O -0 -v
Type=simple
[Install]
WantedBy=multi-user.target