Index: Makefile =================================================================== --- Makefile (revision 354975) +++ Makefile (working copy) @@ -1,12 +1,10 @@ # $FreeBSD$ PORTNAME= trustedqsl -PORTVERSION= 2.0 -PORTREVISION= 2 +PORTVERSION= 2.0.2 CATEGORIES= comms hamradio MASTER_SITES= SF/${PORTNAME}/TrustedQSL/v${PORTVERSION}/ DISTNAME= tqsl-${PORTVERSION} -EXTRACT_SUFX= .tgz MAINTAINER= db@FreeBSD.org COMMENT= Amateur Radio Station electronic trusted logbook @@ -19,6 +17,7 @@ PKGMESSAGE= ${WRKDIR}/pkg-message USES= cmake compiler:features pkgconfig +CMAKE_ARGS= -DBDB_PREFIX=${LOCALBASE} USE_WX= 2.8+ WX_UNICODE= yes USE_LDCONFIG= yes Index: distinfo =================================================================== --- distinfo (revision 354975) +++ distinfo (working copy) @@ -1,2 +1,2 @@ -SHA256 (tqsl-2.0.tgz) = eb1982da44b4d8c17c78b72eacb3fe3b9e94005d1b2da153685827da2e07cfaa -SIZE (tqsl-2.0.tgz) = 2626483 +SHA256 (tqsl-2.0.2.tar.gz) = 82fb052a7f1655865769aa12b94daa590a582bbde9cabf8811168b88cb29adf1 +SIZE (tqsl-2.0.2.tar.gz) = 2762892 Index: files/patch-apps_CMakeLists.txt =================================================================== --- files/patch-apps_CMakeLists.txt (revision 354975) +++ files/patch-apps_CMakeLists.txt (working copy) @@ -1,14 +1,14 @@ ---- apps/CMakeLists.txt.orig 2013-12-06 17:42:11.000000000 -0800 -+++ apps/CMakeLists.txt 2013-12-06 17:43:12.000000000 -0800 -@@ -121,6 +121,10 @@ - add_definitions("-DCONFDIR=\"${CMAKE_INSTALL_PREFIX}/share/TrustedQSL/\"") - install(TARGETS tqsl DESTINATION bin) - install(DIRECTORY help DESTINATION share/TrustedQSL) --install(FILES tqsl.5 DESTINATION share/man/man5) -+if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") -+ install(FILES tqsl.5 DESTINATION man/man5) -+else() -+ install(FILES tqsl.5 DESTINATION share/man/man5) -+endif() - install(FILES icons/key48.png DESTINATION share/pixmaps RENAME TrustedQSL.png) +--- 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 @@ + 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) ++ else() ++ install(FILES tqsl.5 DESTINATION share/man/man5) ++ endif() + install(FILES icons/key48.png DESTINATION share/pixmaps RENAME TrustedQSL.png) endif() Index: files/patch-apps_tqsl.cpp =================================================================== --- files/patch-apps_tqsl.cpp (revision 354975) +++ files/patch-apps_tqsl.cpp (working copy) @@ -1,29 +1,11 @@ ---- apps/tqsl.cpp.orig 2013-10-20 20:33:20.000000000 -0400 -+++ apps/tqsl.cpp 2014-01-26 10:20:28.036914222 -0500 -@@ -71,7 +71,7 @@ +--- 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 #include // only for version info! -#include //only for version info! +#include //only for version info! - #include "tqslwiz.h" - #include "qsodatadialog.h" - #include "tqslerrno.h" -@@ -1862,7 +1862,7 @@ - return TQSL_EXIT_LIB_ERROR; - } - } else { -- out< + #include Index: files/patch-cmakemodules_FindBDB.cmake =================================================================== --- files/patch-cmakemodules_FindBDB.cmake (revision 354975) +++ files/patch-cmakemodules_FindBDB.cmake (working copy) @@ -1,18 +1,26 @@ ---- cmakemodules/FindBDB.cmake.orig 2013-10-20 19:33:20.000000000 -0500 -+++ cmakemodules/FindBDB.cmake 2013-12-07 20:44:12.000000000 -0500 -@@ -5,6 +5,7 @@ - FIND_PATH(BDB_INCLUDE_DIR db.h NO_DEFAULT_PATH PATHS +--- 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 @@ "/usr/local/BerkeleyDB.6.0/include" "/usr/local/BerkeleyDB.5.3/include" -+ "/usr/local/include/db5" "${BDB_PREFIX}/include" ++ "${BDB_PREFIX}/include/db5" ) else() -@@ -37,6 +38,7 @@ - #OSX (and probably other unix) src build + FIND_PATH(BDB_INCLUDE_DIR db.h +@@ -29,6 +30,7 @@ + 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 @@ "/usr/local/BerkeleyDB.6.0/lib" "/usr/local/BerkeleyDB.5.3/lib" -+ "/usr/local/lib/db5" "${BDB_PREFIX}/lib" ++ "${BDB_PREFIX}/lib/db5" "${BDB_PREFIX}" ) + MARK_AS_ADVANCED(BDB_LIBRARY) Index: files/patch-src_location.cpp =================================================================== --- files/patch-src_location.cpp (revision 0) +++ files/patch-src_location.cpp (working copy) @@ -0,0 +1,52 @@ +--- src/location.cpp 2014-05-08 17:59:25.000000000 -0700 ++++ ../../work.fixed/tqsl-2.0.2/src/location.cpp 2014-05-24 00:29:01.000000000 -0700 +@@ -1958,7 +1958,7 @@ + if (field.gabbi_name != "") { + // A field that may exist + XMLElement el; +- if (ep->second.getFirstElement(field.gabbi_name, el)) { ++ if (ep->second.elem->getFirstElement(field.gabbi_name, el)) { + field.cdata = el.getText(); + switch (field.input_type) { + case TQSL_LOCATION_FIELD_DDLIST: +@@ -2085,11 +2085,11 @@ + for (ep = ellist.find("StationData"); ep != ellist.end(); ep++) { + if (ep->first != "StationData") + break; +- pair rval = ep->second.getAttribute("name"); ++ pair rval = ep->second.elem->getAttribute("name"); + if (rval.second) { + TQSL_LOCATION *oldloc; + TQSL_LOCATION *newloc; +- ep->second.getFirstElement("CALL", call); ++ ep->second.elem->getFirstElement("CALL", call); + for (size_t j = 0; j < calls.size(); j++) { + if (calls[j] == call.getText()) { + if (tqsl_getStationLocation(reinterpret_cast(&oldloc), rval.first.c_str())) { // Location doesn't exist +@@ -2124,7 +2124,7 @@ + for (ep = ellist.find("StationData"); ep != ellist.end(); ep++) { + if (ep->first != "StationData") + break; +- pair rval = ep->second.getAttribute("name"); ++ pair rval = ep->second.elem->getAttribute("name"); + if (rval.second && !strcasecmp(rval.first.c_str(), name)) { + ellist.erase(ep); + return tqsl_dump_station_data(sfile); +@@ -2157,7 +2157,7 @@ + for (ep = ellist.find("StationData"); ep != ellist.end(); ep++) { + if (ep->first != "StationData") + break; +- pair rval = ep->second.getAttribute("name"); ++ pair rval = ep->second.elem->getAttribute("name"); + if (rval.second && !strcasecmp(trim(rval.first).c_str(), trim(loc->name).c_str())) { + exists = true; + break; +@@ -2402,7 +2402,7 @@ + for (ep = ellist.find("StationData"); ep != ellist.end(); ep++) { + if (ep->first != "StationData") + break; +- pair rval = ep->second.getAttribute("name"); ++ pair rval = ep->second.elem->getAttribute("name"); + if (rval.second && !strcasecmp(rval.first.c_str(), loc->name.c_str())) { + exists = true; + break; Property changes on: files/patch-src_location.cpp ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: files/patch-src_openssl_cert.cpp =================================================================== --- files/patch-src_openssl_cert.cpp (revision 0) +++ files/patch-src_openssl_cert.cpp (working copy) @@ -0,0 +1,11 @@ +--- src/openssl_cert.cpp 2014-05-08 17:59:25.000000000 -0700 ++++ ../../work.fixed/tqsl-2.0.2/src/openssl_cert.cpp 2014-05-24 00:28:34.000000000 -0700 +@@ -4214,7 +4214,7 @@ + for (ep = ellist.find("Cert"); ep != ellist.end(); ep++) { + if (ep->first != "Cert") + break; +- pair rval = ep->second.getAttribute("serial"); ++ pair rval = ep->second.elem->getAttribute("serial"); + if (rval.second && strtol(rval.first.c_str(), NULL, 10) == serial) { + exists = true; + break; Property changes on: files/patch-src_openssl_cert.cpp ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Index: files/patch-src_xml.cpp =================================================================== --- files/patch-src_xml.cpp (revision 354975) +++ files/patch-src_xml.cpp (working copy) @@ -1,36 +1,45 @@ ---- src/xml.cpp.orig 2013-10-20 20:33:20.000000000 -0400 -+++ src/xml.cpp 2014-02-01 20:30:26.874285772 -0500 -@@ -17,6 +17,33 @@ - using namespace std; +--- src/xml.cpp.orig 2014-05-08 17:59:25.000000000 -0700 ++++ src/xml.cpp 2014-05-24 04:26:40.000000000 -0700 +@@ -20,9 +20,20 @@ + 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 { -+static XMLElementList::iterator _iter; -+ -+bool -+XMLElement::getFirstElement(XMLElement& element) { -+ _iterByName = false; -+ _iter = _elements.begin(); -+ return getNextElement(element); + ++shared_ptr make_shared_XMLElement(XMLElement *e) ++{ ++ shared_ptr p(e); ++ return p; +} + -+bool -+XMLElement::getFirstElement(const std::string& name, XMLElement& element) { -+ _iterName = name; -+ _iterByName = true; -+ _iter = _elements.find(_iterName); -+ return getNextElement(element); -+} -+ -+bool -+XMLElement::getNextElement(XMLElement& element) { -+ if (_iter == _elements.end()) -+ return false; -+ if (_iterByName && _iter->second.getElementName() != _iterName) -+ return false; -+ element = _iter->second; -+ ++_iter; -+ return true; -+} + pair + XMLElement::getAttribute(const string& key) { + string s; +@@ -49,9 +60,9 @@ + if (el->_parsingStack.empty()) { + el->_parsingStack.push_back(el->addElement(new_el)); + } else { +- new_el.setPretext(el->_parsingStack.back()->second.getText()); +- el->_parsingStack.back()->second.setText(""); +- el->_parsingStack.push_back(el->_parsingStack.back()->second.addElement(new_el)); ++ new_el.setPretext(el->_parsingStack.back()->second.elem->getText()); ++ el->_parsingStack.back()->second.elem->setText(""); ++ el->_parsingStack.push_back(el->_parsingStack.back()->second.elem->addElement(new_el)); + } + } - pair - XMLElement::getAttribute(const string& key) { +@@ -65,7 +76,7 @@ + void + XMLElement::xml_text(void *data, const XML_Char *text, int len) { + XMLElement *el = reinterpret_cast(data); +- el->_parsingStack.back()->second._text.append(text, len); ++ el->_parsingStack.back()->second.elem->_text.append(text, len); + } + + /* Index: files/patch-src_xml.h =================================================================== --- files/patch-src_xml.h (revision 354975) +++ files/patch-src_xml.h (working copy) @@ -1,26 +1,79 @@ ---- src/xml.h.orig 2013-10-20 20:33:20.000000000 -0400 -+++ src/xml.h 2014-02-01 20:20:55.798824124 -0500 -@@ -108,7 +108,6 @@ - XMLElementAttributeList _attributes; - XMLElementList _elements; - std::vector _parsingStack; -- XMLElementList::iterator _iter; - bool _iterByName; - std::string _iterName; - XMLElementAttributeList::iterator _aiter; -@@ -132,6 +131,7 @@ +--- src/xml.h.orig 2014-05-08 17:59:25.000000000 -0700 ++++ src/xml.h 2014-05-24 04:17:00.000000000 -0700 +@@ -16,6 +16,14 @@ + #include + #include + #include ++#if defined(__GNUC__) && !defined(__clang__) ++#define USE_TR1 ++#endif ++#ifdef USE_TR1 ++#include ++#else ++#include ++#endif + + using std::pair; + using std::string; +@@ -23,12 +31,28 @@ + 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 { + ++ + class XMLElement; ++shared_ptr make_shared_XMLElement(XMLElement *e); ++class XMLElementP { ++ public: ++ XMLElementP() {} ++ XMLElementP(shared_ptr new_elem) { elem = new_elem; } ++ ++ shared_ptr elem; ++}; + +-typedef multimap XMLElementList; ++typedef multimap XMLElementList; + typedef map XMLElementAttributeList; + + /** Encapsulates an XML element +@@ -62,7 +86,7 @@ + */ + pair getAttribute(const string& key); + /// Add an element to the list of contained subelements +- XMLElementList::iterator addElement(const XMLElement& element); ++ XMLElementList::iterator addElement(XMLElement& element); + XMLElementAttributeList& getAttributeList() { return _attributes; } + XMLElementList& getElementList() { return _elements; } + /// Parse an XML file and add its element tree to this element +@@ -134,8 +158,8 @@ + } + + inline XMLElementList::iterator +-XMLElement::addElement(const XMLElement& element) { +- XMLElementList::iterator it = _elements.insert(make_pair(element.getElementName(), element)); ++XMLElement::addElement(XMLElement& element) { ++ XMLElementList::iterator it = _elements.insert(make_pair(element.getElementName(), make_shared_XMLElement(&element))); return it; } -+#if 0 - inline bool - XMLElement::getFirstElement(XMLElement& element) { - _iterByName = false; -@@ -157,6 +157,7 @@ +@@ -158,9 +182,9 @@ + XMLElement::getNextElement(XMLElement& element) { + if (_iter == _elements.end()) + return false; +- if (_iterByName && _iter->second.getElementName() != _iterName) ++ if (_iterByName && _iter->second.elem->getElementName() != _iterName) + return false; +- element = _iter->second; ++ element = *_iter->second.elem.get(); ++_iter; return true; } -+#endif - - inline bool - XMLElement::getFirstAttribute(std::string& key, std::string& attr) {