diff options
author | mm <mm@FreeBSD.org> | 2014-06-29 18:27:39 +0800 |
---|---|---|
committer | mm <mm@FreeBSD.org> | 2014-06-29 18:27:39 +0800 |
commit | 00b1ce0dc870975cfd19b5d9eaffc4cc185515e9 (patch) | |
tree | 257b022238866b774326913f6f401b1090dbe541 /converters/wkhtmltopdf | |
parent | db6d7ebcb88b64846318a8dd05cff24530457a04 (diff) | |
download | freebsd-ports-gnome-00b1ce0dc870975cfd19b5d9eaffc4cc185515e9.tar.gz freebsd-ports-gnome-00b1ce0dc870975cfd19b5d9eaffc4cc185515e9.tar.zst freebsd-ports-gnome-00b1ce0dc870975cfd19b5d9eaffc4cc185515e9.zip |
Update wkhtmltopdf to 0.12.1
Diffstat (limited to 'converters/wkhtmltopdf')
10 files changed, 55 insertions, 703 deletions
diff --git a/converters/wkhtmltopdf/Makefile b/converters/wkhtmltopdf/Makefile index 70db94aa5b0d..12e91aee2b9b 100644 --- a/converters/wkhtmltopdf/Makefile +++ b/converters/wkhtmltopdf/Makefile @@ -2,56 +2,56 @@ # $FreeBSD$ PORTNAME= wkhtmltopdf -PORTVERSION= 0.12.0 -PORTREVISION= 2 +PORTVERSION= 0.12.1 CATEGORIES= converters -MASTER_SITES= GH:wk \ - http://github.com/${GH_ACCOUNT}/qt/archive/${WKQT_TAGNAME}.tar.gz?dummy=/:wkqt -DISTFILES= ${PORTNAME}-${PORTVERSION}.tar.gz:wk \ - wkhtmltopdf-qt-${PORTVERSION}.tar.gz:wkqt +MASTER_SITES= SF +MASTER_SITE_SUBDIR= ${PORTNAME}/${PORTVERSION} +DISTNAME= wkhtmltox-${PORTVERSION} MAINTAINER= mm@FreeBSD.org -COMMENT= Convert HTML (or live webpages) to PDF or image files +COMMENT= Convert HTML (or live webpages) to PDF or image LICENSE= LGPL3 LICENSE_FILE_LGPL3= ${INSTALL_WRKSRC}/COPYING LIB_DEPENDS+= libfontconfig.so:${PORTSDIR}/x11-fonts/fontconfig \ - libfreetype.so:${PORTSDIR}/print/freetype2 + libfreetype.so:${PORTSDIR}/print/freetype2 \ + libjpeg.so:${PORTSDIR}/graphics/jpeg \ + libpng15.so:${PORTSDIR}/graphics/png -USE_GITHUB= yes -GH_ACCOUNT= wkhtmltopdf -GH_PROJECT= wkhtmltopdf -GH_COMMIT= 03c001d -GH_TAGNAME= 0.12.0 -WKQT_TAGNAME= wkhtmltopdf_0.12.0 +USE_BZIP2= yes -USES= pkgconfig gmake perl5 +USES= pkgconfig gmake perl5 iconv USE_XORG= x11 xext xrender USE_PERL5= build USE_LDCONFIG= yes HAS_CONFIGURE= yes -WRKSRC= ${WRKDIR}/qt-${WKQT_TAGNAME} -INSTALL_WRKSRC= ${WRKDIR}/${GH_ACCOUNT}-${GH_PROJECT}-${GH_COMMIT} - -OPTIONS_DEFINE= BUNDLED_LIBS -BUNDLED_LIBS_DESC= Use Qt-bundled jpeg, mng, png and tiff - -CONFIGURE_ARGS= -prefix ${WRKDIR}/qt-wk \ - -release -static -fast -exceptions -no-accessibility -no-stl \ - -no-sql-ibase -no-sql-mysql -no-sql-odbc -no-sql-psql -no-sql-sqlite \ - -no-sql-sqlite2 -no-qt3support -xmlpatterns -no-phonon \ - -no-phonon-backend -webkit -no-scripttools -no-mmx -no-3dnow -no-sse \ - -no-sse2 -system-zlib \ - -graphicssystem raster -opensource -confirm-license \ - -nomake tools -nomake examples -nomake demos -nomake docs \ - -nomake translations -no-opengl -no-dbus -no-multimedia -openssl \ - -no-declarative -largefile -rpath -no-nis -no-cups -no-iconv -no-pch \ +LIBVERSION= 0.12.0 + +WRKSRC= ${WRKDIR}/wkhtmltox-${PORTVERSION} +PATCH_WRKSRC= ${WRKSRC}/qt +CONFIGURE_WRKSRC= ${WRKSRC}/build/qt +BUILD_WRKSRC= ${WRKSRC}/build/qt +INSTALL_WRKSRC= ${WRKSRC}/build/app + +CONFIGURE_SCRIPT= ../../qt/configure +CONFIGURE_ARGS= -prefix ${WRKSRC}/build/qt \ + -opensource -confirm-license -fast -release -static \ + -graphicssystem raster -webkit -exceptions -xmlpatterns -system-zlib \ + -system-libpng -system-libjpeg -no-libmng -no-libtiff -no-stl \ + -no-accessibility -no-qt3support -no-phonon -no-phonon-backend \ + -no-opengl -no-declarative -no-script -no-scripttools \ + -no-sql-ibase -no-sql-mysql -no-sql-odbc -no-sql-psql \ + -no-sql-sqlite -no-sql-sqlite2 -no-mmx -no-3dnow -no-sse -no-sse2 \ + -no-multimedia -nomake demos -nomake docs -nomake examples \ + -nomake tools -nomake tests -nomake translations -xrender -largefile \ + -iconv -openssl -no-rpath -no-dbus -no-nis -no-cups -no-pch \ -no-gtkstyle -no-nas-sound -no-sm -no-xshape -no-xinerama -no-xcursor \ - -no-xfixes -no-xrandr -no-mitshm -no-xinput -no-xkb -no-glib -no-openvg \ - -no-opengl -no-xsync -no-audio-backend -no-sse3 -no-ssse3 -no-sse4.1 \ - -no-sse4.2 + -no-xfixes -no-xrandr -no-mitshm -no-xinput -no-xkb -no-glib \ + -no-gstreamer -D ENABLE_VIDEO=0 -no-openvg -no-xsync \ + -no-audio-backend -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 -no-avx \ + -no-neon MAKE_ARGS+= INSTALL_ROOT="${STAGEDIR}${PREFIX}" @@ -65,38 +65,27 @@ BROKEN= fails to extract on FreeBSD 7.X BROKEN= Does not link on powerpc .endif -.if ${PORT_OPTIONS:MBUNDLED_LIBS} -CONFIGURE_ARGS+= -qt-libtiff -qt-libpng -qt-libmng -qt-libjpeg -.else -LIB_DEPENDS+= libjpeg.so:${PORTSDIR}/graphics/jpeg \ - libpng15.so:${PORTSDIR}/graphics/png \ - libmng.so:${PORTSDIR}/graphics/libmng \ - libtiff.so:${PORTSDIR}/graphics/tiff -CONFIGURE_ARGS+= -system-libtiff -system-libpng -system-libmng \ - -system-libjpeg -.endif - post-patch: @${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' \ - ${WRKSRC}/mkspecs/freebsd-g++/qmake.conf + ${PATCH_WRKSRC}/mkspecs/freebsd-g++/qmake.conf @${REINPLACE_CMD} -e "s|gcc|${CC}|g" -e "s|g++|${CXX}|g" \ - ${WRKSRC}/mkspecs/common/g++-base.conf + ${PATCH_WRKSRC}/mkspecs/common/g++-base.conf + @${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 \ + ${WRKSRC}/build/wkhtmltox post-build: - @cd ${WRKSRC} && \ - ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_FLAGS} ${MAKEFILE} \ - ${MAKE_ARGS} ${INSTALL_TARGET} INSTALL_ROOT= - - @cd ${INSTALL_WRKSRC} && ${WRKDIR}/qt-wk/bin/qmake && \ + @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} \ ${ALL_TARGET} post-install: - @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/wkhtmltopdf \ - ${STAGEDIR}${PREFIX}/bin/wkhtmltoimage @${CAT} ${PKGMESSAGE} .include <bsd.port.post.mk> diff --git a/converters/wkhtmltopdf/distinfo b/converters/wkhtmltopdf/distinfo index 3d9200f99d20..8a0f8e75ce56 100644 --- a/converters/wkhtmltopdf/distinfo +++ b/converters/wkhtmltopdf/distinfo @@ -1,4 +1,2 @@ -SHA256 (wkhtmltopdf-0.12.0.tar.gz) = 47b35536ca60220c402113c9ceee9b1f68bd7ca0dc831e3242e26684a9fd4baf -SIZE (wkhtmltopdf-0.12.0.tar.gz) = 135609 -SHA256 (wkhtmltopdf-qt-0.12.0.tar.gz) = 45c675a379478ec6bc4a5bae92264b92ba413a7b870615fac5f7868c304b992d -SIZE (wkhtmltopdf-qt-0.12.0.tar.gz) = 173004829 +SHA256 (wkhtmltox-0.12.1.tar.bz2) = 383041db30d6e08b9a6f126193a9e120e2791ff99005c39b1d0adacd53e2faca +SIZE (wkhtmltox-0.12.1.tar.bz2) = 36186476 diff --git a/converters/wkhtmltopdf/files/patch-libcxx b/converters/wkhtmltopdf/files/patch-libcxx index 1107c65e587f..ab695126e9fc 100644 --- a/converters/wkhtmltopdf/files/patch-libcxx +++ b/converters/wkhtmltopdf/files/patch-libcxx @@ -208,7 +208,7 @@ libc++ provides std::nullptr emulation, so we don't have to. #define __has_feature(feature) 0 #endif --#if __has_feature(cxx_nullptr) || (GCC_VERSION_AT_LEAST(4, 6, 0) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || (defined(_MSC_VER) && _MSC_VER >= 1600 && !COMPILER(INTEL)) +-#if __has_feature(cxx_nullptr) || (GCC_VERSION_AT_LEAST(4, 6, 0) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || (defined(_MSC_VER) && _MSC_VER >= 1600 && !COMPILER(INTEL)) || defined(_LIBCPP_VERSION) +#include <ciso646> + +#if __has_feature(cxx_nullptr) || (GCC_VERSION_AT_LEAST(4, 6, 0) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || (defined(_MSC_VER) && _MSC_VER >= 1600 && !COMPILER(INTEL)) || defined(_LIBCPP_VERSION) @@ -231,288 +231,6 @@ libc++ provides std::nullptr emulation, so we don't have to. document()->setParsing(false); // Make the doc think it's done, so it will apply xsl sheets. document()->styleSelectorChanged(RecalcStyleImmediately); document()->setParsing(true); ---- src/3rdparty/webkit/Source/WebCore/platform/Timer.cpp (revision 92555) -+++ src/3rdparty/webkit/Source/WebCore/platform/Timer.cpp (revision 92556) -@@ -41,6 +41,8 @@ - - namespace WebCore { - -+class TimerHeapReference; -+ - // Timers are stored in a heap data structure, used to implement a priority queue. - // This allows us to efficiently determine which timer needs to fire the soonest. - // Then we set a single shared system timer to fire at that time. -@@ -53,113 +55,141 @@ - return threadGlobalData().threadTimers().timerHeap(); - } - --// Class to represent elements in the heap when calling the standard library heap algorithms. --// Maintains the m_heapIndex value in the timers themselves, which allows us to do efficient --// modification of the heap. --class TimerHeapElement { -+// ---------------- -+ -+class TimerHeapPointer { - public: -- explicit TimerHeapElement(int i) -- : m_index(i) -- , m_timer(timerHeap()[m_index]) -- { -- checkConsistency(); -- } -+ TimerHeapPointer(TimerBase** pointer) : m_pointer(pointer) { } -+ TimerHeapReference operator*() const; -+ TimerBase* operator->() const { return *m_pointer; } -+private: -+ TimerBase** m_pointer; -+}; - -- TimerHeapElement(const TimerHeapElement&); -- TimerHeapElement& operator=(const TimerHeapElement&); -- -- TimerBase* timer() const { return m_timer; } -- -- void checkConsistency() const -- { -- ASSERT(m_index >= 0); -- ASSERT(m_index < static_cast<int>(timerHeap().size())); -- } -- -+class TimerHeapReference { -+public: -+ TimerHeapReference(TimerBase*& reference) : m_reference(reference) { } -+ operator TimerBase*() const { return m_reference; } -+ TimerHeapPointer operator&() const { return &m_reference; } -+ TimerHeapReference& operator=(TimerBase*); -+ TimerHeapReference& operator=(TimerHeapReference); - private: -- TimerHeapElement(); -- -- int m_index; -- TimerBase* m_timer; -+ TimerBase*& m_reference; - }; - --inline TimerHeapElement::TimerHeapElement(const TimerHeapElement& o) -- : m_index(-1), m_timer(o.timer()) -+inline TimerHeapReference TimerHeapPointer::operator*() const - { -+ return *m_pointer; - } - --inline TimerHeapElement& TimerHeapElement::operator=(const TimerHeapElement& o) -+inline TimerHeapReference& TimerHeapReference::operator=(TimerBase* timer) - { -- TimerBase* t = o.timer(); -- m_timer = t; -- if (m_index != -1) { -- checkConsistency(); -- timerHeap()[m_index] = t; -- t->m_heapIndex = m_index; -- } -+ m_reference = timer; -+ Vector<TimerBase*>& heap = timerHeap(); -+ if (&m_reference >= heap.data() && &m_reference < heap.data() + heap.size()) -+ timer->m_heapIndex = &m_reference - heap.data(); - return *this; - } - --inline bool operator<(const TimerHeapElement& a, const TimerHeapElement& b) -+inline TimerHeapReference& TimerHeapReference::operator=(TimerHeapReference b) - { -- // The comparisons below are "backwards" because the heap puts the largest -- // element first and we want the lowest time to be the first one in the heap. -- double aFireTime = a.timer()->m_nextFireTime; -- double bFireTime = b.timer()->m_nextFireTime; -- if (bFireTime != aFireTime) -- return bFireTime < aFireTime; -- -- // We need to look at the difference of the insertion orders instead of comparing the two -- // outright in case of overflow. -- unsigned difference = a.timer()->m_heapInsertionOrder - b.timer()->m_heapInsertionOrder; -- return difference < UINT_MAX / 2; -+ TimerBase* timer = b; -+ return *this = timer; - } - -+inline void swap(TimerHeapReference a, TimerHeapReference b) -+{ -+ TimerBase* timerA = a; -+ TimerBase* timerB = b; -+ -+ // Invoke the assignment operator, since that takes care of updating m_heapIndex. -+ a = timerB; -+ b = timerA; -+} -+ - // ---------------- - - // Class to represent iterators in the heap when calling the standard library heap algorithms. --// Returns TimerHeapElement for elements in the heap rather than the TimerBase pointers themselves. --class TimerHeapIterator : public iterator<random_access_iterator_tag, TimerHeapElement, int> { -+// Uses a custom pointer and reference type that update indices for pointers in the heap. -+class TimerHeapIterator : public iterator<random_access_iterator_tag, TimerBase*, ptrdiff_t, TimerHeapPointer, TimerHeapReference> { - public: -- TimerHeapIterator() : m_index(-1) { } -- TimerHeapIterator(int i) : m_index(i) { checkConsistency(); } -+ explicit TimerHeapIterator(TimerBase** pointer) : m_pointer(pointer) { checkConsistency(); } - -- TimerHeapIterator& operator++() { checkConsistency(); ++m_index; checkConsistency(); return *this; } -- TimerHeapIterator operator++(int) { checkConsistency(); checkConsistency(1); return m_index++; } -+ TimerHeapIterator& operator++() { checkConsistency(); ++m_pointer; checkConsistency(); return *this; } -+ TimerHeapIterator operator++(int) { checkConsistency(1); return TimerHeapIterator(m_pointer++); } - -- TimerHeapIterator& operator--() { checkConsistency(); --m_index; checkConsistency(); return *this; } -- TimerHeapIterator operator--(int) { checkConsistency(); checkConsistency(-1); return m_index--; } -+ TimerHeapIterator& operator--() { checkConsistency(); --m_pointer; checkConsistency(); return *this; } -+ TimerHeapIterator operator--(int) { checkConsistency(-1); return TimerHeapIterator(m_pointer--); } - -- TimerHeapIterator& operator+=(int i) { checkConsistency(); m_index += i; checkConsistency(); return *this; } -- TimerHeapIterator& operator-=(int i) { checkConsistency(); m_index -= i; checkConsistency(); return *this; } -+ TimerHeapIterator& operator+=(ptrdiff_t i) { checkConsistency(); m_pointer += i; checkConsistency(); return *this; } -+ TimerHeapIterator& operator-=(ptrdiff_t i) { checkConsistency(); m_pointer -= i; checkConsistency(); return *this; } - -- TimerHeapElement operator*() const { return TimerHeapElement(m_index); } -- TimerHeapElement operator[](int i) const { return TimerHeapElement(m_index + i); } -+ TimerHeapReference operator*() const { return TimerHeapReference(*m_pointer); } -+ TimerHeapReference operator[](ptrdiff_t i) const { return TimerHeapReference(m_pointer[i]); } -+ TimerBase* operator->() const { return *m_pointer; } - -- int index() const { return m_index; } -- -- void checkConsistency(int offset = 0) const -+private: -+ void checkConsistency(ptrdiff_t offset = 0) const - { -- ASSERT_UNUSED(offset, m_index + offset >= 0); -- ASSERT_UNUSED(offset, m_index + offset <= static_cast<int>(timerHeap().size())); -+ ASSERT(m_pointer >= timerHeap().data()); -+ ASSERT(m_pointer <= timerHeap().data() + timerHeap().size()); -+ ASSERT_UNUSED(offset, m_pointer + offset >= timerHeap().data()); -+ ASSERT_UNUSED(offset, m_pointer + offset <= timerHeap().data() + timerHeap().size()); - } - --private: -- int m_index; -+ friend bool operator==(TimerHeapIterator, TimerHeapIterator); -+ friend bool operator!=(TimerHeapIterator, TimerHeapIterator); -+ friend bool operator<(TimerHeapIterator, TimerHeapIterator); -+ friend bool operator>(TimerHeapIterator, TimerHeapIterator); -+ friend bool operator<=(TimerHeapIterator, TimerHeapIterator); -+ friend bool operator>=(TimerHeapIterator, TimerHeapIterator); -+ -+ friend TimerHeapIterator operator+(TimerHeapIterator, size_t); -+ friend TimerHeapIterator operator+(size_t, TimerHeapIterator); -+ -+ friend TimerHeapIterator operator-(TimerHeapIterator, size_t); -+ friend ptrdiff_t operator-(TimerHeapIterator, TimerHeapIterator); -+ -+ TimerBase** m_pointer; - }; - --inline bool operator==(TimerHeapIterator a, TimerHeapIterator b) { return a.index() == b.index(); } --inline bool operator!=(TimerHeapIterator a, TimerHeapIterator b) { return a.index() != b.index(); } --inline bool operator<(TimerHeapIterator a, TimerHeapIterator b) { return a.index() < b.index(); } -+inline bool operator==(TimerHeapIterator a, TimerHeapIterator b) { return a.m_pointer == b.m_pointer; } -+inline bool operator!=(TimerHeapIterator a, TimerHeapIterator b) { return a.m_pointer != b.m_pointer; } -+inline bool operator<(TimerHeapIterator a, TimerHeapIterator b) { return a.m_pointer < b.m_pointer; } -+inline bool operator>(TimerHeapIterator a, TimerHeapIterator b) { return a.m_pointer > b.m_pointer; } -+inline bool operator<=(TimerHeapIterator a, TimerHeapIterator b) { return a.m_pointer <= b.m_pointer; } -+inline bool operator>=(TimerHeapIterator a, TimerHeapIterator b) { return a.m_pointer >= b.m_pointer; } - --inline TimerHeapIterator operator+(TimerHeapIterator a, int b) { return a.index() + b; } --inline TimerHeapIterator operator+(int a, TimerHeapIterator b) { return a + b.index(); } -+inline TimerHeapIterator operator+(TimerHeapIterator a, size_t b) { return TimerHeapIterator(a.m_pointer + b); } -+inline TimerHeapIterator operator+(size_t a, TimerHeapIterator b) { return TimerHeapIterator(a + b.m_pointer); } - --inline TimerHeapIterator operator-(TimerHeapIterator a, int b) { return a.index() - b; } --inline int operator-(TimerHeapIterator a, TimerHeapIterator b) { return a.index() - b.index(); } -+inline TimerHeapIterator operator-(TimerHeapIterator a, size_t b) { return TimerHeapIterator(a.m_pointer - b); } -+inline ptrdiff_t operator-(TimerHeapIterator a, TimerHeapIterator b) { return a.m_pointer - b.m_pointer; } - - // ---------------- - -+class TimerHeapLessThanFunction { -+public: -+ bool operator()(TimerBase*, TimerBase*) const; -+}; -+ -+inline bool TimerHeapLessThanFunction::operator()(TimerBase* a, TimerBase* b) const -+{ -+ // The comparisons below are "backwards" because the heap puts the largest -+ // element first and we want the lowest time to be the first one in the heap. -+ double aFireTime = a->m_nextFireTime; -+ double bFireTime = b->m_nextFireTime; -+ if (bFireTime != aFireTime) -+ return bFireTime < aFireTime; -+ -+ // We need to look at the difference of the insertion orders instead of comparing the two -+ // outright in case of overflow. -+ unsigned difference = a->m_heapInsertionOrder - b->m_heapInsertionOrder; -+ return difference < numeric_limits<unsigned>::max() / 2; -+} -+ -+// ---------------- -+ - TimerBase::TimerBase() - : m_nextFireTime(0) - , m_repeatInterval(0) -@@ -225,7 +255,8 @@ - { - ASSERT(m_nextFireTime != 0); - checkHeapIndex(); -- push_heap(TimerHeapIterator(0), TimerHeapIterator(m_heapIndex + 1)); -+ TimerBase** heapData = timerHeap().data(); -+ push_heap(TimerHeapIterator(heapData), TimerHeapIterator(heapData + m_heapIndex + 1), TimerHeapLessThanFunction()); - checkHeapIndex(); - } - -@@ -274,7 +305,9 @@ - { - ASSERT(this == timerHeap().first()); - checkHeapIndex(); -- pop_heap(TimerHeapIterator(0), TimerHeapIterator(timerHeap().size())); -+ Vector<TimerBase*>& heap = timerHeap(); -+ TimerBase** heapData = heap.data(); -+ pop_heap(TimerHeapIterator(heapData), TimerHeapIterator(heapData + heap.size()), TimerHeapLessThanFunction()); - checkHeapIndex(); - ASSERT(this == timerHeap().last()); - } ---- src/3rdparty/webkit/Source/WebCore/platform/Timer.h (revision 92555) -+++ src/3rdparty/webkit/Source/WebCore/platform/Timer.h (revision 92556) -@@ -84,9 +84,9 @@ - ThreadIdentifier m_thread; - #endif - -- friend class TimerHeapElement; - friend class ThreadTimers; -- friend bool operator<(const TimerHeapElement&, const TimerHeapElement&); -+ friend class TimerHeapLessThanFunction; -+ friend class TimerHeapReference; - }; - - template <typename TimerFiredClass> class Timer : public TimerBase { ---- src/3rdparty/webkit/Source/WebCore/platform/graphics/qt/GraphicsLayerQt.cpp (revision 86531) -+++ src/3rdparty/webkit/Source/WebCore/platform/graphics/qt/GraphicsLayerQt.cpp (revision 86532) -@@ -944,7 +944,7 @@ - - GraphicsLayerQt::GraphicsLayerQt(GraphicsLayerClient* client) - : GraphicsLayer(client) -- , m_impl(PassOwnPtr<GraphicsLayerQtImpl>(new GraphicsLayerQtImpl(this))) -+ , m_impl(adoptPtr(new GraphicsLayerQtImpl(this))) - { - } - -@@ -955,7 +955,7 @@ - // This is the hook for WebCore compositor to know that Qt implements compositing with GraphicsLayerQt. - PassOwnPtr<GraphicsLayer> GraphicsLayer::create(GraphicsLayerClient* client) - { -- return new GraphicsLayerQt(client); -+ return adoptPtr(new GraphicsLayerQt(client)); - } - - /* \reimp (GraphicsLayer.h): The current size might change, thus we need to update the whole display. - --- src/3rdparty/webkit/Source/WebCore/loader/icon/IconRecord.h +++ src/3rdparty/webkit/Source/WebCore/loader/icon/IconRecord.h @@ -38,7 +38,7 @@ @@ -548,15 +266,6 @@ libc++ provides std::nullptr emulation, so we don't have to. --- src/3rdparty/webkit/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp (revision 86529) +++ src/3rdparty/webkit/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp (revision 86530) -@@ -235,7 +235,7 @@ - resetConnections(); - QNetworkReply* reply = m_reply; - m_reply = 0; -- m_sniffer = 0; -+ m_sniffer = nullptr; - - reply->setParent(0); - return reply; @@ -285,7 +285,7 @@ Q_ASSERT(!m_sniffer); @@ -566,58 +275,7 @@ libc++ provides std::nullptr emulation, so we don't have to. if (m_sniffer->isFinished()) { receiveSniffedMIMEType(); -@@ -300,7 +300,7 @@ - Q_ASSERT(m_sniffer); - - m_sniffedMIMEType = m_sniffer->mimeType(); -- m_sniffer = 0; -+ m_sniffer = nullptr; - - emitMetaDataChanged(); - } -@@ -417,7 +417,7 @@ - return 0; - - QNetworkReply* reply = m_replyWrapper->release(); -- m_replyWrapper = 0; -+ m_replyWrapper = nullptr; - return reply; - } - -@@ -440,12 +440,12 @@ - - ResourceHandleClient* client = m_resourceHandle->client(); - if (!client) { -- m_replyWrapper = 0; -+ m_replyWrapper = nullptr; - return; - } - - if (m_replyWrapper->wasRedirected()) { -- m_replyWrapper = 0; -+ m_replyWrapper = nullptr; - m_queue.push(&QNetworkReplyHandler::start); - return; - } -@@ -465,7 +465,7 @@ - } - } - -- m_replyWrapper = 0; -+ m_replyWrapper = nullptr; - } - - void QNetworkReplyHandler::sendResponseIfNeeded() -@@ -539,7 +539,7 @@ - newUrl.toString(), - QCoreApplication::translate("QWebPage", "Redirection limit reached")); - client->didFail(m_resourceHandle, error); -- m_replyWrapper = 0; -+ m_replyWrapper = nullptr; - return; - } - -@@ -660,7 +660,7 @@ +@@ -666,7 +666,7 @@ if (!reply) return; @@ -641,16 +299,7 @@ libc++ provides std::nullptr emulation, so we don't have to. --- src/3rdparty/webkit/Source/WebKit/qt/Api/qgraphicswebview.cpp (revision 86532) +++ src/3rdparty/webkit/Source/WebKit/qt/Api/qgraphicswebview.cpp (revision 86533) -@@ -473,7 +473,7 @@ - return; - - page->d->view.clear(); -- page->d->client = 0; -+ page->d->client = nullptr; - - // if the page was created by us, we own it and need to - // destroy it as well. -@@ -506,7 +506,7 @@ +@@ -504,7 +504,7 @@ if (!d->page) return; @@ -927,18 +576,6 @@ libc++ provides std::nullptr emulation, so we don't have to. , m_destroyingInspectorView(false) --- src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp (revision 86536) +++ src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp (revision 86550) -@@ -73,9 +73,9 @@ - #if ENABLE(NOTIFICATIONS) - - #ifndef QT_NO_SYSTEMTRAYICON -- m_notificationIcon = 0; -+ m_notificationIcon = nullptr; - #endif -- m_presenter = 0; -+ m_presenter = nullptr; - #endif - } - @@ -211,9 +211,9 @@ QPixmap pixmap; if (bytes.length() && pixmap.loadFromData(bytes)) { diff --git a/converters/wkhtmltopdf/files/patch-src__3rdparty__javascriptcore__JavaScriptCore__jit__JITStubs.cpp b/converters/wkhtmltopdf/files/patch-src__3rdparty__javascriptcore__JavaScriptCore__jit__JITStubs.cpp deleted file mode 100644 index 093c17420874..000000000000 --- a/converters/wkhtmltopdf/files/patch-src__3rdparty__javascriptcore__JavaScriptCore__jit__JITStubs.cpp +++ /dev/null @@ -1,11 +0,0 @@ ---- ./src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp.orig 2012-12-12 20:18:37.000000000 +0100 -+++ ./src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp 2012-12-17 02:10:50.513375070 +0100 -@@ -80,7 +80,7 @@ - #define THUMB_FUNC_PARAM(name) - #endif - --#if OS(LINUX) && CPU(X86_64) -+#if (OS(LINUX) || OS(FREEBSD)) && CPU(X86_64) - #define SYMBOL_STRING_RELOCATION(name) #name "@plt" - #else - #define SYMBOL_STRING_RELOCATION(name) SYMBOL_STRING(name) diff --git a/converters/wkhtmltopdf/files/patch-src__3rdparty__javascriptcore__JavaScriptCore__runtime__Collector.cpp b/converters/wkhtmltopdf/files/patch-src__3rdparty__javascriptcore__JavaScriptCore__runtime__Collector.cpp deleted file mode 100644 index 95e112ac20eb..000000000000 --- a/converters/wkhtmltopdf/files/patch-src__3rdparty__javascriptcore__JavaScriptCore__runtime__Collector.cpp +++ /dev/null @@ -1,38 +0,0 @@ -From 952b046ba5bc99986f747729681914e21f8fb8b0 Mon Sep 17 00:00:00 2001 -From: "Bradley T. Hughes" <bradley.hughes@nokia.com> -Date: Wed, 30 May 2012 11:49:40 +0200 -Subject: [PATCH] Compile with clang's libc++ - -An overload for std::swap() what works with std::pair<A,B> is included -in libc++ (but not libstdc++). Avoid ambiguity in HashTable.h by -omitting the version there and using the std::swap() version. - -Collector.cpp needs to include pthread.h directly, as it is not -automatically included by libc++'s headers (libstdc++ does pull in -pthread.h though). - -Cherry-picked from qtscript/48baeef0766ba145d26d374561e152b40245f3b8. - -Change-Id: I4dc88638ce8553bb97037b841fc6cc5e8c9911e2 -Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> ---- - src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp | 2 ++ - src/3rdparty/javascriptcore/JavaScriptCore/wtf/HashTable.h | 4 ++-- - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp -index 6af1784..711949b 100644 ---- src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp -+++ src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp -@@ -52,6 +52,8 @@ - #include <mach/task.h> - #include <mach/thread_act.h> - #include <mach/vm_map.h> -+// clang's libc++ headers does not pull in pthread.h (but libstdc++ does) -+#include <pthread.h> - - #elif OS(WINDOWS) - --- -1.8.4 - diff --git a/converters/wkhtmltopdf/files/patch-src__3rdparty__javascriptcore__JavaScriptCore__runtime__JSValue.h b/converters/wkhtmltopdf/files/patch-src__3rdparty__javascriptcore__JavaScriptCore__runtime__JSValue.h deleted file mode 100644 index ab3985eaaf8a..000000000000 --- a/converters/wkhtmltopdf/files/patch-src__3rdparty__javascriptcore__JavaScriptCore__runtime__JSValue.h +++ /dev/null @@ -1,26 +0,0 @@ ---- ./src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSValue.h.orig 2012-12-12 20:18:36.000000000 +0100 -+++ ./src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSValue.h 2012-12-17 02:13:05.073285539 +0100 -@@ -491,7 +491,11 @@ - u.asBits.tag = CellTag; - else - u.asBits.tag = EmptyValueTag; -+#if defined(__sparc64__) -+ u.asBits.payload = reinterpret_cast<int64_t>(ptr); -+#else - u.asBits.payload = reinterpret_cast<int32_t>(ptr); -+#endif - #if ENABLE(JSC_ZOMBIES) - ASSERT(!isZombie()); - #endif -@@ -503,7 +507,11 @@ - u.asBits.tag = CellTag; - else - u.asBits.tag = EmptyValueTag; -+#if defined(__sparc64__) -+ u.asBits.payload = reinterpret_cast<int64_t>(const_cast<JSCell*>(ptr)); -+#else - u.asBits.payload = reinterpret_cast<int32_t>(const_cast<JSCell*>(ptr)); -+#endif - #if ENABLE(JSC_ZOMBIES) - ASSERT(!isZombie()); - #endif diff --git a/converters/wkhtmltopdf/files/patch-src__3rdparty__javascriptcore__JavaScriptCore__wtf__HashTable.h b/converters/wkhtmltopdf/files/patch-src__3rdparty__javascriptcore__JavaScriptCore__wtf__HashTable.h deleted file mode 100644 index 20f5b8c74a99..000000000000 --- a/converters/wkhtmltopdf/files/patch-src__3rdparty__javascriptcore__JavaScriptCore__wtf__HashTable.h +++ /dev/null @@ -1,40 +0,0 @@ -From 952b046ba5bc99986f747729681914e21f8fb8b0 Mon Sep 17 00:00:00 2001 -From: "Bradley T. Hughes" <bradley.hughes@nokia.com> -Date: Wed, 30 May 2012 11:49:40 +0200 -Subject: [PATCH] Compile with clang's libc++ - -An overload for std::swap() what works with std::pair<A,B> is included -in libc++ (but not libstdc++). Avoid ambiguity in HashTable.h by -omitting the version there and using the std::swap() version. - -Collector.cpp needs to include pthread.h directly, as it is not -automatically included by libc++'s headers (libstdc++ does pull in -pthread.h though). - -Cherry-picked from qtscript/48baeef0766ba145d26d374561e152b40245f3b8. - -Change-Id: I4dc88638ce8553bb97037b841fc6cc5e8c9911e2 -Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> ---- - src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp | 2 ++ - src/3rdparty/javascriptcore/JavaScriptCore/wtf/HashTable.h | 4 ++-- - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/HashTable.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/HashTable.h -index bea9daa..42a9233 100644 ---- src/3rdparty/javascriptcore/JavaScriptCore/wtf/HashTable.h -+++ src/3rdparty/javascriptcore/JavaScriptCore/wtf/HashTable.h -@@ -257,8 +257,8 @@ namespace WTF { - - using std::swap; - --#if !COMPILER(MSVC) && !OS(QNX) -- // The Dinkumware C++ library (used by MSVC and QNX) has a swap for pairs defined. -+#if !COMPILER(MSVC) && !OS(QNX) && !defined(_LIBCPP_VERSION) -+ // The Dinkumware C++ library (used by MSVC and QNX) and clang's libc++ have a swap for pairs defined. - - // swap pairs by component, in case of pair members that specialize swap - template<typename T, typename U> inline void swap(pair<T, U>& a, pair<T, U>& b) --- -1.8.4 - diff --git a/converters/wkhtmltopdf/files/patch-src__3rdparty__javascriptcore__JavaScriptCore__wtf__Threading.h b/converters/wkhtmltopdf/files/patch-src__3rdparty__javascriptcore__JavaScriptCore__wtf__Threading.h deleted file mode 100644 index 524827951209..000000000000 --- a/converters/wkhtmltopdf/files/patch-src__3rdparty__javascriptcore__JavaScriptCore__wtf__Threading.h +++ /dev/null @@ -1,91 +0,0 @@ -From 0de22e80ac645afc3793419300d6271d95809196 Mon Sep 17 00:00:00 2001 -From: Raphael Kubo da Costa <rakuco@FreeBSD.org> -Date: Tue, 11 Jun 2013 19:25:08 +0300 -Subject: [PATCH] Bring in WebKit revisions 139553 and 139921. - -They are primarily useful for getting rid of some libstdc++-specific -includes which break the build with libc++, and also for simplifying the -code and removing a Darwin-specific code path. - -r139553 by ossy@webkit.org: - Use sync_add_and_fetch instead of gnu_cxx::exchange_and_add - https://bugs.webkit.org/show_bug.cgi?id=106729 - - After r139514 we need atomicIncrement(int64_t volatile*) for all - platform. Now the GCC implementation of atomicIncrement() is based on - gnu_cxx::exchange_and_add, which doesn't support int64_t type, but - sync_add_and_fetch does. - - Reviewed by Benjamin Poulain. - -r139921 by benjamin@webkit.org: - Use GCC's implementation of atomicIncrement/Decrement on Mac - https://bugs.webkit.org/show_bug.cgi?id=106976 - - Reviewed by Filip Pizlo. - - wtf/Atomics.h: GCC and LLVM have builtin for atomic ADD and SUB: - sync_add_and_fetch, sync_sub_and_fetch. - - Using them let the compiler just generate the atomic operations inline - instead of generating a function call to LibC. It also simplify the - code a bit. - -Cherry-picked from qtscript/184fc178f4c753727445694c4830c250f53da588. - -Change-Id: Id785e35944682691725947e0f329668d17ff6903 -Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> ---- - .../javascriptcore/JavaScriptCore/wtf/Threading.h | 18 ++---------------- - 1 file changed, 2 insertions(+), 16 deletions(-) - -diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h -index 8b76c0f..b3ea7d2 100644 ---- src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h -+++ src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h -@@ -71,18 +71,10 @@ - - #if OS(WINDOWS) && !OS(WINCE) - #include <windows.h> --#elif OS(DARWIN) --#include <libkern/OSAtomic.h> - #elif OS(ANDROID) - #include <cutils/atomic.h> - #elif OS(QNX) - #include <atomic.h> --#elif COMPILER(GCC) && !OS(SYMBIAN) --#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 2)) --#include <ext/atomicity.h> --#else --#include <bits/atomicity.h> --#endif - #endif - - #if USE(PTHREADS) -@@ -230,12 +222,6 @@ inline int atomicIncrement(int volatile* addend) { return InterlockedIncrement(r - inline int atomicDecrement(int volatile* addend) { return InterlockedDecrement(reinterpret_cast<long volatile*>(addend)); } - #endif - --#elif OS(DARWIN) --#define WTF_USE_LOCKFREE_THREADSAFESHARED 1 -- --inline int atomicIncrement(int volatile* addend) { return OSAtomicIncrement32Barrier(const_cast<int*>(addend)); } --inline int atomicDecrement(int volatile* addend) { return OSAtomicDecrement32Barrier(const_cast<int*>(addend)); } -- - #elif OS(ANDROID) - - inline int atomicIncrement(int volatile* addend) { return android_atomic_inc(addend); } -@@ -250,8 +236,8 @@ inline int atomicDecrement(int volatile* addend) { return (int) atomic_sub_value - #elif COMPILER(GCC) && !CPU(SPARC64) && !OS(SYMBIAN) // sizeof(_Atomic_word) != sizeof(int) on sparc64 gcc - #define WTF_USE_LOCKFREE_THREADSAFESHARED 1 - --inline int atomicIncrement(int volatile* addend) { return __gnu_cxx::__exchange_and_add(addend, 1) + 1; } --inline int atomicDecrement(int volatile* addend) { return __gnu_cxx::__exchange_and_add(addend, -1) - 1; } -+inline int atomicIncrement(int volatile* addend) { return __sync_add_and_fetch(addend, 1); } -+inline int atomicDecrement(int volatile* addend) { return __sync_sub_and_fetch(addend, 1); } - - #endif - --- -1.8.4 - diff --git a/converters/wkhtmltopdf/files/patch-src__3rdparty__webkit__Source__JavaScriptCore__wtf__Atomics.h b/converters/wkhtmltopdf/files/patch-src__3rdparty__webkit__Source__JavaScriptCore__wtf__Atomics.h index 3e08330c3868..4fc6d3251ea5 100644 --- a/converters/wkhtmltopdf/files/patch-src__3rdparty__webkit__Source__JavaScriptCore__wtf__Atomics.h +++ b/converters/wkhtmltopdf/files/patch-src__3rdparty__webkit__Source__JavaScriptCore__wtf__Atomics.h @@ -1,49 +1,5 @@ -From e3c44790065894f4e7f98ab097fce22c5bcbbd0a Mon Sep 17 00:00:00 2001 -From: Raphael Kubo da Costa <rakuco@FreeBSD.org> -Date: Tue, 2 Jul 2013 13:48:28 +0300 -Subject: [PATCH] Bring in WebKit revisions 139553 and 139921. - -They are primarily useful for getting rid of some libstdc++-specific -includes which break the build with libc++, and also for simplifying the -code and removing a Darwin-specific code path. - -r139553 by ossy@webkit.org: - Use sync_add_and_fetch instead of gnu_cxx::exchange_and_add - https://bugs.webkit.org/show_bug.cgi?id=106729 - - After r139514 we need atomicIncrement(int64_t volatile*) for all - platform. Now the GCC implementation of atomicIncrement() is based on - gnu_cxx::exchange_and_add, which doesn't support int64_t type, but - sync_add_and_fetch does. - - Reviewed by Benjamin Poulain. - -r139921 by benjamin@webkit.org: - Use GCC's implementation of atomicIncrement/Decrement on Mac - https://bugs.webkit.org/show_bug.cgi?id=106976 - - Reviewed by Filip Pizlo. - - wtf/Atomics.h: GCC and LLVM have builtin for atomic ADD and SUB: - sync_add_and_fetch, sync_sub_and_fetch. - - Using them let the compiler just generate the atomic operations inline - instead of generating a function call to LibC. It also simplify the - code a bit. - -Cherry-picked from qtwebkit/0baf197 and qtwebkit/801fc96. I'm cherry-picking -both revisions together to match what was done in 0de22e80. - -Change-Id: Ie5c1067980662ff04e8e36d8cf6e9459b7c46aab -Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com> ---- - .../webkit/Source/JavaScriptCore/wtf/Atomics.h | 18 ++---------------- - 1 file changed, 2 insertions(+), 16 deletions(-) - -diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Atomics.h b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Atomics.h -index bce5fba..acf0e5a 100644 ---- src/3rdparty/webkit/Source/JavaScriptCore/wtf/Atomics.h -+++ src/3rdparty/webkit/Source/JavaScriptCore/wtf/Atomics.h +--- src/3rdparty/webkit/Source/JavaScriptCore/wtf/Atomics.h.orig 2014-04-10 20:37:11.000000000 +0200 ++++ src/3rdparty/webkit/Source/JavaScriptCore/wtf/Atomics.h 2014-04-24 16:11:40.000000000 +0200 @@ -63,18 +63,10 @@ #if OS(WINDOWS) @@ -63,12 +19,12 @@ index bce5fba..acf0e5a 100644 #endif namespace WTF { -@@ -90,12 +82,6 @@ inline int atomicIncrement(int volatile* addend) { return InterlockedIncrement(r +@@ -90,12 +82,6 @@ inline int atomicDecrement(int volatile* addend) { return InterlockedDecrement(reinterpret_cast<long volatile*>(addend)); } #endif -#elif OS(DARWIN) --#define WTF_USE_LOCKFREE_THREADSAFEREFCOUNTED 1 +-#define WTF_USE_LOCKFREE_THREADSAFESHARED 1 - -inline int atomicIncrement(int volatile* addend) { return OSAtomicIncrement32Barrier(const_cast<int*>(addend)); } -inline int atomicDecrement(int volatile* addend) { return OSAtomicDecrement32Barrier(const_cast<int*>(addend)); } @@ -76,17 +32,3 @@ index bce5fba..acf0e5a 100644 #elif OS(ANDROID) inline int atomicIncrement(int volatile* addend) { return android_atomic_inc(addend); } -@@ -109,8 +95,8 @@ inline int atomicDecrement(int volatile* addend) { return (int) atomic_sub_value - #elif COMPILER(GCC) && !CPU(SPARC64) && !OS(SYMBIAN) // sizeof(_Atomic_word) != sizeof(int) on sparc64 gcc - #define WTF_USE_LOCKFREE_THREADSAFEREFCOUNTED 1 - --inline int atomicIncrement(int volatile* addend) { return __gnu_cxx::__exchange_and_add(addend, 1) + 1; } --inline int atomicDecrement(int volatile* addend) { return __gnu_cxx::__exchange_and_add(addend, -1) - 1; } -+inline int atomicIncrement(int volatile* addend) { return __sync_add_and_fetch(addend, 1); } -+inline int atomicDecrement(int volatile* addend) { return __sync_sub_and_fetch(addend, 1); } - - #endif - --- -1.8.4 - diff --git a/converters/wkhtmltopdf/pkg-plist b/converters/wkhtmltopdf/pkg-plist index fb1fe078bbd5..c56030ee90bf 100644 --- a/converters/wkhtmltopdf/pkg-plist +++ b/converters/wkhtmltopdf/pkg-plist @@ -1,21 +1,13 @@ bin/wkhtmltopdf bin/wkhtmltoimage -include/wkhtmltox/converter.hh include/wkhtmltox/dllbegin.inc include/wkhtmltox/dllend.inc include/wkhtmltox/image.h -include/wkhtmltox/imageconverter.hh -include/wkhtmltox/imagesettings.hh -include/wkhtmltox/loadsettings.hh -include/wkhtmltox/multipageloader.hh include/wkhtmltox/pdf.h -include/wkhtmltox/pdfconverter.hh -include/wkhtmltox/pdfsettings.hh -include/wkhtmltox/settings.hh -include/wkhtmltox/utilities.hh -include/wkhtmltox/websettings.hh lib/libwkhtmltox.so lib/libwkhtmltox.so.0 lib/libwkhtmltox.so.0.12 -lib/libwkhtmltox.so.0.12.0 +lib/libwkhtmltox.so.0.12.1 +man/man1/wkhtmltoimage.1.gz +man/man1/wkhtmltopdf.1.gz @dirrm include/wkhtmltox |