converters/wkhtmltopdf: update 0.12.4 -> 0.12.5, unbreak

- take maintainer

PR:		228968, 228732
Submitted by:	truckman, pi
Reviewed by:	Ashish Kulkarni <kulkarni.ashish@gmail.com> (upstream)
Approved by:	mm (maintainer)
Relnotes:	https://github.com/wkhtmltopdf/wkhtmltopdf/releases
This commit is contained in:
Kurt Jaeger 2018-06-13 05:24:27 +00:00
parent 7f2748bce1
commit 0fc336a6f2
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=472285
5 changed files with 21 additions and 176 deletions

View File

@ -2,10 +2,10 @@
# $FreeBSD$
PORTNAME= wkhtmltopdf
PORTVERSION= 0.12.4
PORTVERSION= 0.12.5
CATEGORIES= converters
MAINTAINER= mm@FreeBSD.org
MAINTAINER= pi@FreeBSD.org
COMMENT= Convert HTML (or live webpages) to PDF or image
LICENSE= LGPL3
@ -28,8 +28,9 @@ USE_XORG= x11 xext xrender
USE_PERL5= build
USE_LDCONFIG= yes
USE_GITHUB= yes
WKQT_TAGNAME= c0cfa03
WKQT_TAGNAME= 5db36ec
GH_TUPLE= ${PORTNAME}:qt:${WKQT_TAGNAME}:qt
USE_CXXSTD= gnu++98
HAS_CONFIGURE= yes
PATCH_WRKSRC= ${WRKSRC}/qt
@ -58,24 +59,26 @@ CONFIGURE_ARGS= -prefix ${WRKSRC}/build/qt \
MAKE_ARGS= INSTALL_ROOT="${STAGEDIR}${PREFIX}"
pre-patch:
@${RMDIR} ${WRKSRC}/qt
@${LN} -s ../qt-${WKQT_TAGNAME} ${WRKSRC}/qt
${RMDIR} ${WRKSRC}/qt
${LN} -s ../qt-${WKQT_TAGNAME} ${WRKSRC}/qt
post-patch:
@${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
-e 's|/usr/X11R6/include|${LOCALBASE}/include/X11|g' \
-e 's|/usr/X11R6/lib|${LOCALBASE}/lib|g' \
${PATCH_WRKSRC}/mkspecs/freebsd-g++/qmake.conf
@${REINPLACE_CMD} -e "s|gcc|${CC}|g" -e "s|g++|${CXX}|g" \
${REINPLACE_CMD} -e "s|gcc|${CC}|g" -e "s|g++|${CXX}|g" \
${PATCH_WRKSRC}/mkspecs/common/g++-base.conf
@${REINPLACE_CMD} -e "s|share/man|man|g" \
${REINPLACE_CMD} -e "s|share/man|man|g" \
${WRKSRC}/src/image/image.pro \
${WRKSRC}/src/pdf/pdf.pro
@${MKDIR} ${WRKSRC}/build/app ${WRKSRC}/build/qt \
${ECHO} 'LIBS+= -lcrypto' >>${WRKSRC}/src/image/image.pro
${ECHO} 'LIBS+= -lcrypto' >>${WRKSRC}/src/pdf/pdf.pro
${MKDIR} ${WRKSRC}/build/app ${WRKSRC}/build/qt \
${WRKSRC}/build/wkhtmltox
post-build:
@cd ${WRKSRC}/build/app && ${SETENV} ${MAKE_ENV} \
cd ${WRKSRC}/build/app && ${SETENV} ${MAKE_ENV} \
../qt/bin/qmake ../../wkhtmltopdf.pro && \
${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_FLAGS} ${MAKEFILE} \
${_MAKE_JOBS} ${MAKE_ARGS:C,^${DESTDIRNAME}=.*,,g} \
@ -84,14 +87,6 @@ post-build:
post-install:
${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/wkhtmltoimage \
${STAGEDIR}${PREFIX}/bin/wkhtmltopdf \
${STAGEDIR}${PREFIX}/lib/libwkhtmltox.so.0.12.4
${STAGEDIR}${PREFIX}/lib/libwkhtmltox.so.${PORTVERSION}
.include <bsd.port.pre.mk>
.if ${OPSYS} == FreeBSD
.if ${COMPILER_TYPE:Mclang} && ${COMPILER_VERSION} >= 60
BROKEN= Does not build
.endif
.endif
.include <bsd.port.post.mk>
.include <bsd.port.mk>

View File

@ -1,5 +1,5 @@
TIMESTAMP = 1489939659
SHA256 (wkhtmltopdf-wkhtmltopdf-0.12.4_GH0.tar.gz) = dd466f5c2504670459f3b8265de5697b9054f077e2f3e392e5172b5133080edf
SIZE (wkhtmltopdf-wkhtmltopdf-0.12.4_GH0.tar.gz) = 128695
SHA256 (wkhtmltopdf-qt-c0cfa03_GH0.tar.gz) = f313fdf8e0b7630f47a6bfba749bea128234379b311a8c609b1da450027eb4ee
SIZE (wkhtmltopdf-qt-c0cfa03_GH0.tar.gz) = 172992697
TIMESTAMP = 1528798989
SHA256 (wkhtmltopdf-wkhtmltopdf-0.12.5_GH0.tar.gz) = 861d6e61e2f5beb2d8daaade2cd5a85b84065ee9fac0d6d85000d8a7712a4621
SIZE (wkhtmltopdf-wkhtmltopdf-0.12.5_GH0.tar.gz) = 511181
SHA256 (wkhtmltopdf-qt-5db36ec_GH0.tar.gz) = 2b60944b46a4b0b9cdb9ce0339c3bf8f54c5ff9411cbc3c6a6ad01f88cc578e1
SIZE (wkhtmltopdf-qt-5db36ec_GH0.tar.gz) = 172992377

View File

@ -1,129 +0,0 @@
diff --git a/AUTHORS ../wkhtmltopdf-0.12.4/AUTHORS
index 62f43f4..1067b9b 100644
--- a/AUTHORS
+++ ../wkhtmltopdf-0.12.4/AUTHORS
@@ -38,3 +38,4 @@ Mehdi Abbad
Lyes Amazouz
Pascal Bach
Mário Silva
+Jason Smith <JasonParallel@gmail.com>
diff --git a/include/wkhtmltox/loadsettings.hh ../wkhtmltopdf-0.12.4/include/wkhtmltox/loadsettings.hh
index 5b9565f..3b9c765 100644
--- a/include/wkhtmltox/loadsettings.hh
+++ ../wkhtmltopdf-0.12.4/include/wkhtmltox/loadsettings.hh
@@ -67,6 +67,15 @@ struct DLL_PUBLIC LoadPage {
//! Password used for http auth login
QString password;
+ //! Path to the ssl client cert private key in OpenSSL PEM format
+ QString clientSslKeyPath;
+
+ //! Password to ssl client cert private key
+ QString clientSslKeyPassword;
+
+ //! Path to the ssl client cert public key in OpenSSL PEM format, optionally followed by intermediate ca and trusted certs
+ QString clientSslCrtPath;
+
//! How many milliseconds should we wait for a Javascript redirect
int jsdelay;
diff --git a/src/lib/loadsettings.hh ../wkhtmltopdf-0.12.4/src/lib/loadsettings.hh
index 20a5da2..bdd2739 100644
--- a/src/lib/loadsettings.hh
+++ ../wkhtmltopdf-0.12.4/src/lib/loadsettings.hh
@@ -70,6 +70,15 @@ struct DLL_PUBLIC LoadPage {
//! Password used for http auth login
QString password;
+ //! Path to the ssl client cert private key in OpenSSL PEM format
+ QString clientSslKeyPath;
+
+ //! Password to ssl client cert private key
+ QString clientSslKeyPassword;
+
+ //! Path to the ssl client cert public key in OpenSSL PEM format, optionally followed by intermediate ca and trusted certs
+ QString clientSslCrtPath;
+
//! How many milliseconds should we wait for a Javascript redirect
int jsdelay;
diff --git a/src/lib/multipageloader.cc ../wkhtmltopdf-0.12.4/src/lib/multipageloader.cc
index 7e61485..841dd6e 100644
--- a/src/lib/multipageloader.cc
+++ ../wkhtmltopdf-0.12.4/src/lib/multipageloader.cc
@@ -26,6 +26,13 @@
#include <QNetworkDiskCache>
#include <QTimer>
#include <QUuid>
+#include <QList>
+#include <QByteArray>
+#if (QT_VERSION >= 0x050000 && !defined QT_NO_SSL) || !defined QT_NO_OPENSSL
+#include <QSslCertificate>
+#include <QSslKey>
+#include <QSslConfiguration>
+#endif
#if QT_VERSION >= 0x050000
#include <QUrlQuery>
#endif
@@ -104,6 +111,33 @@ QNetworkReply * MyNetworkAccessManager::createRequest(Operation op, const QNetwo
foreach (const HT & j, settings.customHeaders)
r3.setRawHeader(j.first.toLatin1(), j.second.toLatin1());
}
+
+ #if (QT_VERSION >= 0x050000 && !defined QT_NO_SSL) || !defined QT_NO_OPENSSL
+ if(!settings.clientSslKeyPath.isEmpty() && !settings.clientSslKeyPassword.isEmpty()
+ && !settings.clientSslCrtPath.isEmpty()){
+ bool success = true;
+ QSslConfiguration sslConfig = QSslConfiguration::defaultConfiguration();
+
+ QFile keyFile(settings.clientSslKeyPath);
+ if(keyFile.open(QFile::ReadOnly)){
+ QSslKey key(&keyFile, QSsl::Rsa, QSsl::Pem, QSsl::PrivateKey, settings.clientSslKeyPassword.toUtf8());
+ sslConfig.setPrivateKey(key);
+ keyFile.close();
+
+ QList<QSslCertificate> chainCerts =
+ QSslCertificate::fromPath(settings.clientSslCrtPath.toLatin1(), QSsl::Pem, QRegExp::FixedString);
+ QList<QSslCertificate> cas = sslConfig.caCertificates();
+ cas.append(chainCerts);
+ if(!chainCerts.isEmpty()){
+ sslConfig.setLocalCertificate(chainCerts.first());
+ sslConfig.setCaCertificates(cas);
+
+ r3.setSslConfiguration(sslConfig);
+ }
+ }
+ }
+ #endif
+
return QNetworkAccessManager::createRequest(op, r3, outgoingData);
}
diff --git a/src/lib/reflect.cc ../wkhtmltopdf-0.12.4/src/lib/reflect.cc
index 32fc819..46e884c 100644
--- a/src/lib/reflect.cc
+++ ../wkhtmltopdf-0.12.4/src/lib/reflect.cc
@@ -57,6 +57,9 @@ ReflectImpl<LoadGlobal>::ReflectImpl(LoadGlobal & c) {
ReflectImpl<LoadPage>::ReflectImpl(LoadPage & c) {
WKHTMLTOPDF_REFLECT(username);
WKHTMLTOPDF_REFLECT(password);
+ WKHTMLTOPDF_REFLECT(clientSslKeyPath);
+ WKHTMLTOPDF_REFLECT(clientSslKeyPassword);
+ WKHTMLTOPDF_REFLECT(clientSslCrtPath);
WKHTMLTOPDF_REFLECT(jsdelay);
WKHTMLTOPDF_REFLECT(windowStatus);
WKHTMLTOPDF_REFLECT(zoomFactor);
diff --git a/src/shared/commonarguments.cc ../wkhtmltopdf-0.12.4/src/shared/commonarguments.cc
index 3d45aaf..812f7b8 100644
--- a/src/shared/commonarguments.cc
+++ ../wkhtmltopdf-0.12.4/src/shared/commonarguments.cc
@@ -206,6 +206,9 @@ void CommandLineParserBase::addPageLoadArgs(LoadPage & s) {
addarg("bypass-proxy-for", 0, "Bypass proxy for host (repeatable)", new StringListSetter(s.bypassProxyForHosts, "value"));
addarg("username",0,"HTTP Authentication username", new QStrSetter(s.username, "username"));
addarg("password",0,"HTTP Authentication password", new QStrSetter(s.password, "password"));
+ addarg("ssl-key-path",0,"Path to ssl client cert private key in OpenSSL PEM format", new QStrSetter(s.clientSslKeyPath, "path"));
+ addarg("ssl-key-password",0,"Password to ssl client cert private key", new QStrSetter(s.clientSslKeyPassword, "password"));
+ addarg("ssl-crt-path",0,"Path to the ssl client cert public key in OpenSSL PEM format, optionally followed by intermediate ca and trusted certs", new QStrSetter(s.clientSslCrtPath, "path"));
addarg("load-error-handling", 0, "Specify how to handle pages that fail to load: abort, ignore or skip", new LoadErrorHandlingSetting(s.loadErrorHandling, "handler"));
addarg("load-media-error-handling", 0, "Specify how to handle media files that fail to load: abort, ignore or skip", new LoadErrorHandlingSetting(s.mediaLoadErrorHandling, "handler"));
addarg("custom-header",0,"Set an additional HTTP header (repeatable)", new MapSetter<>(s.customHeaders, "name", "value"));

View File

@ -1,21 +0,0 @@
------------------------------------------------------------------------
r113848 | abecsi@webkit.org | 2012-04-11 11:23:19 +0000 (Wed, 11 Apr 2012) | 27 lines
Fix the build with gcc 4.7.0
https://bugs.webkit.org/show_bug.cgi?id=83584
[...]
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::createForJSConstructor): Fails because of -Werror=extra
[...]
--- src/3rdparty/webkit/Source/WebCore/html/HTMLImageElement.cpp.orig 2015-05-07 14:14:47 UTC
+++ src/3rdparty/webkit/Source/WebCore/html/HTMLImageElement.cpp
@@ -74,7 +74,7 @@ PassRefPtr<HTMLImageElement> HTMLImageEl
RefPtr<HTMLImageElement> image = adoptRef(new HTMLImageElement(imgTag, document));
if (optionalWidth)
image->setWidth(*optionalWidth);
- if (optionalHeight > 0)
+ if (optionalHeight)
image->setHeight(*optionalHeight);
return image.release();
}

View File

@ -7,6 +7,6 @@ include/wkhtmltox/pdf.h
lib/libwkhtmltox.so
lib/libwkhtmltox.so.0
lib/libwkhtmltox.so.0.12
lib/libwkhtmltox.so.0.12.4
lib/libwkhtmltox.so.0.12.5
man/man1/wkhtmltoimage.1.gz
man/man1/wkhtmltopdf.1.gz