mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
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>
This commit is contained in:
committed by
Justin Lecher
parent
e45917aa51
commit
31e9ab6070
31
app-office/scribus/files/scribus-1.5.2-cmake-qt57.patch
Normal file
31
app-office/scribus/files/scribus-1.5.2-cmake-qt57.patch
Normal file
@@ -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)
|
||||
|
||||
24
app-office/scribus/files/scribus-1.5.2-cxx-build.patch
Normal file
24
app-office/scribus/files/scribus-1.5.2-cxx-build.patch
Normal file
@@ -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;
|
||||
87
app-office/scribus/files/scribus-1.5.2-gcc6-warn.patch
Normal file
87
app-office/scribus/files/scribus-1.5.2-gcc6-warn.patch
Normal file
@@ -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];
|
||||
21
app-office/scribus/files/scribus-1.5.2-qt57-build.patch
Normal file
21
app-office/scribus/files/scribus-1.5.2-qt57-build.patch
Normal file
@@ -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;
|
||||
218
app-office/scribus/scribus-1.5.2-r2.ebuild
Normal file
218
app-office/scribus/scribus-1.5.2-r2.ebuild
Normal file
@@ -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}
|
||||
}
|
||||
Reference in New Issue
Block a user