summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2020-01-12 17:09:32 +0100
committerAndreas Sturmlechner <asturm@gentoo.org>2020-01-12 17:20:12 +0100
commite2d24bb6db29ecfc80eb18b32e8dab583f5163e3 (patch)
tree4585c49b1032e9176975e753a804b4425b31bb8f /dev-qt/qtprintsupport
parentsys-devel/gcc-config: bump up to 2.2 (diff)
downloadgentoo-e2d24bb6db29ecfc80eb18b32e8dab583f5163e3.tar.gz
gentoo-e2d24bb6db29ecfc80eb18b32e8dab583f5163e3.tar.bz2
gentoo-e2d24bb6db29ecfc80eb18b32e8dab583f5163e3.zip
dev-qt/qtprintsupport: Fix revdeps segfault if built with USE=-cups
Tested-by: David Flogeras <dflogeras2@gmail.com> Thanks-to: David Flogeras <dflogeras2@gmail.com> Closes: https://bugs.gentoo.org/704936 Package-Manager: Portage-2.3.84, Repoman-2.3.20 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'dev-qt/qtprintsupport')
-rw-r--r--dev-qt/qtprintsupport/files/qtprintsupport-5.13.2-no-cups.patch49
-rw-r--r--dev-qt/qtprintsupport/qtprintsupport-5.13.2-r1.ebuild44
-rw-r--r--dev-qt/qtprintsupport/qtprintsupport-5.14.0-r1.ebuild44
3 files changed, 137 insertions, 0 deletions
diff --git a/dev-qt/qtprintsupport/files/qtprintsupport-5.13.2-no-cups.patch b/dev-qt/qtprintsupport/files/qtprintsupport-5.13.2-no-cups.patch
new file mode 100644
index 000000000000..fe19baf4096b
--- /dev/null
+++ b/dev-qt/qtprintsupport/files/qtprintsupport-5.13.2-no-cups.patch
@@ -0,0 +1,49 @@
+From 2ad3348031d8a622374920eac5bdd8fb9ecefcd7 Mon Sep 17 00:00:00 2001
+From: Christian Ehrlicher <ch.ehrlicher@gmx.de>
+Date: Sat, 21 Dec 2019 19:57:45 +0100
+Subject: QPrintDialog: don't access dangling pointer when cups is disabled
+
+When no cups support is available, ui.pagesRadioButton is destroyed in
+QPrintDialogPrivate::init() but was accessed later on. Fix it by moving
+the cups check one line above.
+
+Fixes: QTBUG-80945
+Change-Id: Ieb062b39e1461f39665ef612dfea1d7757274b7e
+Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
+---
+ src/printsupport/dialogs/qprintdialog_unix.cpp | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/src/printsupport/dialogs/qprintdialog_unix.cpp b/src/printsupport/dialogs/qprintdialog_unix.cpp
+index c7328d9732..7bbf137977 100644
+--- a/src/printsupport/dialogs/qprintdialog_unix.cpp
++++ b/src/printsupport/dialogs/qprintdialog_unix.cpp
+@@ -637,8 +637,10 @@ void QPrintDialogPrivate::init()
+ options.pageSetCombo->addItem(tr("Odd Pages"), QVariant::fromValue(QCUPSSupport::OddPages));
+ options.pageSetCombo->addItem(tr("Even Pages"), QVariant::fromValue(QCUPSSupport::EvenPages));
+ #else
+- for (int i = options.pagesLayout->count() - 1; i >= 0; --i)
+- delete options.pagesLayout->itemAt(i)->widget();
++ delete options.pagesRadioButton;
++ delete options.pagesLineEdit;
++ options.pagesRadioButton = nullptr;
++ options.pagesLineEdit = nullptr;
+ #endif
+
+ top->d->setOptionsPane(this);
+@@ -727,12 +729,12 @@ void QPrintDialogPrivate::selectPrinter(const QPrinter::OutputFormat outputForma
+ else
+ options.pageSetCombo->setEnabled(true);
+
++#if QT_CONFIG(cups)
+ // Disable complex page ranges widget when printing to pdf
+ // It doesn't work since it relies on cups to do the heavy lifting and cups
+ // is not used when printing to PDF
+ options.pagesRadioButton->setEnabled(outputFormat != QPrinter::PdfFormat);
+
+-#if QT_CONFIG(cups)
+ // Disable color options on main dialog if not printing to file, it will be handled by CUPS advanced dialog
+ options.colorMode->setVisible(outputFormat == QPrinter::PdfFormat);
+ #endif
+--
+cgit v1.2.1
diff --git a/dev-qt/qtprintsupport/qtprintsupport-5.13.2-r1.ebuild b/dev-qt/qtprintsupport/qtprintsupport-5.13.2-r1.ebuild
new file mode 100644
index 000000000000..7ce0cf6ddbd5
--- /dev/null
+++ b/dev-qt/qtprintsupport/qtprintsupport-5.13.2-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+QT5_MODULE="qtbase"
+VIRTUALX_REQUIRED="test"
+inherit qt5-build
+
+DESCRIPTION="Printing support library for the Qt5 framework"
+
+if [[ ${QT5_BUILD_TYPE} == release ]]; then
+ KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
+fi
+
+IUSE="cups gles2"
+
+RDEPEND="
+ ~dev-qt/qtcore-${PV}
+ ~dev-qt/qtgui-${PV}[gles2=]
+ ~dev-qt/qtwidgets-${PV}[gles2=]
+ cups? ( >=net-print/cups-1.4 )
+"
+DEPEND="${RDEPEND}
+ test? ( ~dev-qt/qtnetwork-${PV} )
+"
+
+QT5_TARGET_SUBDIRS=(
+ src/printsupport
+ src/plugins/printsupport
+)
+
+QT5_GENTOO_CONFIG=(
+ cups
+)
+
+PATCHES=( "${FILESDIR}/${P}-no-cups.patch" ) # bug #704936, QTBUG-80945
+
+src_configure() {
+ local myconf=(
+ $(qt_use cups)
+ -opengl $(usex gles2 es2 desktop)
+ )
+ qt5-build_src_configure
+}
diff --git a/dev-qt/qtprintsupport/qtprintsupport-5.14.0-r1.ebuild b/dev-qt/qtprintsupport/qtprintsupport-5.14.0-r1.ebuild
new file mode 100644
index 000000000000..b9cb036a03bd
--- /dev/null
+++ b/dev-qt/qtprintsupport/qtprintsupport-5.14.0-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+QT5_MODULE="qtbase"
+VIRTUALX_REQUIRED="test"
+inherit qt5-build
+
+DESCRIPTION="Printing support library for the Qt5 framework"
+
+if [[ ${QT5_BUILD_TYPE} == release ]]; then
+ KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
+fi
+
+IUSE="cups gles2"
+
+RDEPEND="
+ ~dev-qt/qtcore-${PV}
+ ~dev-qt/qtgui-${PV}[gles2=]
+ ~dev-qt/qtwidgets-${PV}[gles2=]
+ cups? ( >=net-print/cups-1.4 )
+"
+DEPEND="${RDEPEND}
+ test? ( ~dev-qt/qtnetwork-${PV} )
+"
+
+QT5_TARGET_SUBDIRS=(
+ src/printsupport
+ src/plugins/printsupport
+)
+
+QT5_GENTOO_CONFIG=(
+ cups
+)
+
+PATCHES=( "${FILESDIR}/${PN}-5.13.2-no-cups.patch" ) # bug #704936, QTBUG-80945
+
+src_configure() {
+ local myconf=(
+ $(qt_use cups)
+ -opengl $(usex gles2 es2 desktop)
+ )
+ qt5-build_src_configure
+}