Skip to content

Commit

Permalink
app-office/calligra: Fix DEPENDs, add USE=jpeg2k,phonon
Browse files Browse the repository at this point in the history
Make USE=lcms do something (enable PLUGIN_COLORENGINES)
Make USE=spacenav do sth (enable PLUGIN_SPACENAVIGATOR)
Revert upstream disabling AkonadiContact
Block calligra-l10n:4
Drop unused libpng dependency
Move boost,threadweaver RDEPEND -> DEPEND
KDE_TEST=forceoptional-recursive to eliminate a truckload of warnings
Disable benchmarks as well, nothing is installed
Patch out bogus references to kdelibs4

Package-Manager: portage-2.3.0
  • Loading branch information
a17r committed Jan 6, 2017
1 parent 14f2ab0 commit 40af205
Show file tree
Hide file tree
Showing 8 changed files with 567 additions and 0 deletions.
253 changes: 253 additions & 0 deletions app-office/calligra/calligra-3.0.0.1-r1.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,253 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI=6

CHECKREQS_DISK_BUILD="4G"
KDE_HANDBOOK="forceoptional"
KDE_TEST="forceoptional-recursive"
inherit check-reqs kde5 versionator

DESCRIPTION="KDE Office Suite"
HOMEPAGE="http://www.calligra.org/"
[[ ${KDE_BUILD_TYPE} == release ]] && SRC_URI="mirror://kde/stable/${PN}/${PV}/${P}.tar.xz"

LICENSE="GPL-2"

[[ ${KDE_BUILD_TYPE} == release ]] && \
KEYWORDS="~amd64 ~x86"

CAL_FTS=( karbon plan sheets words )
CAL_EXP_FTS=( braindump stage )

IUSE="activities +crypt +eigen +fontconfig gsl import-filter jpeg2k +lcms okular openexr +pdf
phonon pim marble spacenav +truetype vc +xml X $(printf 'calligra_features_%s ' ${CAL_FTS[@]})
$(printf 'calligra_experimental_features_%s ' ${CAL_EXP_FTS[@]})"

REQUIRED_USE="calligra_features_sheets? ( eigen )"

# TODO: Not packaged: Cauchy (https://bitbucket.org/cyrille/cauchy)
# Required for the matlab/octave formula tool
# drop qtcore subslot operator when QT_MINIMAL >= 5.7.0
COMMON_DEPEND="
$(add_frameworks_dep karchive)
$(add_frameworks_dep kcmutils)
$(add_frameworks_dep kcodecs)
$(add_frameworks_dep kcompletion)
$(add_frameworks_dep kconfig)
$(add_frameworks_dep kconfigwidgets)
$(add_frameworks_dep kcoreaddons)
$(add_frameworks_dep kdelibs4support)
$(add_frameworks_dep kemoticons)
$(add_frameworks_dep kglobalaccel)
$(add_frameworks_dep kguiaddons)
$(add_frameworks_dep ki18n)
$(add_frameworks_dep kiconthemes)
$(add_frameworks_dep kio)
$(add_frameworks_dep kitemmodels)
$(add_frameworks_dep kitemviews)
$(add_frameworks_dep kjobwidgets)
$(add_frameworks_dep knotifications)
$(add_frameworks_dep knotifyconfig)
$(add_frameworks_dep kparts)
$(add_frameworks_dep kross)
$(add_frameworks_dep ktextwidgets)
$(add_frameworks_dep kwallet)
$(add_frameworks_dep kwidgetsaddons)
$(add_frameworks_dep kwindowsystem)
$(add_frameworks_dep kxmlgui)
$(add_frameworks_dep sonnet)
$(add_qt_dep designer)
$(add_qt_dep qtdbus)
$(add_qt_dep qtdeclarative)
$(add_qt_dep qtgui)
$(add_qt_dep qtnetwork)
$(add_qt_dep qtprintsupport)
$(add_qt_dep qtscript)
$(add_qt_dep qtsvg)
$(add_qt_dep qtwidgets)
$(add_qt_dep qtxml)
dev-lang/perl
sys-libs/zlib
virtual/libiconv
activities? ( $(add_frameworks_dep kactivities) )
crypt? ( app-crypt/qca:2[qt5] )
eigen? ( dev-cpp/eigen:3 )
fontconfig? ( media-libs/fontconfig )
gsl? ( sci-libs/gsl )
import-filter? (
$(add_frameworks_dep khtml)
app-text/libetonyek
app-text/libodfgen
app-text/libwpd:*
app-text/libwpg:*
>=app-text/libwps-0.4
dev-libs/librevenge
media-libs/libvisio
)
lcms? (
media-libs/ilmbase:=
media-libs/lcms:2
)
marble? ( $(add_kdeapps_dep marble) )
openexr? ( media-libs/openexr )
pdf? ( app-text/poppler:=[qt5] )
phonon? ( media-libs/phonon[qt5] )
spacenav? ( dev-libs/libspnav )
truetype? ( media-libs/freetype:2 )
X? (
$(add_qt_dep qtx11extras)
x11-libs/libX11
)
calligra_experimental_features_braindump? ( $(add_qt_dep qtwebkit) )
calligra_experimental_features_stage? (
$(add_qt_dep qtwebkit)
okular? ( $(add_kdeapps_dep okular) )
)
calligra_features_karbon? ( jpeg2k? ( media-libs/openjpeg:= ) )
calligra_features_plan? (
$(add_frameworks_dep khtml)
$(add_qt_dep qtcore '' '' '5=')
dev-libs/kdiagram:5
=dev-libs/kproperty-3.0*:5
=dev-libs/kreport-3.0*:5
pim? (
$(add_kdeapps_dep akonadi)
$(add_kdeapps_dep akonadi-contacts)
$(add_kdeapps_dep kcalcore)
$(add_kdeapps_dep kcontacts)
)
)
calligra_features_words? (
dev-libs/libxslt
okular? ( $(add_kdeapps_dep okular) )
)
"
DEPEND="${COMMON_DEPEND}
dev-libs/boost
sys-devel/gettext
x11-misc/shared-mime-info
test? ( $(add_frameworks_dep threadweaver) )
vc? ( >=dev-libs/vc-1.1.0 )
"
RDEPEND="${COMMON_DEPEND}
calligra_features_karbon? ( media-gfx/pstoedit[plotutils] )
!app-office/calligra:4
!app-office/calligra-l10n:4
"
RESTRICT+=" test"

