From 145e94f2b77274d51f57a17b5748d6fc86439ab4 Mon Sep 17 00:00:00 2001 From: Joerg Deckert Date: Tue, 7 Jan 2025 15:09:27 +0100 Subject: [PATCH] add media-radio/dxlAPRS --- acct-group/dxlAPRS/Manifest | 2 + acct-group/dxlAPRS/dxlAPRS-0.ebuild | 10 ++ acct-group/dxlAPRS/metadata.xml | 5 + acct-user/dxlAPRS/Manifest | 2 + acct-user/dxlAPRS/dxlAPRS-0.ebuild | 13 +++ acct-user/dxlAPRS/metadata.xml | 5 + media-radio/dxlAPRS/Manifest | 8 ++ media-radio/dxlAPRS/dxlAPRS-20241117.ebuild | 49 ++++++++ .../files/dxlAPRS-20241117-gcc-new.patch | 106 ++++++++++++++++++ .../dxlAPRS-20241117-no-static-linking.patch | 22 ++++ media-radio/dxlAPRS/files/ra02.service | 28 +++++ media-radio/dxlAPRS/files/udpbox.service | 23 ++++ media-radio/dxlAPRS/files/udpflex.service | 27 +++++ media-radio/dxlAPRS/files/udpgate4.service | 33 ++++++ 14 files changed, 333 insertions(+) create mode 100644 acct-group/dxlAPRS/Manifest create mode 100644 acct-group/dxlAPRS/dxlAPRS-0.ebuild create mode 100644 acct-group/dxlAPRS/metadata.xml create mode 100644 acct-user/dxlAPRS/Manifest create mode 100644 acct-user/dxlAPRS/dxlAPRS-0.ebuild create mode 100644 acct-user/dxlAPRS/metadata.xml create mode 100644 media-radio/dxlAPRS/Manifest create mode 100644 media-radio/dxlAPRS/dxlAPRS-20241117.ebuild create mode 100644 media-radio/dxlAPRS/files/dxlAPRS-20241117-gcc-new.patch create mode 100644 media-radio/dxlAPRS/files/dxlAPRS-20241117-no-static-linking.patch create mode 100644 media-radio/dxlAPRS/files/ra02.service create mode 100644 media-radio/dxlAPRS/files/udpbox.service create mode 100644 media-radio/dxlAPRS/files/udpflex.service create mode 100644 media-radio/dxlAPRS/files/udpgate4.service diff --git a/acct-group/dxlAPRS/Manifest b/acct-group/dxlAPRS/Manifest new file mode 100644 index 0000000..f806008 --- /dev/null +++ b/acct-group/dxlAPRS/Manifest @@ -0,0 +1,2 @@ +EBUILD dxlAPRS-0.ebuild 200 BLAKE2B a8a095b9b07e749a89ace55f95c85e1defb7fec246fc10383185ae4d48132c8556b2a559e85d1b9ed859df987258089ca35aab3ee5e7b2c871edf0d79a45e7f1 SHA512 8d2e14a3674920b8b0b590880ff309f7f7fec1b459868ae539c44616706b9cfb0b7c134a0a1f7bee274ee1a812665167172cc9fc480c542bb400d67337118f33 +MISC metadata.xml 168 BLAKE2B 2e0e000b4c3b6ca04c12903fdbe278415c05a822623c52e9aa95cbbf3d50bcb1246b7edbda7d2f6b559af8950c6374e6e0a69b76319964cfe686bf50b0604a57 SHA512 4dcf45d1809e8390a2d8155c8ebfe0dd610203e392aeab0ccd8a10f42cc8532a4925eff32b35e7a6c35598a4efd288229034ec0732299dbd8cfa0acff705fed3 diff --git a/acct-group/dxlAPRS/dxlAPRS-0.ebuild b/acct-group/dxlAPRS/dxlAPRS-0.ebuild new file mode 100644 index 0000000..a25f405 --- /dev/null +++ b/acct-group/dxlAPRS/dxlAPRS-0.ebuild @@ -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" diff --git a/acct-group/dxlAPRS/metadata.xml b/acct-group/dxlAPRS/metadata.xml new file mode 100644 index 0000000..115e9d6 --- /dev/null +++ b/acct-group/dxlAPRS/metadata.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/acct-user/dxlAPRS/Manifest b/acct-user/dxlAPRS/Manifest new file mode 100644 index 0000000..37fe23b --- /dev/null +++ b/acct-user/dxlAPRS/Manifest @@ -0,0 +1,2 @@ +EBUILD dxlAPRS-0.ebuild 267 BLAKE2B 2a42a70429ef0db6874e9d36e070075fd93076b85a0f951bbb299e8ac8e84bc186a9741ffbe042c672f8cdc2e63698be4b4ca9221aa6c9f43951873d034647bc SHA512 e95d99362cd5f7bf9856f7992cc428e204e2a4c4be3b67ec95dc4d1ee79dc68f7859ce897127c7a5f6125e43307f217b648cc23d7a9209b42fbb66ef8632ae91 +MISC metadata.xml 168 BLAKE2B 2e0e000b4c3b6ca04c12903fdbe278415c05a822623c52e9aa95cbbf3d50bcb1246b7edbda7d2f6b559af8950c6374e6e0a69b76319964cfe686bf50b0604a57 SHA512 4dcf45d1809e8390a2d8155c8ebfe0dd610203e392aeab0ccd8a10f42cc8532a4925eff32b35e7a6c35598a4efd288229034ec0732299dbd8cfa0acff705fed3 diff --git a/acct-user/dxlAPRS/dxlAPRS-0.ebuild b/acct-user/dxlAPRS/dxlAPRS-0.ebuild new file mode 100644 index 0000000..361b27c --- /dev/null +++ b/acct-user/dxlAPRS/dxlAPRS-0.ebuild @@ -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 diff --git a/acct-user/dxlAPRS/metadata.xml b/acct-user/dxlAPRS/metadata.xml new file mode 100644 index 0000000..115e9d6 --- /dev/null +++ b/acct-user/dxlAPRS/metadata.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/media-radio/dxlAPRS/Manifest b/media-radio/dxlAPRS/Manifest new file mode 100644 index 0000000..b4c057f --- /dev/null +++ b/media-radio/dxlAPRS/Manifest @@ -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 diff --git a/media-radio/dxlAPRS/dxlAPRS-20241117.ebuild b/media-radio/dxlAPRS/dxlAPRS-20241117.ebuild new file mode 100644 index 0000000..dcd11a9 --- /dev/null +++ b/media-radio/dxlAPRS/dxlAPRS-20241117.ebuild @@ -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 +} diff --git a/media-radio/dxlAPRS/files/dxlAPRS-20241117-gcc-new.patch b/media-radio/dxlAPRS/files/dxlAPRS-20241117-gcc-new.patch new file mode 100644 index 0000000..443d867 --- /dev/null +++ b/media-radio/dxlAPRS/files/dxlAPRS-20241117-gcc-new.patch @@ -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 + #include + +-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; diff --git a/media-radio/dxlAPRS/files/dxlAPRS-20241117-no-static-linking.patch b/media-radio/dxlAPRS/files/dxlAPRS-20241117-no-static-linking.patch new file mode 100644 index 0000000..c694999 --- /dev/null +++ b/media-radio/dxlAPRS/files/dxlAPRS-20241117-no-static-linking.patch @@ -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) diff --git a/media-radio/dxlAPRS/files/ra02.service b/media-radio/dxlAPRS/files/ra02.service new file mode 100644 index 0000000..952878c --- /dev/null +++ b/media-radio/dxlAPRS/files/ra02.service @@ -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 diff --git a/media-radio/dxlAPRS/files/udpbox.service b/media-radio/dxlAPRS/files/udpbox.service new file mode 100644 index 0000000..ad873c1 --- /dev/null +++ b/media-radio/dxlAPRS/files/udpbox.service @@ -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 diff --git a/media-radio/dxlAPRS/files/udpflex.service b/media-radio/dxlAPRS/files/udpflex.service new file mode 100644 index 0000000..3461a86 --- /dev/null +++ b/media-radio/dxlAPRS/files/udpflex.service @@ -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 diff --git a/media-radio/dxlAPRS/files/udpgate4.service b/media-radio/dxlAPRS/files/udpgate4.service new file mode 100644 index 0000000..b4c875e --- /dev/null +++ b/media-radio/dxlAPRS/files/udpgate4.service @@ -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