[wkhtmltopdf] 0.12.0
Mamoru TASAKA
mtasaka at fedoraproject.org
Tue Jun 3 05:19:02 UTC 2014
commit 12f3990f6239bec26eea900233e67f919feff172
Author: Mamoru TASAKA <mtasaka at fedoraproject.org>
Date: Tue Jun 3 14:18:52 2014 +0900
0.12.0
.gitignore | 1 +
sources | 2 +-
...pdf-0.12.0-fix-compilation-with-native-qt.patch | 209 ++++++++++++++++++++
wkhtmltopdf.spec | 30 +++-
4 files changed, 234 insertions(+), 8 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index f528236..bcf3929 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
/wkhtmltopdf-0.11.0_rc1.tar.bz2
+/wkhtmltopdf-0.12.0.tar.gz
diff --git a/sources b/sources
index 4fc5813..b6ebd41 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-65378cf59698c676fcd6d8f5efd54be6 wkhtmltopdf-0.11.0_rc1.tar.bz2
+e2af84222d651791d10270ce9ccf1245 wkhtmltopdf-0.12.0.tar.gz
diff --git a/wkhtmltopdf-0.12.0-fix-compilation-with-native-qt.patch b/wkhtmltopdf-0.12.0-fix-compilation-with-native-qt.patch
new file mode 100644
index 0000000..4f616b7
--- /dev/null
+++ b/wkhtmltopdf-0.12.0-fix-compilation-with-native-qt.patch
@@ -0,0 +1,209 @@
+--- wkhtmltopdf-0.12.0/src/lib/pdfconverter.cc.qt 2014-02-06 17:38:26.000000000 +0900
++++ wkhtmltopdf-0.12.0/src/lib/pdfconverter.cc 2014-06-03 13:57:07.829410257 +0900
+@@ -78,9 +78,9 @@
+
+ PdfConverterPrivate::PdfConverterPrivate(PdfGlobal & s, PdfConverter & o) :
+ settings(s), pageLoader(s.load),
+- out(o), printer(0), painter(0), webPrinter(0)
++ out(o), printer(0), painter(0)
+ #ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
+- , measuringHFLoader(s.load), hfLoader(s.load), tocLoader1(s.load), tocLoader2(s.load)
++ , webPrinter(0), measuringHFLoader(s.load), hfLoader(s.load), tocLoader1(s.load), tocLoader2(s.load)
+ , tocLoader(&tocLoader1), tocLoaderOld(&tocLoader2)
+ , outline(0), currentHeader(0), currentFooter(0)
+ #endif
+@@ -151,13 +151,15 @@
+ fail();
+ return;
+ }
+-#endif
++#else
+ bool headerHeightsCalcNeeded = false;
++#endif
+
+ for (QList<PageObject>::iterator i=objects.begin(); i != objects.end(); ++i) {
+ PageObject & o=*i;
+ settings::PdfObject & s = o.settings;
+
++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
+ if (!s.header.htmlUrl.isEmpty() ) {
+ if (looksLikeHtmlAndNotAUrl(s.header.htmlUrl)) {
+ emit out.error("--header-html should be a URL and not a string containing HTML code.");
+@@ -195,6 +197,7 @@
+ o.footerReserveHeight = settings.margin.bottom.first + s.footer.spacing;
+ }
+ }
++#endif
+
+ if (!s.isTableOfContent) {
+ o.loaderObject = pageLoader.addResource(s.page, s.load, &o.data);
+@@ -207,6 +210,7 @@
+ emit out.phaseChanged();
+ loadProgress(0);
+
++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
+ if (headerHeightsCalcNeeded) {
+ // preload header/footer to check their heights
+ measuringHFLoader.load();
+@@ -225,8 +229,12 @@
+
+ pageLoader.load();
+ }
++#else
++ pageLoader.load();
++#endif
+ }
+
++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
+ // calculates header/footer height
+ // returns millimeters
+ qreal PdfConverterPrivate::calculateHeaderHeight(PageObject & object, QWebPage & header) {
+@@ -252,6 +260,8 @@
+ return (height / PdfConverter::millimeterToPointMultiplier);
+ }
+
++#endif
++
+ QPrinter * PdfConverterPrivate::createPrinter(const QString & tempFile) {
+ QPrinter * printer = new QPrinter(settings.resolution);
+ if (settings.dpi != -1) printer->setResolution(settings.dpi);
+@@ -275,6 +285,7 @@
+ return printer;
+ }
+
++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
+ void PdfConverterPrivate::preprocessPage(PageObject & obj) {
+ currentObject++;
+ if (obj.settings.isTableOfContent) {
+@@ -309,7 +320,7 @@
+ outline->addEmptyWebPage();
+ painter->restore();
+ }
+-
++#endif
+
+ /*!
+ * Prepares printing out the document to the pdf file
+@@ -353,9 +364,15 @@
+ }
+
+ //Setup margins and papersize
++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
+ printer->setPageMargins(settings.margin.left.first, objects[0].headerReserveHeight,
+ settings.margin.right.first, objects[0].footerReserveHeight,
+ settings.margin.left.second);
++#else
++ printer->setPageMargins(settings.margin.left.first, settings.margin.top.first,
++ settings.margin.right.first, settings.margin.bottom.first,
++ settings.margin.left.second);
++#endif
+
+ if ((settings.size.height.first != -1) && (settings.size.width.first != -1)) {
+ printer->setPaperSize(QSizeF(settings.size.width.first,settings.size.height.first), settings.size.height.second);
+@@ -656,7 +673,6 @@
+ }
+
+ }
+-#endif
+
+ void PdfConverterPrivate::handleTocPage(PageObject & obj) {
+ painter->save();
+@@ -670,6 +686,7 @@
+ tocChanged = outline->replaceWebPage(obj.number, obj.settings.toc.captionText, wp, obj.page->mainFrame(), obj.settings, obj.localLinks, obj.anchors) || tocChanged;
+ painter->restore();
+ }
++#endif
+
+
+ void PdfConverterPrivate::tocLoaded(bool ok) {
+@@ -731,6 +748,7 @@
+ return;
+ }
+
++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
+ for (int d=0; d < objects.size(); ++d) {
+ PageObject & obj = objects[d];
+ if (obj.measuringHeader) {
+@@ -743,6 +761,7 @@
+ obj.footerReserveHeight = calculateHeaderHeight(obj, *obj.measuringFooter) + obj.settings.header.spacing;
+ }
+ }
++#endif
+
+ pageLoader.load();
+ }
+@@ -758,6 +777,7 @@
+ printDocument();
+ }
+
++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
+
+ void PdfConverterPrivate::spoolPage(int page) {
+ progressString = QString("Page ") + QString::number(actualPage) + QString(" of ") + QString::number(actualPages);
+@@ -904,7 +924,8 @@
+ }
+
+ }
+-
++
++#endif
+
+ void PdfConverterPrivate::printDocument() {
+ #ifndef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
+--- wkhtmltopdf-0.12.0/src/lib/pdfconverter_p.hh.qt 2014-02-06 17:38:26.000000000 +0900
++++ wkhtmltopdf-0.12.0/src/lib/pdfconverter_p.hh 2014-06-03 13:50:21.706157434 +0900
+@@ -94,8 +94,11 @@
+ }
+
+ PageObject(const settings::PdfObject & set, const QString * d=NULL):
+- settings(set), loaderObject(0), page(0), headerReserveHeight(0), footerReserveHeight(0),
+- measuringHeader(0), measuringFooter(0) {
++ settings(set), loaderObject(0), page(0)
++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
++ , headerReserveHeight(0), footerReserveHeight(0), measuringHeader(0), measuringFooter(0)
++#endif
++ {
+ if (d) data=*d;
+ };
+
+@@ -134,6 +137,7 @@
+ bool tocChanged;
+ int actualPage;
+ int pageNumber;
++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
+ QWebPrinter * webPrinter;
+ int objectPage;
+
+@@ -144,7 +148,6 @@
+ QHash<int, QVector<QWebElement> > pageFormElements;
+ bool pageHasHeaderFooter;
+
+-#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
+ // loader for measuringHeader and measuringFooter
+ MultiPageLoader measuringHFLoader;
+
+@@ -163,14 +166,14 @@
+ void fillParms(QHash<QString, QString> & parms, int page, const PageObject & object);
+ QString hfreplace(const QString & q, const QHash<QString, QString> & parms);
+ QWebPage * loadHeaderFooter(QString url, const QHash<QString, QString> & parms, const settings::PdfObject & ps);
+-
++ qreal calculateHeaderHeight(PageObject & object, QWebPage & header);
+
+ #endif
+ QWebPage * currentHeader;
+ QWebPage * currentFooter;
+- qreal calculateHeaderHeight(PageObject & object, QWebPage & header);
+ QPrinter * createPrinter(const QString & tempFile);
+
++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
+ void handleTocPage(PageObject & obj);
+ void preprocessPage(PageObject & obj);
+ void spoolPage(int page);
+@@ -179,6 +182,7 @@
+ void handleFooter(QWebPage * frame, int page);
+ void beginPrintObject(PageObject & obj);
+ void endPrintObject(PageObject & obj);
++#endif
+
+ void loadTocs();
+ void loadHeaders();
diff --git a/wkhtmltopdf.spec b/wkhtmltopdf.spec
index 2e1c8c2..1c95741 100644
--- a/wkhtmltopdf.spec
+++ b/wkhtmltopdf.spec
@@ -1,16 +1,22 @@
-%global mainver 0.11.0
-%global minorver rc1
+%global mainver 0.12.0
+#%%global minorver rc1
-%global fedorarel 2
+%global fedorarel 1
Name: wkhtmltopdf
Version: %{mainver}
-Release: %{?minorver:0.}%{fedorarel}%{?minorver:.%minorver}%{?dist}.1
+Release: %{?minorver:0.}%{fedorarel}%{?minorver:.%minorver}%{?dist}
Summary: Simple shell utility to convert html to pdf
License: GPLv3+
-URL: http://code.google.com/p/wkhtmltopdf/
-Source0: http://wkhtmltopdf.googlecode.com/files/%{name}-%{mainver}%{?minorver:_%minorver}.tar.bz2
+URL: http://wkhtmltopdf.org/
+#Source0: http://wkhtmltopdf.googlecode.com/files/%{name}-%{mainver}%{?minorver:_%minorver}.tar.bz2
+# https://github.com/wkhtmltopdf/wkhtmltopdf/archive/%%{version}.tar.gz
+# Renamed above
+Source0: %{name}-%{version}.tar.gz
+# https://github.com/wkhtmltopdf/wkhtmltopdf/commit/88d5e32c7392855650f8bfe0089662bb41ae07c.patch
+# Slightly modified
+Patch0: wkhtmltopdf-0.12.0-fix-compilation-with-native-qt.patch
BuildRequires: qtwebkit-devel%{?isa}
@@ -30,11 +36,17 @@ developing applications that use %{name}.
%prep
%setup -q -n %{name}-%{mainver}%{?minorver:_%minorver}
+%patch0 -p1 -b .qt
# libdir handling.. better handling needed
sed -i.lib -e \
'/INSTALLBASE/s|lib|%{_lib}|' \
src/lib/lib.pro
+# Remove BOM
+sed -i.bom -e 's|\xEF\xBB\xBF||' AUTHORS
+touch -r AUTHORS{.bom,}
+rm -f AUTHORS.bom
+
%build
%{_qt4_qmake}
make %{_smp_mflags}
@@ -48,8 +60,9 @@ make install \
%files
+%doc AUTHORS
%doc COPYING
-%doc README_WKHTMLTO*
+%doc README.md
%{_libdir}/libwkhtmltox.so.0*
%{_bindir}/wkhtmltoimage
@@ -62,6 +75,9 @@ make install \
%changelog
+* Tue Jun 3 2014 Mamoru TASAKA <mtasaka at fedoraproject.org> - 0.12.0-1
+- 0.12.0
+
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 0.11.0-0.2.rc1.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
More information about the scm-commits
mailing list