PATCHES=(
"${FILESDIR}/${PN}"-3.0.0-no-arch-detection.patch
# upstream master
"${FILESDIR}/${P}"-nokdelibs4.patch
"${FILESDIR}/${P}"-relax-deps.patch
# pending upstream
"${FILESDIR}/${P}"-reenable-akonadi.patch
"${FILESDIR}/${P}"-deps{1,2,3}.patch
)

pkg_pretend() {
check-reqs_pkg_pretend
}

pkg_setup() {
kde5_pkg_setup
check-reqs_pkg_setup
}

src_prepare() {
kde5_src_prepare

if ! use test; then
sed -e "/add_subdirectory( *benchmarks *)/s/^/#DONT/" \
-i libs/pigment/CMakeLists.txt || die
fi

# Unconditionally disable deprecated deps (required by QtQuick1)
punt_bogus_dep Qt5 Declarative
punt_bogus_dep Qt5 OpenGL

if ! use calligra_experimental_features_stage && \
! use calligra_experimental_features_braindump; then
punt_bogus_dep Qt5 WebKitWidgets
punt_bogus_dep Qt5 WebKit
fi

# Hack around the excessive use of CMake macros
if use okular && ! use calligra_features_words; then
sed -i -e "/add_subdirectory( *okularodtgenerator *)/ s/^/#DONT/" \
extras/CMakeLists.txt || die "Failed to disable OKULAR_GENERATOR_ODT"
fi

if use okular && ! use calligra_experimental_features_stage; then
sed -i -e "/add_subdirectory( *okularodpgenerator *)/ s/^/#DONT/" \
extras/CMakeLists.txt || die "Failed to disable OKULAR_GENERATOR_ODP"
fi
}

src_configure() {
local cal_ft myproducts experimental=OFF

# applications
for cal_ft in ${CAL_FTS[@]}; do
if use calligra_features_${cal_ft} ; then
myproducts+=( "${cal_ft^^}" )
fi
done
# experimental/unmaintained applications
for cal_ft in ${CAL_EXP_FTS[@]}; do
if use calligra_experimental_features_${cal_ft} ; then
experimental=ON
myproducts+=( "${cal_ft^^}" )
fi
done

use lcms && myproducts+=( PLUGIN_COLORENGINES )
use spacenav && myproducts+=( PLUGIN_SPACENAVIGATOR )

local mycmakeargs=( -DPRODUCTSET="${myproducts[*]}" )

if [[ ${KDE_BUILD_TYPE} == release ]] ; then
mycmakeargs+=(
-DRELEASE_BUILD=ON
-DBUILD_UNMAINTAINED=${experimental}
)
fi

mycmakeargs+=(
-DPACKAGERS_BUILD=OFF
-DWITH_Iconv=ON
$(cmake-utils_use_find_package activities KF5Activities)
-DWITH_Qca-qt5=$(usex crypt)
-DWITH_Eigen3=$(usex eigen)
-DWITH_Fontconfig=$(usex fontconfig)
-DWITH_GSL=$(usex gsl)
-DWITH_LibEtonyek=$(usex import-filter)
-DWITH_LibOdfGen=$(usex import-filter)
-DWITH_LibRevenge=$(usex import-filter)
-DWITH_LibVisio=$(usex import-filter)
-DWITH_LibWpd=$(usex import-filter)
-DWITH_LibWpg=$(usex import-filter)
-DWITH_LibWps=$(usex import-filter)
$(cmake-utils_use_find_package jpeg2k OpenJPEG)
$(cmake-utils_use_find_package phonon Phonon4Qt5)
$(cmake-utils_use_find_package pim KF5Akonadi)
$(cmake-utils_use_find_package pim KF5AkonadiContact)
$(cmake-utils_use_find_package pim KF5CalendarCore)
$(cmake-utils_use_find_package pim KF5Contacts)
-DWITH_LCMS2=$(usex lcms)
$(cmake-utils_use_find_package marble Marble)
-DWITH_Okular5=$(usex okular)
-DWITH_OpenEXR=$(usex openexr)
-DWITH_Poppler=$(usex pdf)
-ENABLE_CSTESTER_TESTING=$(usex test)
-DWITH_Freetype=$(usex truetype)
-DWITH_Vc=$(usex vc)
-DCMAKE_DISABLE_FIND_PACKAGE_Libgit2=ON
-DCMAKE_DISABLE_FIND_PACKAGE_Libqgit2=ON
)

kde5_src_configure
}
31 changes: 31 additions & 0 deletions app-office/calligra/files/calligra-3.0.0.1-deps1.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
commit 3e3c3a16b9a8b114cc407da9152e20d5dfc422c6
Author: Andreas Sturmlechner <[email protected]>
Date: Wed Jan 4 14:10:56 2017 +0100

