aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--comms/trustedqsl/Makefile8
-rw-r--r--comms/trustedqsl/distinfo4
-rw-r--r--comms/trustedqsl/files/patch-CMakeLists.txt12
-rw-r--r--comms/trustedqsl/files/patch-apps_CMakeLists.txt11
-rw-r--r--comms/trustedqsl/files/patch-apps_tqsl.cpp22
-rw-r--r--comms/trustedqsl/files/patch-cmakemodules_FindBDB.cmake37
-rw-r--r--comms/trustedqsl/files/patch-src_converter.cpp6
-rw-r--r--comms/trustedqsl/files/patch-src_gen__crq.cpp (renamed from comms/trustedqsl/files/patch-src_gen_crq.cpp)15
-rw-r--r--comms/trustedqsl/files/patch-src_location.cpp137
-rw-r--r--comms/trustedqsl/files/patch-src_openssl__cert.cpp60
-rw-r--r--comms/trustedqsl/files/patch-src_openssl_cert.cpp36
-rw-r--r--comms/trustedqsl/files/patch-src_tqslconvert.cpp22
-rw-r--r--comms/trustedqsl/files/patch-src_xml.cpp24
-rw-r--r--comms/trustedqsl/files/patch-src_xml.h45
-rw-r--r--comms/trustedqsl/pkg-plist33
15 files changed, 299 insertions, 173 deletions
diff --git a/comms/trustedqsl/Makefile b/comms/trustedqsl/Makefile
index 8b0dacda1134..2e4404fbedc8 100644
--- a/comms/trustedqsl/Makefile
+++ b/comms/trustedqsl/Makefile
@@ -1,10 +1,10 @@
# $FreeBSD$
PORTNAME= trustedqsl
-PORTVERSION= 2.0.3
-PORTREVISION= 3
+PORTVERSION= 2.1.3
CATEGORIES= comms hamradio
-MASTER_SITES= SF/${PORTNAME}/TrustedQSL/v${PORTVERSION}/
+MASTER_SITES= http://www.arrl.org/files/file/LoTW%20Instructions/ \
+ LOCAL/shurd
DISTNAME= tqsl-${PORTVERSION}
MAINTAINER= hamradio@FreeBSD.org
@@ -21,7 +21,7 @@ USE_BDB= 5+
PKGMESSAGE= ${WRKDIR}/pkg-message
-USES= cmake compiler:features pkgconfig
+USES= cmake compiler:features pkgconfig tar:tgz
CMAKE_ARGS= -DBDB_PREFIX=${LOCALBASE}
USE_WX= 2.8+
WX_UNICODE= yes
diff --git a/comms/trustedqsl/distinfo b/comms/trustedqsl/distinfo
index ac3bccf3a7ef..367973bf8021 100644
--- a/comms/trustedqsl/distinfo
+++ b/comms/trustedqsl/distinfo
@@ -1,2 +1,2 @@
-SHA256 (tqsl-2.0.3.tar.gz) = 050e721be840c311a27034bd732a00a2aac304c37f7f8fca2af61c9709dd123f
-SIZE (tqsl-2.0.3.tar.gz) = 2764339
+SHA256 (tqsl-2.1.3.tgz) = 188437fdb37eb966336abbfaa0e33d83488567504e8fc87589eca7bbf7b84472
+SIZE (tqsl-2.1.3.tgz) = 3443675
diff --git a/comms/trustedqsl/files/patch-CMakeLists.txt b/comms/trustedqsl/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..a2ecacf68efa
--- /dev/null
+++ b/comms/trustedqsl/files/patch-CMakeLists.txt
@@ -0,0 +1,12 @@
+--- CMakeLists.txt.orig 2015-10-21 17:26:38 UTC
++++ CMakeLists.txt
+@@ -15,6 +15,9 @@ find_package(OptionalAddSubdirectory REQ
+
+ option(USE_STATIC_MSVCRT "Use a static Visual C++ Runtime when building with MSVC")
+
++if(UNIX)
++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1y")
++endif()
+ if(MSVC AND USE_STATIC_MSVCRT)
+ foreach(flag_var
+ CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
diff --git a/comms/trustedqsl/files/patch-apps_CMakeLists.txt b/comms/trustedqsl/files/patch-apps_CMakeLists.txt
index f0c8ec422404..80cd35358011 100644
--- a/comms/trustedqsl/files/patch-apps_CMakeLists.txt
+++ b/comms/trustedqsl/files/patch-apps_CMakeLists.txt
@@ -1,9 +1,9 @@
---- apps/CMakeLists.txt 2014-05-08 17:59:25.000000000 -0700
-+++ ../../work.fixed/tqsl-2.0.2/apps/CMakeLists.txt 2014-05-24 00:46:38.000000000 -0700
-@@ -149,6 +149,10 @@
+--- apps/CMakeLists.txt.orig 2015-11-29 00:14:00 UTC
++++ apps/CMakeLists.txt
+@@ -148,7 +148,11 @@ if(NOT APPLE AND NOT WIN32)
+ add_definitions("-DCONFDIR=\"${CMAKE_INSTALL_PREFIX}/share/TrustedQSL/\"")
install(TARGETS tqsl DESTINATION bin)
install(DIRECTORY help DESTINATION share/TrustedQSL)
- install(FILES ca-bundle.crt DESTINATION share/TrustedQSL)
- install(FILES tqsl.5 DESTINATION share/man/man5)
+ if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+ install(FILES tqsl.5 DESTINATION man/man5)
@@ -11,4 +11,5 @@
+ install(FILES tqsl.5 DESTINATION share/man/man5)
+ endif()
install(FILES icons/key48.png DESTINATION share/pixmaps RENAME TrustedQSL.png)
- endif()
+ install(FILES lang/de/tqslapp.mo DESTINATION share/locale/de/LC_MESSAGES)
+ install(FILES lang/de/wxstd.mo DESTINATION share/locale/de/LC_MESSAGES)
diff --git a/comms/trustedqsl/files/patch-apps_tqsl.cpp b/comms/trustedqsl/files/patch-apps_tqsl.cpp
index b1e939d23f46..483344f94d51 100644
--- a/comms/trustedqsl/files/patch-apps_tqsl.cpp
+++ b/comms/trustedqsl/files/patch-apps_tqsl.cpp
@@ -1,11 +1,11 @@
---- apps/tqsl.cpp 2014-05-08 17:59:25.000000000 -0700
-+++ ../../work.fixed/tqsl-2.0.2/apps/tqsl.cpp 2014-05-24 00:30:44.000000000 -0700
-@@ -54,7 +54,7 @@
- #endif
- #include <zlib.h>
- #include <openssl/opensslv.h> // only for version info!
--#include <db.h> //only for version info!
-+#include <db5/db.h> //only for version info!
-
- #include <iostream>
- #include <fstream>
+--- apps/tqsl.cpp.orig 2015-10-21 17:26:38 UTC
++++ apps/tqsl.cpp
+@@ -4680,7 +4680,7 @@ QSLApp::OnInit() {
+ for (int i = 1; i < argc; i++) {
+ origCommandLine += wxT(" ");
+ origCommandLine += argv[i];
+- if (argv[i] && (argv[i][0] == wxT('-') || argv[i][0] == wxT('/')))
++ if (argv[i] != NULL && (argv[i][0] == wxT('-') || argv[i][0] == wxT('/')))
+ if (wxIsalpha(argv[i][1]) && wxIsupper(argv[i][1]))
+ argv[i][1] = wxTolower(argv[i][1]);
+ }
diff --git a/comms/trustedqsl/files/patch-cmakemodules_FindBDB.cmake b/comms/trustedqsl/files/patch-cmakemodules_FindBDB.cmake
index b32a49ba7bae..f89e5f446caa 100644
--- a/comms/trustedqsl/files/patch-cmakemodules_FindBDB.cmake
+++ b/comms/trustedqsl/files/patch-cmakemodules_FindBDB.cmake
@@ -1,22 +1,37 @@
---- cmakemodules/FindBDB.cmake.orig 2014-05-08 17:59:25.000000000 -0700
-+++ cmakemodules/FindBDB.cmake 2014-05-24 01:29:11.000000000 -0700
-@@ -6,6 +6,7 @@
+--- cmakemodules/FindBDB.cmake.orig 2015-10-21 17:26:38 UTC
++++ cmakemodules/FindBDB.cmake
+@@ -1,10 +1,12 @@
+ # Find Berkeley DB
+
+ # Look for the header file.
+-if(APPLE) #exclude obsolete default OSX db
++if(APPLE OR CMAKE_HOST_SYSTEM_NAME STREQUAL "FreeBSD") #exclude obsolete default OSX db
+ FIND_PATH(BDB_INCLUDE_DIR db.h NO_DEFAULT_PATH PATHS
"/usr/local/BerkeleyDB.6.0/include"
"/usr/local/BerkeleyDB.5.3/include"
- "${BDB_PREFIX}/include"
++ "/usr/local/include/db5"
+ "${BDB_PREFIX}/include/db5"
+ "${BDB_PREFIX}/include"
)
else()
- FIND_PATH(BDB_INCLUDE_DIR db.h
-@@ -29,6 +30,7 @@
+@@ -15,6 +17,8 @@ FIND_PATH(BDB_INCLUDE_DIR db.h
+ "C:\\db-6.0.20\\build_windows"
+ "C:\\db-6.0.20\\build_windows"
+ "C:\\db-5.3.21\\build_windows"
++ #*nix dirs
++ "${BDB_PREFIX}/include"
+ )
+ endif()
+ MARK_AS_ADVANCED(BDB_INCLUDE_DIR)
+@@ -31,6 +35,7 @@ FIND_LIBRARY(BDB_LIBRARY NAMES
+ libdb6-0.3
+ libdb6-0.so
+ libdb_small53s
++ libdb5
libdb53s
libdb5-5.3
libdb5-5.so
-+ libdb5
- PATHS
- "C:\\db-6.0.20\\build_windows\\Win32\\Static Release\\"
- "C:\\db-6.0.20\\build_windows\\Win32\\Static_Release\\" #vc08 adds underscore
-@@ -38,6 +40,7 @@
+@@ -45,6 +50,7 @@ FIND_LIBRARY(BDB_LIBRARY NAMES
"/usr/local/BerkeleyDB.6.0/lib"
"/usr/local/BerkeleyDB.5.3/lib"
"${BDB_PREFIX}/lib"
diff --git a/comms/trustedqsl/files/patch-src_converter.cpp b/comms/trustedqsl/files/patch-src_converter.cpp
index b881199733b5..99bf4473f133 100644
--- a/comms/trustedqsl/files/patch-src_converter.cpp
+++ b/comms/trustedqsl/files/patch-src_converter.cpp
@@ -1,6 +1,6 @@
---- src/converter.cpp.orig 2014-07-17 03:34:36.000000000 -0700
-+++ src/converter.cpp 2014-07-17 03:36:07.000000000 -0700
-@@ -88,7 +88,7 @@
+--- src/converter.cpp.orig 2015-10-21 17:26:38 UTC
++++ src/converter.cpp
+@@ -88,7 +88,7 @@ main(int argc, char *argv[]) {
optind++;
const char *ofile = (optind < argc) ? argv[optind] : "converted.tq7";
ofstream out;
diff --git a/comms/trustedqsl/files/patch-src_gen_crq.cpp b/comms/trustedqsl/files/patch-src_gen__crq.cpp
index f5c1cbb3dcbd..78df08360561 100644
--- a/comms/trustedqsl/files/patch-src_gen_crq.cpp
+++ b/comms/trustedqsl/files/patch-src_gen__crq.cpp
@@ -1,6 +1,6 @@
---- src/gen_crq.cpp.orig 2014-07-17 03:33:28.000000000 -0700
-+++ src/gen_crq.cpp 2014-07-17 03:34:02.000000000 -0700
-@@ -99,9 +99,9 @@
+--- src/gen_crq.cpp.orig 2015-10-21 17:26:38 UTC
++++ src/gen_crq.cpp
+@@ -99,9 +99,9 @@ main(int argc, char *argv[]) {
throw tqslexc();
if (tqsl_getCertificateDXCCEntity(sign_cert, &cdxcc))
throw tqslexc();
@@ -13,7 +13,7 @@
if (tqsl_beginSigning(sign_cert, const_cast<char *>(""), 0, 0))
throw tqslexc();
}
-@@ -124,7 +124,7 @@
+@@ -124,13 +124,13 @@ main(int argc, char *argv[]) {
*cp = '_';
}
string filename = string(argv[optind]) + ".tq5";
@@ -22,3 +22,10 @@
if (tqsl_createCertRequest(filename.c_str(), &crq, 0, 0))
throw tqslexc();
}
+ return EXIT_SUCCESS;
+ } catch(exception& x) {
+- cerr << "Aborting: " << x.what() << endl;
++ std::cerr << "Aborting: " << x.what() << endl;
+ return EXIT_FAILURE;
+ }
+ return EXIT_SUCCESS;
diff --git a/comms/trustedqsl/files/patch-src_location.cpp b/comms/trustedqsl/files/patch-src_location.cpp
index edb585de6dcd..4495925e5746 100644
--- a/comms/trustedqsl/files/patch-src_location.cpp
+++ b/comms/trustedqsl/files/patch-src_location.cpp
@@ -1,6 +1,6 @@
---- src/location.cpp.orig 2014-07-12 13:18:13.000000000 -0700
-+++ src/location.cpp 2014-07-18 05:40:36.000000000 -0700
-@@ -1957,7 +1957,7 @@
+--- src/location.cpp.orig 2015-10-21 17:26:38 UTC
++++ src/location.cpp
+@@ -2226,7 +2226,7 @@ tqsl_load_loc(TQSL_LOCATION *loc, XMLEle
if (field.gabbi_name != "") {
// A field that may exist
XMLElement el;
@@ -9,30 +9,104 @@
field.cdata = el.getText();
switch (field.input_type) {
case TQSL_LOCATION_FIELD_DDLIST:
-@@ -2086,11 +2086,11 @@
- for (ep = ellist.find("StationData"); ep != ellist.end(); ep++) {
- if (ep->first != "StationData")
+@@ -2368,7 +2368,7 @@ tqsl_mergeStationLocations(const char *l
+ for (nameiter = namelist.find("StationData"); nameiter != namelist.end(); nameiter++) {
+ if (nameiter->first != "StationData")
break;
-- pair<string, bool> rval = ep->second.getAttribute("name");
-+ pair<string, bool> rval = ep->second->getAttribute("name");
+- pair<string, bool> rval = nameiter->second.getAttribute("name");
++ pair<string, bool> rval = nameiter->second->getAttribute("name");
if (rval.second) {
- TQSL_LOCATION *oldloc;
- TQSL_LOCATION *newloc;
-- ep->second.getFirstElement("CALL", call);
-+ ep->second->getFirstElement("CALL", call);
- for (size_t j = 0; j < calls.size(); j++) {
- if (calls[j] == call.getText()) {
- if (tqsl_getStationLocation(reinterpret_cast<tQSL_Location *>(&oldloc), rval.first.c_str())) { // Location doesn't exist
-@@ -2125,7 +2125,7 @@
+ locnames.push_back(rval.first);
+ }
+@@ -2381,7 +2381,7 @@ tqsl_mergeStationLocations(const char *l
for (ep = ellist.find("StationData"); ep != ellist.end(); ep++) {
if (ep->first != "StationData")
break;
- pair<string, bool> rval = ep->second.getAttribute("name");
+ pair<string, bool> rval = ep->second->getAttribute("name");
- if (rval.second && !strcasecmp(rval.first.c_str(), name)) {
- ellist.erase(ep);
- return tqsl_dump_station_data(sfile);
-@@ -2158,7 +2158,7 @@
+ bool found = false;
+ if (rval.second) {
+ for (size_t j = 0; j < locnames.size(); j++) {
+@@ -2393,19 +2393,19 @@ tqsl_mergeStationLocations(const char *l
+ }
+ if (!found) {
+ // Add this one to the station data file
+- XMLElement newtop("StationData");
+- newtop.setPretext("\n ");
+- newtop.setAttribute("name", rval.first);
+- newtop.setText("\n ");
+- XMLElement sub;
+- sub.setPretext(newtop.getPretext() + " ");
++ std::shared_ptr<XMLElement> newtop(new XMLElement("StationData"));
++ newtop->setPretext("\n ");
++ newtop->setAttribute("name", rval.first);
++ newtop->setText("\n ");
++ std::shared_ptr<XMLElement> sub(new XMLElement);
++ sub->setPretext(newtop->getPretext() + " ");
+ XMLElement el;
+- bool elok = ep->second.getFirstElement(el);
++ bool elok = ep->second->getFirstElement(el);
+ while (elok) {
+- sub.setElementName(el.getElementName());
+- sub.setText(el.getText());
+- newtop.addElement(sub);
+- elok = ep->second.getNextElement(el);
++ sub->setElementName(el.getElementName());
++ sub->setText(el.getText());
++ newtop->addElement(sub);
++ elok = ep->second->getNextElement(el);
+ }
+ old_data.addElement(newtop);
+ old_data.setText("\n");
+@@ -2444,7 +2444,7 @@ tqsl_move_station_location(const char *n
+ for (from_ep = from_ellist.find("StationData"); from_ep != from_ellist.end(); from_ep++) {
+ if (from_ep->first != "StationData")
+ break;
+- pair<string, bool> from_rval = from_ep->second.getAttribute("name");
++ pair<string, bool> from_rval = from_ep->second->getAttribute("name");
+ if (from_rval.second && !strcasecmp(from_rval.first.c_str(), name)) {
+ // Match, move it.
+ // First, delete any old backup for this station location
+@@ -2453,26 +2453,26 @@ tqsl_move_station_location(const char *n
+ for (to_ep = to_ellist.find("StationData"); to_ep != to_ellist.end(); to_ep++) {
+ if (to_ep->first != "StationData")
+ break;
+- pair<string, bool> to_rval = to_ep->second.getAttribute("name");
++ pair<string, bool> to_rval = to_ep->second->getAttribute("name");
+ if (to_rval.second && !strcasecmp(to_rval.first.c_str(), name)) {
+ to_ellist.erase(to_ep);
+ break;
+ }
+ }
+ // Now add it to the target
+- XMLElement newtop("StationData");
+- newtop.setPretext("\n ");
+- newtop.setAttribute("name", from_rval.first);
+- newtop.setText("\n ");
+- XMLElement sub;
+- sub.setPretext(newtop.getPretext() + " ");
++ std::shared_ptr<XMLElement> newtop(new XMLElement("StationData"));
++ newtop->setPretext("\n ");
++ newtop->setAttribute("name", from_rval.first);
++ newtop->setText("\n ");
++ std::shared_ptr<XMLElement> sub(new XMLElement);
++ sub->setPretext(newtop->getPretext() + " ");
+ XMLElement el;
+- bool elok = from_ep->second.getFirstElement(el);
++ bool elok = from_ep->second->getFirstElement(el);
+ while (elok) {
+- sub.setElementName(el.getElementName());
+- sub.setText(el.getText());
+- newtop.addElement(sub);
+- elok = from_ep->second.getNextElement(el);
++ sub->setElementName(el.getElementName());
++ sub->setText(el.getText());
++ newtop->addElement(sub);
++ elok = from_ep->second->getNextElement(el);
+ }
+ to_sfile.addElement(newtop);
+ to_sfile.setText("\n");
+@@ -2528,7 +2528,7 @@ tqsl_getStationLocation(tQSL_Location *l
for (ep = ellist.find("StationData"); ep != ellist.end(); ep++) {
if (ep->first != "StationData")
break;
@@ -41,14 +115,14 @@
if (rval.second && !strcasecmp(trim(rval.first).c_str(), trim(loc->name).c_str())) {
exists = true;
break;
-@@ -2321,30 +2321,31 @@
- return 1;
+@@ -2724,33 +2724,33 @@ tqsl_location_to_xml(TQSL_LOCATION *loc,
+ }
for (int i = 0; i < numf; i++) {
TQSL_LOCATION_FIELD& field = loc->pagelist[loc->page-1].fieldlist[i];
- XMLElement fd;
- fd.setPretext(sd.getPretext() + " ");
- fd.setElementName(field.gabbi_name);
-+ shared_ptr<XMLElement> fd(new XMLElement);
++ std::shared_ptr<XMLElement> fd(new XMLElement);
+ fd->setPretext(sd.getPretext() + " ");
+ fd->setElementName(field.gabbi_name);
switch (field.input_type) {
@@ -57,6 +131,10 @@
if (field.idx < 0 || field.idx >= static_cast<int>(field.items.size())) {
- fd.setText("");
+ fd->setText("");
+ if (field.gabbi_name == "CALL") {
+- fd.setText("NONE");
++ fd->setText("NONE");
+ }
} else if (field.data_type == TQSL_LOCATION_FIELD_INT) {
char numbuf[20];
snprintf(numbuf, sizeof numbuf, "%d", field.items[field.idx].ivalue);
@@ -77,11 +155,10 @@
}
- if (strcmp(fd.getText().c_str(), ""))
+ if (strcmp(fd->getText().c_str(), ""))
-+ if (strcmp(fd->getText().c_str(), ""))
sd.addElement(fd);
}
int rval;
-@@ -2407,7 +2408,7 @@
+@@ -2824,7 +2824,7 @@ tqsl_saveStationLocationCapture(tQSL_Loc
for (ep = ellist.find("StationData"); ep != ellist.end(); ep++) {
if (ep->first != "StationData")
break;
@@ -90,17 +167,19 @@
if (rval.second && !strcasecmp(rval.first.c_str(), loc->name.c_str())) {
exists = true;
break;
-@@ -2417,12 +2418,12 @@
+@@ -2835,14 +2835,14 @@ tqsl_saveStationLocationCapture(tQSL_Loc
tQSL_Error = TQSL_NAME_EXISTS;
return 1;
}
- XMLElement sd("StationData");
- sd.setPretext("\n ");
-- if (tqsl_location_to_xml(loc, sd))
-+ shared_ptr<XMLElement> sd(new XMLElement("StationData"));
+- if (tqsl_location_to_xml(loc, sd)) {
++ std::shared_ptr<XMLElement> sd(new XMLElement("StationData"));
+ sd->setPretext("\n ");
-+ if (tqsl_location_to_xml(loc, *sd))
++ if (tqsl_location_to_xml(loc, *sd)) {
+ tqslTrace("tqsl_saveStationLocationCaptureName", "error in loc_to_xml %d", tQSL_Error);
return 1;
+ }
- sd.setAttribute("name", loc->name);
- sd.setText("\n ");
+ sd->setAttribute("name", loc->name);
diff --git a/comms/trustedqsl/files/patch-src_openssl__cert.cpp b/comms/trustedqsl/files/patch-src_openssl__cert.cpp
new file mode 100644
index 000000000000..4fd466df9a57
--- /dev/null
+++ b/comms/trustedqsl/files/patch-src_openssl__cert.cpp
@@ -0,0 +1,60 @@
+--- src/openssl_cert.cpp.orig 2015-10-21 17:26:38 UTC
++++ src/openssl_cert.cpp
+@@ -3353,18 +3353,18 @@ tqsl_restoreCallsignCertificate(const ch
+ for (ep = ellist.find("UserCert"); ep != ellist.end(); ep++) {
+ if (ep->first != "UserCert")
+ break;
+- pair<string, bool> rval = ep->second.getAttribute("CallSign");
++ pair<string, bool> rval = ep->second->getAttribute("CallSign");
+ if (rval.second) call = rval.first;
+- rval = ep->second.getAttribute("serial");
++ rval = ep->second->getAttribute("serial");
+ if (rval.second) serial = strtol(rval.first.c_str(), NULL, 10);
+- rval = ep->second.getAttribute("dxcc");
++ rval = ep->second->getAttribute("dxcc");
+ if (rval.second) dxcc = strtol(rval.first.c_str(), NULL, 10);
+
+ XMLElement el;
+- if (ep->second.getFirstElement("SignedCert", el)) {
++ if (ep->second->getFirstElement("SignedCert", el)) {
+ publicKey = el.getText();
+ }
+- if (ep->second.getFirstElement("PrivateKey", el)) {
++ if (ep->second->getFirstElement("PrivateKey", el)) {
+ privateKey = el.getText();
+ }
+ }
+@@ -5208,23 +5208,23 @@ tqsl_setCertificateStatus(long serial, c
+ for (ep = ellist.find("Cert"); ep != ellist.end(); ep++) {
+ if (ep->first != "Cert")
+ break;
+- pair<string, bool> rval = ep->second.getAttribute("serial");
++ pair<string, bool> rval = ep->second->getAttribute("serial");
+ if (rval.second && strtol(rval.first.c_str(), NULL, 10) == serial) {
+ exists = true;
+ break;
+ }
+ }
+
+- XMLElement cs("Cert");
+- cs.setPretext("\n ");
+- XMLElement se;
+- se.setPretext(cs.getPretext() + " ");
+- se.setElementName("status");
+- se.setText(status);
+- cs.addElement(se);
++ std::shared_ptr<XMLElement> cs(new XMLElement("Cert"));
++ cs->setPretext("\n ");
++ std::shared_ptr<XMLElement> se(new XMLElement);
++ se->setPretext(cs->getPretext() + " ");
++ se->setElementName("status");
++ se->setText(status);
++ cs->addElement(se);
+
+- cs.setAttribute("serial", sstr);
+- cs.setText("\n ");
++ cs->setAttribute("serial", sstr);
++ cs->setText("\n ");
+
+ if (exists)
+ ellist.erase(ep);
diff --git a/comms/trustedqsl/files/patch-src_openssl_cert.cpp b/comms/trustedqsl/files/patch-src_openssl_cert.cpp
deleted file mode 100644
index e9543fc5b7de..000000000000
--- a/comms/trustedqsl/files/patch-src_openssl_cert.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
---- src/openssl_cert.cpp.orig 2014-07-12 13:18:13.000000000 -0700
-+++ src/openssl_cert.cpp 2014-07-18 05:39:51.000000000 -0700
-@@ -4214,23 +4214,23 @@
- for (ep = ellist.find("Cert"); ep != ellist.end(); ep++) {
- if (ep->first != "Cert")
- break;
-- pair<string, bool> rval = ep->second.getAttribute("serial");
-+ pair<string, bool> rval = ep->second->getAttribute("serial");
- if (rval.second && strtol(rval.first.c_str(), NULL, 10) == serial) {
- exists = true;
- break;
- }
- }
-
-- XMLElement cs("Cert");
-- cs.setPretext("\n ");
-- XMLElement se;
-- se.setPretext(cs.getPretext() + " ");
-- se.setElementName("status");
-- se.setText(status);
-- cs.addElement(se);
-+ shared_ptr<XMLElement> cs(new XMLElement("Cert"));
-+ cs->setPretext("\n ");
-+ shared_ptr<XMLElement> se(new XMLElement);
-+ se->setPretext(cs->getPretext() + " ");
-+ se->setElementName("status");
-+ se->setText(status);
-+ cs->addElement(se);
-
-- cs.setAttribute("serial", sstr);
-- cs.setText("\n ");
-+ cs->setAttribute("serial", sstr);
-+ cs->setText("\n ");
-
- if (exists)
- ellist.erase(ep);
diff --git a/comms/trustedqsl/files/patch-src_tqslconvert.cpp b/comms/trustedqsl/files/patch-src_tqslconvert.cpp
index 204a8fb1bf20..368b7b9412de 100644
--- a/comms/trustedqsl/files/patch-src_tqslconvert.cpp
+++ b/comms/trustedqsl/files/patch-src_tqslconvert.cpp
@@ -1,11 +1,11 @@
---- src/tqslconvert.cpp.orig 2013-10-20 19:33:20.000000000 -0500
-+++ src/tqslconvert.cpp 2013-12-07 20:54:11.000000000 -0500
-@@ -23,7 +23,7 @@
- #include <vector>
- #include <ctype.h>
- #include <set>
--#include <db.h>
-+#include <db5/db.h>
-
- #include <locale.h>
- //#include <iostream>
+--- src/tqslconvert.cpp.orig 2015-10-21 17:26:38 UTC
++++ src/tqslconvert.cpp
+@@ -549,7 +549,7 @@ static bool open_db(TQSL_CONVERTER *conv
+ fprintf(conv->errfile, "opening DB %s returns status %s\n", conv->dbpath, db_strerror(dbret));
+ // Can't open the database - maybe try private?
+ if ((dbret == EACCES || dbret == EROFS) || (dbret == EINVAL && errno == dbret)) {
+- if (!(envflags && DB_PRIVATE)) {
++ if (!(envflags & DB_PRIVATE)) {
+ envflags |= DB_PRIVATE;
+ continue;
+ }
diff --git a/comms/trustedqsl/files/patch-src_xml.cpp b/comms/trustedqsl/files/patch-src_xml.cpp
index 75cc5fc1188e..4b5f42b7459a 100644
--- a/comms/trustedqsl/files/patch-src_xml.cpp
+++ b/comms/trustedqsl/files/patch-src_xml.cpp
@@ -1,23 +1,11 @@
---- src/xml.cpp.orig 2014-07-12 13:18:13.000000000 -0700
-+++ src/xml.cpp 2014-07-18 05:40:18.000000000 -0700
-@@ -20,6 +20,11 @@
- using std::string;
- using std::ostream;
- using std::map;
-+#ifdef USE_TR1
-+using std::tr1::shared_ptr;
-+#else
-+using std::make_shared;
-+#endif
-
- namespace tqsllib {
-
-@@ -41,17 +46,17 @@
+--- src/xml.cpp.orig 2015-10-21 17:26:38 UTC
++++ src/xml.cpp
+@@ -47,17 +47,17 @@ XMLElement::getAttribute(const string& k
void
XMLElement::xml_start(void *data, const XML_Char *name, const XML_Char **atts) {
XMLElement *el = reinterpret_cast<XMLElement *>(data);
- XMLElement new_el(name);
-+ shared_ptr<XMLElement> new_el(new XMLElement(name));
++ std::shared_ptr<XMLElement> new_el(new XMLElement(name));
//cout << "Element: " << name << endl;
for (int i = 0; atts[i]; i += 2) {
- new_el.setAttribute(atts[i], atts[i+1]);
@@ -35,7 +23,7 @@
}
}
-@@ -65,7 +70,7 @@
+@@ -71,7 +71,7 @@ XMLElement::xml_end(void *data, const XM
void
XMLElement::xml_text(void *data, const XML_Char *text, int len) {
XMLElement *el = reinterpret_cast<XMLElement *>(data);
@@ -43,4 +31,4 @@
+ el->_parsingStack.back()->second->_text.append(text, len);
}
- /*
+ int
diff --git a/comms/trustedqsl/files/patch-src_xml.h b/comms/trustedqsl/files/patch-src_xml.h
index 6e6204ce93f6..e3d6e5ef4027 100644
--- a/comms/trustedqsl/files/patch-src_xml.h
+++ b/comms/trustedqsl/files/patch-src_xml.h
@@ -1,62 +1,35 @@
---- src/xml.h.orig 2014-07-12 13:18:13.000000000 -0700
-+++ src/xml.h 2014-07-18 05:43:47.000000000 -0700
-@@ -16,6 +16,14 @@
- #include <vector>
- #include <utility>
- #include <expat.h>
-+#if defined(__GNUC__) && !defined(__clang__)
-+#define USE_TR1
-+#endif
-+#ifdef USE_TR1
-+#include <tr1/memory>
-+#else
-+#include <memory>
-+#endif
-
- using std::pair;
- using std::string;
-@@ -23,12 +31,19 @@
- using std::map;
- using std::multimap;
- using std::vector;
-+#ifdef USE_TR1
-+using std::tr1::shared_ptr;
-+#else
-+using std::shared_ptr;
-+using std::make_shared;
-+#endif
-+
-
- namespace tqsllib {
+--- src/xml.h.orig 2015-10-21 17:26:38 UTC
++++ src/xml.h
+@@ -28,7 +28,7 @@ namespace tqsllib {
class XMLElement;
-typedef multimap<string, XMLElement> XMLElementList;
-+typedef multimap<string, shared_ptr<XMLElement> > XMLElementList;
++typedef multimap<string, std::shared_ptr<XMLElement> > XMLElementList;
typedef map<string, string> XMLElementAttributeList;
/** Encapsulates an XML element
-@@ -62,7 +77,7 @@
+@@ -62,7 +62,7 @@ class XMLElement {
*/
pair<string, bool> getAttribute(const string& key);
/// Add an element to the list of contained subelements
- XMLElementList::iterator addElement(const XMLElement& element);
-+ XMLElementList::iterator addElement(shared_ptr<XMLElement>& element);
++ XMLElementList::iterator addElement(std::shared_ptr<XMLElement> element);
XMLElementAttributeList& getAttributeList() { return _attributes; }
XMLElementList& getElementList() { return _elements; }
/// Parse an XML file and add its element tree to this element
-@@ -134,8 +149,8 @@
+@@ -134,8 +134,8 @@ XMLElement::setAttribute(const string& k
}
inline XMLElementList::iterator
-XMLElement::addElement(const XMLElement& element) {
- XMLElementList::iterator it = _elements.insert(make_pair(element.getElementName(), element));
-+XMLElement::addElement(shared_ptr<XMLElement>& element) {
++XMLElement::addElement(std::shared_ptr<XMLElement> element) {
+ XMLElementList::iterator it = _elements.insert(make_pair(element->getElementName(), element));
return it;
}
-@@ -158,9 +173,9 @@
+@@ -158,9 +158,9 @@ inline bool
XMLElement::getNextElement(XMLElement& element) {
if (_iter == _elements.end())
return false;
diff --git a/comms/trustedqsl/pkg-plist b/comms/trustedqsl/pkg-plist
index d37e25da3c5d..185580ca940a 100644
--- a/comms/trustedqsl/pkg-plist
+++ b/comms/trustedqsl/pkg-plist
@@ -10,8 +10,11 @@ include/tqslerrno.h
include/tqsllib.h
lib/libtqsllib.so
man/man5/tqsl.5.gz
-share/TrustedQSL/ca-bundle.crt
share/TrustedQSL/config.xml
+share/TrustedQSL/help/tqslapp/CertProp.bmp
+share/TrustedQSL/help/tqslapp/EnterPassword.bmp
+share/TrustedQSL/help/tqslapp/LoTWCerts.bmp
+share/TrustedQSL/help/tqslapp/RenewUpload.bmp
share/TrustedQSL/help/tqslapp/P12.bmp
share/TrustedQSL/help/tqslapp/Pending.bmp
share/TrustedQSL/help/tqslapp/TQ5.bmp
@@ -29,6 +32,10 @@ share/TrustedQSL/help/tqslapp/cabrillo.htm
share/TrustedQSL/help/tqslapp/certaccept.htm
share/TrustedQSL/help/tqslapp/certaccept1.bmp
share/TrustedQSL/help/tqslapp/certaccept2.bmp
+share/TrustedQSL/help/tqslapp/certificateproperties.htm
+share/TrustedQSL/help/tqslapp/certificatesecurity.htm
+share/TrustedQSL/help/tqslapp/certificatevalidity.htm
+share/TrustedQSL/help/tqslapp/certreplace.htm
share/TrustedQSL/help/tqslapp/certreq.htm
share/TrustedQSL/help/tqslapp/certreq1.bmp
share/TrustedQSL/help/tqslapp/certs-icons.htm
@@ -55,7 +62,9 @@ share/TrustedQSL/help/tqslapp/files-icons.htm
share/TrustedQSL/help/tqslapp/glossary.htm
share/TrustedQSL/help/tqslapp/index.htm
share/TrustedQSL/help/tqslapp/installation.htm
-share/TrustedQSL/help/tqslapp/loadcert.htm
+share/TrustedQSL/help/tqslapp/key-concepts.htm
+share/TrustedQSL/help/tqslapp/load-certificate.htm
+share/TrustedQSL/help/tqslapp/localization.htm
share/TrustedQSL/help/tqslapp/login.htm
share/TrustedQSL/help/tqslapp/logopstab.bmp
share/TrustedQSL/help/tqslapp/lotw.htm
@@ -75,15 +84,20 @@ share/TrustedQSL/help/tqslapp/pref-cab3.bmp
share/TrustedQSL/help/tqslapp/pref-opt.bmp
share/TrustedQSL/help/tqslapp/pref-opt.htm
share/TrustedQSL/help/tqslapp/primary.htm
+share/TrustedQSL/help/tqslapp/promptforcall.bmp
share/TrustedQSL/help/tqslapp/qsodata.bmp
share/TrustedQSL/help/tqslapp/qsodata.htm
share/TrustedQSL/help/tqslapp/renewing.htm
share/TrustedQSL/help/tqslapp/renewing1.bmp
share/TrustedQSL/help/tqslapp/renewing2.bmp
share/TrustedQSL/help/tqslapp/replaced.bmp
-share/TrustedQSL/help/tqslapp/save.htm
+share/TrustedQSL/help/tqslapp/restoredeletedcert.htm
+share/TrustedQSL/help/tqslapp/restoredeletedstnloc.htm
+share/TrustedQSL/help/tqslapp/save-certificate.htm
share/TrustedQSL/help/tqslapp/savestnl.bmp
share/TrustedQSL/help/tqslapp/secondarycertops.htm
+share/TrustedQSL/help/tqslapp/secondarystnlocops.htm
+share/TrustedQSL/help/tqslapp/selectlanguage.htm
share/TrustedQSL/help/tqslapp/sign1.bmp
share/TrustedQSL/help/tqslapp/signconf.bmp
share/TrustedQSL/help/tqslapp/signdone.bmp
@@ -92,6 +106,7 @@ share/TrustedQSL/help/tqslapp/signupload.htm
share/TrustedQSL/help/tqslapp/signupload1.bmp
share/TrustedQSL/help/tqslapp/stnloc.bmp
share/TrustedQSL/help/tqslapp/stnloc.htm
+share/TrustedQSL/help/tqslapp/stnloc0.bmp
share/TrustedQSL/help/tqslapp/stnloc1.bmp
share/TrustedQSL/help/tqslapp/stnloc1.htm
share/TrustedQSL/help/tqslapp/stnloc2.bmp
@@ -107,4 +122,16 @@ share/TrustedQSL/help/tqslapp/unlock.htm
share/TrustedQSL/help/tqslapp/update.htm
share/TrustedQSL/help/tqslapp/update1.bmp
share/TrustedQSL/help/tqslapp/update2.bmp
+share/locale/de/LC_MESSAGES/tqslapp.mo
+share/locale/de/LC_MESSAGES/wxstd.mo
+share/locale/es/LC_MESSAGES/tqslapp.mo
+share/locale/es/LC_MESSAGES/wxstd.mo
+share/locale/fr/LC_MESSAGES/tqslapp.mo
+share/locale/fr/LC_MESSAGES/wxstd.mo
+share/locale/it/LC_MESSAGES/tqslapp.mo
+share/locale/it/LC_MESSAGES/wxstd.mo
+share/locale/ja/LC_MESSAGES/tqslapp.mo
+share/locale/ja/LC_MESSAGES/wxstd.mo
+share/locale/pt/LC_MESSAGES/tqslapp.mo
+share/locale/pt/LC_MESSAGES/wxstd.mo
share/pixmaps/TrustedQSL.png