commit:     65409addcae2f031c676b89cfca712553762b1be
Author:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
AuthorDate: Mon Nov 24 11:11:11 2014 +0000
Commit:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
CommitDate: Mon Nov 24 11:19:58 2014 +0000
URL:        http://sources.gentoo.org/gitweb/?p=proj/kde.git;a=commit;h=65409add

[eclass] Add KDE Applications support.

For all applications:

- Add SRC_URI support
- Add mirror restriction for prereleases

For KDE 4 based applications:

- Support kde-apps/oxygen-icons
- Automatically block kde-base/${PN}
- Modify add_kdebase_dep to use kde-apps, with a blacklist for packages with no
  applications release

For KDE 5 based applications:

- Introduce add_kdeapps_dep in a similar vein to the other add_kde*_dep 
functions

---
 eclass/kde4-base.eclass      | 21 +++++++++++++++++----
 eclass/kde4-functions.eclass | 17 +++++++++++++----
 eclass/kde5-functions.eclass | 24 ++++++++++++++++++++++++
 eclass/kde5.eclass           | 10 ++++++++++
 4 files changed, 64 insertions(+), 8 deletions(-)

diff --git a/eclass/kde4-base.eclass b/eclass/kde4-base.eclass
index a75f995..96f356f 100644
--- a/eclass/kde4-base.eclass
+++ b/eclass/kde4-base.eclass
@@ -186,7 +186,7 @@ case ${KDEBASE} in
                # 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]?)
+                       *9999* | 4.?.[6-9]? | 4.??.[6-9]? | ??.?.[6-9]? | 
??.??.[6-9]?)
                                RESTRICT+=" mirror"
                                ;;
                esac
@@ -329,9 +329,13 @@ kdedepend="
 
 kderdepend=""
 
+if [[ ${CATEGORY} == kde-apps ]]; then
+       kderdepend+=" !kde-base/${PN}"
+fi
+
 # all packages needs oxygen icons for basic iconset
 if [[ ${PN} != oxygen-icons ]]; then
-       kderdepend+=" $(add_kdebase_dep oxygen-icons)"
+       kderdepend+=" || ( kde-apps/oxygen-icons $(add_kdebase_dep 
oxygen-icons) )"
 fi
 
 # add a dependency over kde-l10n
@@ -454,9 +458,18 @@ _calculate_src_uri() {
                                4.11.14)
                                        # Part of 4.14 actually, sigh. Not 
stable for next release!
                                        
SRC_URI="mirror://kde/stable/4.14.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 SC releases
-                                       
SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.xz" ;;
+                                       if [[ ${CATEGORY} == kde-apps ]]; then
+                                               # Stable KDE Applications 
releases
+                                               
SRC_URI="mirror://kde/stable/applications/${PV}/src/${_kmname}-${PV}.tar.xz"
+                                       else
+                                               # Stable KDE SC releases
+                                               
SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.xz"
+                                       fi
+                               ;;
                        esac
                        ;;
                kdevelop|kdevelop-php*|kdevplatform)

diff --git a/eclass/kde4-functions.eclass b/eclass/kde4-functions.eclass
index a5af8bd..69660ea 100644
--- a/eclass/kde4-functions.eclass
+++ b/eclass/kde4-functions.eclass
@@ -36,7 +36,7 @@ esac
 # @DESCRIPTION:
 # This gets set to a non-zero value when a package is considered a kde or
 # kdevelop ebuild.
-if [[ ${CATEGORY} = kde-base ]]; then
+if [[ ${CATEGORY} = kde-base || ${CATEGORY} = kde-apps ]]; then
        debug-print "${ECLASS}: KDEBASE ebuild recognized"
        KDEBASE=kde-base
 elif [[ ${KMNAME-${PN}} = kdevelop ]]; then
@@ -298,7 +298,12 @@ load_library_dependencies() {
 add_kdebase_dep() {
        debug-print-function ${FUNCNAME} "$@"
 
-       local ver
+       local ver category=kde-base
+
+       if [[ ${CATEGORY} == kde-apps && ${1} != kdelibs && ${1} != kdepimlibs 
&& ${1} != baloo-widgets &&
+               ${1} != kactivities && ${1} != baloo && ${1} != kfilemetadata 
]] ; then
+               category=kde-apps
+       fi
 
        if [[ -n ${3} ]]; then
                ver=${3}
@@ -311,12 +316,16 @@ add_kdebase_dep() {
        elif [[ ${PV} == *.9999 ]]; then
                ver=$(get_kde_version)
        else
-               ver=${PV}
+               if [[ ${CATEGORY} == kde-apps && ${category} == kde-base ]]; 
then
+                       ver=4.14.3
+               else
+                       ver=${PV}
+               fi
        fi
 
        [[ -z ${1} ]] && die "Missing parameter"
 
-       echo " >=kde-base/${1}-${ver}:4[aqua=${2:+,${2}}]"
+       echo " >=${category}/${1}-${ver}:4[aqua=${2:+,${2}}]"
 }
 
 # local function to enable specified translations for specified directory

diff --git a/eclass/kde5-functions.eclass b/eclass/kde5-functions.eclass
index 4466276..830cacc 100644
--- a/eclass/kde5-functions.eclass
+++ b/eclass/kde5-functions.eclass
@@ -131,6 +131,30 @@ add_frameworks_dep() {
        _add_kdecategory_dep kde-frameworks "${1}" "${2}" "${version}"
 }
 
+# @FUNCTION: add_kdeapps_dep
+# @USAGE: <package> [USE flags] [minimum version]
+# @DESCRIPTION:
+# Create proper dependency for kde-apps/ dependencies.
+# This takes 1 to 3 arguments. The first being the package name, the optional
+# second is additional USE flags to append, and the optional third is the
+# version to use instead of the automatic version (use sparingly).
+# The output of this should be added directly to DEPEND/RDEPEND, and may be
+# wrapped in a USE conditional (but not an || conditional without an extra set
+# of parentheses).
+add_kdeapps_dep() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       local version
+
+       if [[ -n ${3} ]]; then
+               version=${3}
+       elif [[ ${CATEGORY} = kde-apps ]]; then
+               version=${PV}
+       fi
+
+       _add_kdecategory_dep kde-apps "${1}" "${2}" "${version}"
+}
+
 # @FUNCTION: add_kdebase_dep
 # @USAGE: <package> [USE flags] [minimum version]
 # @DESCRIPTION:

diff --git a/eclass/kde5.eclass b/eclass/kde5.eclass
index 0f30156..37f98dc 100644
--- a/eclass/kde5.eclass
+++ b/eclass/kde5.eclass
@@ -200,6 +200,16 @@ _calculate_src_uri() {
        DEPEND+=" app-arch/xz-utils"
 
        case ${CATEGORY} in
+               kde-apps)
+                       case ${PV} in
+                               ??.?.[6-9]? | ??.??.[6-9]? )
+                                       
SRC_URI="mirror://kde/unstable/applications/${PV}/src/${_kmname}-${PV}.tar.xz"
+                                       RESTRICT+=" mirror"
+                                       ;;
+                               *)
+                                       
SRC_URI="mirror://kde/stable/applications/${PV}/src/${_kmname}-${PV}.tar.xz" ;;
+                       esac
+                       ;;
                kde-frameworks)
                        case ${PV} in 
                                5.0.0|5.1.0|5.2.0|5.3.0)

Reply via email to