Make Activities and KF5Html really optional.

Before, trying to use CMAKE_DISABLE_FIND_PACKAGE_KF5{Activities,KHtml}
errored out with:

"if given arguments: "VERSION_LESS" "5.16.0" Unknown arguments specified"

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0394af4..e11d998 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -223,11 +223,10 @@ find_package(KF5 ${REQUIRED_KF5_VERSION} REQUIRED
Notifications
KCMUtils
)
-find_package(KF5 ${REQUIRED_KF5_VERSION} QUIET
- OPTIONAL_COMPONENTS
- Activities
- KHtml
-)
+
+find_package(KF5Activities)
+find_package(KF5KHtml)
+
set_package_properties(KF5Activities PROPERTIES
TYPE OPTIONAL
)
65 changes: 65 additions & 0 deletions app-office/calligra/files/calligra-3.0.0.1-deps2.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
commit 511d4014beff9f79aeab1c0013470f21ac6b7df7
Author: Andreas Sturmlechner <[email protected]>
Date: Wed Jan 4 14:13:19 2017 +0100

Fix dependencies, sort and clean trailing whitespaces

Add missing KF5JobWidgets
Drop unused KF5TextEditor

diff --git a/CMakeLists.txt b/CMakeLists.txt
index e11d998..6fab26b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -195,33 +195,33 @@ set(REQUIRED_KF5_VERSION "5.7.0")

find_package(KF5 ${REQUIRED_KF5_VERSION} REQUIRED
COMPONENTS
- Archive
- Codecs
+ Archive
+ Codecs
Completion
- Config
- ConfigWidgets
+ Config
+ ConfigWidgets
CoreAddons
DBusAddons
DocTools
- GuiAddons
- I18n
- IconThemes
+ GuiAddons
+ I18n
+ IconThemes
ItemViews
+ JobWidgets
+ KCMUtils
KDELibs4Support
- KIO
- Kross
- Parts
+ KIO
+ Kross
+ Notifications
+ NotifyConfig
+ Parts
Sonnet
- TextEditor
- TextWidgets
+ TextWidgets
ThreadWeaver
- Wallet
- WidgetsAddons
+ Wallet
+ WidgetsAddons
WindowSystem
- XmlGui
- NotifyConfig
- Notifications
- KCMUtils
+ XmlGui
)

find_package(KF5Activities)
31 changes: 31 additions & 0 deletions app-office/calligra/files/calligra-3.0.0.1-deps3.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
commit 019f7e77a341661742b179c92cbce485b7ae361e
Author: Andreas Sturmlechner <[email protected]>
Date: Wed Jan 4 23:51:32 2017 +0100

Push KF5Threadweaver dep to the only place where it is used

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6fab26b..ace6f52 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -217,7 +217,6 @@ find_package(KF5 ${REQUIRED_KF5_VERSION} REQUIRED
Parts
Sonnet
TextWidgets
- ThreadWeaver
Wallet
WidgetsAddons
WindowSystem
diff --git a/libs/widgets/tests/CMakeLists.txt b/libs/widgets/tests/CMakeLists.txt
index 3934630..744828c 100644
--- a/libs/widgets/tests/CMakeLists.txt
+++ b/libs/widgets/tests/CMakeLists.txt
@@ -4,6 +4,8 @@ include_directories( ${KOMAIN_INCLUDES} ${CMAKE_SOURCE_DIR}/libs/widgets)
add_definitions(-DFILES_DATA_DIR="${CMAKE_CURRENT_SOURCE_DIR}/data/")
add_definitions(-DFILES_OUTPUT_DIR="${CMAKE_CURRENT_BINARY_DIR}")

+find_package(KF5ThreadWeaver ${REQUIRED_KF5_VERSION} REQUIRED)
+
#add_subdirectory(filedialogtester)

# call: kowidgets_add_unit_test(<test-name> <sources> LINK_LIBRARIES <library> [<library> [...]] [GUI])
Loading

0 comments on commit 40af205

Please sign in to comment.