/[gentoo-x86]/eclass/kde4-base.eclass
Gentoo

Diff of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.130 Revision 1.152
1# Copyright 1999-2013 Gentoo Foundation 1# Copyright 1999-2015 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/kde4-base.eclass,v 1.130 2013/08/15 15:29:58 kensington Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/kde4-base.eclass,v 1.152 2015/05/15 16:13:42 kensington Exp $
4 4
5# @ECLASS: kde4-base.eclass 5# @ECLASS: kde4-base.eclass
6# @MAINTAINER: 6# @MAINTAINER:
7# kde@gentoo.org 7# kde@gentoo.org
8# @BLURB: This eclass provides functions for kde 4.X ebuilds 8# @BLURB: This eclass provides functions for kde 4.X ebuilds
9# @DESCRIPTION: 9# @DESCRIPTION:
10# The kde4-base.eclass provides support for building KDE4 based ebuilds 10# The kde4-base.eclass provides support for building KDE4 based ebuilds
11# and KDE4 applications. 11# and KDE4 applications.
12# 12#
13# NOTE: KDE 4 ebuilds currently support EAPIs 4 and 5. This will be 13# NOTE: KDE 4 ebuilds currently support EAPI 5. This will be
14# reviewed over time as new EAPI versions are approved. 14# reviewed over time as new EAPI versions are approved.
15 15
16if [[ ${___ECLASS_ONCE_KDE4_BASE} != "recur -_+^+_- spank" ]] ; then 16if [[ -z ${_KDE4_BASE_ECLASS} ]]; then
17___ECLASS_ONCE_KDE4_BASE="recur -_+^+_- spank" 17_KDE4_BASE_ECLASS=1
18 18
19# @ECLASS-VARIABLE: KDE_SELINUX_MODULE 19# @ECLASS-VARIABLE: KDE_SELINUX_MODULE
20# @DESCRIPTION: 20# @DESCRIPTION:
21# If set to "none", do nothing. 21# If set to "none", do nothing.
22# For any other value, add selinux to IUSE, and depending on that useflag 22# For any other value, add selinux to IUSE, and depending on that useflag
32# For proper description see virtualx.eclass manpage. 32# For proper description see virtualx.eclass manpage.
33# Here we redefine default value to be manual, if your package needs virtualx 33# Here we redefine default value to be manual, if your package needs virtualx
34# for tests you should proceed with setting VIRTUALX_REQUIRED=test. 34# for tests you should proceed with setting VIRTUALX_REQUIRED=test.
35: ${VIRTUALX_REQUIRED:=manual} 35: ${VIRTUALX_REQUIRED:=manual}
36 36
37inherit kde4-functions toolchain-funcs fdo-mime flag-o-matic gnome2-utils base virtualx versionator eutils multilib 37inherit kde4-functions toolchain-funcs fdo-mime flag-o-matic gnome2-utils virtualx versionator eutils multilib
38 38
39if [[ ${KDE_BUILD_TYPE} = live ]]; then 39if [[ ${KDE_BUILD_TYPE} = live ]]; then
40 case ${KDE_SCM} in 40 case ${KDE_SCM} in
41 svn) inherit subversion ;; 41 svn) inherit subversion ;;
42 git) inherit git-2 ;; 42 git) inherit git-r3 ;;
43 esac 43 esac
44fi 44fi
45 45
46# @ECLASS-VARIABLE: CMAKE_REQUIRED 46# @ECLASS-VARIABLE: CMAKE_REQUIRED
47# @DESCRIPTION: 47# @DESCRIPTION:
64KDE_MINIMAL="${KDE_MINIMAL:-4.4}" 64KDE_MINIMAL="${KDE_MINIMAL:-4.4}"
65 65
66# Set slot for KDEBASE known packages 66# Set slot for KDEBASE known packages
67case ${KDEBASE} in 67case ${KDEBASE} in
68 kde-base) 68 kde-base)
69 SLOT=4 69 SLOT=4/$(get_version_component_range 1-2)
70 KDE_MINIMAL="${PV}" 70 KDE_MINIMAL="${PV}"
71 ;; 71 ;;
72 kdevelop) 72 kdevelop)
73 if [[ ${KDE_BUILD_TYPE} = live ]]; then 73 if [[ ${KDE_BUILD_TYPE} = live ]]; then
74 # @ECLASS-VARIABLE: KDEVELOP_VERSION 74 # @ECLASS-VARIABLE: KDEVELOP_VERSION
75 # @DESCRIPTION: 75 # @DESCRIPTION:
76 # Specifies KDevelop version. Default is 4.0.0 for tagged packages and 9999 for live packages. 76 # Specifies KDevelop version. Default is 4.0.0 for tagged packages and 9999 for live packages.
77 # Applies to KDEBASE=kdevelop only. 77 # Applies to KDEBASE=kdevelop only.
78 KDEVELOP_VERSION="${KDEVELOP_VERSION:-9999}" 78 KDEVELOP_VERSION="${KDEVELOP_VERSION:-4.9999}"
79 # @ECLASS-VARIABLE: KDEVPLATFORM_VERSION 79 # @ECLASS-VARIABLE: KDEVPLATFORM_VERSION
80 # @DESCRIPTION: 80 # @DESCRIPTION:
81 # Specifies KDevplatform version. Default is 1.0.0 for tagged packages and 9999 for live packages. 81 # Specifies KDevplatform version. Default is 1.0.0 for tagged packages and 9999 for live packages.
82 # Applies to KDEBASE=kdevelop only. 82 # Applies to KDEBASE=kdevelop only.
83 KDEVPLATFORM_VERSION="${KDEVPLATFORM_VERSION:-9999}" 83 KDEVPLATFORM_VERSION="${KDEVPLATFORM_VERSION:-4.9999}"
84 else 84 else
85 case ${PN} in 85 case ${PN} in
86 kdevelop|quanta) 86 kdevelop)
87 KDEVELOP_VERSION=${PV} 87 KDEVELOP_VERSION=${PV}
88 KDEVPLATFORM_VERSION="$(($(get_major_version)-3)).$(get_after_major_version)" 88 KDEVPLATFORM_VERSION="$(($(get_major_version)-3)).$(get_after_major_version)"
89 ;; 89 ;;
90 kdevplatform|kdevelop-php*) 90 kdevplatform|kdevelop-php*|kdevelop-python)
91 KDEVELOP_VERSION="$(($(get_major_version)+3)).$(get_after_major_version)" 91 KDEVELOP_VERSION="$(($(get_major_version)+3)).$(get_after_major_version)"
92 KDEVPLATFORM_VERSION=${PV} 92 KDEVPLATFORM_VERSION=${PV}
93 ;; 93 ;;
94 *) 94 *)
95 KDEVELOP_VERSION="${KDEVELOP_VERSION:-4.0.0}" 95 KDEVELOP_VERSION="${KDEVELOP_VERSION:-4.0.0}"
177 177
178 # This code is to prevent portage from searching GENTOO_MIRRORS for 178 # This code is to prevent portage from searching GENTOO_MIRRORS for
179 # packages that will never be mirrored. (As they only will ever be in 179 # packages that will never be mirrored. (As they only will ever be in
180 # the overlay). 180 # the overlay).
181 case ${PV} in 181 case ${PV} in
182 *9999* | 4.?.[6-9]? | 4.??.[6-9]?) 182 *9999* | 4.?.[6-9]? | 4.??.[6-9]? | ??.?.[6-9]? | ??.??.[6-9]?)
183 RESTRICT+=" mirror" 183 RESTRICT+=" mirror"
184 ;; 184 ;;
185 esac 185 esac
186 ;; 186 ;;
187 kdevelop) 187 kdevelop)
191esac 191esac
192 192
193# @ECLASS-VARIABLE: QT_MINIMAL 193# @ECLASS-VARIABLE: QT_MINIMAL
194# @DESCRIPTION: 194# @DESCRIPTION:
195# Determine version of qt we enforce as minimal for the package. 195# Determine version of qt we enforce as minimal for the package.
196QT_MINIMAL="${QT_MINIMAL:-4.8.0}" 196QT_MINIMAL="${QT_MINIMAL:-4.8.5}"
197 197
198# Declarative dependencies 198# Declarative dependencies
199qtdeclarativedepend=" 199qtdeclarativedepend="
200 >=dev-qt/qtdeclarative-${QT_MINIMAL}:4 200 >=dev-qt/qtdeclarative-${QT_MINIMAL}:4
201" 201"
279kdecommondepend=" 279kdecommondepend="
280 dev-lang/perl 280 dev-lang/perl
281 >=dev-qt/qt3support-${QT_MINIMAL}:4[accessibility] 281 >=dev-qt/qt3support-${QT_MINIMAL}:4[accessibility]
282 >=dev-qt/qtcore-${QT_MINIMAL}:4[qt3support,ssl] 282 >=dev-qt/qtcore-${QT_MINIMAL}:4[qt3support,ssl]
283 >=dev-qt/qtdbus-${QT_MINIMAL}:4 283 >=dev-qt/qtdbus-${QT_MINIMAL}:4
284 || ( 284 >=dev-qt/designer-${QT_MINIMAL}:4
285 ( >=dev-qt/qtgui-4.8.5:4[accessibility,dbus(+)] dev-qt/designer:4[-phonon] )
286 <dev-qt/qtgui-4.8.5:4[accessibility,dbus(+)] 285 >=dev-qt/qtgui-${QT_MINIMAL}:4[accessibility,dbus(+)]
287 )
288 >=dev-qt/qtscript-${QT_MINIMAL}:4 286 >=dev-qt/qtscript-${QT_MINIMAL}:4
289 >=dev-qt/qtsql-${QT_MINIMAL}:4[qt3support] 287 >=dev-qt/qtsql-${QT_MINIMAL}:4[qt3support]
290 >=dev-qt/qtsvg-${QT_MINIMAL}:4 288 >=dev-qt/qtsvg-${QT_MINIMAL}:4
291 >=dev-qt/qttest-${QT_MINIMAL}:4 289 >=dev-qt/qttest-${QT_MINIMAL}:4
292 >=dev-qt/qtwebkit-${QT_MINIMAL}:4 290 >=dev-qt/qtwebkit-${QT_MINIMAL}:4
293 !aqua? (
294 x11-libs/libXext
295 x11-libs/libXt
296 x11-libs/libXxf86vm
297 x11-libs/libXcomposite
298 x11-libs/libxkbfile
299 )
300" 291"
301 292
302if [[ ${PN} != kdelibs ]]; then 293if [[ ${PN} != kdelibs ]]; then
303 kdecommondepend+=" $(add_kdebase_dep kdelibs)" 294 kdecommondepend+=" $(add_kdebase_dep kdelibs)"
304 if [[ ${KDEBASE} = kdevelop ]]; then 295 if [[ ${KDEBASE} = kdevelop ]]; then
309 # Applies to KDEBASE=kdevelop only. 300 # Applies to KDEBASE=kdevelop only.
310 KDEVPLATFORM_REQUIRED="${KDEVPLATFORM_REQUIRED:-always}" 301 KDEVPLATFORM_REQUIRED="${KDEVPLATFORM_REQUIRED:-always}"
311 case ${KDEVPLATFORM_REQUIRED} in 302 case ${KDEVPLATFORM_REQUIRED} in
312 always) 303 always)
313 kdecommondepend+=" 304 kdecommondepend+="
314 >=dev-util/kdevplatform-${KDEVPLATFORM_VERSION} 305 >=dev-util/kdevplatform-${KDEVPLATFORM_VERSION}:4
315 " 306 "
316 ;; 307 ;;
317 *) ;; 308 *) ;;
318 esac 309 esac
319 fi 310 fi
329 ) 320 )
330" 321"
331 322
332kderdepend="" 323kderdepend=""
333 324
325if [[ ${CATEGORY} == kde-apps ]]; then
326 kderdepend+=" !kde-base/${PN}"
327fi
328
334# all packages needs oxygen icons for basic iconset 329# all packages needs oxygen icons for basic iconset
335if [[ ${PN} != oxygen-icons ]]; then 330if [[ ${PN} != oxygen-icons ]]; then
336 kderdepend+=" $(add_kdebase_dep oxygen-icons)" 331 kderdepend+=" || ( kde-apps/oxygen-icons $(add_kdebase_dep oxygen-icons '' 4.14.3) )"
337fi 332fi
338 333
334# add a dependency over kde-l10n
339if [[ ${KDEBASE} != "kde-base" && -n ${KDE_LINGUAS} ]]; then 335if [[ ${KDEBASE} != "kde-base" && -n ${KDE_LINGUAS} ]]; then
340 for _lingua in ${KDE_LINGUAS}; do 336 for _lingua in ${KDE_LINGUAS}; do
341 # if our package has lignuas, pull in kde-l10n with selected lingua enabled, 337 # if our package has linguas, pull in kde-l10n with selected lingua enabled,
342 # but only for selected ones. 338 # but only for selected ones.
343 # this can't be done on one line because if user doesn't use any localisation 339 # this can't be done on one line because if user doesn't use any localisation
344 # then he is probably not interested in kde-l10n at all. 340 # then he is probably not interested in kde-l10n at all.
345 kderdepend+=" 341 kderdepend+="
346 linguas_${_lingua}? ( $(add_kdebase_dep kde-l10n "linguas_${_lingua}(+)") ) 342 linguas_${_lingua}? ( || ( kde-apps/kde-l10n[linguas_${_lingua}(+)] $(add_kdebase_dep kde-l10n "linguas_${_lingua}(+)") ) )
347 " 343 "
348 done 344 done
349 unset _lingua 345 unset _lingua
350fi 346fi
351 347
435 # TODO: Remove this part when KDEPIM 4.4 gets out of the tree 431 # TODO: Remove this part when KDEPIM 4.4 gets out of the tree
436 SRC_URI="mirror://kde/stable/kdepim-${PV}/src/${_kmname_pv}.tar.bz2" ;; 432 SRC_URI="mirror://kde/stable/kdepim-${PV}/src/${_kmname_pv}.tar.bz2" ;;
437 4.?.[6-9]? | 4.??.[6-9]?) 433 4.?.[6-9]? | 4.??.[6-9]?)
438 # Unstable KDE SC releases 434 # Unstable KDE SC releases
439 SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.xz" ;; 435 SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.xz" ;;
440 4.[1-7].[12345]) 436 4.11.14)
441 # Stable KDE SC with old .bz2 support 437 # Part of 4.14 actually, sigh. Not stable for next release!
442 SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2" ;; 438 SRC_URI="mirror://kde/stable/4.14.3/src/${_kmname_pv}.tar.xz" ;;
439 4.11.17)
440 # Part of 14.12.3 actually, sigh. Not stable for next release!
441 SRC_URI="mirror://kde/stable/applications/14.12.3/src/${_kmname_pv}.tar.xz" ;;
442 4.11.18)
443 # Part of 15.04.1 actually, sigh. Not stable for next release!
444 SRC_URI="mirror://kde/stable/applications/15.04.0/src/${_kmname_pv}.tar.xz" ;;
445 4.11.19)
446 # Part of 15.04.0 actually, sigh. Not stable for next release!
447 SRC_URI="mirror://kde/stable/applications/15.04.1/src/${_kmname_pv}.tar.xz" ;;
448 4.14.6)
449 # Part of 14.12.3 actually, sigh. Not stable for next release!
450 SRC_URI="mirror://kde/stable/applications/14.12.3/src/${_kmname_pv}.tar.xz" ;;
451 4.14.7)
452 # Part of 15.04.0 actually, sigh. Not stable for next release!
453 SRC_URI="mirror://kde/stable/applications/15.04.0/src/${_kmname_pv}.tar.xz" ;;
454 4.14.8)
455 # Part of 15.04.1 actually, sigh. Not stable for next release!
456 SRC_URI="mirror://kde/stable/applications/15.04.1/src/${_kmname_pv}.tar.xz" ;;
457 ??.?.[6-9]? | ??.??.[4-9]?)
458 # Unstable KDE Applications releases
459 SRC_URI="mirror://kde/unstable/applications/${PV}/src/${_kmname}-${PV}.tar.xz" ;;
443 *) 460 *)
461 if [[ ${CATEGORY} == kde-apps ]]; then
462 # Stable KDE Applications releases
463 SRC_URI="mirror://kde/stable/applications/${PV}/src/${_kmname}-${PV}.tar.xz"
464 else
444 # Stable KDE SC releases 465 # Stable KDE SC releases
445 SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.xz" ;; 466 SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.xz"
467 fi
468 ;;
446 esac 469 esac
447 ;; 470 ;;
448 kdevelop|kdevelop-php*|kdevplatform) 471 kdevelop|kdevelop-php*|kdevplatform)
449 case ${KDEVELOP_VERSION} in 472 case ${KDEVELOP_VERSION} in
450 4.[123].[6-9]*) SRC_URI="mirror://kde/unstable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2" ;; 473 4.[123].[6-9]*) SRC_URI="mirror://kde/unstable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.xz" ;;
451 *) SRC_URI="mirror://kde/stable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2" ;; 474 *) SRC_URI="mirror://kde/stable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.xz" ;;
452 esac 475 esac
453 ;; 476 ;;
454 esac 477 esac
455} 478}
456 479
548 else 571 else
549 _kmname=${PN} 572 _kmname=${PN}
550 fi 573 fi
551 574
552 # default branching 575 # default branching
553 [[ ${PV} != 9999* && ${KDEBASE} == kde-base ]] && \ 576 [[ ${PV} != 4.9999* && ${PV} != 9999 && ${KDEBASE} == kde-base ]] && \
554 EGIT_BRANCH="KDE/$(get_kde_version)" 577 EGIT_BRANCH="KDE/$(get_kde_version)"
555 578
556 # default repo uri 579 # default repo uri
557 EGIT_REPO_URI="${EGIT_MIRROR}/${_kmname}" 580 EGIT_REPO_URI+=( "${EGIT_MIRROR}/${_kmname}" )
558 581
559 debug-print "${FUNCNAME}: Repository: ${EGIT_REPO_URI}" 582 debug-print "${FUNCNAME}: Repository: ${EGIT_REPO_URI}"
560 debug-print "${FUNCNAME}: Branch: ${EGIT_BRANCH}" 583 debug-print "${FUNCNAME}: Branch: ${EGIT_BRANCH}"
561 ;; 584 ;;
562 esac 585 esac
590 unset KDEHOME 613 unset KDEHOME
591 614
592 # Check if gcc compiler is fresh enough. 615 # Check if gcc compiler is fresh enough.
593 # In theory should be in pkg_pretend but we check it only for kdelibs there 616 # In theory should be in pkg_pretend but we check it only for kdelibs there
594 # and for others we do just quick scan in pkg_setup because pkg_pretend 617 # and for others we do just quick scan in pkg_setup because pkg_pretend
595 # executions consume quite some time. 618 # executions consume quite some time (ie. when merging 300 packages at once will cause 300 checks)
596 if [[ ${MERGE_TYPE} != binary ]]; then 619 if [[ ${MERGE_TYPE} != binary ]]; then
597 [[ $(gcc-major-version) -lt 4 ]] || \ 620 [[ $(gcc-major-version) -lt 4 ]] || \
598 ( [[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -le 3 ]] ) \ 621 ( [[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -le 6 ]] ) \
599 && die "Sorry, but gcc-4.3 and earlier wont work for KDE (see bug 354837)." 622 && die "Sorry, but gcc-4.6 and earlier wont work for some KDE packages."
600 fi 623 fi
601 624
602 KDEDIR=/usr 625 KDEDIR=/usr
603 : ${PREFIX:=/usr} 626 : ${PREFIX:=/usr}
604 EKDEDIR=${EPREFIX}/usr 627 EKDEDIR=${EPREFIX}/usr
620 case ${KDE_SCM} in 643 case ${KDE_SCM} in
621 svn) 644 svn)
622 subversion_src_unpack 645 subversion_src_unpack
623 ;; 646 ;;
624 git) 647 git)
625 git-2_src_unpack 648 git-r3_src_unpack
626 ;; 649 ;;
627 esac 650 esac
628 else 651 else
629 unpack ${A} 652 unpack ${A}
630 fi 653 fi
673 case ${KDE_SCM} in 696 case ${KDE_SCM} in
674 svn) subversion_src_prepare ;; 697 svn) subversion_src_prepare ;;
675 esac 698 esac
676 fi 699 fi
677 700
678 # Apply patches 701 # Apply patches, cmake-utils does the job already
679 base_src_prepare 702 cmake-utils_src_prepare
680 703
681 # Save library dependencies 704 # Save library dependencies
682 if [[ -n ${KMSAVELIBS} ]] ; then 705 if [[ -n ${KMSAVELIBS} ]] ; then
683 save_library_dependencies 706 save_library_dependencies
684 fi 707 fi
769 kded4 2>&1 > /dev/null & 792 kded4 2>&1 > /dev/null &
770 kded4_pid=$! 793 kded4_pid=$!
771 fi 794 fi
772 795
773 cmake-utils_src_test 796 cmake-utils_src_test
774 } 797 }
775 798
776 # When run as normal user during ebuild development with the ebuild command, the 799 # When run as normal user during ebuild development with the ebuild command, the
777 # kde tests tend to access the session DBUS. This however is not possible in a real 800 # kde tests tend to access the session DBUS. This however is not possible in a real
778 # emerge or on the tinderbox. 801 # emerge or on the tinderbox.
779 # > make sure it does not happen, so bad tests can be recognized and disabled 802 # > make sure it does not happen, so bad tests can be recognized and disabled

Legend:
Removed from v.1.130  
changed lines
  Added in v.1.152

  ViewVC Help
Powered by ViewVC 1.1.20