From 03866d3b915b20ec495196c7879529edd261db90 Mon Sep 17 00:00:00 2001 From: wbrana Date: Sun, 10 Feb 2013 11:21:05 +0100 Subject: [x11-libs/qt-gui] sync with portage --- x11-libs/qt-gui/Manifest | 6 +- x11-libs/qt-gui/files/44qt4-gtkstyle | 1 - x11-libs/qt-gui/files/CVE-2013-0254.patch | 143 +++++++++++++++++ x11-libs/qt-gui/files/qt-cxxflags.patch | 4 +- x11-libs/qt-gui/qt-gui-4.8.4-r121.ebuild | 253 ------------------------------ x11-libs/qt-gui/qt-gui-4.8.4-r131.ebuild | 251 +++++++++++++++++++++++++++++ 6 files changed, 399 insertions(+), 259 deletions(-) delete mode 100644 x11-libs/qt-gui/files/44qt4-gtkstyle create mode 100644 x11-libs/qt-gui/files/CVE-2013-0254.patch delete mode 100644 x11-libs/qt-gui/qt-gui-4.8.4-r121.ebuild create mode 100644 x11-libs/qt-gui/qt-gui-4.8.4-r131.ebuild diff --git a/x11-libs/qt-gui/Manifest b/x11-libs/qt-gui/Manifest index b6f3b97..dee4bed 100644 --- a/x11-libs/qt-gui/Manifest +++ b/x11-libs/qt-gui/Manifest @@ -1,5 +1,5 @@ -AUX 44qt4-gtkstyle 33 SHA256 6e0047d93a89c0bd404a1ff26f534570fc41de7dfaf15cf171bad927cee7d8c3 SHA512 f2ffe31d3a4b77bc2cfa5fee6716b6cfa0978d4e3c6a3fa5fa7431788575e274c431f9e482223ffabe0ac255f97496c0776031d35d6eb7cf16b47e7db5228dee WHIRLPOOL be1dd16c4db2e3abf134f35ba6ae4295fd772abbed0b1dc7f38b40e8ec8b9608ac0f24d46515cd9e17d3cc6341167afde87cf93a401846cb8c8b6314840595f4 -AUX qt-cxxflags.patch 791 SHA256 f2a7391dd78f152f1cd90cd62b84e4001be2176addfe1e3ca7c50c09b3a686fd SHA512 5bcdfc5ef0e7f0a2d388f13348ac66a6c0acbed7c043eef77e299d4cbb5e7d36cd172b585e560d96ee21de5482c4c31473ce9cee21525f301d8d659d68974b5d WHIRLPOOL aec5f5103302a3d8253ef904aace2e65f594c36e30a5584ea93406a770372757432ec5ec9e43105b8f7e113e8937d1f1fcbc7c1f7e7c8af0a10fb4b50d9cea9b +AUX CVE-2013-0254.patch 6449 SHA256 c25f54ed3fdfed4cc945e53f7a848f88be8bda899c8ebff904f241cf9096df3e SHA512 957d1f3e5ca9a8585e0e5c806cd0ea731e97a3b05cf60e84aef44912cbd9b8db80961f336f91734f9759d14d4e0de39a73becb45f58ca8af831c1780e5368739 WHIRLPOOL 633cba444159eb134ec2df8a4b4fbb145aea28012b75353c9684f3d47b1c50736ea7c5adbd4fa1fbb0bf285a1e517b122bb6b5edac1313f6578465c8381d60d9 +AUX qt-cxxflags.patch 799 SHA256 c2daf63c38bf018b66e054b44b2d87e459d18e48d66b13d130fa58d9fc8a4f21 SHA512 4080116da656d83f44c69c4f89b7e74855341db9b556d551fdc55941ba384b766ec0d1da75d3b6d6bfc4f77c1c16416dcd8bb46fa39a012c8a24c448fb511ae3 WHIRLPOOL ae0a015bc6168645fcdb26e64b8b9a92d99da24d787d0fde511b310398f2fd2e46913dd06e106860610e9a3fac22e3278e77cea56fb794acbf02a3f6805e048d AUX qt-gui-4.7.3-cups.patch 3297 SHA256 3ccfefb432015e4a4ea967b030c51b10dcdfb1f63445557908ddae5e75012d33 SHA512 4a8f828c79bde81ab1e39c9eaba4ef553582d85b62d6d182dda02820c4c8e046de6a25cc77d228955ed37fbc5b55f697a0a464af0bb3e171849851639e9ef4ee WHIRLPOOL 41d82843f91533a5cbb0c9945c9013d9c8f07be3f06fef1b52cf8d18483d9cdfd24fe1d53c18a2f1eebd7a504f1665f1859616ae460d6471dc1599cea63a7bda DIST qt-everywhere-opensource-src-4.8.4.tar.gz 236593028 SHA256 33b0e38ba4c54a0cf8a4be8ca5a4584f1c2e0adfecb57b21d9d1d267b0093270 SHA512 472972b63b5cad83b4c4656b23e95b6d4923cc31a518138e25d5921982b14abc835883356c2b779a7972cb77cf73fe25b46630be7c6a86a917b364186aa17496 WHIRLPOOL 9d250ee9ddd0431eeabc22ea598eda2bc74ee7ee6c5329522c479143d6c38fa17ae545541b4e3220b05d493c1a5d407c70980d0d1ffa49d2f83dedc1774cfa79 -EBUILD qt-gui-4.8.4-r121.ebuild 8230 SHA256 0d2e05ee2915ac2c64772f20cdcf93cd2624750b218b710d068f3205573a8e28 SHA512 97a356e0f76ecbe8ea415dbd5c61353c1eeb677c2cb005ae8ef9cdb3aecdc5f197c6f2e2870feeb9bae21bdc38982316e9a3290e04c8935e1341981bfd098803 WHIRLPOOL 1127194fef6d6cdad96e800a206bfc9c88b09a103f95064f01e7ba67102e0eada701aa17fa822307a582d59ced1ff9d1dcd0b696988357b9078b356c03c80c3a +EBUILD qt-gui-4.8.4-r131.ebuild 8108 SHA256 228b03e9a7cd57dcc676d4992c30e3fb5c762a3272c161bf86356e4fe18b26bc SHA512 0456250b7da364df4762f0709e24e0c4afe916460b5420ab565fa856953cc4903e25833bca3359cd7c822ecfa58d9dcf0c1b764f91f35c095ff9fec61a8af7f2 WHIRLPOOL ec2291d5757357488c6e2f05b58b4dd670d2b85844c4aa7c7dd103089de5ff74163b374e055b23b66344f344b9ae4d6dcb10fcccf2505f58dc18c425df84ab32 diff --git a/x11-libs/qt-gui/files/44qt4-gtkstyle b/x11-libs/qt-gui/files/44qt4-gtkstyle deleted file mode 100644 index 217da24..0000000 --- a/x11-libs/qt-gui/files/44qt4-gtkstyle +++ /dev/null @@ -1 +0,0 @@ -GTK2_RC_FILES="$HOME/.gtkrc-2.0" diff --git a/x11-libs/qt-gui/files/CVE-2013-0254.patch b/x11-libs/qt-gui/files/CVE-2013-0254.patch new file mode 100644 index 0000000..fa05da3 --- /dev/null +++ b/x11-libs/qt-gui/files/CVE-2013-0254.patch @@ -0,0 +1,143 @@ +From 20b26bdb3dd5e46b01b9a7e1ce8342074df3c89c Mon Sep 17 00:00:00 2001 +From: Thiago Macieira +Date: Sat, 22 Dec 2012 08:32:12 -0800 +Subject: [PATCH] Change all shmget calls to user-only memory + +Drop the read and write permissions for group and other users in the +system. + +Change-Id: I8fc753f09126651af3fb82df3049050f0b14e876 +(cherry-picked from Qt 5 commit 856f209fb63ae336bfb389a12d2a75fa886dc1c5) +Reviewed-by: Richard J. Moore +--- + src/corelib/kernel/qsharedmemory_unix.cpp | 6 +++--- + src/corelib/kernel/qsystemsemaphore_unix.cpp | 4 ++-- + src/gui/image/qnativeimage.cpp | 2 +- + src/gui/image/qpixmap_x11.cpp | 2 +- + src/plugins/platforms/xcb/qxcbwindowsurface.cpp | 2 +- + src/plugins/platforms/xlib/qxlibwindowsurface.cpp | 2 +- + tools/qvfb/qvfbshmem.cpp | 4 ++-- + +diff --git a/src/corelib/kernel/qsharedmemory_unix.cpp b/src/corelib/kernel/qsharedmemory_unix.cpp +index 20d76e3..4cf3acf 100644 +--- a/src/corelib/kernel/qsharedmemory_unix.cpp ++++ b/src/corelib/kernel/qsharedmemory_unix.cpp +@@ -238,7 +238,7 @@ bool QSharedMemoryPrivate::create(int size) + } + + // create +- if (-1 == shmget(unix_key, size, 0666 | IPC_CREAT | IPC_EXCL)) { ++ if (-1 == shmget(unix_key, size, 0600 | IPC_CREAT | IPC_EXCL)) { + QString function = QLatin1String("QSharedMemory::create"); + switch (errno) { + case EINVAL: +@@ -293,7 +293,7 @@ bool QSharedMemoryPrivate::attach(QSharedMemory::AccessMode mode) + { + #ifndef QT_POSIX_IPC + // grab the shared memory segment id +- int id = shmget(unix_key, 0, (mode == QSharedMemory::ReadOnly ? 0444 : 0660)); ++ int id = shmget(unix_key, 0, (mode == QSharedMemory::ReadOnly ? 0400 : 0600)); + if (-1 == id) { + setErrorString(QLatin1String("QSharedMemory::attach (shmget)")); + return false; +@@ -381,7 +381,7 @@ bool QSharedMemoryPrivate::detach() + size = 0; + + // Get the number of current attachments +- int id = shmget(unix_key, 0, 0444); ++ int id = shmget(unix_key, 0, 0400); + cleanHandle(); + + struct shmid_ds shmid_ds; +diff --git a/src/corelib/kernel/qsystemsemaphore_unix.cpp b/src/corelib/kernel/qsystemsemaphore_unix.cpp +index fad9acc..e77456b 100644 +--- a/src/corelib/kernel/qsystemsemaphore_unix.cpp ++++ b/src/corelib/kernel/qsystemsemaphore_unix.cpp +@@ -153,10 +153,10 @@ key_t QSystemSemaphorePrivate::handle(QSystemSemaphore::AccessMode mode) + } + + // Get semaphore +- semaphore = semget(unix_key, 1, 0666 | IPC_CREAT | IPC_EXCL); ++ semaphore = semget(unix_key, 1, 0600 | IPC_CREAT | IPC_EXCL); + if (-1 == semaphore) { + if (errno == EEXIST) +- semaphore = semget(unix_key, 1, 0666 | IPC_CREAT); ++ semaphore = semget(unix_key, 1, 0600 | IPC_CREAT); + if (-1 == semaphore) { + setErrorString(QLatin1String("QSystemSemaphore::handle")); + cleanHandle(); +diff --git a/src/gui/image/qnativeimage.cpp b/src/gui/image/qnativeimage.cpp +index 9654afe..fef38c5 100644 +--- a/src/gui/image/qnativeimage.cpp ++++ b/src/gui/image/qnativeimage.cpp +@@ -176,7 +176,7 @@ QNativeImage::QNativeImage(int width, int height, QImage::Format format,bool /* + + bool ok; + xshminfo.shmid = shmget(IPC_PRIVATE, xshmimg->bytes_per_line * xshmimg->height, +- IPC_CREAT | 0777); ++ IPC_CREAT | 0700); + ok = xshminfo.shmid != -1; + if (ok) { + xshmimg->data = (char*)shmat(xshminfo.shmid, 0, 0); +diff --git a/src/gui/image/qpixmap_x11.cpp b/src/gui/image/qpixmap_x11.cpp +index 280d8bd..88c9b7b 100644 +--- a/src/gui/image/qpixmap_x11.cpp ++++ b/src/gui/image/qpixmap_x11.cpp +@@ -193,7 +193,7 @@ static bool qt_create_mitshm_buffer(const QPaintDevice* dev, int w, int h) + bool ok; + xshminfo.shmid = shmget(IPC_PRIVATE, + xshmimg->bytes_per_line * xshmimg->height, +- IPC_CREAT | 0777); ++ IPC_CREAT | 0700); + ok = xshminfo.shmid != -1; + if (ok) { + xshmimg->data = (char*)shmat(xshminfo.shmid, 0, 0); +diff --git a/src/plugins/platforms/xcb/qxcbwindowsurface.cpp b/src/plugins/platforms/xcb/qxcbwindowsurface.cpp +index b6a42d8..0d56821 100644 +--- a/src/plugins/platforms/xcb/qxcbwindowsurface.cpp ++++ b/src/plugins/platforms/xcb/qxcbwindowsurface.cpp +@@ -98,7 +98,7 @@ QXcbShmImage::QXcbShmImage(QXcbScreen *screen, const QSize &size, uint depth, QI + 0); + + m_shm_info.shmid = shmget (IPC_PRIVATE, +- m_xcb_image->stride * m_xcb_image->height, IPC_CREAT|0777); ++ m_xcb_image->stride * m_xcb_image->height, IPC_CREAT|0600); + + m_shm_info.shmaddr = m_xcb_image->data = (quint8 *)shmat (m_shm_info.shmid, 0, 0); + m_shm_info.shmseg = xcb_generate_id(xcb_connection()); +diff --git a/src/plugins/platforms/xlib/qxlibwindowsurface.cpp b/src/plugins/platforms/xlib/qxlibwindowsurface.cpp +index bf003eb..46a2f97 100644 +--- a/src/plugins/platforms/xlib/qxlibwindowsurface.cpp ++++ b/src/plugins/platforms/xlib/qxlibwindowsurface.cpp +@@ -99,7 +99,7 @@ void QXlibWindowSurface::resizeShmImage(int width, int height) + + + image_info->shminfo.shmid = shmget (IPC_PRIVATE, +- image->bytes_per_line * image->height, IPC_CREAT|0777); ++ image->bytes_per_line * image->height, IPC_CREAT|0700); + + image_info->shminfo.shmaddr = image->data = (char*)shmat (image_info->shminfo.shmid, 0, 0); + image_info->shminfo.readOnly = False; +diff --git a/tools/qvfb/qvfbshmem.cpp b/tools/qvfb/qvfbshmem.cpp +index 7f9671f..84b6ebe 100644 +--- a/tools/qvfb/qvfbshmem.cpp ++++ b/tools/qvfb/qvfbshmem.cpp +@@ -176,13 +176,13 @@ QShMemViewProtocol::QShMemViewProtocol(int displayid, const QSize &s, + uint data_offset_value = sizeof(QVFbHeader); + + int dataSize = bpl * h + data_offset_value; +- shmId = shmget(key, dataSize, IPC_CREAT | 0666); ++ shmId = shmget(key, dataSize, IPC_CREAT | 0600); + if (shmId != -1) + data = (unsigned char *)shmat(shmId, 0, 0); + else { + struct shmid_ds shm; + shmctl(shmId, IPC_RMID, &shm); +- shmId = shmget(key, dataSize, IPC_CREAT | 0666); ++ shmId = shmget(key, dataSize, IPC_CREAT | 0600); + if (shmId == -1) { + perror("QShMemViewProtocol::QShMemViewProtocol"); + qFatal("Cannot get shared memory 0x%08x", key); +-- +1.7.1 + diff --git a/x11-libs/qt-gui/files/qt-cxxflags.patch b/x11-libs/qt-gui/files/qt-cxxflags.patch index 2a19359..2fa0ce6 100644 --- a/x11-libs/qt-gui/files/qt-cxxflags.patch +++ b/x11-libs/qt-gui/files/qt-cxxflags.patch @@ -5,7 +5,7 @@ QMAKE_CFLAGS_WARN_ON += -Wall -W QMAKE_CFLAGS_WARN_OFF += -w -QMAKE_CFLAGS_RELEASE += -O2 -+QMAKE_CFLAGS_RELEASE += ++QMAKE_CFLAGS_RELEASE += -O3 QMAKE_CFLAGS_DEBUG += -g QMAKE_CFLAGS_SHLIB += -fPIC QMAKE_CFLAGS_STATIC_LIB += -fPIC @@ -16,7 +16,7 @@ QMAKE_LINK_C_SHLIB = $$QMAKE_CC -QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -g -+QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -g ++QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O3 -g QMAKE_CXX = g++ diff --git a/x11-libs/qt-gui/qt-gui-4.8.4-r121.ebuild b/x11-libs/qt-gui/qt-gui-4.8.4-r121.ebuild deleted file mode 100644 index 425bf78..0000000 --- a/x11-libs/qt-gui/qt-gui-4.8.4-r121.ebuild +++ /dev/null @@ -1,253 +0,0 @@ -# Copyright 1999-2012 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt-gui/qt-gui-4.8.4.ebuild,v 1.1 2012/12/05 03:20:44 yngwin Exp $ - -EAPI=4 - -inherit eutils qt4-build - -DESCRIPTION="The GUI module for the Qt toolkit" -SLOT="4" -if [[ ${QT4_BUILD_TYPE} == live ]]; then - KEYWORDS="" -else - KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris" -fi -IUSE="+accessibility cups dbus egl gif +glib gtkstyle mng nas nis qt3support tiff trace xinerama +xv" - -REQUIRED_USE=" - gtkstyle? ( glib ) -" - -RDEPEND=" - app-admin/eselect-qtgraphicssystem - media-libs/fontconfig - media-libs/freetype:2 - media-libs/libpng:0 - sys-libs/zlib - virtual/jpeg - ~x11-libs/qt-core-${PV}[aqua=,debug=,glib=,qt3support=] - ~x11-libs/qt-script-${PV}[aqua=,debug=] - !aqua? ( - x11-libs/libICE - x11-libs/libSM - x11-libs/libX11 - x11-libs/libXcursor - x11-libs/libXext - x11-libs/libXi - x11-libs/libXrandr - x11-libs/libXrender - xinerama? ( x11-libs/libXinerama ) - xv? ( x11-libs/libXv ) - ) - cups? ( net-print/cups ) - dbus? ( ~x11-libs/qt-dbus-${PV}[aqua=,debug=] ) - egl? ( media-libs/mesa[egl] ) - gtkstyle? ( x11-libs/gtk+:2[aqua=] ) - mng? ( >=media-libs/libmng-1.0.9 ) - nas? ( >=media-libs/nas-1.5 ) - tiff? ( media-libs/tiff:0 ) -" -DEPEND="${RDEPEND} - !aqua? ( - x11-proto/inputproto - x11-proto/xextproto - xinerama? ( x11-proto/xineramaproto ) - xv? ( x11-proto/videoproto ) - ) -" -PDEPEND="qt3support? ( ~x11-libs/qt-qt3support-${PV}[aqua=,debug=] )" - -PATCHES=( - "${FILESDIR}/${PN}-4.7.3-cups.patch" - "${FILESDIR}/qt-cxxflags.patch" -) - -pkg_setup() { - # this belongs to pkg_pretend, we have to upgrade to EAPI 4 :) - # was planning to use a dep, but to reproduce this you have to - # clean-emerge qt-gui[gtkstyle] while having cairo[qt4] installed. - # no need to restrict normal first time users for that :) - if use gtkstyle && ! has_version x11-libs/qt-gui && has_version x11-libs/cairo[qt4]; then - echo - eerror "When building qt-gui[gtkstyle] from scratch with cairo present," - eerror "cairo must have the qt4 use flag disabled, otherwise the gtk" - eerror "style cannot be built." - ewarn - eerror "You have the following options:" - eerror " - rebuild cairo with -qt4 USE" - eerror " - build qt-gui with -gtkstyle USE" - ewarn - eerror "After you successfully install qt-gui, you'll be able to" - eerror "re-enable the disabled use flag and/or reinstall cairo." - ewarn - echo - die "can't build ${PN} with USE=gtkstyle if cairo has 'qt4' USE flag enabled" - fi - - QT4_TARGET_DIRECTORIES=" - src/gui - src/scripttools - tools/designer - tools/linguist/linguist - src/plugins/imageformats/gif - src/plugins/imageformats/ico - src/plugins/imageformats/jpeg - src/plugins/inputmethods" - - QT4_EXTRACT_DIRECTORIES=" - include - src - tools" - - use accessibility && QT4_TARGET_DIRECTORIES="${QT4_TARGET_DIRECTORIES} src/plugins/accessible/widgets" - use dbus && QT4_TARGET_DIRECTORIES="${QT4_TARGET_DIRECTORIES} tools/qdbus/qdbusviewer" - use mng && QT4_TARGET_DIRECTORIES="${QT4_TARGET_DIRECTORIES} src/plugins/imageformats/mng" - use tiff && QT4_TARGET_DIRECTORIES="${QT4_TARGET_DIRECTORIES} src/plugins/imageformats/tiff" - use trace && QT4_TARGET_DIRECTORIES="${QT4_TARGET_DIRECTORIES} src/plugins/graphicssystems/trace" - - # mac version does not contain qtconfig? - [[ ${CHOST} == *-darwin* ]] || QT4_TARGET_DIRECTORIES+=" tools/qtconfig" - - QT4_EXTRACT_DIRECTORIES="${QT4_TARGET_DIRECTORIES} ${QT4_EXTRACT_DIRECTORIES}" - - qt4-build_pkg_setup -} - -src_prepare() { - qt4-build_src_prepare - - # Add -xvideo to the list of accepted configure options - sed -i -e 's:|-xinerama|:&-xvideo|:' configure - - # Don't build plugins this go around, because they depend on qt3support lib - sed -i -e 's:CONFIG(shared:# &:g' tools/designer/src/src.pro -} - -src_configure() { - export PATH="${S}/bin:${PATH}" - export LD_LIBRARY_PATH="${S}/lib:${LD_LIBRARY_PATH}" - - myconf="$(qt_use accessibility) - $(qt_use cups) - $(use gif || echo -no-gif) - $(qt_use glib) - $(qt_use mng libmng system) - $(qt_use nas nas-sound system) - $(qt_use nis) - $(qt_use tiff libtiff system) - $(qt_use dbus qdbus) - $(qt_use dbus) - $(qt_use egl) - $(qt_use qt3support) - $(qt_use gtkstyle) - $(qt_use xinerama) - $(qt_use xv xvideo)" - - myconf+=" - -system-libpng -system-libjpeg - -no-sql-mysql -no-sql-psql -no-sql-ibase -no-sql-sqlite -no-sql-sqlite2 -no-sql-odbc - -sm -xshape -xsync -xcursor -xfixes -xrandr -xrender -mitshm -xinput -xkb - -fontconfig -no-svg -no-webkit -no-phonon -no-opengl" - - [[ ${CHOST} == *86*-apple-darwin* ]] && myconf+=" -no-ssse3" #367045 - - qt4-build_src_configure - - if use gtkstyle; then - einfo "patching the Makefile to fix qgtkstyle compilation" - sed "s:-I/usr/include/qt4 ::" -i src/gui/Makefile || - die "sed failed" - fi - sed -i -e "s:-I/usr/include/qt4/QtGui ::" src/gui/Makefile || die "sed failed" -} - -src_install() { - QCONFIG_ADD=" - mitshm x11sm xcursor xfixes xinput xkb xrandr xrender xshape xsync - fontconfig gif png system-png jpeg system-jpeg - $(usev accessibility) - $(usev cups) - $(use mng && echo system-mng) - $(usev nas) - $(usev nis) - $(use tiff && echo system-tiff) - $(usev xinerama) - $(use xv && echo xvideo)" - QCONFIG_REMOVE="no-gif no-jpeg no-png" - QCONFIG_DEFINE="$(use accessibility && echo QT_ACCESSIBILITY) - $(use cups && echo QT_CUPS) - $(use egl && echo QT_EGL) - QT_FONTCONFIG - $(use gtkstyle && echo QT_STYLE_GTK) - QT_IMAGEFORMAT_JPEG QT_IMAGEFORMAT_PNG - $(use mng && echo QT_IMAGEFORMAT_MNG) - $(use nas && echo QT_NAS) - $(use nis && echo QT_NIS) - $(use tiff && echo QT_IMAGEFORMAT_TIFF) - QT_SESSIONMANAGER QT_SHAPE QT_XCURSOR QT_XFIXES - $(use xinerama && echo QT_XINERAMA) - QT_XINPUT QT_XKB QT_XRANDR QT_XRENDER QT_XSYNC - $(use xv && echo QT_XVIDEO)" - - qt4-build_src_install - - # qt-creator - # some qt-creator headers are located - # under /usr/include/qt4/QtDesigner/private. - # those headers are just includes of the headers - # which are located under tools/designer/src/lib/* - # So instead of installing both, we create the private folder - # and drop tools/designer/src/lib/* headers in it. - if use aqua && [[ ${CHOST##*-darwin} -ge 9 ]]; then - insinto "${QTLIBDIR#${EPREFIX}}"/QtDesigner.framework/Headers/private/ - else - insinto "${QTHEADERDIR#${EPREFIX}}"/QtDesigner/private/ - fi - doins "${S}"/tools/designer/src/lib/shared/* - doins "${S}"/tools/designer/src/lib/sdk/* - - # install private headers - if use aqua && [[ ${CHOST##*-darwin} -ge 9 ]]; then - insinto "${QTLIBDIR#${EPREFIX}}"/QtGui.framework/Headers/private/ - else - insinto "${QTHEADERDIR#${EPREFIX}}"/QtGui/private - fi - find "${S}"/src/gui -type f -name '*_p.h' -exec doins {} + - - if use aqua && [[ ${CHOST##*-darwin} -ge 9 ]]; then - # rerun to get links to headers right - fix_includes - fi - - # touch the available graphics systems - dodir /usr/share/qt4/graphicssystems - echo "default" > "${ED}"/usr/share/qt4/graphicssystems/raster || die - touch "${ED}"/usr/share/qt4/graphicssystems/native || die - - doicon tools/designer/src/designer/images/designer.png - newicon tools/linguist/linguist/images/icons/linguist-128-32.png linguist.png - newicon tools/qtconfig/images/appicon.png qtconfig.png - use dbus && newicon tools/qdbus/qdbusviewer/images/qdbusviewer-128.png qdbusviewer.png - make_desktop_entry designer Designer designer 'Qt;Development;GUIDesigner' - make_desktop_entry linguist Linguist linguist 'Qt;Development;Translation' - make_desktop_entry qtconfig 'Qt Configuration Tool' qtconfig 'Qt;Settings;DesktopSettings' -} - -pkg_postinst() { - # raster is the default graphicssystems, set it on first install - eselect qtgraphicssystem set raster --use-old - - elog "Starting with Qt 4.8, you may choose the active Qt Graphics System" - elog "by using a new eselect module called qtgraphicssystem." - elog "Run \`eselect qtgraphicssystem\` for more information." - - if use gtkstyle; then - # see bug 388551 - elog - elog "For Qt's GTK style to work, you need to either export" - elog "the following variable into your environment:" - elog ' GTK2_RC_FILES="$HOME/.gtkrc-2.0"' - elog "or alternatively install gnome-base/libgnomeui" - fi -} diff --git a/x11-libs/qt-gui/qt-gui-4.8.4-r131.ebuild b/x11-libs/qt-gui/qt-gui-4.8.4-r131.ebuild new file mode 100644 index 0000000..99b7cf5 --- /dev/null +++ b/x11-libs/qt-gui/qt-gui-4.8.4-r131.ebuild @@ -0,0 +1,251 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt-gui/qt-gui-4.8.4-r1.ebuild,v 1.4 2013/02/09 20:11:58 ago Exp $ + +EAPI=4 + +inherit eutils qt4-build + +DESCRIPTION="The GUI module for the Qt toolkit" +SLOT="4" +if [[ ${QT4_BUILD_TYPE} == live ]]; then + KEYWORDS="" +else + KEYWORDS="~alpha amd64 ~arm ~hppa ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris" +fi +IUSE="+accessibility cups dbus egl gif +glib gtkstyle mng nas nis qt3support tiff trace xinerama +xv" + +REQUIRED_USE=" + gtkstyle? ( glib ) +" + +RDEPEND=" + app-admin/eselect-qtgraphicssystem + media-libs/fontconfig + media-libs/freetype:2 + media-libs/libpng:0 + sys-libs/zlib + virtual/jpeg + ~x11-libs/qt-core-${PV}[aqua=,debug=,glib=,qt3support=] + ~x11-libs/qt-script-${PV}[aqua=,debug=] + !aqua? ( + x11-libs/libICE + x11-libs/libSM + x11-libs/libX11 + x11-libs/libXcursor + x11-libs/libXext + x11-libs/libXi + x11-libs/libXrandr + x11-libs/libXrender + xinerama? ( x11-libs/libXinerama ) + xv? ( x11-libs/libXv ) + ) + cups? ( net-print/cups ) + dbus? ( ~x11-libs/qt-dbus-${PV}[aqua=,debug=] ) + egl? ( media-libs/mesa[egl] ) + gtkstyle? ( x11-libs/gtk+:2[aqua=] ) + mng? ( >=media-libs/libmng-1.0.9 ) + nas? ( >=media-libs/nas-1.5 ) + tiff? ( media-libs/tiff:0 ) +" +DEPEND="${RDEPEND} + !aqua? ( + x11-proto/inputproto + x11-proto/xextproto + xinerama? ( x11-proto/xineramaproto ) + xv? ( x11-proto/videoproto ) + ) +" +PDEPEND="qt3support? ( ~x11-libs/qt-qt3support-${PV}[aqua=,debug=] )" + +PATCHES=( + "${FILESDIR}/${PN}-4.7.3-cups.patch" + "${FILESDIR}/CVE-2013-0254.patch" + "${FILESDIR}/qt-cxxflags.patch" +) + +pkg_setup() { + # this belongs to pkg_pretend, we have to upgrade to EAPI 4 :) + # was planning to use a dep, but to reproduce this you have to + # clean-emerge qt-gui[gtkstyle] while having cairo[qt4] installed. + # no need to restrict normal first time users for that :) + if use gtkstyle && ! has_version x11-libs/qt-gui && has_version x11-libs/cairo[qt4]; then + echo + eerror "When building qt-gui[gtkstyle] from scratch with cairo present," + eerror "cairo must have the qt4 use flag disabled, otherwise the gtk" + eerror "style cannot be built." + ewarn + eerror "You have the following options:" + eerror " - rebuild cairo with -qt4 USE" + eerror " - build qt-gui with -gtkstyle USE" + ewarn + eerror "After you successfully install qt-gui, you'll be able to" + eerror "re-enable the disabled use flag and/or reinstall cairo." + ewarn + echo + die "can't build ${PN} with USE=gtkstyle if cairo has 'qt4' USE flag enabled" + fi + + QT4_TARGET_DIRECTORIES=" + src/gui + src/scripttools + tools/designer + tools/linguist/linguist + src/plugins/imageformats/gif + src/plugins/imageformats/ico + src/plugins/imageformats/jpeg + src/plugins/inputmethods" + + QT4_EXTRACT_DIRECTORIES=" + include + src + tools" + + use accessibility && QT4_TARGET_DIRECTORIES="${QT4_TARGET_DIRECTORIES} src/plugins/accessible/widgets" + use dbus && QT4_TARGET_DIRECTORIES="${QT4_TARGET_DIRECTORIES} tools/qdbus/qdbusviewer" + use mng && QT4_TARGET_DIRECTORIES="${QT4_TARGET_DIRECTORIES} src/plugins/imageformats/mng" + use tiff && QT4_TARGET_DIRECTORIES="${QT4_TARGET_DIRECTORIES} src/plugins/imageformats/tiff" + use trace && QT4_TARGET_DIRECTORIES="${QT4_TARGET_DIRECTORIES} src/plugins/graphicssystems/trace" + + # mac version does not contain qtconfig? + [[ ${CHOST} == *-darwin* ]] || QT4_TARGET_DIRECTORIES+=" tools/qtconfig" + + QT4_EXTRACT_DIRECTORIES="${QT4_TARGET_DIRECTORIES} ${QT4_EXTRACT_DIRECTORIES}" + + qt4-build_pkg_setup +} + +src_prepare() { + qt4-build_src_prepare + + # Add -xvideo to the list of accepted configure options + sed -i -e 's:|-xinerama|:&-xvideo|:' configure + + # Don't build plugins this go around, because they depend on qt3support lib + sed -i -e 's:CONFIG(shared:# &:g' tools/designer/src/src.pro +} + +src_configure() { + export PATH="${S}/bin:${PATH}" + export LD_LIBRARY_PATH="${S}/lib:${LD_LIBRARY_PATH}" + + myconf="$(qt_use accessibility) + $(qt_use cups) + $(use gif || echo -no-gif) + $(qt_use glib) + $(qt_use mng libmng system) + $(qt_use nas nas-sound system) + $(qt_use nis) + $(qt_use tiff libtiff system) + $(qt_use dbus qdbus) + $(qt_use dbus) + $(qt_use egl) + $(qt_use qt3support) + $(qt_use gtkstyle) + $(qt_use xinerama) + $(qt_use xv xvideo)" + + myconf+=" + -system-libpng -system-libjpeg -system-zlib + -no-sql-mysql -no-sql-psql -no-sql-ibase -no-sql-sqlite -no-sql-sqlite2 -no-sql-odbc + -sm -xshape -xsync -xcursor -xfixes -xrandr -xrender -mitshm -xinput -xkb + -fontconfig -no-svg -no-webkit -no-phonon -no-opengl" + + [[ ${CHOST} == *86*-apple-darwin* ]] && myconf+=" -no-ssse3" #367045 + + qt4-build_src_configure + + if use gtkstyle; then + einfo "patching the Makefile to fix qgtkstyle compilation" + sed "s:-I/usr/include/qt4 ::" -i src/gui/Makefile || + die "sed failed" + fi + sed -i -e "s:-I/usr/include/qt4/QtGui ::" src/gui/Makefile || die "sed failed" +} + +src_install() { + QCONFIG_ADD=" + mitshm tablet x11sm xcursor xfixes xinput xkb xrandr xrender xshape xsync + fontconfig gif png system-png jpeg system-jpeg + $(usev accessibility) + $(usev cups) + $(use mng && echo system-mng) + $(usev nas) + $(usev nis) + $(use tiff && echo system-tiff) + $(usev xinerama) + $(use xv && echo xvideo)" + QCONFIG_REMOVE="no-gif no-jpeg no-png" + QCONFIG_DEFINE="$(use accessibility && echo QT_ACCESSIBILITY) + $(use cups && echo QT_CUPS) + $(use egl && echo QT_EGL) + QT_FONTCONFIG + $(use gtkstyle && echo QT_STYLE_GTK) + QT_IMAGEFORMAT_JPEG QT_IMAGEFORMAT_PNG + $(use mng && echo QT_IMAGEFORMAT_MNG) + $(use nas && echo QT_NAS) + $(use nis && echo QT_NIS) + $(use tiff && echo QT_IMAGEFORMAT_TIFF) + QT_SESSIONMANAGER QT_SHAPE QT_TABLET QT_XCURSOR QT_XFIXES + $(use xinerama && echo QT_XINERAMA) + QT_XINPUT QT_XKB QT_XRANDR QT_XRENDER QT_XSYNC + $(use xv && echo QT_XVIDEO)" + + qt4-build_src_install + + # qt-creator + # some qt-creator headers are located + # under /usr/include/qt4/QtDesigner/private. + # those headers are just includes of the headers + # which are located under tools/designer/src/lib/* + # So instead of installing both, we create the private folder + # and drop tools/designer/src/lib/* headers in it. + if use aqua && [[ ${CHOST##*-darwin} -ge 9 ]]; then + insinto "${QTLIBDIR#${EPREFIX}}"/QtDesigner.framework/Headers/private/ + else + insinto "${QTHEADERDIR#${EPREFIX}}"/QtDesigner/private/ + fi + doins "${S}"/tools/designer/src/lib/shared/* + doins "${S}"/tools/designer/src/lib/sdk/* + + # install private headers + if use aqua && [[ ${CHOST##*-darwin} -ge 9 ]]; then + insinto "${QTLIBDIR#${EPREFIX}}"/QtGui.framework/Headers/private/ + else + insinto "${QTHEADERDIR#${EPREFIX}}"/QtGui/private + fi + find "${S}"/src/gui -type f -name '*_p.h' -exec doins {} + + + if use aqua && [[ ${CHOST##*-darwin} -ge 9 ]]; then + # rerun to get links to headers right + fix_includes + fi + + # touch the available graphics systems + dodir /usr/share/qt4/graphicssystems + echo "default" > "${ED}"/usr/share/qt4/graphicssystems/raster || die + touch "${ED}"/usr/share/qt4/graphicssystems/native || die + + doicon tools/designer/src/designer/images/designer.png + newicon tools/linguist/linguist/images/icons/linguist-128-32.png linguist.png + newicon tools/qtconfig/images/appicon.png qtconfig.png + use dbus && newicon tools/qdbus/qdbusviewer/images/qdbusviewer-128.png qdbusviewer.png + make_desktop_entry designer Designer designer 'Qt;Development;GUIDesigner' + make_desktop_entry linguist Linguist linguist 'Qt;Development;Translation' + make_desktop_entry qtconfig 'Qt Configuration Tool' qtconfig 'Qt;Settings;DesktopSettings' +} + +pkg_postinst() { + qt4-build_pkg_postinst + + # raster is the default graphicssystem, set it on first install + eselect qtgraphicssystem set raster --use-old + + if use gtkstyle; then + # see bug 388551 + elog "For Qt's GTK style to work, you need to either export" + elog "the following variable into your environment:" + elog ' GTK2_RC_FILES="$HOME/.gtkrc-2.0"' + elog "or alternatively install gnome-base/libgnomeui" + fi +} -- cgit v1.2.3-65-gdbad