diff --git a/Makefile b/Makefile index 8fe238c..634093f 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,14 @@ +ifeq ($(TARGET), opendv) +export DATADIR := "/usr/share/opendv" +export LOGDIR := "/var/log/opendv" +export CONFDIR := "/etc" +export BINDIR := "/usr/sbin" +else export DATADIR := "/usr/share/ircddbgateway" export LOGDIR := "/var/log" export CONFDIR := "/etc" export BINDIR := "/usr/bin" +endif # Add -DDCS_LINK to the end of the CFLAGS line below to add DCS linking to StarNet # Add -DDEXTRA_LINK to the end of the CFLAGS line below to add DExtra linking to StarNet @@ -54,6 +61,18 @@ ircDDB/IRCDDB.a: force .PHONY: install install: all +ifeq ($(TARGET), opendv) + useradd --user-group -M --system opendv --shell /bin/false || true + + # Add the opendv user to the audio group so that it can open audio + # devices when using the audio based drivers such as the Sound Card + # one. Maybe this should be moved to DStarRepeater instead ... + usermod --groups audio --append opendv || true + usermod --groups dialout --append opendv || true + usermod --groups gpio --append opendv || true + mkdir /var/log/opendv || true + chown opendv:opendv /var/log/opendv +endif $(MAKE) -C Data install $(MAKE) -C APRSTransmit install $(MAKE) -C ircDDBGateway install diff --git a/MakefileGUI b/MakefileGUI index 4c90842..ca8a81b 100644 --- a/MakefileGUI +++ b/MakefileGUI @@ -1,7 +1,14 @@ +ifeq ($(TARGET), opendv) +export DATADIR := "/usr/share/opendv" +export LOGDIR := "/var/log/opendv" +export CONFDIR := "/etc" +export BINDIR := "/usr/sbin" +else export DATADIR := "/usr/share/ircddbgateway" export LOGDIR := "/var/log" export CONFDIR := "/etc" export BINDIR := "/usr/bin" +endif # Add -DDCS_LINK to the end of the CFLAGS line below to add DCS linking to StarNet # Add -DDEXTRA_LINK to the end of the CFLAGS line below to add DExtra linking to StarNet diff --git a/README.md b/README.md index d099084..a90b421 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ This is the ircDDB Gateway. It allows a D-Star Repeater to interface into callsi * XLX reflectors. * CCS7 routing. * D-RATS data transfers. -* Gateway DPRS data to aprs.fi. +* Gateway DPRS data to APRS-IS. * Full multi lingual text and voice announcements. * DTMF or UR call control. * Remote control interface. @@ -22,3 +22,24 @@ There are many external programs that allow for inserting voice or text messages They all build on 32-bit and 64-bit Linux as well as on Windows using Visual Studio 2017 on x86 and x64. This software is licenced under the GPL v2. + +# Build and installing +## Regular build +```shell +make +make -f MakefileGUI #only required if you want to build the GUI programs +sudo make install +``` +## Drop-in replacement for dl5di OpenDV packages +This will conpile the program to be used as a drop in replacement for the no longer maintained DL5DI OpenDV packages. Systemd files to run ircddbgatewayd as daemon will also be installed. +```shell +export TARGET=opendv +make +make -f MakefileGUI #only required if you want to build the GUI programs +sudo make install +``` +Now you should edit the configuration in the file /etc/ircddbgateway to match your needs. +```shell +sudo systemctl enable ircddbgatewayd.service #enable service +sudo service ircddbgatewayd start +``` diff --git a/ircDDBGateway/Makefile b/ircDDBGateway/Makefile index f36c9a3..73efe6a 100644 --- a/ircDDBGateway/Makefile +++ b/ircDDBGateway/Makefile @@ -15,6 +15,10 @@ ircddbgatewayd: $(OBJECTS) ../ircDDB/IRCDDB.a ../Common/Common.a .PHONY: install install: install -g bin -o root -m 0775 ircddbgatewayd $(BINDIR) + cp ircddbgateway-emptyconfig $(CONFDIR)/ircddbgateway +ifeq ($(TARGET), opendv) + cp ../debian/ircddbgatewayd.ircddbgatewayd.service /lib/systemd/system/ircddbgatewayd.service +endif .PHONY: clean clean: diff --git a/ircDDBGateway/ircddbgateway-emptyconfig b/ircDDBGateway/ircddbgateway-emptyconfig new file mode 100644 index 0000000..1a79b95 --- /dev/null +++ b/ircDDBGateway/ircddbgateway-emptyconfig @@ -0,0 +1,183 @@ +gatewayType=0 +gatewayCallsign= +gatewayAddress=0.0.0.0 +icomAddress=172.16.0.20 +icomPort=20000 +hbAddress=127.0.0.1 +hbPort=20010 +latitude= +longitude= +description1= +description2= +url= +repeaterCall1= +repeaterBand1=B +repeaterType1=0 +repeaterAddress1=127.0.0.1 +repeaterPort1=20011 +reflector1= +atStartup1=0 +reconnect1=0 +frequency1=434.00000 +offset1=0.0000 +rangeKms1=0.000 +latitude1=0.000000 +longitude1=0.000000 +agl1=0.000 +description1_1= +description1_2= +url1= +band1_1=0 +band1_2=0 +band1_3=0 +repeaterCall2= +repeaterBand2= +repeaterType2=0 +repeaterAddress2=127.0.0.1 +repeaterPort2=20012 +reflector2= +atStartup2=0 +reconnect2=0 +frequency2=0.00000 +offset2=0.0000 +rangeKms2=0.000 +latitude2=0.000000 +longitude2=0.000000 +agl2=0.000 +description2_1= +description2_2= +url2= +band2_1=0 +band2_2=0 +band2_3=0 +repeaterCall3= +repeaterBand3= +repeaterType3=0 +repeaterAddress3=127.0.0.1 +repeaterPort3=20013 +reflector3= +atStartup3=0 +reconnect3=0 +frequency3=0.00000 +offset3=0.0000 +rangeKms3=0.000 +latitude3=0.000000 +longitude3=0.000000 +agl3=0.000 +description3_1= +description3_2= +url3= +band3_1=0 +band3_2=0 +band3_3=0 +repeaterCall4= +repeaterBand4= +repeaterType4=0 +repeaterAddress4=127.0.0.1 +repeaterPort4=20014 +reflector4= +atStartup4=0 +reconnect4=0 +frequency4=0.00000 +offset4=0.0000 +rangeKms4=0.000 +latitude4=0.000000 +longitude4=0.000000 +agl4=0.000 +description4_1= +description4_2= +url4= +band4_1=0 +band4_2=0 +band4_3=0 +ircddbEnabled=1 +ircddbHostname=rr.openquad.net +ircddbUsername= +ircddbPassword= +ircddbEnabled2=0 +ircddbHostname2=rr.openquad.net +ircddbUsername2= +ircddbPassword2= +ircddbEnabled3=0 +ircddbHostname3= +ircddbUsername3= +ircddbPassword3= +ircddbEnabled4=0 +ircddbHostname4= +ircddbUsername4= +ircddbPassword4= +aprsEnabled=1 +aprsHostname=rotate.aprs2.net +aprsPassword= +aprsPort=14580 +dextraEnabled=1 +dextraMaxDongles=5 +dplusEnabled=0 +dplusMaxDongles=5 +dplusLogin= +dcsEnabled=1 +ccsEnabled=1 +ccsHost=CCS704 +xlxEnabled=1 +xlxHostsFileUrl=http://xlxapi.rlx.lu/api.php?do=GetReflectorHostname +starNetBand1=A +starNetCallsign1= +starNetLogoff1= +starNetInfo1= +starNetPermanent1= +starNetUserTimeout1=300 +starNetGroupTimeout1=300 +starNetCallsignSwitch1=0 +starNetTXMsgSwitch1=1 +starNetReflector1= +starNetBand2=A +starNetCallsign2= +starNetLogoff2= +starNetInfo2= +starNetPermanent2= +starNetUserTimeout2=300 +starNetGroupTimeout2=300 +starNetCallsignSwitch2=0 +starNetTXMsgSwitch2=1 +starNetReflector2= +starNetBand3=A +starNetCallsign3= +starNetLogoff3= +starNetInfo3= +starNetPermanent3= +starNetUserTimeout3=300 +starNetGroupTimeout3=300 +starNetCallsignSwitch3=0 +starNetTXMsgSwitch3=1 +starNetReflector3= +starNetBand4=A +starNetCallsign4= +starNetLogoff4= +starNetInfo4= +starNetPermanent4= +starNetUserTimeout4=300 +starNetGroupTimeout4=300 +starNetCallsignSwitch4=0 +starNetTXMsgSwitch4=1 +starNetReflector4= +starNetBand5=A +starNetCallsign5= +starNetLogoff5= +starNetInfo5= +starNetPermanent5= +starNetUserTimeout5=300 +starNetGroupTimeout5=300 +starNetCallsignSwitch5=0 +starNetTXMsgSwitch5=1 +starNetReflector5= +remoteEnabled=1 +remotePassword= +remotePort=54321 +language=0 +infoEnabled=1 +echoEnabled=1 +logEnabled=0 +dratsEnabled=0 +dtmfEnabled=1 +windowX=-1 +windowY=-1