diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2018-05-03 14:19:45 +0200 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2018-05-03 14:30:38 +0200 |
commit | 4c1bb55fb74e1806ebf87e3bb5afe936c47299b9 (patch) | |
tree | 124b46c458a6f6fe474e06bab88963003d0eb933 /eclass | |
parent | net-vpn/kvpnc: Remove last-rited package (diff) | |
download | gentoo-4c1bb55fb74e1806ebf87e3bb5afe936c47299b9.tar.gz gentoo-4c1bb55fb74e1806ebf87e3bb5afe936c47299b9.tar.bz2 gentoo-4c1bb55fb74e1806ebf87e3bb5afe936c47299b9.zip |
kde4-base.eclass: Remove last-rited
Moved to kde-sunset repository.
Closes: https://bugs.gentoo.org/637770
Diffstat (limited to 'eclass')
-rw-r--r-- | eclass/kde4-base.eclass | 963 |
1 files changed, 0 insertions, 963 deletions
diff --git a/eclass/kde4-base.eclass b/eclass/kde4-base.eclass deleted file mode 100644 index 72e4fcfe526b..000000000000 --- a/eclass/kde4-base.eclass +++ /dev/null @@ -1,963 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# @DEAD -# Removal on 2018-05-03. -# @ECLASS: kde4-base.eclass -# @MAINTAINER: -# kde@gentoo.org -# @BLURB: This eclass provides functions for kde 4.X ebuilds -# @DESCRIPTION: -# The kde4-base.eclass provides support for building KDE4 based ebuilds -# and KDE4 applications. -# -# NOTE: KDE 4 ebuilds currently support EAPI 5. This will be -# reviewed over time as new EAPI versions are approved. - -if [[ -z ${_KDE4_BASE_ECLASS} ]]; then -_KDE4_BASE_ECLASS=1 - -# @ECLASS-VARIABLE: KDE_SELINUX_MODULE -# @DESCRIPTION: -# If set to "none", do nothing. -# For any other value, add selinux to IUSE, and depending on that useflag -# add a dependency on sec-policy/selinux-${KDE_SELINUX_MODULE} to (R)DEPEND -: ${KDE_SELINUX_MODULE:=none} - -# @ECLASS-VARIABLE: VIRTUALDBUS_TEST -# @DESCRIPTION: -# If defined, launch and use a private dbus session during src_test. - -# @ECLASS-VARIABLE: VIRTUALX_REQUIRED -# @DESCRIPTION: -# For proper description see virtualx.eclass manpage. -# Here we redefine default value to be manual, if your package needs virtualx -# for tests you should proceed with setting VIRTUALX_REQUIRED=test. -: ${VIRTUALX_REQUIRED:=manual} - -inherit kde4-functions toolchain-funcs flag-o-matic gnome2-utils virtualx versionator eutils multilib xdg-utils - -if [[ ${KDE_BUILD_TYPE} = live ]]; then - case ${KDE_SCM} in - svn) inherit subversion ;; - git) inherit git-r3 ;; - esac -fi - -# @ECLASS-VARIABLE: CMAKE_REQUIRED -# @DESCRIPTION: -# Specify if cmake buildsystem is being used. Possible values are 'always' and 'never'. -# Please note that if it's set to 'never' you need to explicitly override following phases: -# src_configure, src_compile, src_test and src_install. -# Defaults to 'always'. -: ${CMAKE_REQUIRED:=always} -if [[ ${CMAKE_REQUIRED} = always ]]; then - buildsystem_eclass="cmake-utils" - export_fns="src_configure src_compile src_test src_install" -fi - -# @ECLASS-VARIABLE: KDE_MINIMAL -# @DESCRIPTION: -# This variable is used when KDE_REQUIRED is set, to specify required KDE minimal -# version for apps to work. Currently defaults to 4.4 -# One may override this variable to raise version requirements. -# Note that it is fixed to ${PV} for kde-base packages. -KDE_MINIMAL="${KDE_MINIMAL:-4.4}" - -# Set slot for KDEBASE known packages -case ${KDEBASE} in - kde-base) - SLOT=4/$(get_version_component_range 1-2) - KDE_MINIMAL="${PV}" - ;; - kdevelop) - if [[ ${KDE_BUILD_TYPE} = live ]]; then - # @ECLASS-VARIABLE: KDEVELOP_VERSION - # @DESCRIPTION: - # Specifies KDevelop version. Default is 4.0.0 for tagged packages and 9999 for live packages. - # Applies to KDEBASE=kdevelop only. - KDEVELOP_VERSION="${KDEVELOP_VERSION:-4.9999}" - # @ECLASS-VARIABLE: KDEVPLATFORM_VERSION - # @DESCRIPTION: - # Specifies KDevplatform version. Default is 1.0.0 for tagged packages and 9999 for live packages. - # Applies to KDEBASE=kdevelop only. - KDEVPLATFORM_VERSION="${KDEVPLATFORM_VERSION:-4.9999}" - else - case ${PN} in - kdevelop) - KDEVELOP_VERSION=${PV} - KDEVPLATFORM_VERSION="$(($(get_major_version)-3)).$(get_after_major_version)" - ;; - kdevplatform|kdevelop-php*|kdevelop-python) - KDEVELOP_VERSION="$(($(get_major_version)+3)).$(get_after_major_version)" - KDEVPLATFORM_VERSION=${PV} - ;; - *) - KDEVELOP_VERSION="${KDEVELOP_VERSION:-4.0.0}" - KDEVPLATFORM_VERSION="${KDEVPLATFORM_VERSION:-1.0.0}" - esac - fi - SLOT="4" - ;; -esac - -inherit ${buildsystem_eclass} - -EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare ${export_fns} pkg_preinst pkg_postinst pkg_postrm - -unset buildsystem_eclass -unset export_fns - -# @ECLASS-VARIABLE: DECLARATIVE_REQUIRED -# @DESCRIPTION: -# Is qtdeclarative required? Possible values are 'always', 'optional' and 'never'. -# This variable must be set before inheriting any eclasses. Defaults to 'never'. -DECLARATIVE_REQUIRED="${DECLARATIVE_REQUIRED:-never}" - -# @ECLASS-VARIABLE: QT3SUPPORT_REQUIRED -# @DESCRIPTION: -# Is qt3support required? Possible values are 'true' or 'false'. -# This variable must be set before inheriting any eclasses. Defaults to 'false'. -QT3SUPPORT_REQUIRED="${QT3SUPPORT_REQUIRED:-false}" - -# @ECLASS-VARIABLE: QTHELP_REQUIRED -# @DESCRIPTION: -# Is qthelp required? Possible values are 'always', 'optional' and 'never'. -# This variable must be set before inheriting any eclasses. Defaults to 'never'. -QTHELP_REQUIRED="${QTHELP_REQUIRED:-never}" - -# @ECLASS-VARIABLE: OPENGL_REQUIRED -# @DESCRIPTION: -# Is qtopengl required? Possible values are 'always', 'optional' and 'never'. -# This variable must be set before inheriting any eclasses. Defaults to 'never'. -OPENGL_REQUIRED="${OPENGL_REQUIRED:-never}" - -# @ECLASS-VARIABLE: MULTIMEDIA_REQUIRED -# @DESCRIPTION: -# Is qtmultimedia required? Possible values are 'always', 'optional' and 'never'. -# This variable must be set before inheriting any eclasses. Defaults to 'never'. -MULTIMEDIA_REQUIRED="${MULTIMEDIA_REQUIRED:-never}" - -# @ECLASS-VARIABLE: SQL_REQUIRED -# @DESCRIPTION: -# Is qtsql required? Possible values are 'always', 'optional' and 'never'. -# This variable must be set before inheriting any eclasses. Defaults to 'never'. -SQL_REQUIRED="${SQL_REQUIRED:-never}" - -# @ECLASS-VARIABLE: WEBKIT_REQUIRED -# @DESCRIPTION: -# Is qtwebkit required? Possible values are 'always', 'optional' and 'never'. -# This variable must be set before inheriting any eclasses. Defaults to 'never'. -WEBKIT_REQUIRED="${WEBKIT_REQUIRED:-never}" - -# @ECLASS-VARIABLE: CPPUNIT_REQUIRED -# @DESCRIPTION: -# Is cppunit required for tests? Possible values are 'always', 'optional' and 'never'. -# This variable must be set before inheriting any eclasses. Defaults to 'never'. -CPPUNIT_REQUIRED="${CPPUNIT_REQUIRED:-never}" - -# @ECLASS-VARIABLE: KDE_REQUIRED -# @DESCRIPTION: -# Is kde required? Possible values are 'always', 'optional' and 'never'. -# This variable must be set before inheriting any eclasses. Defaults to 'always' -# If set to 'always' or 'optional', KDE_MINIMAL may be overridden as well. -# Note that for kde-base packages this variable is fixed to 'always'. -KDE_REQUIRED="${KDE_REQUIRED:-always}" - -# @ECLASS-VARIABLE: KDE_HANDBOOK -# @DESCRIPTION: -# Set to enable handbook in application. Possible values are 'always', 'optional' -# (handbook USE flag) and 'never'. -# This variable must be set before inheriting any eclasses. Defaults to 'never'. -# It adds default handbook dirs for kde-base packages to KMEXTRA and in any case it -# ensures buildtime and runtime dependencies. -KDE_HANDBOOK="${KDE_HANDBOOK:-never}" - -# @ECLASS-VARIABLE: KDE_LINGUAS_LIVE_OVERRIDE -# @DESCRIPTION: -# Set this varible if you want your live package to manage its -# translations. (Mostly all kde ebuilds does not ship documentation -# and translations in live ebuilds) -if [[ ${KDE_BUILD_TYPE} == live && -z ${KDE_LINGUAS_LIVE_OVERRIDE} ]]; then - # Kdebase actually provides the handbooks even for live stuff - [[ ${KDEBASE} == kde-base ]] || KDE_HANDBOOK=never - KDE_LINGUAS="" -fi - -# Setup packages inheriting this eclass -case ${KDEBASE} in - kde-base) - HOMEPAGE="https://www.kde.org/" - LICENSE="GPL-2" - if [[ ${KDE_BUILD_TYPE} = live && -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then - # Disable tests for live ebuilds by default - RESTRICT+=" test" - fi - - # This code is to prevent portage from searching GENTOO_MIRRORS for - # packages that will never be mirrored. (As they only will ever be in - # the overlay). - case ${PV} in - *9999* | 4.?.[6-9]? | 4.??.[6-9]? | ??.?.[6-9]? | ??.??.[6-9]?) - RESTRICT+=" mirror" - ;; - esac - ;; - kdevelop) - HOMEPAGE="https://www.kdevelop.org/" - LICENSE="GPL-2" - ;; -esac - -# @ECLASS-VARIABLE: QT_MINIMAL -# @DESCRIPTION: -# Determine version of qt we enforce as minimal for the package. -QT_MINIMAL="${QT_MINIMAL:-4.8.5}" - -# Declarative dependencies -qtdeclarativedepend=" - >=dev-qt/qtdeclarative-${QT_MINIMAL}:4 -" -case ${DECLARATIVE_REQUIRED} in - always) - COMMONDEPEND+=" ${qtdeclarativedepend}" - ;; - optional) - IUSE+=" declarative" - COMMONDEPEND+=" declarative? ( ${qtdeclarativedepend} )" - ;; - *) ;; -esac -unset qtdeclarativedepend - -# Qt3Support dependencies -qt3supportdepend=" - >=dev-qt/qt3support-${QT_MINIMAL}:4[accessibility] -" -case ${QT3SUPPORT_REQUIRED} in - true) - COMMONDEPEND+=" ${qt3supportdepend}" - [[ -n ${qtcoreuse} ]] && qtcoreuse+=",qt3support" || qtcoreuse="qt3support" - [[ -n ${qtsqluse} ]] && qtsqluse+=",qt3support" || qtsqluse="qt3support" - [[ -n ${kdelibsuse} ]] && kdelibsuse+=",qt3support(+)" || kdelibsuse="qt3support(+)" - ;; - *) ;; -esac -unset qt3supportdepend - -# QtHelp dependencies -qthelpdepend=" - >=dev-qt/qthelp-${QT_MINIMAL}:4 -" -case ${QTHELP_REQUIRED} in - always) - COMMONDEPEND+=" ${qthelpdepend}" - ;; - optional) - IUSE+=" qthelp" - COMMONDEPEND+=" qthelp? ( ${qthelpdepend} )" - ;; -esac -unset qthelpdepend - -# OpenGL dependencies -qtopengldepend=" - >=dev-qt/qtopengl-${QT_MINIMAL}:4 -" -case ${OPENGL_REQUIRED} in - always) - COMMONDEPEND+=" ${qtopengldepend}" - ;; - optional) - IUSE+=" opengl" - COMMONDEPEND+=" opengl? ( ${qtopengldepend} )" - ;; - *) ;; -esac -unset qtopengldepend - -# MultiMedia dependencies -qtmultimediadepend=" - >=dev-qt/qtmultimedia-${QT_MINIMAL}:4 -" -case ${MULTIMEDIA_REQUIRED} in - always) - COMMONDEPEND+=" ${qtmultimediadepend}" - ;; - optional) - IUSE+=" multimedia" - COMMONDEPEND+=" multimedia? ( ${qtmultimediadepend} )" - ;; - *) ;; -esac -unset qtmultimediadepend - -# Sql dependencies -[[ -n ${qtsqluse} ]] && qtsqluse="[${qtsqluse}]" -qtsqldepend=" - >=dev-qt/qtsql-${QT_MINIMAL}:4${qtsqluse} -" -case ${SQL_REQUIRED} in - always) - COMMONDEPEND+=" ${qtsqldepend}" - ;; - optional) - IUSE+=" sql" - COMMONDEPEND+=" sql? ( ${qtsqldepend} )" - ;; - *) ;; -esac -unset qtsqluse -unset qtsqldepend - -# WebKit dependencies -qtwebkitdepend=" - >=dev-qt/qtwebkit-${QT_MINIMAL}:4 -" -case ${WEBKIT_REQUIRED} in - always) - COMMONDEPEND+=" ${qtwebkitdepend}" - [[ -n ${kdelibsuse} ]] && kdelibsuse+=",webkit(+)" || kdelibsuse="webkit(+)" - ;; - optional) - IUSE+=" +webkit" - COMMONDEPEND+=" webkit? ( ${qtwebkitdepend} )" - [[ -n ${kdelibsuse} ]] && kdelibsuse+=",webkit?" || kdelibsuse="webkit?" - ;; - *) ;; -esac -unset qtwebkitdepend - -# CppUnit dependencies -cppuintdepend=" - dev-util/cppunit -" -case ${CPPUNIT_REQUIRED} in - always) - DEPEND+=" ${cppuintdepend}" - ;; - optional) - IUSE+=" test" - DEPEND+=" test? ( ${cppuintdepend} )" - ;; - *) ;; -esac -unset cppuintdepend - -# KDE dependencies -# Qt accessibility classes are needed in various places, bug 325461 -[[ -n ${qtcoreuse} ]] && qtcoreuse+=",ssl" || qtcoreuse="ssl" -[[ -n ${qtcoreuse} ]] && qtcoreuse="[${qtcoreuse}]" -kdecommondepend=" - dev-lang/perl - >=dev-qt/designer-${QT_MINIMAL}:4 - >=dev-qt/qtcore-${QT_MINIMAL}:4${qtcoreuse} - >=dev-qt/qtdbus-${QT_MINIMAL}:4 - >=dev-qt/qtgui-${QT_MINIMAL}:4[accessibility,dbus(+)] - >=dev-qt/qtscript-${QT_MINIMAL}:4 - >=dev-qt/qtsvg-${QT_MINIMAL}:4 - >=dev-qt/qttest-${QT_MINIMAL}:4 -" -unset qtcoreuse - -if [[ ${PN} != kdelibs ]]; then - [[ -n ${kdelibsuse} ]] && kdelibsuse="[${kdelibsuse}]" - kdecommondepend+=" kde-frameworks/kdelibs:4${kdelibsuse}" - if [[ ${KDEBASE} = kdevelop ]]; then - if [[ ${PN} != kdevplatform ]]; then - # @ECLASS-VARIABLE: KDEVPLATFORM_REQUIRED - # @DESCRIPTION: - # Specifies whether kdevplatform is required. Possible values are 'always' (default) and 'never'. - # Applies to KDEBASE=kdevelop only. - KDEVPLATFORM_REQUIRED="${KDEVPLATFORM_REQUIRED:-always}" - case ${KDEVPLATFORM_REQUIRED} in - always) - kdecommondepend+=" - >=dev-util/kdevplatform-${KDEVPLATFORM_VERSION}:4 - " - ;; - *) ;; - esac - fi - fi -fi -unset kdelibsuse - -kdedepend=" - dev-util/automoc - virtual/pkgconfig - >=x11-libs/libXtst-1.1.0 - x11-base/xorg-proto -" - -kderdepend="" - -# all packages needs oxygen icons for basic iconset -if [[ ${PN} != oxygen-icons ]]; then - kderdepend+=" kde-frameworks/oxygen-icons" -fi - -# add a dependency over kde4-l10n -if [[ ${KDEBASE} != "kde-base" && -n ${KDE_LINGUAS} ]]; then - for _lingua in $(kde4_lingua_to_l10n ${KDE_LINGUAS}); do - # if our package has linguas, pull in kde4-l10n with selected lingua enabled, - # but only for selected ones. - # this can't be done on one line because if user doesn't use any localisation - # then he is probably not interested in kde4-l10n at all. - kderdepend+=" - l10n_${_lingua}? ( $(add_kdeapps_dep kde4-l10n "l10n_${_lingua}(+)") ) - " - done - unset _lingua -fi - -kdehandbookdepend=" - app-text/docbook-xml-dtd:4.2 - app-text/docbook-xsl-stylesheets -" -kdehandbookrdepend=" - kde-frameworks/kdelibs:4[handbook] -" -case ${KDE_HANDBOOK} in - always) - kdedepend+=" ${kdehandbookdepend}" - [[ ${PN} != kdelibs ]] && kderdepend+=" ${kdehandbookrdepend}" - ;; - optional) - IUSE+=" +handbook" - kdedepend+=" handbook? ( ${kdehandbookdepend} )" - [[ ${PN} != kdelibs ]] && kderdepend+=" handbook? ( ${kdehandbookrdepend} )" - ;; - *) ;; -esac -unset kdehandbookdepend kdehandbookrdepend - -case ${KDE_SELINUX_MODULE} in - none) ;; - *) - IUSE+=" selinux" - kderdepend+=" selinux? ( sec-policy/selinux-${KDE_SELINUX_MODULE} )" - ;; -esac - -case ${KDE_REQUIRED} in - always) - [[ -n ${kdecommondepend} ]] && COMMONDEPEND+=" ${kdecommondepend}" - [[ -n ${kdedepend} ]] && DEPEND+=" ${kdedepend}" - [[ -n ${kderdepend} ]] && RDEPEND+=" ${kderdepend}" - ;; - optional) - IUSE+=" kde" - [[ -n ${kdecommondepend} ]] && COMMONDEPEND+=" kde? ( ${kdecommondepend} )" - [[ -n ${kdedepend} ]] && DEPEND+=" kde? ( ${kdedepend} )" - [[ -n ${kderdepend} ]] && RDEPEND+=" kde? ( ${kderdepend} )" - ;; - *) ;; -esac - -unset kdecommondepend kdedepend kderdepend - -debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: COMMONDEPEND is ${COMMONDEPEND}" -debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: DEPEND (only) is ${DEPEND}" -debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: RDEPEND (only) is ${RDEPEND}" - -# Accumulate dependencies set by this eclass -DEPEND+=" ${COMMONDEPEND}" -RDEPEND+=" ${COMMONDEPEND}" -unset COMMONDEPEND - -# Fetch section - If the ebuild's category is not 'kde-base' and if it is not a -# kdevelop ebuild, the URI should be set in the ebuild itself -_calculate_src_uri() { - debug-print-function ${FUNCNAME} "$@" - - local _kmname _kmname_pv - - # we calculate URI only for known KDEBASE modules - [[ -n ${KDEBASE} ]] || return - - # calculate tarball module name - if [[ -n ${KMNAME} ]]; then - _kmname="${KMNAME}" - else - _kmname=${PN} - fi - _kmname_pv="${_kmname}-${PV}" - case ${KDEBASE} in - kde-base) - case ${PV} in - 4.4.20*) - # KDEPIM 4.4 no-akonadi branch, special case - # TODO: Remove this part when KDEPIM 4.4 gets out of the tree - SRC_URI="https://dev.gentoo.org/~dilfridge/distfiles/${_kmname_pv}.tar.xz" ;; - 4.?.[6-9]? | 4.??.[6-9]?) - # Unstable KDE SC releases - SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.xz" ;; - 4.11.22) - # Part of 15.08.0 actually, sigh. Not stable for next release! - SRC_URI="mirror://kde/Attic/applications/15.08.0/src/${_kmname_pv}.tar.xz" ;; - 4.14.3) - # Last SC release - SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.xz" ;; - 4.14.10) - # Part of 15.04.3 actually, sigh. Used by last version of KDE PIM 4. - SRC_URI="mirror://kde/Attic/applications/15.04.3/src/${_kmname_pv}.tar.xz" ;; - 4.14.11*) - # KDEPIM 4.14 snapshot with Gentoo patches - SRC_URI="https://dev.gentoo.org/~asturm/distfiles/${_kmname_pv}.tar.xz" ;; - 16.12.3) - SRC_URI="mirror://kde/Attic/applications/16.12.3/src/${_kmname_pv}.tar.xz" ;; - ??.?.[6-9]? | ??.??.[4-9]?) - # Unstable KDE Applications releases - SRC_URI="mirror://kde/unstable/applications/${PV}/src/${_kmname}-${PV}.tar.xz" ;; - *) - # Stable KDE Applications releases - SRC_URI="mirror://kde/stable/applications/${PV}/src/${_kmname}-${PV}.tar.xz" - ;; - esac - ;; - kdevelop|kdevelop-php*|kdevplatform) - case ${KDEVELOP_VERSION} in - 4.[123].[6-9]*) SRC_URI="mirror://kde/unstable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.xz" ;; - 4.7.3) SRC_URI="mirror://kde/stable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2" ;; - 4.7.4) SRC_URI="mirror://kde/stable/kdevelop/${KDEVELOP_VERSION}/${P}.tar.xz" ;; - *) SRC_URI="mirror://kde/stable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.xz" ;; - esac - ;; - esac -} - -_calculate_live_repo() { - debug-print-function ${FUNCNAME} "$@" - - SRC_URI="" - case ${KDE_SCM} in - svn) - # Determine branch URL based on live type - local branch_prefix - case ${PV} in - 9999*) - # trunk - branch_prefix="trunk/KDE" - ;; - *) - # branch - branch_prefix="branches/KDE/$(get_kde_version)" - - if [[ ${PV} == ??.??.49.9999 && ${CATEGORY} = kde-apps ]]; then - branch_prefix="branches/Applications/$(get_kde_version)" - fi - - # @ECLASS-VARIABLE: ESVN_PROJECT_SUFFIX - # @DESCRIPTION - # Suffix appended to ESVN_PROJECT depending on fetched branch. - # Defaults is empty (for -9999 = trunk), and "-${PV}" otherwise. - ESVN_PROJECT_SUFFIX="-${PV}" - ;; - esac - # @ECLASS-VARIABLE: ESVN_MIRROR - # @DESCRIPTION: - # This variable allows easy overriding of default kde mirror service - # (anonsvn) with anything else you might want to use. - ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde} - # Split ebuild, or extragear stuff - if [[ -n ${KMNAME} ]]; then - ESVN_PROJECT="${KMNAME}${ESVN_PROJECT_SUFFIX}" - if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then - KMMODULE="${PN}" - fi - # Split kde-base/ ebuilds: (they reside in trunk/KDE) - case ${KMNAME} in - kdebase-*) - ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdebase/${KMNAME#kdebase-}" - ;; - kdelibs-*) - ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdelibs/${KMNAME#kdelibs-}" - ;; - kdereview*) - ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}" - ;; - kdesupport) - ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}" - ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}" - ;; - kde*) - ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${KMNAME}" - ;; - extragear*|playground*) - # Unpack them in toplevel dir, so that they won't conflict with kde4-meta - # build packages from same svn location. - ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}" - ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}" - ;; - *) - ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}" - ;; - esac - else - # kdelibs, kdepimlibs - ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${PN}" - ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}" - fi - # @ECLASS-VARIABLE: ESVN_UP_FREQ - # @DESCRIPTION: - # This variable is used for specifying the timeout between svn synces - # for kde-base modules. Does not affect misc apps. - # Default value is 1 hour. - [[ ${KDEBASE} = kde-base ]] && ESVN_UP_FREQ=${ESVN_UP_FREQ:-1} - ;; - git) - local _kmname - # @ECLASS-VARIABLE: EGIT_MIRROR - # @DESCRIPTION: - # This variable allows easy overriding of default kde mirror service - # (anongit) with anything else you might want to use. - EGIT_MIRROR=${EGIT_MIRROR:=https://anongit.kde.org} - - # @ECLASS-VARIABLE: EGIT_REPONAME - # @DESCRIPTION: - # This variable allows overriding of default repository - # name. Specify only if this differ from PN and KMNAME. - if [[ -n ${EGIT_REPONAME} ]]; then - # the repository and kmname different - _kmname=${EGIT_REPONAME} - elif [[ -n ${KMNAME} ]]; then - _kmname=${KMNAME} - else - _kmname=${PN} - fi - - # default branching - [[ ${PV} != 4.9999* && ${PV} != 9999 && ${KDEBASE} == kde-base ]] && \ - EGIT_BRANCH="KDE/$(get_kde_version)" - - # Applications branching - [[ ${PV} == ??.??.49.9999 && ${KDEBASE} == kde-base ]] && \ - EGIT_BRANCH="Applications/$(get_kde_version)" - - # default repo uri - EGIT_REPO_URI+=( "${EGIT_MIRROR}/${_kmname}" ) - - debug-print "${FUNCNAME}: Repository: ${EGIT_REPO_URI}" - debug-print "${FUNCNAME}: Branch: ${EGIT_BRANCH}" - ;; - esac -} - -case ${KDE_BUILD_TYPE} in - live) _calculate_live_repo ;; - *) _calculate_src_uri ;; -esac - -debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SRC_URI is ${SRC_URI}" - -# @ECLASS-VARIABLE: PREFIX -# @DESCRIPTION: -# Set the installation PREFIX for non kde-base applications. It defaults to /usr. -# kde-base packages go into KDE4 installation directory (/usr). -# No matter the PREFIX, package will be built against KDE installed in /usr. - -# @FUNCTION: kde4-base_pkg_setup -# @DESCRIPTION: -# Do some basic settings -kde4-base_pkg_setup() { - debug-print-function ${FUNCNAME} "$@" - - if has handbook ${IUSE} || has "+handbook" ${IUSE} && [[ "${KDE_HANDBOOK}" != optional ]] ; then - eqawarn "Handbook support is enabled via KDE_HANDBOOK=optional in the ebuild." - eqawarn "Please do not just set IUSE=handbook, as this leads to dependency errors." - fi - - # Don't set KDEHOME during compilation, it will cause access violations - unset KDEHOME - - KDEDIR=/usr - : ${PREFIX:=/usr} - EKDEDIR=${EPREFIX}/usr - - # Point to correct QT plugins path - QT_PLUGIN_PATH="${EPREFIX}/usr/$(get_libdir)/kde4/plugins/" - - # Fix XDG collision with sandbox - export XDG_CONFIG_HOME="${T}" -} - -# @FUNCTION: kde4-base_src_unpack -# @DESCRIPTION: -# This function unpacks the source tarballs for KDE4 applications. -kde4-base_src_unpack() { - debug-print-function ${FUNCNAME} "$@" - - if [[ ${KDE_BUILD_TYPE} = live ]]; then - case ${KDE_SCM} in - svn) - subversion_src_unpack - ;; - git) - git-r3_src_unpack - ;; - esac - else - unpack ${A} - fi -} - -# @FUNCTION: kde4-base_src_prepare -# @DESCRIPTION: -# General pre-configure and pre-compile function for KDE4 applications. -# It also handles translations if KDE_LINGUAS is defined. See KDE_LINGUAS and -# enable_selected_linguas() and enable_selected_doc_linguas() -# in kde4-functions.eclass(5) for further details. -kde4-base_src_prepare() { - debug-print-function ${FUNCNAME} "$@" - - # enable handbook and linguas only when not using live ebuild - - # Only enable selected languages, used for KDE extragear apps. - if [[ -n ${KDE_LINGUAS} ]]; then - enable_selected_linguas - fi - - # Enable/disable handbooks for kde4-base packages - # kde4-l10n inherits kde4-base but is metapackage, so no check for doc - # kdelibs inherits kde4-base but handle installing the handbook itself - if ! has kde4-meta ${INHERITED} && in_iuse handbook; then - if [[ ${KDEBASE} == kde-base ]]; then - if [[ ${PN} != kde4-l10n && ${PN} != kdepim-l10n && ${PN} != kdelibs ]] && use !handbook; then - # documentation in kde4-functions - : ${KDE_DOC_DIRS:=doc} - local dir - for dir in ${KDE_DOC_DIRS}; do - sed -e "\!^[[:space:]]*add_subdirectory[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \ - -e "\!^[[:space:]]*ADD_SUBDIRECTORY[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \ - -e "\!^[[:space:]]*macro_optional_add_subdirectory[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \ - -e "\!^[[:space:]]*MACRO_OPTIONAL_ADD_SUBDIRECTORY[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \ - -i CMakeLists.txt || die "failed to comment out handbook" - done - fi - else - enable_selected_doc_linguas - fi - fi - - # SCM bootstrap - if [[ ${KDE_BUILD_TYPE} = live ]]; then - case ${KDE_SCM} in - svn) subversion_src_prepare ;; - esac - fi - - # Apply patches, cmake-utils does the job already - cmake-utils_src_prepare - - # Save library dependencies - if [[ -n ${KMSAVELIBS} ]] ; then - save_library_dependencies - fi - - # Inject library dependencies - if [[ -n ${KMLOADLIBS} ]] ; then - load_library_dependencies - fi - - # Hack for manuals relying on outdated DTD, only outside kde-base/... - if [[ -z ${KDEBASE} ]]; then - find "${S}" -name "*.docbook" \ - -exec sed -i -r \ - -e 's:-//KDE//DTD DocBook XML V4\.1(\..)?-Based Variant V1\.[01]//EN:-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN:g' {} + \ - || die 'failed to fix DocBook variant version' - fi -} - -# @FUNCTION: kde4-base_src_configure -# @DESCRIPTION: -# Function for configuring the build of KDE4 applications. -kde4-base_src_configure() { - debug-print-function ${FUNCNAME} "$@" - - # Build tests in src_test only, where we override this value - local cmakeargs=(-DKDE4_BUILD_TESTS=OFF) - - if use_if_iuse debug; then - # Set "real" debug mode - CMAKE_KDE_BUILD_TYPE="Debugfull" - else - # Handle common release builds - append-cppflags -DQT_NO_DEBUG - fi - - # Set distribution name - [[ ${PN} = kdelibs ]] && cmakeargs+=(-DKDE_DISTRIBUTION_TEXT=Gentoo) - - # Here we set the install prefix - tc-is-cross-compiler || cmakeargs+=(-DCMAKE_INSTALL_PREFIX="${EPREFIX}${PREFIX}") - - # Use colors - QTEST_COLORED=1 - - # Shadow existing installations - unset KDEDIRS - - #qmake -query QT_INSTALL_LIBS unavailable when cross-compiling - tc-is-cross-compiler && cmakeargs+=(-DQT_LIBRARY_DIR=${ROOT}/usr/$(get_libdir)/qt4) - #kde-config -path data unavailable when cross-compiling - tc-is-cross-compiler && cmakeargs+=(-DKDE4_DATA_DIR=${ROOT}/usr/share/apps/) - - # sysconf needs to be /etc, not /usr/etc - cmakeargs+=(-DSYSCONF_INSTALL_DIR="${EPREFIX}"/etc) - - if [[ $(declare -p mycmakeargs 2>&-) != "declare -a mycmakeargs="* ]]; then - if [[ ${mycmakeargs} ]]; then - eqawarn "mycmakeargs should always be declared as an array, not a string" - fi - mycmakeargs=(${mycmakeargs}) - fi - - mycmakeargs=("${cmakeargs[@]}" "${mycmakeargs[@]}") - - cmake-utils_src_configure -} - -# @FUNCTION: kde4-base_src_compile -# @DESCRIPTION: -# General function for compiling KDE4 applications. -kde4-base_src_compile() { - debug-print-function ${FUNCNAME} "$@" - - cmake-utils_src_compile "$@" -} - -# @FUNCTION: kde4-base_src_test -# @DESCRIPTION: -# Function for testing KDE4 applications. -kde4-base_src_test() { - debug-print-function ${FUNCNAME} "$@" - - local kded4_pid - - _test_runner() { - if [[ -n "${VIRTUALDBUS_TEST}" ]]; then - export $(dbus-launch) - kded4 2>&1 > /dev/null & - kded4_pid=$! - fi - - cmake-utils_src_test - } - - # When run as normal user during ebuild development with the ebuild command, the - # kde tests tend to access the session DBUS. This however is not possible in a real - # emerge or on the tinderbox. - # > make sure it does not happen, so bad tests can be recognized and disabled - unset DBUS_SESSION_BUS_ADDRESS DBUS_SESSION_BUS_PID - - # Override this value, set in kde4-base_src_configure() - mycmakeargs+=(-DKDE4_BUILD_TESTS=ON) - cmake-utils_src_configure - kde4-base_src_compile - - if [[ ${VIRTUALX_REQUIRED} == always || ${VIRTUALX_REQUIRED} == test ]]; then - # check for sanity if anyone already redefined VIRTUALX_COMMAND from the default - if [[ ${VIRTUALX_COMMAND} != emake ]]; then - # surprise- we are already INSIDE virtualmake!!! - debug-print "QA Notice: This version of kde4-base.eclass includes the virtualx functionality." - debug-print " You may NOT set VIRTUALX_COMMAND or call virtualmake from the ebuild." - debug-print " Setting VIRTUALX_REQUIRED is completely sufficient. See the" - debug-print " kde4-base.eclass docs for details... Applying workaround." - _test_runner - else - virtx _test_runner - fi - else - _test_runner - fi - - if [ -n "${kded4_pid}" ] ; then - kill ${kded4_pid} - fi - - if [ -n "${DBUS_SESSION_BUS_PID}" ] ; then - kill ${DBUS_SESSION_BUS_PID} - fi -} - -# @FUNCTION: kde4-base_src_install -# @DESCRIPTION: -# Function for installing KDE4 applications. -kde4-base_src_install() { - debug-print-function ${FUNCNAME} "$@" - - if [[ -n ${KMSAVELIBS} ]] ; then - install_library_dependencies - fi - - # Install common documentation of KDE4 applications - local doc - if ! has kde4-meta ${INHERITED}; then - for doc in "${S}"/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; do - [[ -f ${doc} && -s ${doc} ]] && dodoc "${doc}" - done - for doc in "${S}"/*/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; do - [[ -f ${doc} && -s ${doc} ]] && newdoc "${doc}" "$(basename $(dirname ${doc})).$(basename ${doc})" - done - fi - - cmake-utils_src_install - - # We don't want ${PREFIX}/share/doc/HTML to be compressed, - # because then khelpcenter can't find the docs - [[ -d ${ED}/${PREFIX}/share/doc/HTML ]] && - docompress -x ${PREFIX}/share/doc/HTML -} - -# @FUNCTION: kde4-base_pkg_preinst -# @DESCRIPTION: -# Function storing icon caches -kde4-base_pkg_preinst() { - debug-print-function ${FUNCNAME} "$@" - - gnome2_icon_savelist - if [[ ${KDE_BUILD_TYPE} == live && ${KDE_SCM} == svn ]]; then - subversion_pkg_preinst - fi -} - -# @FUNCTION: kde4-base_pkg_postinst -# @DESCRIPTION: -# Function to rebuild the KDE System Configuration Cache after an application has been installed. -kde4-base_pkg_postinst() { - debug-print-function ${FUNCNAME} "$@" - - if [[ -n ${GNOME2_ECLASS_ICONS} ]]; then - gnome2_icon_cache_update - fi - xdg_desktop_database_update - xdg_mimeinfo_database_update - buildsycoca - - if [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then - if [[ ${KDE_BUILD_TYPE} = live ]]; then - echo - einfo "WARNING! This is an experimental live ebuild of ${CATEGORY}/${PN}" - einfo "Use it at your own risk." - einfo "Do _NOT_ file bugs at bugs.gentoo.org because of this ebuild!" - echo - fi - fi -} - -# @FUNCTION: kde4-base_pkg_postrm -# @DESCRIPTION: -# Function to rebuild the KDE System Configuration Cache after an application has been removed. -kde4-base_pkg_postrm() { - debug-print-function ${FUNCNAME} "$@" - - if [[ -n ${GNOME2_ECLASS_ICONS} ]]; then - gnome2_icon_cache_update - fi - xdg_desktop_database_update - xdg_mimeinfo_database_update - buildsycoca -} - -fi |