diff options
author | Andreas Sturmlechner <andreas.sturmlechner@gmail.com> | 2016-10-27 03:31:50 +0200 |
---|---|---|
committer | Justin Lecher <jlec@gentoo.org> | 2016-11-06 09:24:50 +0100 |
commit | 31e9ab607088bf9f7ec7308f2e601d6b933372e0 (patch) | |
tree | 843ee213d6a1a2159f8c1034b8d74e9357469aba /app-office/scribus | |
parent | dev-perl/DBD-mysql: Bump to version 4.38.0 (diff) | |
download | gentoo-31e9ab607088bf9f7ec7308f2e601d6b933372e0.tar.gz gentoo-31e9ab607088bf9f7ec7308f2e601d6b933372e0.tar.bz2 gentoo-31e9ab607088bf9f7ec7308f2e601d6b933372e0.zip |
app-office/scribus: Fix build w/ Qt-5.7.0 and C++11
Use upstream's WANT_CPP11
Drop duplicate boost DEPEND.
Add missing || die's
Add subslot operators on boost and libpng
Require >=boost-1.62 for C++11 per dracwyrm+Soap's advice
Package-Manager: portage-2.3.0
Signed-off-by: Justin Lecher <jlec@gentoo.org>
Diffstat (limited to 'app-office/scribus')
-rw-r--r-- | app-office/scribus/files/scribus-1.5.2-cmake-qt57.patch | 31 | ||||
-rw-r--r-- | app-office/scribus/files/scribus-1.5.2-cxx-build.patch | 24 | ||||
-rw-r--r-- | app-office/scribus/files/scribus-1.5.2-gcc6-warn.patch | 87 | ||||
-rw-r--r-- | app-office/scribus/files/scribus-1.5.2-qt57-build.patch | 21 | ||||
-rw-r--r-- | app-office/scribus/scribus-1.5.2-r2.ebuild | 218 |
5 files changed, 381 insertions, 0 deletions
diff --git a/app-office/scribus/files/scribus-1.5.2-cmake-qt57.patch b/app-office/scribus/files/scribus-1.5.2-cmake-qt57.patch new file mode 100644 index 000000000000..214fab4257e4 --- /dev/null +++ b/app-office/scribus/files/scribus-1.5.2-cmake-qt57.patch @@ -0,0 +1,31 @@ +commit 413c8c8a0ded5aa4b0f8d85dbc335082e809f3b2 +Author: Craig Bradney <mrb@scribus.info> +Date: Thu Jun 16 20:01:34 2016 +0000 + + Add better support for C++11/Qt 5.7.0. CMAKE minimum bumped to 3.2 + + git-svn-id: svn://scribus.net/trunk/Scribus@21377 11d20701-8431-0410-a711-e3c959e3b870 + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index bc1ec57..9e92a38 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -3,8 +3,9 @@ + + #Set our CMake minimum version + #Require 2.8.9 for Qt5 ++#Require 3.1.0 for Qt 5.7 C++ 11 easy support + #Require 3.2.0 for add_custom_target with byproducts +-CMAKE_MINIMUM_REQUIRED(VERSION 2.8.9 FATAL_ERROR) ++CMAKE_MINIMUM_REQUIRED(VERSION 3.2.0 FATAL_ERROR) + + #Pretty colors + SET(CMAKE_COLOR_MAKEFILE ON) +@@ -382,6 +383,7 @@ ADD_DEFINITIONS("-DLIBDIR=\\\"${CMAKE_INSTALL_PREFIX}/${LIBDIR}\\\"") + #C++11 Support + IF(WANT_CPP11) + MESSAGE(STATUS "Enabling C++11 compiler features") ++ set(CMAKE_CXX_STANDARD 11) + ADD_DEFINITIONS("-std=c++11") + ENDIF(WANT_CPP11) + diff --git a/app-office/scribus/files/scribus-1.5.2-cxx-build.patch b/app-office/scribus/files/scribus-1.5.2-cxx-build.patch new file mode 100644 index 000000000000..da8d50dee92d --- /dev/null +++ b/app-office/scribus/files/scribus-1.5.2-cxx-build.patch @@ -0,0 +1,24 @@ +commit 1a9bdbc7ab793b15e93f1ab29ce06dd69c061f58 +Author: Jean Ghali <jghali@libertysurf.fr> +Date: Sat Jun 18 12:49:45 2016 +0000 + + fix build issue when not compiling with c++11 : std::isinf is c++11 only + + git-svn-id: svn://scribus.net/trunk/Scribus@21382 11d20701-8431-0410-a711-e3c959e3b870 + +diff --git a/scribus/third_party/fparser/fpoptimizer.cc b/scribus/third_party/fparser/fpoptimizer.cc +index 673e1b6..0c1bad5 100644 +--- a/scribus/third_party/fparser/fpoptimizer.cc ++++ b/scribus/third_party/fparser/fpoptimizer.cc +@@ -7296,7 +7296,11 @@ namespace FPoptimizer_CodeTree + //if(imm >= 0.0) + { + double new_base_immed = std::pow(base_immed, imm); ++#if __cplusplus < 201103L ++ if(isinf(new_base_immed) || new_base_immed == 0.0) ++#else + if(std::isinf(new_base_immed) || new_base_immed == 0.0) ++#endif + { + // It produced an infinity. Do not change. + break; diff --git a/app-office/scribus/files/scribus-1.5.2-gcc6-warn.patch b/app-office/scribus/files/scribus-1.5.2-gcc6-warn.patch new file mode 100644 index 000000000000..224ebe40d99e --- /dev/null +++ b/app-office/scribus/files/scribus-1.5.2-gcc6-warn.patch @@ -0,0 +1,87 @@ +commit bb3066704e987210c324ec7f3bfb2c8153d9710e +Author: Jean Ghali <jghali@libertysurf.fr> +Date: Sat Aug 20 12:18:31 2016 +0000 + + fix a few gcc 6 warnings related to auto_ptr deprecation in c++11 by replacing it with QScopedPointer + + git-svn-id: svn://scribus.net/trunk/Scribus@21430 11d20701-8431-0410-a711-e3c959e3b870 + +diff --git a/scribus/sclistboxpixmap.h b/scribus/sclistboxpixmap.h +index 044d45a..a067b79 100644 +--- a/scribus/sclistboxpixmap.h ++++ b/scribus/sclistboxpixmap.h +@@ -13,6 +13,7 @@ for which a new license (GPL+exception) is in place. + #include <QDebug> + #include <QPainter> + #include <QPixmap> ++#include <QScopedPointer> + #include <QVariant> + + #include "scguardedptr.h" +@@ -30,19 +31,19 @@ public: + virtual QSize sizeHint (const QStyleOptionViewItem & option, const QModelIndex & index ) const; + virtual void paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const; + protected: +- static std::auto_ptr<QPixmap> pmap; ++ static QScopedPointer<QPixmap> pmap; + // The drawPixmap function must not modify pixmap size + virtual void redraw(const QVariant&) const = 0; + }; + + template<unsigned int pixWidth, unsigned int pixHeight> +-std::auto_ptr<QPixmap> ScListBoxPixmap<pixWidth, pixHeight>::pmap; ++QScopedPointer<QPixmap> ScListBoxPixmap<pixWidth, pixHeight>::pmap; + + + template<unsigned int pixWidth, unsigned int pixHeight> + ScListBoxPixmap<pixWidth, pixHeight>::ScListBoxPixmap(void) : QAbstractItemDelegate() + { +- if (!pmap.get()) ++ if (pmap.isNull()) + { + pmap.reset( new QPixmap(pixWidth, pixHeight) ); + } +diff --git a/scribus/ui/colorlistbox.cpp b/scribus/ui/colorlistbox.cpp +index 9f3897b..99f280f 100644 +--- a/scribus/ui/colorlistbox.cpp ++++ b/scribus/ui/colorlistbox.cpp +@@ -83,7 +83,7 @@ public: + + void ColorSmallItemDelegate::redraw(const QVariant& data) const + { +- QPixmap* pPixmap = ScListBoxPixmap<15,15>::pmap.get(); ++ QPixmap* pPixmap = ScListBoxPixmap<15,15>::pmap.data(); + pPixmap->fill(Qt::transparent); + if (data.canConvert<ColorPixmapValue>()) + { +@@ -101,7 +101,7 @@ void ColorSmallItemDelegate::redraw(const QVariant& data) const + + void ColorWideItemDelegate::redraw(const QVariant& data) const + { +- QPixmap* pPixmap = ScListBoxPixmap<30,15>::pmap.get(); ++ QPixmap* pPixmap = ScListBoxPixmap<30,15>::pmap.data(); + pPixmap->fill(Qt::transparent); + if (data.canConvert<ColorPixmapValue>()) + { +@@ -134,7 +134,7 @@ void ColorFancyItemDelegate::redraw(const QVariant& data) const + iconsInitialized = true; + } + +- QPixmap* pPixmap = ScListBoxPixmap<60,15>::pmap.get(); ++ QPixmap* pPixmap = ScListBoxPixmap<60,15>::pmap.data(); + pPixmap->fill(Qt::transparent); + + if (data.canConvert<ColorPixmapValue>()) +diff --git a/scribus/ui/propertiespalette_utils.cpp b/scribus/ui/propertiespalette_utils.cpp +index f76743c..cadbb11 100644 +--- a/scribus/ui/propertiespalette_utils.cpp ++++ b/scribus/ui/propertiespalette_utils.cpp +@@ -66,7 +66,7 @@ void LineFormatItemDelegate::redraw(const QVariant& data) const + QColor tmpf; + pmap->fill(Qt::white); + QPainter p; +- p.begin(pmap.get()); ++ p.begin(pmap.data()); + for (int its = item.m_Line.size()-1; its > -1; its--) + { + const ScColor& col = item.m_doc->PageColors[item.m_Line[its].Color]; diff --git a/app-office/scribus/files/scribus-1.5.2-qt57-build.patch b/app-office/scribus/files/scribus-1.5.2-qt57-build.patch new file mode 100644 index 000000000000..0584c2907911 --- /dev/null +++ b/app-office/scribus/files/scribus-1.5.2-qt57-build.patch @@ -0,0 +1,21 @@ +commit ddb5688ae4f4ff40ba1204a413fcf15279b35f2b +Author: Franz Schmid <Franz.Schmid@altmuehlnet.de> +Date: Sat Jun 18 09:14:21 2016 +0000 + + Compile Fix for compiling with Qt-5.7 + + git-svn-id: svn://scribus.net/trunk/Scribus@21381 11d20701-8431-0410-a711-e3c959e3b870 + +diff --git a/scribus/third_party/fparser/fpoptimizer.cc b/scribus/third_party/fparser/fpoptimizer.cc +index ae8c0f6..673e1b6 100644 +--- a/scribus/third_party/fparser/fpoptimizer.cc ++++ b/scribus/third_party/fparser/fpoptimizer.cc +@@ -7296,7 +7296,7 @@ namespace FPoptimizer_CodeTree + //if(imm >= 0.0) + { + double new_base_immed = std::pow(base_immed, imm); +- if(isinf(new_base_immed) || new_base_immed == 0.0) ++ if(std::isinf(new_base_immed) || new_base_immed == 0.0) + { + // It produced an infinity. Do not change. + break; diff --git a/app-office/scribus/scribus-1.5.2-r2.ebuild b/app-office/scribus/scribus-1.5.2-r2.ebuild new file mode 100644 index 000000000000..ec8714e8a2bd --- /dev/null +++ b/app-office/scribus/scribus-1.5.2-r2.ebuild @@ -0,0 +1,218 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +CMAKE_MIN_VERSION="3.2" +PYTHON_COMPAT=( python2_7 ) +PYTHON_REQ_USE="tk?" +CMAKE_MAKEFILE_GENERATOR=ninja + +inherit cmake-utils fdo-mime flag-o-matic multilib python-single-r1 + +DESCRIPTION="Desktop publishing (DTP) and layout program" +HOMEPAGE="http://www.scribus.net/" +SRC_URI="mirror://sourceforge/project/${PN}/${PN}-devel/${PV}/${P}.tar.xz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="+boost debug examples graphicsmagick hunspell +minimal osg +pdf scripts templates tk" + +#a=$((ls resources/translations/scribus.*ts | sed -e 's:\.: :g' | awk '{print $2}'; ls resources/loremipsum/*xml | sed -e 's:\.: :g' -e 's:loremipsum\/: :g'| awk '{print $2}'; ls resources/dicts/hyph*dic | sed -e 's:\.: :g' -e 's:hyph_: :g' | awk '{print $2}'; ls resources/dicts/README_*txt | sed -e 's:_hyph::g' -e 's:\.: :g' -e 's:README_: :g' | awk '{print $2}') | sort | uniq); echo $a +IUSE_LINGUAS=" af ar bg br ca ca_ES cs cs_CZ cy cy_GB da da_DK de de@1901 de_CH de_DE el en_AU en_GB en_US eo es es_ES et eu fi fi_FI fr gl he hr hu hu_HU ia id id_ID is is_IS it ja ko ku la lt lt_LT nb_NO nl nn_NO pl pl_PL pt pt_BR pt_PT ro ro_RO ru ru_RU sa sk sk_SK sl sl_SI sq sr sv sv_SE th_TH tr uk uk_UA zh_CN zh_TW" +IUSE+=" ${IUSE_LINGUAS// / linguas_}" + +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + tk? ( scripts )" + +# osg +# couple of third_party libs bundled +COMMON_DEPEND=" + ${PYTHON_DEPS} + app-text/libmspub + app-text/poppler:= + dev-libs/hyphen + dev-libs/librevenge + dev-libs/libxml2 + dev-qt/qtcore:5 + dev-qt/qtgui:5 + dev-qt/qtnetwork:5 + dev-qt/qtopengl:5 + dev-qt/qtprintsupport:5 + dev-qt/qtquickcontrols:5 + dev-qt/qtwidgets:5 + dev-qt/qtxml:5 + media-libs/fontconfig + media-libs/freetype:2 + media-libs/lcms:2 + media-libs/libcdr + media-libs/libpagemaker + media-libs/libpng:0= + media-libs/libvisio + media-libs/tiff:0 + net-print/cups + sys-libs/zlib[minizip] + virtual/jpeg:0= + >=x11-libs/cairo-1.10.0[X,svg] + boost? ( >=dev-libs/boost-1.62:= ) + hunspell? ( app-text/hunspell ) + graphicsmagick? ( media-gfx/graphicsmagick ) + osg? ( dev-games/openscenegraph ) + pdf? ( app-text/podofo:0= ) + scripts? ( dev-python/pillow[tk?,${PYTHON_USEDEP}] ) + tk? ( dev-python/pillow[tk?,${PYTHON_USEDEP}] ) +" +RDEPEND="${COMMON_DEPEND} + app-text/ghostscript-gpl" +DEPEND="${COMMON_DEPEND} + dev-qt/linguist-tools:5 + virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}"/${PN}-1.5.0-docdir.patch + "${FILESDIR}"/${P}-fpic.patch + "${FILESDIR}"/${P}-cmake-qt57.patch + "${FILESDIR}"/${P}-qt57-build.patch + "${FILESDIR}"/${P}-cxx-build.patch + "${FILESDIR}"/${P}-gcc6-warn.patch +) + +src_prepare() { + rm -r codegen/cheetah || die + cat > cmake/modules/FindZLIB.cmake <<- EOF || die + find_package(PkgConfig) + pkg_check_modules(ZLIB minizip zlib) + SET( ZLIB_LIBRARY \${ZLIB_LIBRARIES} ) + SET( ZLIB_INCLUDE_DIR \${ZLIB_INCLUDE_DIRS} ) + MARK_AS_ADVANCED( ZLIB_LIBRARY ZLIB_INCLUDE_DIR ) + EOF + + sed \ + -e "/^\s*unzip\.[ch]/d" \ + -e "/^\s*ioapi\.[ch]/d" \ + -i scribus/CMakeLists.txt Scribus.pro || die + rm scribus/ioapi.[ch] || die + + sed \ + -e 's:\(${CMAKE_INSTALL_PREFIX}\):./\1:g' \ + -i resources/templates/CMakeLists.txt || die + + cmake-utils_src_prepare +} + +src_configure() { + local _lang lang langs + for lang in ${IUSE_LINGUAS}; do + _lang=$(translate_lang ${lang}) + if use linguas_${lang} || [[ ${lang} == "en" ]]; then + # From the CMakeLists.txt + # "#Bit of a hack, preprocess all the filenames to generate our language string, needed for -DWANT_GUI_LANG=en_GB;de_DE , etc" + langs+=";${_lang}" + else + # Don't install localized documentation + sed -e "/${_lang}/d" -i doc/CMakeLists.txt || die + safe_delete \ + ./resources/dicts/README_${_lang}.txt \ + ./resources/dicts/README_hyph_${_lang}.txt \ + ./resources/dicts/hyph_${_lang}.dic \ + ./resources/loremipsum/${_lang}.xml + fi + sed -e "/en_EN/d" -i doc/CMakeLists.txt || die + safe_delete \ + ./resources/dicts/README_en_EN.txt \ + ./resources/dicts/README_hyph_en_EN.txt \ + ./resources/dicts/hyph_en_EN.dic \ + ./resources/loremipsum/en_EN.xml + done + + local mycmakeargs=( + -DHAVE_PYTHON=ON + -DPYTHON_INCLUDE_PATH="$(python_get_includedir)" + -DPYTHON_LIBRARY="$(python_get_library_path)" + -DWANT_DISTROBUILD=ON + -DDOCDIR="${EPREFIX%/}/usr/share/doc/${PF}/" + -DWANT_GUI_LANG="${langs#;};en" + -DWANT_CPP11=ON + -DWITH_PODOFO="$(usex pdf)" + -DWITH_BOOST="$(usex boost)" + -DWANT_GRAPHICSMAGICK="$(usex graphicsmagick)" + -DWANT_NOOSG="$(usex !osg)" + -DWANT_DEBUG="$(usex debug)" + -DWANT_NOHEADERINSTALL="$(usex minimal)" + -DWANT_HUNSPELL="$(usex hunspell)" + -DWANT_NOEXAMPLES="$(usex !examples)" + -DWANT_NOTEMPLATES="$(usex !templates)" + ) + cmake-utils_src_configure +} + +src_install() { + cmake-utils_src_install + + local lang _lang + # en_EN can be deleted always + for lang in ${IUSE_LINGUAS}; do + if ! use linguas_${lang}; then + _lang=$(translate_lang) + safe_delete "${ED%/}"/usr/share/man/${_lang} + fi + done + + if ! use scripts; then + rm "${ED%/}"/usr/share/scribus/scripts/*.py || die + elif ! use tk; then + rm "${ED%/}"/usr/share/scribus/scripts/{FontSample,CalendarWizard}.py || die + fi + + use scripts && \ + python_fix_shebang "${ED%/}"/usr/share/scribus/scripts && \ + python_optimize "${ED%/}"/usr/share/scribus/scripts + + mv "${ED%/}"/usr/share/doc/${PF}/{en,html} || die + ln -sf html "${ED%/}"/usr/share/doc/${PF}/en || die + cat >> "${T}"/COPYING <<- EOF || die + ${PN} is licensed under the "${LICENSE}". + Please visit https://www.gnu.org/licenses/gpl-2.0.html for the complete license text. + EOF + dodoc "${T}"/COPYING + docompress -x /usr/share/doc/${PF}/en /usr/share/doc/${PF}/{AUTHORS,TRANSLATION,LINKS,COPYING} + doicon resources/iconsets/*/scribus.png + domenu scribus.desktop +} + +pkg_postinst() { + fdo-mime_desktop_database_update + fdo-mime_mime_database_update +} + +pkg_postrm() { + fdo-mime_desktop_database_update + fdo-mime_mime_database_update +} + +safe_delete () { + local x + for x in ${@}; do + if [[ -d "${x}" ]]; then + ebegin "Deleting ${x} recursively" + rm -r "${x}" || die + eend $? + elif [[ -f "${x}" ]]; then + ebegin "Deleting ${x}" + rm "${x}" || die + eend $? + else + ewarn "${x} not found" + fi + done +} + +translate_lang() { + _lang=${1} + [[ ${1} == "ru_RU" ]] && _lang+=_0 + [[ ${1} == "de@1901" ]] && _lang=de_1901 + echo ${_lang} +} |