/[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.86 Revision 1.93
1# Copyright 1999-2010 Gentoo Foundation 1# Copyright 1999-2010 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.86 2011/04/06 08:53:48 dilfridge Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/kde4-base.eclass,v 1.93 2011/05/23 22:56:36 abcd 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 by default define EAPI="2", this can be redefined but 13# NOTE: KDE 4 ebuilds currently support EAPI "3". This will be reviewed
14# eclass will fail with version older than 2. 14# over time as new EAPI versions are approved.
15 15
16# @ECLASS-VARIABLE: VIRTUALX_REQUIRED 16# @ECLASS-VARIABLE: VIRTUALX_REQUIRED
17# @DESCRIPTION: 17# @DESCRIPTION:
18# For proper description see virtualx.eclass manpage. 18# For proper description see virtualx.eclass manpage.
19# Here we redefine default value to be manual, if your package needs virtualx 19# Here we redefine default value to be manual, if your package needs virtualx
20# for tests you should proceed with setting VIRTUALX_REQUIRED=test. 20# for tests you should proceed with setting VIRTUALX_REQUIRED=test.
21: ${VIRTUALX_REQUIRED:=manual} 21: ${VIRTUALX_REQUIRED:=manual}
22 22
23inherit kde4-functions base virtualx eutils 23inherit kde4-functions toolchain-funcs fdo-mime gnome2-utils base virtualx versionator eutils
24 24
25get_build_type
26if [[ ${BUILD_TYPE} = live ]]; then 25if [[ ${BUILD_TYPE} = live ]]; then
27 if [[ ${KDEBASE} = kdevelop ]]; then 26 case ${KDE_SCM} in
28 inherit git
29 else
30 inherit subversion 27 svn) inherit subversion ;;
31 fi 28 git) inherit git-2 ;;
29 esac
32fi 30fi
33 31
34# @ECLASS-VARIABLE: CMAKE_REQUIRED 32# @ECLASS-VARIABLE: CMAKE_REQUIRED
35# @DESCRIPTION: 33# @DESCRIPTION:
36# Specify if cmake buildsystem is being used. Possible values are 'always' and 'never'. 34# Specify if cmake buildsystem is being used. Possible values are 'always' and 'never'.
61# One may override this variable to raise version requirements. 59# One may override this variable to raise version requirements.
62# For possible values look at KDE_SLOTS and KDE_LIVE_SLOTS variables. 60# For possible values look at KDE_SLOTS and KDE_LIVE_SLOTS variables.
63# Note that it is fixed to ${SLOT} for kde-base packages. 61# Note that it is fixed to ${SLOT} for kde-base packages.
64KDE_MINIMAL="${KDE_MINIMAL:-4.4}" 62KDE_MINIMAL="${KDE_MINIMAL:-4.4}"
65 63
66# Set slot for packages in kde-base, koffice and kdevelop 64# Set slot for KDEBASE known packages
67case ${KDEBASE} in 65case ${KDEBASE} in
68 kde-base) 66 kde-base)
69 # Determine SLOT from PVs 67 SLOT=$(_calculate_kde_slot)
70 case ${PV} in 68 [[ -z ${SLOT} ]] && die "Unsupported ${PV}"
71 *.9999*) SLOT="${PV/.9999*/}" ;; # stable live
72 4.6* | 4.5.[6-9][0-9]*) SLOT="4.6" ;;
73 4.5* | 4.4.[6-9][0-9]*) SLOT="4.5" ;;
74 4.4* | 4.3.[6-9][0-9]*) SLOT="4.4" ;;
75 9999*) SLOT="live" ;; # regular live
76 *) die "Unsupported ${PV}" ;;
77 esac
78 KDE_MINIMAL="${SLOT}" 69 KDE_MINIMAL="${SLOT}"
79 ;; 70 ;;
80 koffice) 71 koffice)
81 SLOT="2" 72 SLOT="2"
82 ;; 73 ;;
109 fi 100 fi
110 SLOT="4" 101 SLOT="4"
111 ;; 102 ;;
112esac 103esac
113 104
114slot_is_at_least 4.5 ${KDE_MINIMAL} && CMAKE_MIN_VERSION="2.8.1"
115
116inherit ${buildsystem_eclass} 105inherit ${buildsystem_eclass}
117 106
118EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare ${export_fns} pkg_postinst pkg_postrm 107EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare ${export_fns} pkg_preinst pkg_postinst pkg_postrm
119 108
120unset buildsystem_eclass 109unset buildsystem_eclass
121unset export_fns 110unset export_fns
122 111
123# @ECLASS-VARIABLE: DECLARATIVE_REQUIRED 112# @ECLASS-VARIABLE: DECLARATIVE_REQUIRED
170# (handbook USE flag) and 'never'. 159# (handbook USE flag) and 'never'.
171# This variable must be set before inheriting any eclasses. Defaults to 'never'. 160# This variable must be set before inheriting any eclasses. Defaults to 'never'.
172# It adds default handbook dirs for kde-base packages to KMEXTRA and in any case it 161# It adds default handbook dirs for kde-base packages to KMEXTRA and in any case it
173# ensures buildtime and runtime dependencies. 162# ensures buildtime and runtime dependencies.
174KDE_HANDBOOK="${KDE_HANDBOOK:-never}" 163KDE_HANDBOOK="${KDE_HANDBOOK:-never}"
164
165# @ECLASS-VARIABLE: KDE_LINGUAS_LIVE_OVERRIDE
166# @DESCRIPTION:
167# Set this varible if you want your live package to manage its
168# translations. (Mostly all kde ebuilds does not ship documentation
169# and translations in live ebuilds)
170if [[ ${BUILD_TYPE} == live && -z ${KDE_LINGUAS_LIVE_OVERRIDE} ]]; then
171 # Kdebase actualy provides the handbooks even for live stuff
172 [[ ${KDEBASE} == kde-base ]] || KDE_HANDBOOK=never
173 KDE_LINGUAS=""
174fi
175 175
176# Setup packages inheriting this eclass 176# Setup packages inheriting this eclass
177case ${KDEBASE} in 177case ${KDEBASE} in
178 kde-base) 178 kde-base)
179 HOMEPAGE="http://www.kde.org/" 179 HOMEPAGE="http://www.kde.org/"
208 ;; 208 ;;
209esac 209esac
210 210
211# @ECLASS-VARIABLE: QT_MINIMAL 211# @ECLASS-VARIABLE: QT_MINIMAL
212# @DESCRIPTION: 212# @DESCRIPTION:
213# Determine version of qt we enforce as minimal for the package. 4.4.0 4.5.1... 213# Determine version of qt we enforce as minimal for the package.
214# 4.6.0 for 4.4, 4.6.3 for 4.5, and 4.7.0 for 4.6 and later
215if slot_is_at_least 4.6 "${KDE_MINIMAL}"; then 214if slot_is_at_least 4.6 "${KDE_MINIMAL}"; then
216 QT_MINIMAL="${QT_MINIMAL:-4.7.0}" 215 QT_MINIMAL="${QT_MINIMAL:-4.7.0}"
217elif slot_is_at_least 4.5 "${KDE_MINIMAL}"; then 216else
218 QT_MINIMAL="${QT_MINIMAL:-4.6.3}" 217 QT_MINIMAL="${QT_MINIMAL:-4.6.3}"
219else
220 QT_MINIMAL="${QT_MINIMAL:-4.6.0}"
221fi 218fi
222 219
223# Declarative dependencies 220# Declarative dependencies
224qtdeclarativedepend=" 221qtdeclarativedepend="
225 >=x11-libs/qt-declarative-${QT_MINIMAL}:4 222 >=x11-libs/qt-declarative-${QT_MINIMAL}:4
338 >=x11-libs/qt-test-${QT_MINIMAL}:4 335 >=x11-libs/qt-test-${QT_MINIMAL}:4
339 !aqua? ( 336 !aqua? (
340 x11-libs/libXext 337 x11-libs/libXext
341 x11-libs/libXt 338 x11-libs/libXt
342 x11-libs/libXxf86vm 339 x11-libs/libXxf86vm
340 x11-libs/libXcomposite
343 ) 341 )
344" 342"
345 343
346if [[ ${PN} != kdelibs ]]; then 344if [[ ${PN} != kdelibs ]]; then
347 kdecommondepend+=" $(add_kdebase_dep kdelibs)" 345 kdecommondepend+=" $(add_kdebase_dep kdelibs)"
361 *) ;; 359 *) ;;
362 esac 360 esac
363 fi 361 fi
364 fi 362 fi
365fi 363fi
364
366kdedepend=" 365kdedepend="
367 dev-util/automoc 366 dev-util/automoc
368 dev-util/pkgconfig 367 dev-util/pkgconfig
369 !aqua? ( 368 !aqua? (
370 >=x11-libs/libXtst-1.1.0 369 >=x11-libs/libXtst-1.1.0
371 x11-proto/xf86vidmodeproto 370 x11-proto/xf86vidmodeproto
372 ) 371 )
373" 372"
373
374kderdepend="" 374kderdepend=""
375 375
376# all packages needs oxygen icons for basic iconset
376if [[ ${PN} != oxygen-icons ]]; then 377if [[ ${PN} != oxygen-icons ]]; then
377 kderdepend+=" $(add_kdebase_dep oxygen-icons)" 378 kderdepend+=" $(add_kdebase_dep oxygen-icons)"
379fi
380
381# add a dependency over kde-l10n if EAPI4 or better is around
382if [[ ${KDEBASE} != "kde-base" && -n ${KDE_LINGUAS} && ${EAPI:-0} != 3 ]]; then
383 for _lingua in ${KDE_LINGUAS}; do
384 # if our package has lignuas, pull in kde-l10n with selected lingua enabled,
385 # but only for selected ones.
386 # this can't be done on one line because if user doesn't use any localisation
387 # then he is probably not interested in kde-l10n at all.
388 kderdepend+="
389 linguas_${_lingua}? ( $(add_kdebase_dep kde-l10n "linguas_${_lingua}(+)") )
390 "
391 done
392 unset _lingua
378fi 393fi
379 394
380kdehandbookdepend=" 395kdehandbookdepend="
381 app-text/docbook-xml-dtd:4.2 396 app-text/docbook-xml-dtd:4.2
382 app-text/docbook-xsl-stylesheets 397 app-text/docbook-xsl-stylesheets
423# Accumulate dependencies set by this eclass 438# Accumulate dependencies set by this eclass
424DEPEND+=" ${COMMONDEPEND}" 439DEPEND+=" ${COMMONDEPEND}"
425RDEPEND+=" ${COMMONDEPEND}" 440RDEPEND+=" ${COMMONDEPEND}"
426unset COMMONDEPEND 441unset COMMONDEPEND
427 442
428# Add experimental kdeenablefinal, disabled by default 443# Add experimental kdeenablefinal, masked by default
429IUSE+=" kdeenablefinal" 444IUSE+=" kdeenablefinal"
430 445
431# Fetch section - If the ebuild's category is not 'kde-base' and if it is not a 446# Fetch section - If the ebuild's category is not 'kde-base' and if it is not a
432# koffice ebuild, the URI should be set in the ebuild itself 447# koffice ebuild, the URI should be set in the ebuild itself
433case ${BUILD_TYPE} in 448_calculate_src_uri() {
434 live) 449 debug-print-function ${FUNCNAME} "$@"
450
451 local _kmname _kmname_pv
452
453 # we calculate URI only for known KDEBASE modules
454 [[ -n ${KDEBASE} ]] || return
455
456 # calculate tarball module name
457 if [[ -n ${KMNAME} ]]; then
458 # fixup kdebase-apps name
459 case ${KMNAME} in
460 kdebase-apps)
461 _kmname="kdebase" ;;
462 *)
463 _kmname="${KMNAME}" ;;
464 esac
465 else
466 _kmname=${PN}
467 fi
468 _kmname_pv="${_kmname}-${PV}"
469 case ${KDEBASE} in
470 kde-base)
471 case ${PV} in
472 4.[456].8[05] | 4.[456].9[023568])
473 # Unstable KDE SC releases
474 SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2"
475 # KDEPIM IS SPECIAL
476 [[ ${KMNAME} == "kdepim" || ${KMNAME} == "kdepim-runtime" ]] && SRC_URI="mirror://kde/unstable/kdepim/${PV}/${_kmname_pv}.tar.bz2"
477 ;;
478 4.4.[6789] | 4.4.1?*)
479 # Stable kdepim releases
480 SRC_URI="mirror://kde/stable/kdepim-${PV}/src/${_kmname_pv}.tar.bz2"
481 ;;
482 *)
483 # Stable KDE SC releases
484 SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2"
485 ;;
486 esac
487 ;;
488 koffice)
489 case ${PV} in
490 2.[1234].[6-9]*) SRC_URI="mirror://kde/unstable/${_kmname_pv}/${_kmname_pv}.tar.bz2" ;;
491 *) SRC_URI="mirror://kde/stable/${_kmname_pv}/${_kmname_pv}.tar.bz2" ;;
492 esac
493 ;;
494 kdevelop)
495 SRC_URI="mirror://kde/stable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2"
496 ;;
497 esac
498}
499
500_calculate_live_repo() {
501 debug-print-function ${FUNCNAME} "$@"
502
435 SRC_URI="" 503 SRC_URI=""
436 if has subversion ${INHERITED}; then 504 case ${KDE_SCM} in
505 svn)
437 # Determine branch URL based on live type 506 # Determine branch URL based on live type
438 local branch_prefix 507 local branch_prefix
439 case ${PV} in 508 case ${PV} in
440 9999*) 509 9999*)
441 # trunk 510 # trunk
502 # @DESCRIPTION: 571 # @DESCRIPTION:
503 # This variable is used for specifying the timeout between svn synces 572 # This variable is used for specifying the timeout between svn synces
504 # for kde-base and koffice modules. Does not affect misc apps. 573 # for kde-base and koffice modules. Does not affect misc apps.
505 # Default value is 1 hour. 574 # Default value is 1 hour.
506 [[ ${KDEBASE} = kde-base || ${KDEBASE} = koffice ]] && ESVN_UP_FREQ=${ESVN_UP_FREQ:-1} 575 [[ ${KDEBASE} = kde-base || ${KDEBASE} = koffice ]] && ESVN_UP_FREQ=${ESVN_UP_FREQ:-1}
507 elif has git ${INHERITED}; then
508 if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then
509 KMMODULE="${PN}"
510 fi
511 case ${KDEBASE} in
512 kdevelop)
513 EGIT_REPO_URI="git://git.kde.org/${KMMODULE}"
514 ;;
515 esac
516 fi
517 ;; 576 ;;
518 *) 577 git)
578 local _kmname
579 # @ECLASS-VARIABLE: EGIT_MIRROR
580 # @DESCRIPTION:
581 # This variable allows easy overriding of default kde mirror service
582 # (anongit) with anything else you might want to use.
583 EGIT_MIRROR=${EGIT_MIRROR:=git://anongit.kde.org}
584
585 # @ECLASS-VARIABLE: EGIT_REPONAME
586 # @DESCRIPTION:
587 # This variable allows overriding of default repository
588 # name. Specify only if this differ from PN and KMNAME.
519 if [[ -n ${KDEBASE} ]]; then 589 if [[ -n ${EGIT_REPONAME} ]]; then
590 # the repository and kmname different
591 _kmname=${EGIT_REPONAME}
520 if [[ -n ${KMNAME} ]]; then 592 elif [[ -n ${KMNAME} ]]; then
521 case ${KMNAME} in
522 kdebase-apps)
523 _kmname="kdebase" ;;
524 *)
525 _kmname="${KMNAME}" ;; 593 _kmname=${KMNAME}
526 esac
527 else 594 else
528 _kmname=${PN} 595 _kmname=${PN}
529 fi 596 fi
530 _kmname_pv="${_kmname}-${PV}" 597
531 case ${KDEBASE} in 598 # default branching
532 kde-base)
533 case ${PV} in 599 case ${PV} in
534 4.5.93) 600 9999*) ;;
535 # Only kdepim and kdepim-runtime 4.6beta here 601 *)
536 SRC_URI="mirror://kde/unstable/kdepim/${PV}/${_kmname}-4.6beta3.tar.bz2" 602 # set EGIT_BRANCH and EGIT_COMMIT to ${SLOT}
603 case ${_kmname} in
604 kdeplasma-addons | kdepim | kdepim-runtime | kdepimlibs)
605 EGIT_BRANCH="${SLOT}"
537 ;; 606 ;;
538 4.[456].8[05] | 4.[456].9[023568]) 607 *) EGIT_BRANCH="KDE/${SLOT}" ;;
539 # Unstable KDE SC releases
540 SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2"
541 ;;
542 4.4.6 | 4.4.7 | 4.4.8 | 4.4.9 | 4.4.10)
543 # Only kdepim here
544 SRC_URI="mirror://kde/stable/kdepim-${PV}/src/${_kmname_pv}.tar.bz2"
545 ;;
546 *)
547 # Stable KDE SC releases
548 SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2"
549 ;;
550 esac 608 esac
551 ;; 609 ;;
552 koffice)
553 case ${PV} in
554 2.1.[6-9]*) SRC_URI="mirror://kde/unstable/${_kmname_pv}/${_kmname_pv}.tar.bz2" ;;
555 *) SRC_URI="mirror://kde/stable/${_kmname_pv}/${_kmname_pv}.tar.bz2" ;;
556 esac
557 ;;
558 kdevelop)
559 SRC_URI="mirror://kde/stable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2"
560 ;;
561 esac 610 esac
562 unset _kmname _kmname_pv 611
563 fi 612 EGIT_REPO_URI="${EGIT_MIRROR}/${_kmname}"
613
614 debug-print "${FUNCNAME}: Repository: ${EGIT_REPO_URI}"
615 debug-print "${FUNCNAME}: Branch: ${EGIT_BRANCH}"
564 ;; 616 ;;
617 esac
618}
619
620case ${BUILD_TYPE} in
621 live) _calculate_live_repo ;;
622 *) _calculate_src_uri ;;
565esac 623esac
566 624
567debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SRC_URI is ${SRC_URI}" 625debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SRC_URI is ${SRC_URI}"
568 626
569# @ECLASS-VARIABLE: PREFIX 627# @ECLASS-VARIABLE: PREFIX
577# Do the basic kdeprefix KDEDIR settings and determine with which kde should 635# Do the basic kdeprefix KDEDIR settings and determine with which kde should
578# optional applications link 636# optional applications link
579kde4-base_pkg_setup() { 637kde4-base_pkg_setup() {
580 debug-print-function ${FUNCNAME} "$@" 638 debug-print-function ${FUNCNAME} "$@"
581 639
582 # Prefix compat:
583 if [[ ${EAPI} == 2 ]] && ! use prefix; then
584 EPREFIX=
585 EROOT=${ROOT}
586 fi
587
588 # Append missing trailing slash character
589 [[ ${EROOT} = */ ]] || EROOT+="/"
590
591 # QA ebuilds 640 # QA ebuilds
592 [[ -z ${KDE_MINIMAL_VALID} ]] && ewarn "QA Notice: ignoring invalid KDE_MINIMAL (defaulting to ${KDE_MINIMAL})." 641 [[ -z ${KDE_MINIMAL_VALID} ]] && ewarn "QA Notice: ignoring invalid KDE_MINIMAL (defaulting to ${KDE_MINIMAL})."
593 642
594 # Don't set KDEHOME during compilation, it will cause access violations 643 # Don't set KDEHOME during compilation, it will cause access violations
595 unset KDEHOME 644 unset KDEHOME
645
646 # Check if gcc compiler is fresh enough.
647 # In theory should be in pkg_pretend but we check it only for kdelibs there
648 # and for others we do just quick scan in pkg_setup because pkg_pretend
649 # executions consume quite some time.
650 [[ $(gcc-major-version) -lt 4 ]] || \
651 ( [[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -le 3 ]] ) \
652 && die "Sorry, but gcc-4.3 and earlier wont work for KDE (see bug 354837)."
596 653
597 if [[ ${KDEBASE} = kde-base ]]; then 654 if [[ ${KDEBASE} = kde-base ]]; then
598 if use kdeprefix; then 655 if use kdeprefix; then
599 KDEDIR=/usr/kde/${SLOT} 656 KDEDIR=/usr/kde/${SLOT}
600 else 657 else
643# This function unpacks the source tarballs for KDE4 applications. 700# This function unpacks the source tarballs for KDE4 applications.
644kde4-base_src_unpack() { 701kde4-base_src_unpack() {
645 debug-print-function ${FUNCNAME} "$@" 702 debug-print-function ${FUNCNAME} "$@"
646 703
647 if [[ ${BUILD_TYPE} = live ]]; then 704 if [[ ${BUILD_TYPE} = live ]]; then
648 if has subversion ${INHERITED}; then 705 case ${KDE_SCM} in
706 svn)
649 migrate_store_dir 707 migrate_store_dir
650 subversion_src_unpack 708 subversion_src_unpack
651 elif has git ${INHERITED}; then
652 git_src_unpack
653 fi
654 elif [[ ${EAPI} == 2 ]]; then
655 local file
656 for file in ${A}; do
657 # This setup is because EAPI <= 2 cannot unpack *.tar.xz files
658 # directly, so we do it ourselves (using the exact same code as portage)
659 case ${file} in
660 *.tar.xz)
661 echo ">>> Unpacking ${file} to ${PWD}"
662 xz -dc "${DISTDIR}"/${file} | tar xof -
663 assert "failed unpacking ${file}"
664 ;; 709 ;;
665 *) 710 git)
666 unpack ${file} 711 git-2_src_unpack
667 ;; 712 ;;
668 esac 713 esac
669 done
670 else 714 else
671 # For EAPI >= 3, we can just use unpack() directly
672 unpack ${A} 715 unpack ${A}
673 fi 716 fi
674} 717}
675 718
676# @FUNCTION: kde4-base_src_prepare 719# @FUNCTION: kde4-base_src_prepare
680# enable_selected_linguas() and enable_selected_doc_linguas() 723# enable_selected_linguas() and enable_selected_doc_linguas()
681# in kde4-functions.eclass(5) for further details. 724# in kde4-functions.eclass(5) for further details.
682kde4-base_src_prepare() { 725kde4-base_src_prepare() {
683 debug-print-function ${FUNCNAME} "$@" 726 debug-print-function ${FUNCNAME} "$@"
684 727
728 # enable handbook and linguas only when not using live ebuild
729
685 # Only enable selected languages, used for KDE extragear apps. 730 # Only enable selected languages, used for KDE extragear apps.
686 if [[ -n ${KDE_LINGUAS} ]]; then 731 if [[ -n ${KDE_LINGUAS} ]]; then
687 enable_selected_linguas 732 enable_selected_linguas
688 fi 733 fi
689 734
690 # Enable/disable handbooks for kde4-base packages 735 # Enable/disable handbooks for kde4-base packages
691 # kde-l10n inherits kde4-base but is metpackage, so no check for doc 736 # kde-l10n inherits kde4-base but is metpackage, so no check for doc
692 # kdelibs inherits kde4-base but handle installing the handbook itself 737 # kdelibs inherits kde4-base but handle installing the handbook itself
693 if ! has kde4-meta ${INHERITED}; then 738 if ! has kde4-meta ${INHERITED} && has handbook ${IUSE//+}; then
694 has handbook ${IUSE//+} && [[ ${PN} != kde-l10n ]] && [[ ${PN} != kdepim-l10n ]] && [[ ${PN} != kdelibs ]] && enable_selected_doc_linguas 739 if [[ ${KDEBASE} == kde-base ]]; then
740 if [[ ${PN} != kde-l10n && ${PN} != kdepim-l10n && ${PN} != kdelibs ]] && use !handbook; then
741 # documentation in kde4-functions
742 : ${KDE_DOC_DIRS:=doc}
743 local dir
744 for dir in ${KDE_DOC_DIRS}; do
745 sed -e "\!^[[:space:]]*add_subdirectory[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
746 -e "\!^[[:space:]]*ADD_SUBDIRECTORY[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
747 -e "\!^[[:space:]]*macro_optional_add_subdirectory[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
748 -e "\!^[[:space:]]*MACRO_OPTIONAL_ADD_SUBDIRECTORY[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
749 -i CMakeLists.txt || die "failed to comment out handbook"
750 done
751 fi
752 else
753 enable_selected_doc_linguas
754 fi
695 fi 755 fi
696 756
697 # SCM bootstrap 757 # SCM bootstrap
698 if [[ ${BUILD_TYPE} = live ]]; then 758 if [[ ${BUILD_TYPE} = live ]]; then
699 if has subversion ${INHERITED}; then 759 case ${KDE_SCM} in
700 subversion_src_prepare 760 svn) subversion_src_prepare ;;
701 elif has git ${INHERITED}; then 761 esac
702 git_src_prepare
703 fi
704 fi 762 fi
705 763
706 # Apply patches 764 # Apply patches
707 base_src_prepare 765 base_src_prepare
708 766
840 # > make sure it does not happen, so bad tests can be recognized and disabled 898 # > make sure it does not happen, so bad tests can be recognized and disabled
841 unset DBUS_SESSION_BUS_ADDRESS 899 unset DBUS_SESSION_BUS_ADDRESS
842 900
843 if [[ ${VIRTUALX_REQUIRED} == always || ${VIRTUALX_REQUIRED} == test ]]; then 901 if [[ ${VIRTUALX_REQUIRED} == always || ${VIRTUALX_REQUIRED} == test ]]; then
844 # check for sanity if anyone already redefined VIRTUALX_COMMAND from the default 902 # check for sanity if anyone already redefined VIRTUALX_COMMAND from the default
845 if [[ ${VIRTUALX_COMMAND} != "emake" ]]; then 903 if [[ ${VIRTUALX_COMMAND} != emake ]]; then
846 # surprise- we are already INSIDE virtualmake!!! 904 # surprise- we are already INSIDE virtualmake!!!
847 debug-print "QA Notice: This version of kde4-base.eclass includes the virtualx functionality." 905 debug-print "QA Notice: This version of kde4-base.eclass includes the virtualx functionality."
848 debug-print " You may NOT set VIRTUALX_COMMAND or call virtualmake from the ebuild." 906 debug-print " You may NOT set VIRTUALX_COMMAND or call virtualmake from the ebuild."
849 debug-print " Setting VIRTUALX_REQUIRED is completely sufficient. See the" 907 debug-print " Setting VIRTUALX_REQUIRED is completely sufficient. See the"
850 debug-print " kde4-base.eclass docs for details... Applying workaround." 908 debug-print " kde4-base.eclass docs for details... Applying workaround."
861# @DESCRIPTION: 919# @DESCRIPTION:
862# Function for installing KDE4 applications. 920# Function for installing KDE4 applications.
863kde4-base_src_install() { 921kde4-base_src_install() {
864 debug-print-function ${FUNCNAME} "$@" 922 debug-print-function ${FUNCNAME} "$@"
865 923
866 # Prefix support, for usage in ebuilds
867 if [[ ${EAPI} == 2 ]] && ! use prefix; then
868 ED=${D}
869 fi
870
871 if [[ -n ${KMSAVELIBS} ]] ; then 924 if [[ -n ${KMSAVELIBS} ]] ; then
872 install_library_dependencies 925 install_library_dependencies
873 fi 926 fi
874 927
875 # Install common documentation of KDE4 applications 928 # Install common documentation of KDE4 applications
876 local doc 929 local doc
877 if ! has kde4-meta ${INHERITED}; then 930 if ! has kde4-meta ${INHERITED}; then
878 for doc in "${S}"/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; do 931 for doc in "${S}"/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; do
879 [[ -f "${doc}" ]] && [[ -s "${doc}" ]] && dodoc "${doc}" 932 [[ -f ${doc} && -s ${doc} ]] && dodoc "${doc}"
880 done 933 done
881 for doc in "${S}"/*/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; do 934 for doc in "${S}"/*/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; do
882 [[ -f "${doc}" ]] && [[ -s "${doc}" ]] && newdoc "${doc}" "$(basename $(dirname ${doc})).$(basename ${doc})" 935 [[ -f ${doc} && -s ${doc} ]] && newdoc "${doc}" "$(basename $(dirname ${doc})).$(basename ${doc})"
883 done 936 done
884 fi 937 fi
885 938
886 cmake-utils_src_install 939 cmake-utils_src_install
940
941 # In EAPI 4+, we don't want ${PREFIX}/share/doc/HTML to be compressed,
942 # because then khelpcenter can't find the docs
943 [[ ${EAPI:-0} != 3 && -d ${ED}/${PREFIX}/share/doc/HTML ]] &&
944 docompress -x ${PREFIX}/share/doc/HTML
945}
946
947# @FUNCTION: kde4-base_pkg_preinst
948# @DESCRIPTION:
949# Function storing icon caches
950kde4-base_pkg_preinst() {
951 debug-print-function ${FUNCNAME} "$@"
952
953 gnome2_icon_savelist
887} 954}
888 955
889# @FUNCTION: kde4-base_pkg_postinst 956# @FUNCTION: kde4-base_pkg_postinst
890# @DESCRIPTION: 957# @DESCRIPTION:
891# Function to rebuild the KDE System Configuration Cache after an application has been installed. 958# Function to rebuild the KDE System Configuration Cache after an application has been installed.
892kde4-base_pkg_postinst() { 959kde4-base_pkg_postinst() {
893 debug-print-function ${FUNCNAME} "$@" 960 debug-print-function ${FUNCNAME} "$@"
894 961
962 gnome2_icon_cache_update
963 fdo-mime_desktop_database_update
964 fdo-mime_mime_database_update
895 buildsycoca 965 buildsycoca
896 966
897 if [[ ${BUILD_TYPE} = live ]] && [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then 967 if [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then
968 if has kdeenablefinal ${IUSE//+} && use kdeenablefinal; then
898 echo 969 echo
970 ewarn "WARNING! you have kdeenable final useflag enabled."
971 ewarn "This useflag needs to be enabled on ALL kde using packages and"
972 ewarn "is known to cause issues."
973 ewarn "You are using this setup at your own risk and the kde team does not"
974 ewarn "take responsibilities for dead kittens."
975 echo
976 fi
977 if [[ ${BUILD_TYPE} = live ]]; then
978 echo
899 einfo "WARNING! This is an experimental live ebuild of ${CATEGORY}/${PN}" 979 einfo "WARNING! This is an experimental live ebuild of ${CATEGORY}/${PN}"
900 einfo "Use it at your own risk." 980 einfo "Use it at your own risk."
901 einfo "Do _NOT_ file bugs at bugs.gentoo.org because of this ebuild!" 981 einfo "Do _NOT_ file bugs at bugs.gentoo.org because of this ebuild!"
902 echo 982 echo
903 elif [[ ${BUILD_TYPE} != live ]] && [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]] && has kdeprefix ${IUSE//+} && use kdeprefix; then 983 fi
904 # warning about kdeprefix for non-live users 984 # for all 3rd party soft tell user that he SHOULD install kdebase-startkde or kdebase-runtime-meta
985 if [[ ${KDEBASE} != kde-base ]] && \
986 ! has_version 'kde-base/kdebase-runtime-meta' && \
987 ! has_version 'kde-base/kdebase-startkde'; then
988 if [[ ${KDE_REQUIRED} == always ]] || ( [[ ${KDE_REQUIRED} == optional ]] && use kde ); then
989 echo
990 ewarn "WARNING! Your system configuration contains neither \"kde-base/kdebase-runtime-meta\""
991 ewarn "nor \"kde-base/kdebase-startkde\". You need one of above."
992 ewarn "With this setting you are unsupported by KDE team."
993 ewarn "All missing features you report for misc packages will be probably ignored or closed as INVALID."
994 fi
995 fi
996 fi
997 if has kdeprefix ${IUSE//+} && use kdeprefix; then
998 # warning about kdeprefix
905 echo 999 echo
906 ewarn "WARNING! You have the kdeprefix useflag enabled." 1000 ewarn "WARNING! You have the kdeprefix useflag enabled."
907 ewarn "This setting is strongly discouraged and might lead to potential trouble" 1001 eerror "This setting will be removed on or about 2011-06-06."
908 ewarn "with KDE update strategies."
909 ewarn "You are using this setup at your own risk and the kde team does not" 1002 ewarn "You are using this setup at your own risk and the kde team does not"
910 ewarn "take responsibilities for dead kittens." 1003 ewarn "take responsibilities for dead kittens."
911 echo 1004 echo
912 fi 1005 fi
913 if [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]] && ! has_version 'kde-base/kdebase-runtime-meta' && ! has_version 'kde-base/kdebase-startkde'; then
914 # warn about not supported approach
915 if [[ ${KDE_REQUIRED} == always ]] || ( [[ ${KDE_REQUIRED} == optional ]] && use kde ); then
916 echo
917 ewarn "WARNING! Your system configuration contains neither \"kde-base/kdebase-runtime-meta\""
918 ewarn "nor \"kde-base/kdebase-startkde\". You need one of above."
919 ewarn "With this setting you are unsupported by KDE team."
920 ewarn "All missing features you report for misc packages will be probably ignored or closed as INVALID."
921 fi
922 fi
923} 1006}
924 1007
925# @FUNCTION: kde4-base_pkg_postrm 1008# @FUNCTION: kde4-base_pkg_postrm
926# @DESCRIPTION: 1009# @DESCRIPTION:
927# Function to rebuild the KDE System Configuration Cache after an application has been removed. 1010# Function to rebuild the KDE System Configuration Cache after an application has been removed.
928kde4-base_pkg_postrm() { 1011kde4-base_pkg_postrm() {
929 debug-print-function ${FUNCNAME} "$@" 1012 debug-print-function ${FUNCNAME} "$@"
930 1013
1014 gnome2_icon_cache_update
1015 fdo-mime_desktop_database_update
1016 fdo-mime_mime_database_update
931 buildsycoca 1017 buildsycoca
932} 1018}

Legend:
Removed from v.1.86  
changed lines
  Added in v.1.93

  ViewVC Help
Powered by ViewVC 1.1.20