| 1 | # Copyright 1999-2011 Gentoo Foundation |
1 | # Copyright 1999-2012 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-meta.eclass,v 1.57 2011/10/06 14:13:29 alexxy Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/kde4-meta.eclass,v 1.64 2012/05/08 22:00:49 dilfridge Exp $ |
| 4 | # |
4 | # |
| 5 | # @ECLASS: kde4-meta.eclass |
5 | # @ECLASS: kde4-meta.eclass |
| 6 | # @MAINTAINER: |
6 | # @MAINTAINER: |
| 7 | # kde@gentoo.org |
7 | # kde@gentoo.org |
| 8 | # @BLURB: Eclass for writing "split" KDE packages. |
8 | # @BLURB: Eclass for writing "split" KDE packages. |
| … | |
… | |
| 208 | ;; |
208 | ;; |
| 209 | esac |
209 | esac |
| 210 | else |
210 | else |
| 211 | local abort tarball tarfile f extractlist postfix |
211 | local abort tarball tarfile f extractlist postfix |
| 212 | |
212 | |
|
|
213 | if [[ ${PV} =~ 4.8.[12345] ]]; then |
|
|
214 | postfix="xz" |
|
|
215 | KMTARPARAMS+=" --xz" |
|
|
216 | else |
|
|
217 | postfix="bz2" |
| 213 | KMTARPARAMS+=" --bzip2" |
218 | KMTARPARAMS+=" --bzip2" |
| 214 | postfix="bz2" |
219 | fi |
| 215 | |
220 | |
| 216 | case ${KMNAME} in |
221 | case ${KMNAME} in |
| 217 | kdebase-apps) |
222 | kdebase-apps) |
| 218 | # kdebase/apps -> kdebase-apps |
223 | # kdebase/apps -> kdebase-apps |
| 219 | tarball="kdebase-${PV}.tar.${postfix}" |
224 | tarball="kdebase-${PV}.tar.${postfix}" |
| … | |
… | |
| 246 | # @ECLASS-VARIABLE: KDE4_STRICTER |
251 | # @ECLASS-VARIABLE: KDE4_STRICTER |
| 247 | # @DESCRIPTION: |
252 | # @DESCRIPTION: |
| 248 | # Print out all issues found executing tar / kmextract files |
253 | # Print out all issues found executing tar / kmextract files |
| 249 | # Set on if you want to find issues in kde-base ebuild unpack sequences |
254 | # Set on if you want to find issues in kde-base ebuild unpack sequences |
| 250 | [[ -n ${KDE4_STRICTER} ]] && echo 'tar -xpf "${tarfile}" ${KMTARPARAMS} ${extractlist}' |
255 | [[ -n ${KDE4_STRICTER} ]] && echo 'tar -xpf "${tarfile}" ${KMTARPARAMS} ${extractlist}' |
| 251 | if [[ ${I_KNOW_WHAT_I_AM_DOING} ]]; then |
|
|
| 252 | # to make the devs happy - bug 338397 |
|
|
| 253 | tar -xpf "${tarfile}" ${KMTARPARAMS} ${extractlist} || ewarn "tar extract command failed at least partially - continuing anyway" |
|
|
| 254 | else |
|
|
| 255 | tar -xpf "${tarfile}" ${KMTARPARAMS} ${extractlist} 2> /dev/null || echo "tar extract command failed at least partially - continuing anyway" |
256 | tar -xpf "${tarfile}" ${KMTARPARAMS} ${extractlist} 2> /dev/null || echo "tar extract command failed at least partially - continuing anyway" |
| 256 | fi |
|
|
| 257 | |
257 | |
| 258 | # Default $S is based on $P; rename the extracted directory to match $S if necessary |
258 | # Default $S is based on $P; rename the extracted directory to match $S if necessary |
| 259 | if [[ ${KMNAME} != ${PN} ]]; then |
259 | if [[ ${KMNAME} != ${PN} ]]; then |
| 260 | mv ${topdir} ${P} || die "Died while moving \"${topdir}\" to \"${P}\"" |
260 | mv ${topdir} ${P} || die "Died while moving \"${topdir}\" to \"${P}\"" |
| 261 | fi |
261 | fi |
| … | |
… | |
| 287 | kde4-meta_create_extractlists() { |
287 | kde4-meta_create_extractlists() { |
| 288 | debug-print-function ${FUNCNAME} "$@" |
288 | debug-print-function ${FUNCNAME} "$@" |
| 289 | |
289 | |
| 290 | # Add default handbook locations |
290 | # Add default handbook locations |
| 291 | # FIXME - legacy code - remove when 4.4.5 is gone or preferrably port 4.4.5. |
291 | # FIXME - legacy code - remove when 4.4.5 is gone or preferrably port 4.4.5. |
| 292 | if [[ $(get_kde_version) < 4.5 ]] && has handbook ${IUSE//+} && use handbook && [[ -z ${KMNOMODULE} ]]; then |
292 | if [[ $(get_kde_version) < 4.5 ]] && use_if_iuse handbook && [[ -z ${KMNOMODULE} ]]; then |
| 293 | # We use the basename of $KMMODULE because $KMMODULE can contain |
293 | # We use the basename of $KMMODULE because $KMMODULE can contain |
| 294 | # the path to the module subdirectory. |
294 | # the path to the module subdirectory. |
| 295 | KMEXTRA_NONFATAL+=" |
295 | KMEXTRA_NONFATAL+=" |
| 296 | doc/${KMMODULE##*/}" |
296 | doc/${KMMODULE##*/}" |
| 297 | fi |
297 | fi |
| … | |
… | |
| 344 | kdepim-version.h.cmake" |
344 | kdepim-version.h.cmake" |
| 345 | else |
345 | else |
| 346 | KMEXTRACTONLY+=" |
346 | KMEXTRACTONLY+=" |
| 347 | kdepim-version.h" |
347 | kdepim-version.h" |
| 348 | fi |
348 | fi |
| 349 | if has kontact ${IUSE//+} && use kontact; then |
349 | if use_if_iuse kontact; then |
| 350 | KMEXTRA+=" |
350 | KMEXTRA+=" |
| 351 | kontact/plugins/${PLUGINNAME:-${PN}}/" |
351 | kontact/plugins/${PLUGINNAME:-${PN}}/" |
| 352 | fi |
352 | fi |
| 353 | ;; |
353 | ;; |
| 354 | kdeutils) |
354 | kdeutils) |
| … | |
… | |
| 554 | if [[ ${PN} != kdebase-startkde && -f CMakeLists.txt ]]; then |
554 | if [[ ${PN} != kdebase-startkde && -f CMakeLists.txt ]]; then |
| 555 | # The startkde script moved to kdebase-workspace for KDE4 versions > 3.93.0. |
555 | # The startkde script moved to kdebase-workspace for KDE4 versions > 3.93.0. |
| 556 | sed -e '/startkde/s/^/#DONOTINSTALL /' \ |
556 | sed -e '/startkde/s/^/#DONOTINSTALL /' \ |
| 557 | -i CMakeLists.txt || die "${LINENO}: sed died in the kdebase-startkde collision prevention section" |
557 | -i CMakeLists.txt || die "${LINENO}: sed died in the kdebase-startkde collision prevention section" |
| 558 | fi |
558 | fi |
|
|
559 | # Remove workspace target prefix in order to get direct linking to workspace libs |
|
|
560 | sed -e '/set(KDE4WORKSPACE_TARGET_PREFIX/s/^/#OVERRIDE /' \ |
|
|
561 | -i CMakeLists.txt || die "${LINENO}: sed died in KDE4WORKSPACE_TARGET_PREFIX removal section" |
| 559 | # Strip EXPORT feature section from workspace for KDE4 versions > 4.1.82 |
562 | # Strip EXPORT feature section from workspace for KDE4 versions > 4.1.82 |
| 560 | if [[ ${PN} != libkworkspace ]]; then |
563 | if [[ ${PN} != libkworkspace ]]; then |
| 561 | sed -e '/install(FILES ${CMAKE_CURRENT_BINARY_DIR}\/KDE4WorkspaceConfig.cmake/,/^[[:space:]]*FILE KDE4WorkspaceLibraryTargets.cmake )[[:space:]]*^/d' \ |
564 | sed -e '/install(FILES ${CMAKE_CURRENT_BINARY_DIR}\/KDE4WorkspaceConfig.cmake/,/^[[:space:]]*FILE KDE4WorkspaceLibraryTargets.cmake )[[:space:]]*^/d' \ |
| 562 | -i CMakeLists.txt || die "${LINENO}: sed died in kde-workspace strip config install and fix EXPORT section" |
565 | -i CMakeLists.txt || die "${LINENO}: sed died in kde-workspace strip config install and fix EXPORT section" |
| 563 | fi |
566 | fi |
| 564 | if [[ ${PN} != plasma-workspace ]]; then |
567 | if [[ ${PN} != plasma-workspace ]]; then |
| 565 | sed -e '/KActivities/s/REQUIRED//' \ |
568 | sed -e '/KActivities/s/REQUIRED//' \ |
| 566 | -i CMakeLists.txt || die "${LINENO}: sed died in kde-workspace dep reduction section" |
569 | -i CMakeLists.txt || die "${LINENO}: sed died in kde-workspace dep reduction section" |
|
|
570 | fi |
|
|
571 | if [[ "${PN}" != "kwin" ]]; then |
|
|
572 | sed -i -e "/^ macro_log_feature(OPENGL_OR_ES_FOUND/s/TRUE/FALSE/" \ |
|
|
573 | "${S}"/CMakeLists.txt || die "${LINENO}: sed died removing kde-workspace opengl dependency" |
| 567 | fi |
574 | fi |
| 568 | ;; |
575 | ;; |
| 569 | kdebase-runtime | kde-runtime) |
576 | kdebase-runtime | kde-runtime) |
| 570 | # COLLISION PROTECT section |
577 | # COLLISION PROTECT section |
| 571 | # Only install the kde4 script as part of kde-base/kdebase-data |
578 | # Only install the kde4 script as part of kde-base/kdebase-data |
| … | |
… | |
| 582 | kdepim) |
589 | kdepim) |
| 583 | # Disable hardcoded checks |
590 | # Disable hardcoded checks |
| 584 | sed -r -e '/find_package\(KdepimLibs/s/REQUIRED//' \ |
591 | sed -r -e '/find_package\(KdepimLibs/s/REQUIRED//' \ |
| 585 | -e '/find_package\((KdepimLibs|Boost|QGpgme|Akonadi|ZLIB|Strigi|SharedDesktopOntologies|Soprano|Nepomuk)/{/macro_optional_/!s/find/macro_optional_&/}' \ |
592 | -e '/find_package\((KdepimLibs|Boost|QGpgme|Akonadi|ZLIB|Strigi|SharedDesktopOntologies|Soprano|Nepomuk)/{/macro_optional_/!s/find/macro_optional_&/}' \ |
| 586 | -e '/macro_log_feature\((Boost|QGPGME|Akonadi|ZLIB|STRIGI|SHAREDDESKTOPONTOLOGIES|Soprano|Nepomuk)_FOUND/s/ TRUE / FALSE /' \ |
593 | -e '/macro_log_feature\((Boost|QGPGME|Akonadi|ZLIB|STRIGI|SHAREDDESKTOPONTOLOGIES|Soprano|Nepomuk)_FOUND/s/ TRUE / FALSE /' \ |
| 587 | -e '/if[[:space:]]*([[:space:]]*BUILD_.*)/s/^/#OVERRIDE /' \ |
594 | -e 's/if[[:space:]]*([[:space:]]*BUILD_.*)[[:space:]]*/if(1) # &/' \ |
| 588 | -e '/if[[:space:]]*([[:space:]]*[[:alnum:]]*_FOUND[[:space:]]*)/s/^/#OVERRIDE /' \ |
595 | -e 's/if[[:space:]]*([[:space:]]*[[:alnum:]]*_FOUND[[:space:]]*)[[:space:]]*$/if(1) # &/' \ |
| 589 | -i CMakeLists.txt || die "failed to disable hardcoded checks" |
596 | -i CMakeLists.txt || die "failed to disable hardcoded checks" |
| 590 | # Disable broken or redundant build logic |
597 | # Disable broken or redundant build logic |
| 591 | if ( has kontact ${IUSE//+} && use kontact ) || [[ ${PN} = kontact ]]; then |
598 | if use_if_iuse kontact || [[ ${PN} = kontact ]]; then |
| 592 | sed -e '/if[[:space:]]*([[:space:]]*BUILD_.*)/s/^/#OVERRIDE /' \ |
599 | sed -e 's/if[[:space:]]*([[:space:]]*BUILD_.*)[[:space:]]*$/if(1) # &/' \ |
| 593 | -e '/if[[:space:]]*([[:space:]]*[[:alnum:]]*_FOUND[[:space:]]*)/s/^/#OVERRIDE /' \ |
600 | -e 's/if[[:space:]]*([[:space:]]*[[:alnum:]]*_FOUND[[:space:]]*)[[:space:]]*$/if(1) # &/' \ |
| 594 | -i kontact/plugins/CMakeLists.txt || die 'failed to override build logic' |
601 | -i kontact/plugins/CMakeLists.txt || die 'failed to override build logic' |
| 595 | fi |
602 | fi |
| 596 | if [[ $(get_kde_version) < 4.5 ]]; then |
603 | if [[ $(get_kde_version) < 4.5 ]]; then |
| 597 | case ${PN} in |
604 | case ${PN} in |
| 598 | kalarm|kmailcvt|kontact|korganizer|korn) |
605 | kalarm|kmailcvt|kontact|korganizer|korn) |