aboutsummaryrefslogtreecommitdiff
path: root/comms/cqrlog
diff options
context:
space:
mode:
authorStephen Hurd <shurd@FreeBSD.org>2014-07-07 18:43:59 +0000
committerStephen Hurd <shurd@FreeBSD.org>2014-07-07 18:43:59 +0000
commite43afe128128a8b7ce5ef889e9f4946cc24ec58e (patch)
tree187f4bf03bb617ca12a6f2c9bd7cf178aeb75332 /comms/cqrlog
parent561b075c377d9a0967ddd81ce8f3ea875681caa6 (diff)
downloadports-e43afe128128a8b7ce5ef889e9f4946cc24ec58e.tar.gz
ports-e43afe128128a8b7ce5ef889e9f4946cc24ec58e.zip
QRLOG is an advanced ham radio logger based on MySQL database. It provides
radio control based on hamlib libraries, DX cluster connection, band map, QRZ.com/HamQTH.com callbook (XML access), IOTA support, a grayliner, propagation indicator, xplanet support (maps in azimuthal projection centered in your QTH), OK1RR free QSL manager database etc. Reviewed by: db, skreuzer Approved by: db, skreuzer (mentors) Differential Revision: https://phabric.freebsd.org/D313
Notes
Notes: svn path=/head/; revision=361115
Diffstat (limited to 'comms/cqrlog')
-rw-r--r--comms/cqrlog/Makefile49
-rw-r--r--comms/cqrlog/distinfo4
-rw-r--r--comms/cqrlog/files/environmentoptions.xml.in8
-rw-r--r--comms/cqrlog/files/patch-Makefile37
-rw-r--r--comms/cqrlog/files/patch-src_cqrlog.lpi11
-rw-r--r--comms/cqrlog/files/patch-src_dData.pas65
-rw-r--r--comms/cqrlog/files/patch-src_dUtils.pas20
-rw-r--r--comms/cqrlog/files/patch-src_fGrayline.pas11
-rw-r--r--comms/cqrlog/files/patch-src_fLoTWExport.pas11
-rw-r--r--comms/cqrlog/files/patch-src_fPreferences.pas29
-rw-r--r--comms/cqrlog/files/patch-src_fRotControl.pas11
-rw-r--r--comms/cqrlog/files/patch-src_fTRXControl.pas11
-rw-r--r--comms/cqrlog/files/patch-src_ssl_openssl_lib.pas20
-rw-r--r--comms/cqrlog/files/patch-src_synaser.pas65
-rw-r--r--comms/cqrlog/pkg-descr7
-rw-r--r--comms/cqrlog/pkg-plist310
16 files changed, 669 insertions, 0 deletions
diff --git a/comms/cqrlog/Makefile b/comms/cqrlog/Makefile
new file mode 100644
index 000000000000..5143d8abbcec
--- /dev/null
+++ b/comms/cqrlog/Makefile
@@ -0,0 +1,49 @@
+# Created by: Stephen Hurd <shurd@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME= cqrlog
+PORTVERSION= 1.7.4
+CATEGORIES= comms hamradio
+MASTER_SITES= http://www.cqrlog.com/files/cqrlog_1.7.4/ \
+ ${MASTER_SITE_LOCAL}
+MASTER_SITE_SUBDIR= shurd
+DISTNAME= ${PORTNAME}_${PORTVERSION}.src
+
+MAINTAINER= hamradio@FreeBSD.org
+COMMENT= Amateur Radio logging application
+
+LICENSE= GPLv2
+
+BUILD_DEPENDS= lazbuild:${PORTSDIR}/editors/lazarus
+LIB_DEPENDS= libhamlib.so:${PORTSDIR}/comms/hamlib
+
+WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
+USE_FPC= gtk2
+ALL_TARGET= ${PORTNAME}
+
+GETLAZDIR= ${AWK} '/cd .* .* exit/ { print $$2 }' ${LOCALBASE}/bin/lazarus
+
+pre-build:
+ ${REINPLACE_CMD} -e s!%%LAZSHAREDIR%%!`${GETLAZDIR}`!g \
+ ${WRKSRC}/environmentoptions.xml
+ # We're basically copying the entire editors/lazarus
+ # port into WRKSRC since lazbuild modifies all sorts
+ # of files in the lazarus dir during builds.
+ ${CP} -R `${GETLAZDIR}` ${WRKSRC}/lazdir
+ ${CHMOD} -R u+w ${WRKSRC}/lazdir
+
+post-patch:
+ @${SED} -e s!%%LOCALBASE%%!${LOCALBASE}!g \
+ -e s!%%MAKE_CMD%%!${MAKE_CMD}!g \
+ -e s!%%WRKSRC%%!${WRKSRC}!g \
+ ${FILESDIR}/environmentoptions.xml.in \
+ > ${WRKSRC}/environmentoptions.xml
+ ${REINPLACE_CMD} -e s!%%LOCALBASE%%!${LOCALBASE}!g \
+ ${WRKSRC}/src/dData.pas ${WRKSRC}/src/dUtils.pas \
+ ${WRKSRC}/src/fLoTWExport.pas ${WRKSRC}/src/fPreferences.pas \
+ ${WRKSRC}/src/fRotControl.pas ${WRKSRC}/src/fTRXControl.pas \
+ ${WRKSRC}/src/fGrayline.pas
+ ${REINPLACE_CMD} -e s!%%PREFIX%%!${PREFIX}!g \
+ ${WRKSRC}/src/dData.pas ${WRKSRC}/src/fGrayline.pas
+
+.include <bsd.port.mk>
diff --git a/comms/cqrlog/distinfo b/comms/cqrlog/distinfo
new file mode 100644
index 000000000000..2f3f4883b4ec
--- /dev/null
+++ b/comms/cqrlog/distinfo
@@ -0,0 +1,4 @@
+SHA256 (cqrlog_1.7.4.src.tar.gz) = c9c06fc9f0d428a63dc97a9e4d046bfc70bf3fc97be419e2a94cb21c82fbaf2e
+SIZE (cqrlog_1.7.4.src.tar.gz) = 7859696
+SHA256 (lnet-0.6.5.zip) = 6efc2dc00e63f516dc023a515ef7a9c7a09ce0256371485c382c8952ce463e2f
+SIZE (lnet-0.6.5.zip) = 247305
diff --git a/comms/cqrlog/files/environmentoptions.xml.in b/comms/cqrlog/files/environmentoptions.xml.in
new file mode 100644
index 000000000000..4c13240fe2e1
--- /dev/null
+++ b/comms/cqrlog/files/environmentoptions.xml.in
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CONFIG>
+ <EnvironmentOptions>
+ <LazarusDirectory Value="%%WRKSRC%%/lazdir"/>
+ <MakeFilename Value="%%MAKE_CMD%%"/>
+ <CompilerFilename Value="%%LOCALBASE%%/bin/fpc"/>
+ </EnvironmentOptions>
+</CONFIG>
diff --git a/comms/cqrlog/files/patch-Makefile b/comms/cqrlog/files/patch-Makefile
new file mode 100644
index 000000000000..deadeca3ed49
--- /dev/null
+++ b/comms/cqrlog/files/patch-Makefile
@@ -0,0 +1,37 @@
+--- Makefile.orig 2014-04-13 05:14:38.000000000 -0700
++++ Makefile 2014-07-01 04:04:04.000000000 -0700
+@@ -1,11 +1,12 @@
+ CC=lazbuild
+ ST=strip
+-datadir = $(DESTDIR)/usr/share/cqrlog
+-bindir = $(DESTDIR)/usr/bin
+-sharedir = $(DESTDIR)/usr/share
++datadir = $(DESTDIR)${PREFIX}/share/cqrlog
++bindir = $(DESTDIR)${PREFIX}/bin
++sharedir = $(DESTDIR)${PREFIX}/share
++mandir = $(DESTDIR)${PREFIX}
+
+ cqrlog: src/cqrlog.lpi
+- $(CC) --ws=gtk2 src/cqrlog.lpi
++ $(CC) --pcp=. --ws=gtk2 src/cqrlog.lpi
+ $(ST) src/cqrlog
+ gzip tools/cqrlog.1 -c > tools/cqrlog.1.gz
+
+@@ -29,7 +30,7 @@
+ install -d -v $(sharedir)/pixmaps/cqrlog
+ install -d -v $(sharedir)/icons
+ install -d -v $(sharedir)/applications
+- install -d -v $(sharedir)/man/man1
++ install -d -v $(mandir)/man/man1
+ install -v -m 0755 src/cqrlog $(bindir)
+ install -v -m 0755 tools/cqrlog-apparmor-fix $(datadir)/cqrlog-apparmor-fix
+ install -v -m 0644 ctyfiles/* $(datadir)/ctyfiles/
+@@ -46,7 +47,7 @@
+ install -v -m 0644 images/cqrlog.png $(sharedir)/pixmaps/cqrlog/cqrlog.png
+ install -v -m 0644 images/cqrlog.png $(sharedir)/icons/cqrlog.png
+ install -v -m 0644 src/changelog.html $(datadir)/changelog.html
+- install -v -m 0644 tools/cqrlog.1.gz $(sharedir)/man/man1/cqrlog.1.gz
++ install -v -m 0644 tools/cqrlog.1.gz $(mandir)/man/man1/cqrlog.1.gz
+ deb:
+ dpkg-buildpackage -rfakeroot -i -I
+ deb_src:
diff --git a/comms/cqrlog/files/patch-src_cqrlog.lpi b/comms/cqrlog/files/patch-src_cqrlog.lpi
new file mode 100644
index 000000000000..da9e46e84d7f
--- /dev/null
+++ b/comms/cqrlog/files/patch-src_cqrlog.lpi
@@ -0,0 +1,11 @@
+--- src/cqrlog.lpi.orig 2014-06-30 22:29:40.000000000 -0700
++++ src/cqrlog.lpi 2014-06-30 22:29:47.000000000 -0700
+@@ -633,7 +633,7 @@
+ <Version Value="9"/>
+ <SearchPaths>
+ <Libraries Value="$(LazarusDir)/lcl"/>
+- <OtherUnitFiles Value="lnet/lib;ipc;mysql"/>
++ <OtherUnitFiles Value="lnet/lib;mysql"/>
+ <SrcPath Value="$(LazarusDir)/lcl;$(LazarusDir)/lcl/interfaces/$(LCLWidgetType)"/>
+ <LCLWidgetType Value="gtk2"/>
+ </SearchPaths>
diff --git a/comms/cqrlog/files/patch-src_dData.pas b/comms/cqrlog/files/patch-src_dData.pas
new file mode 100644
index 000000000000..6f6e21ddd553
--- /dev/null
+++ b/comms/cqrlog/files/patch-src_dData.pas
@@ -0,0 +1,65 @@
+--- src/dData.pas.orig 2014-04-13 05:14:38.000000000 -0700
++++ src/dData.pas 2014-07-01 00:20:19.000000000 -0700
+@@ -850,22 +850,22 @@
+ if DirectoryExistsUTF8(fHomeDir+'members') then
+ fMembersDir := fHomeDir+'members'+PathDelim
+ else
+- fMembersDir := ExpandFileNameUTF8('..'+PathDelim+'share'+PathDelim+'cqrlog'+
++ fMembersDir := ExpandFileNameUTF8('%%PREFIX%%'+PathDelim+'share'+PathDelim+'cqrlog'+
+ PathDelim+'members'+PathDelim);
+
+ if DirectoryExistsUTF8(fHomeDir+'zipcodes') then
+ fZipCodeDir := fHomeDir+'zipcodes'+PathDelim
+ else
+- fZipCodeDir := ExpandFileNameUTF8('..'+PathDelim+'share'+PathDelim+'cqrlog')+
++ fZipCodeDir := ExpandFileNameUTF8('%%PREFIX%%'+PathDelim+'share'+PathDelim+'cqrlog')+
+ PathDelim+'zipcodes'+PathDelim;
+
+ if not DirectoryExistsUTF8(fHomeDir+'images') then
+ CreateDirUTF8(fHomeDir+'images');
+
+- fHelpDir := ExpandFileNameUTF8('..'+PathDelim+'share'+PathDelim+'cqrlog'+
++ fHelpDir := ExpandFileNameUTF8('%%PREFIX%%'+PathDelim+'share'+PathDelim+'cqrlog'+
+ PathDelim+'help'+PathDelim);
+
+- fShareDir := ExpandFileNameUTF8('..'+PathDelim+'share'+PathDelim+'cqrlog'+
++ fShareDir := ExpandFileNameUTF8('%%PREFIX%%'+PathDelim+'share'+PathDelim+'cqrlog'+
+ PathDelim);
+
+ if not DirectoryExistsUTF8(fHomeDir + 'lotw') then
+@@ -888,7 +888,7 @@
+ var
+ s,d : String;
+ begin
+- s := ExpandFileNameUTF8('..'+PathDelim+'share'+PathDelim+'cqrlog'+PathDelim+'ctyfiles'+PathDelim);
++ s := ExpandFileNameUTF8('%%PREFIX%%'+PathDelim+'share'+PathDelim+'cqrlog'+PathDelim+'ctyfiles'+PathDelim);
+ d := fHomeDir+'ctyfiles'+PathDelim;
+
+ if not FileExistsUTF8(fHomeDir+'ctyfiles'+PathDelim+'AreaOK1RR.tbl') then
+@@ -952,7 +952,7 @@
+ var
+ s,d : String;
+ begin
+- s := ExpandFileNameUTF8('..'+PathDelim+'share'+PathDelim+'cqrlog'+PathDelim+'xplanet'+PathDelim);
++ s := ExpandFileNameUTF8('%%LOCALBASE%%'+PathDelim+'share'+PathDelim+'cqrlog'+PathDelim+'xplanet'+PathDelim);
+ d := fHomeDir+'xplanet'+PathDelim;
+ if not FileExistsUTF8(d+'geoconfig') then
+ CopyFile(s+'geoconfig',d+'geoconfig')
+@@ -962,7 +962,7 @@
+ var
+ s,d : String;
+ begin
+- s := ExpandFileNameUTF8('..'+PathDelim+'share'+PathDelim+'cqrlog'+PathDelim+'voice_keyer'+PathDelim);
++ s := ExpandFileNameUTF8('%%PREFIX%%'+PathDelim+'share'+PathDelim+'cqrlog'+PathDelim+'voice_keyer'+PathDelim);
+ d := fHomeDir+'voice_keyer'+PathDelim;
+ if not FileExistsUTF8(d+'voice_keyer.sh') then
+ CopyFile(s+'voice_keyer.sh',d+'voice_keyer.sh')
+@@ -1061,7 +1061,7 @@
+ if lib <> '' then
+ fDLLUtilName := lib;
+
+- lib := FindLib('/usr/lib64/','libmysqlclient.so*');
++ lib := FindLib('%%LOCALBASE%%/lib/','libmysqlclient.so*');
+ if (lib = '') then
+ lib := FindLib('/lib64/','libmysqlclient.so*');
+ if (lib='') then
diff --git a/comms/cqrlog/files/patch-src_dUtils.pas b/comms/cqrlog/files/patch-src_dUtils.pas
new file mode 100644
index 000000000000..6628f9c10936
--- /dev/null
+++ b/comms/cqrlog/files/patch-src_dUtils.pas
@@ -0,0 +1,20 @@
+--- src/dUtils.pas.orig 2014-06-30 23:37:31.000000000 -0700
++++ src/dUtils.pas 2014-06-30 23:38:03.000000000 -0700
+@@ -2229,7 +2229,7 @@
+ proj : String = '';
+ begin
+ Result := '';
+- Result := cqrini.ReadString('xplanet','path','/usr/bin/xplanet');
++ Result := cqrini.ReadString('xplanet','path','%%LOCALBASE%%/bin/xplanet');
+ myloc := cqrini.ReadString('Station','LOC','');
+ if not FileExists(Result) then
+ begin
+@@ -2502,7 +2502,7 @@
+ if Device = '' then
+ exit;
+
+- cmd := cqrini.ReadString('TRX','Path','/usr/bin/rigctld');
++ cmd := cqrini.ReadString('TRX','Path','%%LOCALBASE%%/bin/rigctld');
+ if not FileExists(cmd) then
+ exit;
+ cmd := cmd+' --model='+rigid;
diff --git a/comms/cqrlog/files/patch-src_fGrayline.pas b/comms/cqrlog/files/patch-src_fGrayline.pas
new file mode 100644
index 000000000000..5aac09de2949
--- /dev/null
+++ b/comms/cqrlog/files/patch-src_fGrayline.pas
@@ -0,0 +1,11 @@
+--- src/fGrayline.pas.orig 2014-07-01 00:36:18.000000000 -0700
++++ src/fGrayline.pas 2014-07-01 00:36:48.000000000 -0700
+@@ -385,7 +385,7 @@
+ RBNSpotList[i].band := '';
+ ImageFile := dmData.HomeDir+'images'+PathDelim+'grayline.bmp';
+ if not FileExists(ImageFile) then
+- ImageFile := ExpandFileNameUTF8('..'+PathDelim+'share'+PathDelim+'cqrlog'+
++ ImageFile := ExpandFileNameUTF8('%%PREFIX%%'+PathDelim+'share'+PathDelim+'cqrlog'+
+ PathDelim+'images'+PathDelim+'grayline.bmp');
+ ob:=new(Pgrayline,init(ImageFile))
+ end;
diff --git a/comms/cqrlog/files/patch-src_fLoTWExport.pas b/comms/cqrlog/files/patch-src_fLoTWExport.pas
new file mode 100644
index 000000000000..b2061b7bccb1
--- /dev/null
+++ b/comms/cqrlog/files/patch-src_fLoTWExport.pas
@@ -0,0 +1,11 @@
+--- src/fLoTWExport.pas.orig 2014-06-30 23:38:20.000000000 -0700
++++ src/fLoTWExport.pas 2014-06-30 23:38:53.000000000 -0700
+@@ -232,7 +232,7 @@
+ else begin
+ WindowState := wsMaximized
+ end;
+- edtTqsl.Text := cqrini.ReadString('LoTWExp','cmd','/usr/bin/tqsl -d -l "your qth name" %f -x');
++ edtTqsl.Text := cqrini.ReadString('LoTWExp','cmd','%%LOCALBASE%%/bin/tqsl -d -l "your qth name" %f -x');
+ if pgLoTWExport.ActivePageIndex = 1 then
+ rbWebExportNotExported.SetFocus
+ end;
diff --git a/comms/cqrlog/files/patch-src_fPreferences.pas b/comms/cqrlog/files/patch-src_fPreferences.pas
new file mode 100644
index 000000000000..812994fbbd79
--- /dev/null
+++ b/comms/cqrlog/files/patch-src_fPreferences.pas
@@ -0,0 +1,29 @@
+--- src/fPreferences.pas.orig 2014-06-30 23:39:36.000000000 -0700
++++ src/fPreferences.pas 2014-06-30 23:39:52.000000000 -0700
+@@ -2471,7 +2471,7 @@
+ cb47GHz.Checked := cqrini.ReadBool('Bands', '47GHz', False);
+ cb76GHz.Checked := cqrini.ReadBool('Bands', '76GHz', False);
+
+- edtRigCtldPath.Text := cqrini.ReadString('TRX', 'RigCtldPath', '/usr/bin/rigctld');
++ edtRigCtldPath.Text := cqrini.ReadString('TRX', 'RigCtldPath', '%%LOCALBASE%%/bin/rigctld');
+
+ edtR1Device.Text := cqrini.ReadString('TRX1', 'device', '');
+ edtRigID1.Text := cqrini.ReadString('TRX1', 'model', '');
+@@ -2508,7 +2508,7 @@
+ cmbDTRR2.ItemIndex := cqrini.ReadInteger('TRX2', 'DTR', 0);
+ cmbRTSR2.ItemIndex := cqrini.ReadInteger('TRX2', 'RTS', 0);
+
+- edtRotCtldPath.Text := cqrini.ReadString('ROT', 'RotCtldPath', '/usr/bin/rotctld');
++ edtRotCtldPath.Text := cqrini.ReadString('ROT', 'RotCtldPath', '%%LOCALBASE%%/bin/rotctld');
+
+ edtRot1Device.Text := cqrini.ReadString('ROT1', 'device', '');
+ edtRot1ID.Text := cqrini.ReadString('ROT1', 'model', '');
+@@ -2725,7 +2725,7 @@
+ chkIgnoreBandFreq.Checked := cqrini.ReadBool('BandMap','IgnoreBandFreq',True);
+ chkUseNewQSOFreqMode.Checked := cqrini.ReadBool('BandMap','UseNewQSOFreqMode',False);
+
+- edtXplanetPath.Text := cqrini.ReadString('xplanet', 'path', '/usr/bin/xplanet');
++ edtXplanetPath.Text := cqrini.ReadString('xplanet', 'path', '%%LOCALBASE%%/bin/xplanet');
+ edtXHeight.Text := cqrini.ReadString('xplanet', 'height', '100');
+ edtXWidth.Text := cqrini.ReadString('xplanet', 'width', '100');
+ edtXTop.Text := cqrini.ReadString('xplanet', 'top', '10');
diff --git a/comms/cqrlog/files/patch-src_fRotControl.pas b/comms/cqrlog/files/patch-src_fRotControl.pas
new file mode 100644
index 000000000000..2ceb17577333
--- /dev/null
+++ b/comms/cqrlog/files/patch-src_fRotControl.pas
@@ -0,0 +1,11 @@
+--- src/fRotControl.pas.orig 2014-06-30 23:40:26.000000000 -0700
++++ src/fRotControl.pas 2014-06-30 23:40:33.000000000 -0700
+@@ -130,7 +130,7 @@
+ rotor.RotId := 1
+ else
+ rotor.RotId := id;
+- rotor.RotCtldPath := cqrini.ReadString('ROT','RigCtldPath','/usr/bin/rotctld');
++ rotor.RotCtldPath := cqrini.ReadString('ROT','RigCtldPath','%%LOCALBASE%%/bin/rotctld');
+ rotor.RotCtldArgs := dmUtils.GetRotorRotCtldCommandLine(StrToInt(n));
+ rotor.RunRotCtld := cqrini.ReadBool('ROT'+n,'RunRotCtld',False);
+ rotor.RotDevice := cqrini.ReadString('ROT'+n,'device','');
diff --git a/comms/cqrlog/files/patch-src_fTRXControl.pas b/comms/cqrlog/files/patch-src_fTRXControl.pas
new file mode 100644
index 000000000000..baa2dbc16a7f
--- /dev/null
+++ b/comms/cqrlog/files/patch-src_fTRXControl.pas
@@ -0,0 +1,11 @@
+--- src/fTRXControl.pas.orig 2014-06-30 23:40:59.000000000 -0700
++++ src/fTRXControl.pas 2014-06-30 23:41:05.000000000 -0700
+@@ -658,7 +658,7 @@
+ else
+ radio.RigId := id;
+ //Writeln('huu4');
+- radio.RigCtldPath := cqrini.ReadString('TRX','RigCtldPath','/usr/bin/rigctld');
++ radio.RigCtldPath := cqrini.ReadString('TRX','RigCtldPath','%%LOCALBASE%%/bin/rigctld');
+ radio.RigCtldArgs := dmUtils.GetRadioRigCtldCommandLine(StrToInt(n));
+ radio.RunRigCtld := cqrini.ReadBool('TRX'+n,'RunRigCtld',False);
+ radio.RigDevice := cqrini.ReadString('TRX'+n,'device','');
diff --git a/comms/cqrlog/files/patch-src_ssl_openssl_lib.pas b/comms/cqrlog/files/patch-src_ssl_openssl_lib.pas
new file mode 100644
index 000000000000..ca5ce8d7e7da
--- /dev/null
+++ b/comms/cqrlog/files/patch-src_ssl_openssl_lib.pas
@@ -0,0 +1,20 @@
+--- src/ssl_openssl_lib.pas.orig 2014-06-30 22:02:45.000000000 -0700
++++ src/ssl_openssl_lib.pas 2014-06-30 22:04:17.000000000 -0700
+@@ -86,7 +86,7 @@
+
+ {$IFDEF CIL}
+ const
+- {$IFDEF LINUX}
++ {$IFNDEF WIN32}
+ DLLSSLName = 'libssl.so';
+ DLLUtilName = 'libcrypto.so';
+ {$ELSE}
+@@ -1704,7 +1704,7 @@
+ {$ELSE}
+ SSLLibHandle := LoadLib(DLLSSLName);
+ SSLUtilHandle := LoadLib(DLLUtilName);
+- {$IFNDEF LINUX}
++ {$IFDEF WIN32}
+ if (SSLLibHandle = 0) then
+ SSLLibHandle := LoadLib(DLLSSLName2);
+ {$ENDIF}
diff --git a/comms/cqrlog/files/patch-src_synaser.pas b/comms/cqrlog/files/patch-src_synaser.pas
new file mode 100644
index 000000000000..72930edd8865
--- /dev/null
+++ b/comms/cqrlog/files/patch-src_synaser.pas
@@ -0,0 +1,65 @@
+--- src/synaser.pas.orig 2014-06-30 22:04:41.000000000 -0700
++++ src/synaser.pas 2014-06-30 22:21:53.000000000 -0700
+@@ -302,7 +302,7 @@
+ procedure DcbToTermios(const dcb: TDCB; var term: termios); virtual;
+ procedure TermiosToDcb(const term: termios; var dcb: TDCB); virtual;
+ {$ENDIF}
+-{$IFDEF LINUX}
++{$IFDEF UNIX}
+ function ReadLockfile: integer; virtual;
+ function LockfileName: String; virtual;
+ procedure CreateLockfile(PidNr: integer); virtual;
+@@ -591,7 +591,7 @@
+
+ {:Raise Synaser error with ErrNumber code. Usually used by internal routines.}
+ procedure RaiseSynaError(ErrNumber: integer); virtual;
+-{$IFDEF LINUX}
++{$IFDEF UNIX}
+ function cpomComportAccessible: boolean; virtual;{HGJ}
+ procedure cpomReleaseComport; virtual; {HGJ}
+ {$ENDIF}
+@@ -766,7 +766,7 @@
+ end;
+ if InstanceActive then
+ begin
+- {$IFDEF LINUX}
++ {$IFDEF UNIX}
+ if FLinuxLock then
+ cpomReleaseComport;
+ {$ENDIF}
+@@ -917,7 +917,7 @@
+ FHandle := THandle(fpOpen(FDevice, O_RDWR or O_SYNC));
+ {$ENDIF}
+ SerialCheck(integer(FHandle));
+- {$IFDEF LINUX}
++ {$IFDEF UNIX}
+ if FLastError <> sOK then
+ if FLinuxLock then
+ cpomReleaseComport;
+@@ -949,7 +949,7 @@
+ begin
+ SetSynaError(ErrNoDeviceAnswer);
+ FileClose(integer(FHandle)); {HGJ}
+- {$IFDEF LINUX}
++ {$IFDEF UNIX}
+ if FLinuxLock then
+ cpomReleaseComport; {HGJ}
+ {$ENDIF} {HGJ}
+@@ -1899,7 +1899,7 @@
+ {$IFNDEF FPC}
+ SerialCheck(ioctl(integer(FHandle), TCFLSH, TCIOFLUSH));
+ {$ELSE}
+- SerialCheck(fpioctl(integer(FHandle), TCFLSH, Pointer(PtrInt(TCIOFLUSH))));
++ SerialCheck(TCFlush(integer(FHandle), TCIOFLUSH));
+ //SerialCheck(fpioctl(integer(FHandle), TCFLSH, TCIOFLUSH));
+ {$ENDIF}
+ FBuffer := '';
+@@ -2136,7 +2136,7 @@
+ Ownership Manager.
+ }
+
+-{$IFDEF LINUX}
++{$IFDEF UNIX}
+
+ function TBlockSerial.LockfileName: String;
+ var
diff --git a/comms/cqrlog/pkg-descr b/comms/cqrlog/pkg-descr
new file mode 100644
index 000000000000..e26dffe3b142
--- /dev/null
+++ b/comms/cqrlog/pkg-descr
@@ -0,0 +1,7 @@
+CQRLOG is an advanced ham radio logger based on MySQL database. It provides
+radio control based on hamlib libraries, DX cluster connection, band map,
+QRZ.com/HamQTH.com callbook (XML access), IOTA support, a grayliner,
+propagation indicator, xplanet support (maps in azimuthal projection centered
+in your QTH), OK1RR free QSL manager database etc.
+
+WWW: http://www.cqrlog.com/
diff --git a/comms/cqrlog/pkg-plist b/comms/cqrlog/pkg-plist
new file mode 100644
index 000000000000..f7cf0aeca561
--- /dev/null
+++ b/comms/cqrlog/pkg-plist
@@ -0,0 +1,310 @@
+bin/cqrlog
+share/applications/cqrlog.desktop
+%%DATADIR%%/changelog.html
+%%DATADIR%%/cqrlog-apparmor-fix
+%%DATADIR%%/ctyfiles/Ambiguous.tbl
+%%DATADIR%%/ctyfiles/AreaOK1RR.tbl
+%%DATADIR%%/ctyfiles/CallResolution.tbl
+%%DATADIR%%/ctyfiles/Country.tab
+%%DATADIR%%/ctyfiles/CountryDel.tab
+%%DATADIR%%/ctyfiles/Exceptions.tab
+%%DATADIR%%/ctyfiles/Exceptions.tbl
+%%DATADIR%%/ctyfiles/MASTER.DTA
+%%DATADIR%%/ctyfiles/MASTER.SCP
+%%DATADIR%%/ctyfiles/README
+%%DATADIR%%/ctyfiles/eqsl.txt
+%%DATADIR%%/ctyfiles/iota.tbl
+%%DATADIR%%/ctyfiles/lotw1.txt
+%%DATADIR%%/ctyfiles/qslmgr.csv
+%%DATADIR%%/help/cwd.html
+%%DATADIR%%/help/h1.html
+%%DATADIR%%/help/h20.html
+%%DATADIR%%/help/h21.html
+%%DATADIR%%/help/h22.html
+%%DATADIR%%/help/h23.html
+%%DATADIR%%/help/h24.html
+%%DATADIR%%/help/h25.html
+%%DATADIR%%/help/h26.html
+%%DATADIR%%/help/h27.html
+%%DATADIR%%/help/h3.html
+%%DATADIR%%/help/h4.html
+%%DATADIR%%/help/h5.html
+%%DATADIR%%/help/h6.html
+%%DATADIR%%/help/h7.html
+%%DATADIR%%/help/h8.html
+%%DATADIR%%/help/img/bulb.png
+%%DATADIR%%/help/img/c03.jpg
+%%DATADIR%%/help/img/cwdaem.png
+%%DATADIR%%/help/img/exc.png
+%%DATADIR%%/help/img/h1.png
+%%DATADIR%%/help/img/h10.png
+%%DATADIR%%/help/img/h100.png
+%%DATADIR%%/help/img/h101.png
+%%DATADIR%%/help/img/h102.png
+%%DATADIR%%/help/img/h103.png
+%%DATADIR%%/help/img/h104.png
+%%DATADIR%%/help/img/h105.png
+%%DATADIR%%/help/img/h106.png
+%%DATADIR%%/help/img/h107.png
+%%DATADIR%%/help/img/h108.png
+%%DATADIR%%/help/img/h109.png
+%%DATADIR%%/help/img/h11.png
+%%DATADIR%%/help/img/h110.png
+%%DATADIR%%/help/img/h111.png
+%%DATADIR%%/help/img/h1112.png
+%%DATADIR%%/help/img/h1114.png
+%%DATADIR%%/help/img/h1116.png
+%%DATADIR%%/help/img/h112.png
+%%DATADIR%%/help/img/h113.png
+%%DATADIR%%/help/img/h114.png
+%%DATADIR%%/help/img/h115.png
+%%DATADIR%%/help/img/h116.png
+%%DATADIR%%/help/img/h12.png
+%%DATADIR%%/help/img/h13.png
+%%DATADIR%%/help/img/h14.png
+%%DATADIR%%/help/img/h15.png
+%%DATADIR%%/help/img/h16.png
+%%DATADIR%%/help/img/h17.png
+%%DATADIR%%/help/img/h18.png
+%%DATADIR%%/help/img/h19.png
+%%DATADIR%%/help/img/h2.png
+%%DATADIR%%/help/img/h20.png
+%%DATADIR%%/help/img/h21.png
+%%DATADIR%%/help/img/h22.png
+%%DATADIR%%/help/img/h23.png
+%%DATADIR%%/help/img/h24.png
+%%DATADIR%%/help/img/h25.png
+%%DATADIR%%/help/img/h26.png
+%%DATADIR%%/help/img/h27.png
+%%DATADIR%%/help/img/h28.png
+%%DATADIR%%/help/img/h29.png
+%%DATADIR%%/help/img/h3.png
+%%DATADIR%%/help/img/h30.png
+%%DATADIR%%/help/img/h31.png
+%%DATADIR%%/help/img/h32.png
+%%DATADIR%%/help/img/h33.png
+%%DATADIR%%/help/img/h34.png
+%%DATADIR%%/help/img/h35.png
+%%DATADIR%%/help/img/h36.png
+%%DATADIR%%/help/img/h37.png
+%%DATADIR%%/help/img/h38.png
+%%DATADIR%%/help/img/h39.png
+%%DATADIR%%/help/img/h4.html
+%%DATADIR%%/help/img/h4.png
+%%DATADIR%%/help/img/h40.png
+%%DATADIR%%/help/img/h41.png
+%%DATADIR%%/help/img/h42.png
+%%DATADIR%%/help/img/h43.png
+%%DATADIR%%/help/img/h44.png
+%%DATADIR%%/help/img/h45.png
+%%DATADIR%%/help/img/h46.png
+%%DATADIR%%/help/img/h47.png
+%%DATADIR%%/help/img/h48.png
+%%DATADIR%%/help/img/h49.png
+%%DATADIR%%/help/img/h5.png
+%%DATADIR%%/help/img/h50.png
+%%DATADIR%%/help/img/h51.png
+%%DATADIR%%/help/img/h52.png
+%%DATADIR%%/help/img/h53.png
+%%DATADIR%%/help/img/h54.png
+%%DATADIR%%/help/img/h55.png
+%%DATADIR%%/help/img/h56.png
+%%DATADIR%%/help/img/h57.png
+%%DATADIR%%/help/img/h58.png
+%%DATADIR%%/help/img/h59.png
+%%DATADIR%%/help/img/h6.png
+%%DATADIR%%/help/img/h60.png
+%%DATADIR%%/help/img/h61.png
+%%DATADIR%%/help/img/h62.png
+%%DATADIR%%/help/img/h63.png
+%%DATADIR%%/help/img/h64.png
+%%DATADIR%%/help/img/h65.png
+%%DATADIR%%/help/img/h66.png
+%%DATADIR%%/help/img/h67.png
+%%DATADIR%%/help/img/h68.png
+%%DATADIR%%/help/img/h69.png
+%%DATADIR%%/help/img/h7.png
+%%DATADIR%%/help/img/h70.png
+%%DATADIR%%/help/img/h71.png
+%%DATADIR%%/help/img/h72.png
+%%DATADIR%%/help/img/h73.png
+%%DATADIR%%/help/img/h74.png
+%%DATADIR%%/help/img/h75.png
+%%DATADIR%%/help/img/h76.png
+%%DATADIR%%/help/img/h77.png
+%%DATADIR%%/help/img/h78.png
+%%DATADIR%%/help/img/h79.png
+%%DATADIR%%/help/img/h8.png
+%%DATADIR%%/help/img/h80.png
+%%DATADIR%%/help/img/h81.png
+%%DATADIR%%/help/img/h82.png
+%%DATADIR%%/help/img/h83.png
+%%DATADIR%%/help/img/h84.png
+%%DATADIR%%/help/img/h85.png
+%%DATADIR%%/help/img/h86.png
+%%DATADIR%%/help/img/h87.png
+%%DATADIR%%/help/img/h88.png
+%%DATADIR%%/help/img/h89.png
+%%DATADIR%%/help/img/h9.png
+%%DATADIR%%/help/img/h90.png
+%%DATADIR%%/help/img/h91.png
+%%DATADIR%%/help/img/h92.png
+%%DATADIR%%/help/img/h93.png
+%%DATADIR%%/help/img/h94.png
+%%DATADIR%%/help/img/h95.png
+%%DATADIR%%/help/img/h96.png
+%%DATADIR%%/help/img/h97.png
+%%DATADIR%%/help/img/h98.png
+%%DATADIR%%/help/img/h99.png
+%%DATADIR%%/help/img/line.png
+%%DATADIR%%/help/img/note.png
+%%DATADIR%%/help/index.html
+%%DATADIR%%/help/sql_console.html
+%%DATADIR%%/help/wkusb.html
+%%DATADIR%%/images/BigEarth.bmp
+%%DATADIR%%/images/HamQTH.png
+%%DATADIR%%/images/bck.png
+%%DATADIR%%/images/cqrlog.ico
+%%DATADIR%%/images/cqrlog.png
+%%DATADIR%%/images/delete.png
+%%DATADIR%%/images/dxcc_stat.xpm
+%%DATADIR%%/images/edit.png
+%%DATADIR%%/images/edwn.xpm
+%%DATADIR%%/images/eqsl_dwn.png
+%%DATADIR%%/images/eqsl_up.png
+%%DATADIR%%/images/eupl.xpm
+%%DATADIR%%/images/filter.png
+%%DATADIR%%/images/grayline.bmp
+%%DATADIR%%/images/menu_new.png
+%%DATADIR%%/images/my_view.png
+%%DATADIR%%/images/options.xpm
+%%DATADIR%%/images/properties.png
+%%DATADIR%%/images/quit.png
+%%DATADIR%%/images/quit.xpm
+%%DATADIR%%/images/radio.bmp
+%%DATADIR%%/images/search.png
+%%DATADIR%%/images/sort.xpm
+%%DATADIR%%/images/splash.png
+%%DATADIR%%/images/sun.png
+%%DATADIR%%/images/sunrise.png
+%%DATADIR%%/images/sunrise_small.png
+%%DATADIR%%/images/sunset.png
+%%DATADIR%%/images/sunset_small.bmp
+%%DATADIR%%/images/sunset_small.jpg
+%%DATADIR%%/images/sunset_small.png
+%%DATADIR%%/images/sunset_small_.png
+%%DATADIR%%/images/uses_eqsl.png
+%%DATADIR%%/images/view.png
+%%DATADIR%%/members/070-club.txt
+%%DATADIR%%/members/9acwg.txt
+%%DATADIR%%/members/a1-club.txt
+%%DATADIR%%/members/a1-op.txt
+%%DATADIR%%/members/afm.txt
+%%DATADIR%%/members/agcw.txt
+%%DATADIR%%/members/arktika.txt
+%%DATADIR%%/members/armi.txt
+%%DATADIR%%/members/bcc.txt
+%%DATADIR%%/members/bmars.txt
+%%DATADIR%%/members/bscc.txt
+%%DATADIR%%/members/cav.txt
+%%DATADIR%%/members/cct.txt
+%%DATADIR%%/members/cdxc.txt
+%%DATADIR%%/members/cfo.txt
+%%DATADIR%%/members/cft.txt
+%%DATADIR%%/members/conveniat.txt
+%%DATADIR%%/members/ctc.txt
+%%DATADIR%%/members/cwjf.txt
+%%DATADIR%%/members/cwops.txt
+%%DATADIR%%/members/cwsp.txt
+%%DATADIR%%/members/dig.txt
+%%DATADIR%%/members/dtc.txt
+%%DATADIR%%/members/ehsc.txt
+%%DATADIR%%/members/epc.txt
+%%DATADIR%%/members/ffr.txt
+%%DATADIR%%/members/fhc.txt
+%%DATADIR%%/members/firac.txt
+%%DATADIR%%/members/fists.txt
+%%DATADIR%%/members/fmc.txt
+%%DATADIR%%/members/fnars.txt
+%%DATADIR%%/members/foc.txt
+%%DATADIR%%/members/foc_names.txt
+%%DATADIR%%/members/fog.txt
+%%DATADIR%%/members/gacw.txt
+%%DATADIR%%/members/gdxf.txt
+%%DATADIR%%/members/gqrpc.txt
+%%DATADIR%%/members/hacwg.txt
+%%DATADIR%%/members/hh.txt
+%%DATADIR%%/members/hhc.txt
+%%DATADIR%%/members/hsc.txt
+%%DATADIR%%/members/htc.txt
+%%DATADIR%%/members/inorc.txt
+%%DATADIR%%/members/jaig.txt
+%%DATADIR%%/members/marac.txt
+%%DATADIR%%/members/marconista.txt
+%%DATADIR%%/members/mcl.txt
+%%DATADIR%%/members/mcwg.txt
+%%DATADIR%%/members/mdxg.txt
+%%DATADIR%%/members/mf.txt
+%%DATADIR%%/members/mfca.txt
+%%DATADIR%%/members/naqcc.txt
+%%DATADIR%%/members/nra.txt
+%%DATADIR%%/members/okdxc.txt
+%%DATADIR%%/members/okdxf.txt
+%%DATADIR%%/members/okqrp.txt
+%%DATADIR%%/members/omiss.txt
+%%DATADIR%%/members/ootc.txt
+%%DATADIR%%/members/otc-sara.txt
+%%DATADIR%%/members/prc.txt
+%%DATADIR%%/members/prl.txt
+%%DATADIR%%/members/pro.txt
+%%DATADIR%%/members/qcwa.txt
+%%DATADIR%%/members/qthloc.txt
+%%DATADIR%%/members/rafars.txt
+%%DATADIR%%/members/rcwc.txt
+%%DATADIR%%/members/ria.txt
+%%DATADIR%%/members/rnars.txt
+%%DATADIR%%/members/rrdxa.txt
+%%DATADIR%%/members/rsars.txt
+%%DATADIR%%/members/rtc.txt
+%%DATADIR%%/members/sdxg.txt
+%%DATADIR%%/members/shsc.txt
+%%DATADIR%%/members/skcc.txt
+%%DATADIR%%/members/spar-rcc.txt
+%%DATADIR%%/members/spar.txt
+%%DATADIR%%/members/spcwc.txt
+%%DATADIR%%/members/spdxc.txt
+%%DATADIR%%/members/ten-ten.txt
+%%DATADIR%%/members/tenten.txt
+%%DATADIR%%/members/tfc.txt
+%%DATADIR%%/members/trc.txt
+%%DATADIR%%/members/udxc.txt
+%%DATADIR%%/members/uft.txt
+%%DATADIR%%/members/uksmg.txt
+%%DATADIR%%/members/vhsc.txt
+%%DATADIR%%/members/vrk.txt
+%%DATADIR%%/members/wap.txt
+%%DATADIR%%/members/was.txt
+%%DATADIR%%/members/wcc.txt
+%%DATADIR%%/members/wff.txt
+%%DATADIR%%/members/wwyc.txt
+%%DATADIR%%/members/yasme.txt
+%%DATADIR%%/voice_keyer/F10.mp3
+%%DATADIR%%/voice_keyer/README
+%%DATADIR%%/voice_keyer/voice_keyer.sh
+%%DATADIR%%/xplanet/geoconfig
+%%DATADIR%%/zipcodes/italy-prov.txt
+%%DATADIR%%/zipcodes/usa-ca.txt
+%%DATADIR%%/zipcodes/usa-states.txt
+share/icons/cqrlog.png
+man/man1/cqrlog.1.gz
+share/pixmaps/cqrlog/cqrlog.png
+@dirrmtry share/pixmaps/cqrlog
+@dirrmtry %%DATADIR%%/ctyfiles
+@dirrmtry %%DATADIR%%/help/img
+@dirrmtry %%DATADIR%%/help
+@dirrmtry %%DATADIR%%/images
+@dirrmtry %%DATADIR%%/members
+@dirrmtry %%DATADIR%%/voice_keyer
+@dirrmtry %%DATADIR%%/xplanet
+@dirrmtry %%DATADIR%%/zipcodes
+@dirrmtry %%DATADIR%%