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