diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2020-01-12 17:09:32 +0100 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2020-01-12 17:20:12 +0100 |
commit | e2d24bb6db29ecfc80eb18b32e8dab583f5163e3 (patch) | |
tree | 4585c49b1032e9176975e753a804b4425b31bb8f /dev-qt/qtprintsupport | |
parent | sys-devel/gcc-config: bump up to 2.2 (diff) | |
download | gentoo-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')
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 +} |