mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-24 00:45:52 +00:00
Fix TQSL issues when build with Clang (previous patches were not enough)
Update to 2.0.3 Add options for the extra (deprecated) command-line utilities From ChangeLog.txt: - Fix defect that doesn't allow adding station locations if only a single callsign certificate is installed. Thanks Kenji! PR: ports/191871
This commit is contained in:
parent
63976d8e0c
commit
19c1daeb7e
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=362230
@ -1,11 +1,9 @@
|
||||
# $FreeBSD$
|
||||
|
||||
PORTNAME= trustedqsl
|
||||
PORTVERSION= 2.0.2
|
||||
PORTVERSION= 2.0.3
|
||||
CATEGORIES= comms hamradio
|
||||
#MASTER_SITES= SF/${PORTNAME}/TrustedQSL/v${PORTVERSION}/
|
||||
MASTER_SITES= ${MASTER_SITE_LOCAL}
|
||||
MASTER_SITE_SUBDIR= shurd
|
||||
MASTER_SITES= SF/${PORTNAME}/TrustedQSL/v${PORTVERSION}/
|
||||
DISTNAME= tqsl-${PORTVERSION}
|
||||
|
||||
MAINTAINER= hamradio@FreeBSD.org
|
||||
@ -26,6 +24,36 @@ CMAKE_ARGS= -DBDB_PREFIX=${LOCALBASE}
|
||||
USE_WX= 2.8+
|
||||
WX_UNICODE= yes
|
||||
USE_LDCONFIG= yes
|
||||
USE_OPENSSL= yes
|
||||
|
||||
OPTIONS_DEFINE= GEN_CRQ LOAD_CERT STATION_LOC CONVERTER
|
||||
GEN_CRQ_DESC= Build gen_crq
|
||||
LOAD_CERT_DESC= Build load_cert
|
||||
STATION_LOC_DESC= Build station_loc
|
||||
CONVERTER_DESC= Build converter
|
||||
|
||||
GEN_CRQ_CMAKE_ON= -DBUILD_GENCRQ=ON
|
||||
LOAD_CERT_CMAKE_ON= -DBUILD_LOADCERT=ON
|
||||
STATION_LOC_CMAKE_ON= -DBUILD_STATIONLOC=ON
|
||||
CONVERTER_CMAKE_ON= -DBUILD_CONVERTER=ON
|
||||
|
||||
OPTIONS_SUB= yes
|
||||
|
||||
.include <bsd.port.options.mk>
|
||||
|
||||
post-stage:
|
||||
.if ${PORT_OPTIONS:MGEN_CRQ}
|
||||
${INSTALL_PROGRAM} ${WRKSRC}/src/gen_crq ${STAGEDIR}${PREFIX}/bin
|
||||
.endif
|
||||
.if ${PORT_OPTIONS:MLOAD_CERT}
|
||||
${INSTALL_PROGRAM} ${WRKSRC}/src/load_cert ${STAGEDIR}${PREFIX}/bin
|
||||
.endif
|
||||
.if ${PORT_OPTIONS:MSTATION_LOC}
|
||||
${INSTALL_PROGRAM} ${WRKSRC}/src/station_loc ${STAGEDIR}${PREFIX}/bin
|
||||
.endif
|
||||
.if ${PORT_OPTIONS:MCONVERTER}
|
||||
${INSTALL_PROGRAM} ${WRKSRC}/src/converter ${STAGEDIR}${PREFIX}/bin
|
||||
.endif
|
||||
|
||||
post-patch:
|
||||
@${SED} -e 's:%%PREFIX%%:${PREFIX}:g' \
|
||||
|
@ -1,2 +1,2 @@
|
||||
SHA256 (tqsl-2.0.2.tar.gz) = 472e45ba74cf8fea4e8d96aa0beb4db08054d9b60fa84c29e30162a7a00622f4
|
||||
SIZE (tqsl-2.0.2.tar.gz) = 2763921
|
||||
SHA256 (tqsl-2.0.3.tar.gz) = 87527e2b69a6e91ef3b13793f3aa32a271ca3b173e09df3a6eac8365b492a604
|
||||
SIZE (tqsl-2.0.3.tar.gz) = 2764308
|
||||
|
11
comms/trustedqsl/files/patch-src_converter.cpp
Normal file
11
comms/trustedqsl/files/patch-src_converter.cpp
Normal file
@ -0,0 +1,11 @@
|
||||
--- 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 @@
|
||||
optind++;
|
||||
const char *ofile = (optind < argc) ? argv[optind] : "converted.tq7";
|
||||
ofstream out;
|
||||
- out.open(ofile, ios::out|ios::trunc|ios::binary);
|
||||
+ out.open(ofile, std::ios::out|std::ios::trunc|std::ios::binary);
|
||||
if (!out.is_open())
|
||||
throw myexc(string("Unable to open ") + ofile);
|
||||
bool haveout = false;
|
24
comms/trustedqsl/files/patch-src_gen_crq.cpp
Normal file
24
comms/trustedqsl/files/patch-src_gen_crq.cpp
Normal file
@ -0,0 +1,24 @@
|
||||
--- 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 @@
|
||||
throw tqslexc();
|
||||
if (tqsl_getCertificateDXCCEntity(sign_cert, &cdxcc))
|
||||
throw tqslexc();
|
||||
- cout << "Signing certificate issuer: " << buf << endl;
|
||||
- cout << "Signing certificate serial: " << serial << endl;
|
||||
- cout << " Signing certificate DXCC: " << cdxcc << endl;
|
||||
+ std::cout << "Signing certificate issuer: " << buf << endl;
|
||||
+ std::cout << "Signing certificate serial: " << serial << endl;
|
||||
+ std::cout << " Signing certificate DXCC: " << cdxcc << endl;
|
||||
if (tqsl_beginSigning(sign_cert, const_cast<char *>(""), 0, 0))
|
||||
throw tqslexc();
|
||||
}
|
||||
@@ -124,7 +124,7 @@
|
||||
*cp = '_';
|
||||
}
|
||||
string filename = string(argv[optind]) + ".tq5";
|
||||
- cout << "Creating CRQ for " << crq.callSign << " DXCC=" << crq.dxccEntity << endl;
|
||||
+ std::cout << "Creating CRQ for " << crq.callSign << " DXCC=" << crq.dxccEntity << endl;
|
||||
if (tqsl_createCertRequest(filename.c_str(), &crq, 0, 0))
|
||||
throw tqslexc();
|
||||
}
|
@ -1,52 +1,110 @@
|
||||
--- 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 @@
|
||||
--- 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 @@
|
||||
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)) {
|
||||
+ if (ep->second->getFirstElement(field.gabbi_name, el)) {
|
||||
field.cdata = el.getText();
|
||||
switch (field.input_type) {
|
||||
case TQSL_LOCATION_FIELD_DDLIST:
|
||||
@@ -2085,11 +2085,11 @@
|
||||
@@ -2086,11 +2086,11 @@
|
||||
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.elem->getAttribute("name");
|
||||
+ pair<string, bool> rval = ep->second->getAttribute("name");
|
||||
if (rval.second) {
|
||||
TQSL_LOCATION *oldloc;
|
||||
TQSL_LOCATION *newloc;
|
||||
- ep->second.getFirstElement("CALL", call);
|
||||
+ ep->second.elem->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
|
||||
@@ -2124,7 +2124,7 @@
|
||||
@@ -2125,7 +2125,7 @@
|
||||
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.elem->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);
|
||||
@@ -2157,7 +2157,7 @@
|
||||
@@ -2158,7 +2158,7 @@
|
||||
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.elem->getAttribute("name");
|
||||
+ pair<string, bool> rval = ep->second->getAttribute("name");
|
||||
if (rval.second && !strcasecmp(trim(rval.first).c_str(), trim(loc->name).c_str())) {
|
||||
exists = true;
|
||||
break;
|
||||
@@ -2402,7 +2402,7 @@
|
||||
@@ -2321,30 +2321,31 @@
|
||||
return 1;
|
||||
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);
|
||||
+ fd->setPretext(sd.getPretext() + " ");
|
||||
+ fd->setElementName(field.gabbi_name);
|
||||
switch (field.input_type) {
|
||||
case TQSL_LOCATION_FIELD_DDLIST:
|
||||
case TQSL_LOCATION_FIELD_LIST:
|
||||
if (field.idx < 0 || field.idx >= static_cast<int>(field.items.size())) {
|
||||
- fd.setText("");
|
||||
+ fd->setText("");
|
||||
} else if (field.data_type == TQSL_LOCATION_FIELD_INT) {
|
||||
char numbuf[20];
|
||||
snprintf(numbuf, sizeof numbuf, "%d", field.items[field.idx].ivalue);
|
||||
- fd.setText(numbuf);
|
||||
+ fd->setText(numbuf);
|
||||
} else {
|
||||
- fd.setText(field.items[field.idx].text);
|
||||
+ fd->setText(field.items[field.idx].text);
|
||||
}
|
||||
break;
|
||||
case TQSL_LOCATION_FIELD_TEXT:
|
||||
field.cdata = trim(field.cdata);
|
||||
if (field.flags & TQSL_LOCATION_FIELD_UPPER)
|
||||
field.cdata = string_toupper(field.cdata);
|
||||
- fd.setText(field.cdata);
|
||||
+ fd->setText(field.cdata);
|
||||
break;
|
||||
}
|
||||
- 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 @@
|
||||
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.elem->getAttribute("name");
|
||||
+ pair<string, bool> rval = ep->second->getAttribute("name");
|
||||
if (rval.second && !strcasecmp(rval.first.c_str(), loc->name.c_str())) {
|
||||
exists = true;
|
||||
break;
|
||||
@@ -2417,12 +2418,12 @@
|
||||
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"));
|
||||
+ sd->setPretext("\n ");
|
||||
+ if (tqsl_location_to_xml(loc, *sd))
|
||||
return 1;
|
||||
- sd.setAttribute("name", loc->name);
|
||||
- sd.setText("\n ");
|
||||
+ sd->setAttribute("name", loc->name);
|
||||
+ sd->setText("\n ");
|
||||
|
||||
// If 'exists', ep points to the existing station record
|
||||
if (exists)
|
||||
|
@ -1,11 +1,36 @@
|
||||
--- 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 @@
|
||||
--- 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.elem->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);
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- 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 @@
|
||||
--- 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;
|
||||
@ -12,34 +12,35 @@
|
||||
|
||||
namespace tqsllib {
|
||||
|
||||
+shared_ptr<XMLElement> make_shared_XMLElement(XMLElement *e)
|
||||
+{
|
||||
+ shared_ptr<XMLElement> p(e);
|
||||
+ return p;
|
||||
+}
|
||||
+
|
||||
pair<string, bool>
|
||||
XMLElement::getAttribute(const string& key) {
|
||||
string s;
|
||||
@@ -49,9 +60,9 @@
|
||||
@@ -41,17 +46,17 @@
|
||||
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));
|
||||
//cout << "Element: " << name << endl;
|
||||
for (int i = 0; atts[i]; i += 2) {
|
||||
- new_el.setAttribute(atts[i], atts[i+1]);
|
||||
+ new_el->setAttribute(atts[i], atts[i+1]);
|
||||
}
|
||||
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));
|
||||
+ new_el->setPretext(el->_parsingStack.back()->second->getText());
|
||||
+ el->_parsingStack.back()->second->setText("");
|
||||
+ el->_parsingStack.push_back(el->_parsingStack.back()->second->addElement(new_el));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,7 +76,7 @@
|
||||
@@ -65,7 +70,7 @@
|
||||
void
|
||||
XMLElement::xml_text(void *data, const XML_Char *text, int len) {
|
||||
XMLElement *el = reinterpret_cast<XMLElement *>(data);
|
||||
- el->_parsingStack.back()->second._text.append(text, len);
|
||||
+ el->_parsingStack.back()->second.elem->_text.append(text, len);
|
||||
+ el->_parsingStack.back()->second->_text.append(text, len);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1,5 +1,5 @@
|
||||
--- src/xml.h.orig 2014-05-08 17:59:25.000000000 -0700
|
||||
+++ src/xml.h 2014-05-24 04:17:00.000000000 -0700
|
||||
--- 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>
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
using std::pair;
|
||||
using std::string;
|
||||
@@ -23,12 +31,28 @@
|
||||
@@ -23,12 +31,19 @@
|
||||
using std::map;
|
||||
using std::multimap;
|
||||
using std::vector;
|
||||
@ -29,51 +29,42 @@
|
||||
|
||||
namespace tqsllib {
|
||||
|
||||
+
|
||||
class XMLElement;
|
||||
+shared_ptr<XMLElement> make_shared_XMLElement(XMLElement *e);
|
||||
+class XMLElementP {
|
||||
+ public:
|
||||
+ XMLElementP() {}
|
||||
+ XMLElementP(shared_ptr<XMLElement> new_elem) { elem = new_elem; }
|
||||
+
|
||||
+ shared_ptr<XMLElement> elem;
|
||||
+};
|
||||
|
||||
-typedef multimap<string, XMLElement> XMLElementList;
|
||||
+typedef multimap<string, XMLElementP> XMLElementList;
|
||||
+typedef multimap<string, shared_ptr<XMLElement> > XMLElementList;
|
||||
typedef map<string, string> XMLElementAttributeList;
|
||||
|
||||
/** Encapsulates an XML element
|
||||
@@ -62,7 +86,7 @@
|
||||
@@ -62,7 +77,7 @@
|
||||
*/
|
||||
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(XMLElement& element);
|
||||
+ XMLElementList::iterator addElement(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 +158,8 @@
|
||||
@@ -134,8 +149,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)));
|
||||
+XMLElement::addElement(shared_ptr<XMLElement>& element) {
|
||||
+ XMLElementList::iterator it = _elements.insert(make_pair(element->getElementName(), element));
|
||||
return it;
|
||||
}
|
||||
|
||||
@@ -158,9 +182,9 @@
|
||||
@@ -158,9 +173,9 @@
|
||||
XMLElement::getNextElement(XMLElement& element) {
|
||||
if (_iter == _elements.end())
|
||||
return false;
|
||||
- if (_iterByName && _iter->second.getElementName() != _iterName)
|
||||
+ if (_iterByName && _iter->second.elem->getElementName() != _iterName)
|
||||
+ if (_iterByName && _iter->second->getElementName() != _iterName)
|
||||
return false;
|
||||
- element = _iter->second;
|
||||
+ element = *_iter->second.elem.get();
|
||||
+ element = *_iter->second;
|
||||
++_iter;
|
||||
return true;
|
||||
}
|
||||
|
@ -1,4 +1,8 @@
|
||||
bin/tqsl
|
||||
%%CONVERTER%%bin/converter
|
||||
%%GEN_CRQ%%bin/gen_crq
|
||||
%%LOAD_CERT%%bin/load_cert
|
||||
%%STATION_LOC%%bin/station_loc
|
||||
include/adif.h
|
||||
include/cabrillo.h
|
||||
include/tqslconvert.h
|
||||
|
Loading…
Reference in New Issue
Block a user