summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--eclass/kde4-meta.eclass37
1 files changed, 27 insertions, 10 deletions
diff --git a/eclass/kde4-meta.eclass b/eclass/kde4-meta.eclass
index d65ceab34f05..41af96cba85c 100644
--- a/eclass/kde4-meta.eclass
+++ b/eclass/kde4-meta.eclass
@@ -1,6 +1,6 @@
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/kde4-meta.eclass,v 1.3 2008/02/24 21:45:39 keytoaster Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/kde4-meta.eclass,v 1.4 2008/03/10 21:43:10 zlin Exp $
#
# @ECLASS: kde4-meta.eclass
# @MAINTAINER:
@@ -157,7 +157,7 @@ kde4-meta_src_unpack() {
# A function to unpack the source for a split KDE ebuild.
# Also see KMMODULE, KMNOMODULE, KMEXTRA, KMCOMPILEONLY, KMEXTRACTONLY and KMTARPARAMS.
kde4-meta_src_extract() {
- local tarball tarfile f extractlist
+ local abort tarball tarfile f extractlist
tarball="${KMNAME}-${PV}.tar.bz2"
tarfile="${DISTDIR}"/${tarball}
@@ -174,12 +174,24 @@ kde4-meta_src_extract() {
KMTARPARAMS="${KMTARPARAMS} -j"
pushd "${WORKDIR}" > /dev/null
+ [[ -n ${KDE4_STRICTER} ]] && echo tar -xpf $tarfile $KMTARPARAMS $extractlist >&2
tar -xpf $tarfile $KMTARPARAMS $extractlist 2> /dev/null
# Default $S is based on $P; rename the extracted directory to match $S
mv ${KMNAME}-${PV} ${P} || die "Died while moving \"${KMNAME}-${PV}\" to \"${P}\""
popd > /dev/null
+
+ if [[ -n ${KDE4_STRICTER} ]]; then
+ for f in $(__list_needed_subdirectories fatal); do
+ if [[ ! -e ${S}/${f#*/} ]]; then
+ eerror "'${f#*/}' is missing"
+ abort=true
+ fi
+ done
+ [[ -n ${abort} ]] && die "There were missing files."
+ fi
+
kde4-base_src_unpack
}
@@ -191,7 +203,7 @@ kde4-meta_create_extractlists() {
if has htmlhandbook ${IUSE//+} && use htmlhandbook; then
# We use the basename of $KMMODULE because $KMMODULE can contain
# the path to the module subdirectory.
- KMEXTRA="${KMEXTRA} doc/${KMMODULE##*/}"
+ KMEXTRA_NONFATAL="${KMEXTRA_NONFATAL} doc/${KMMODULE##*/}"
fi
# Add some CMake-files to KMEXTRACTONLY.
@@ -232,7 +244,7 @@ kde4-meta_create_extractlists() {
esac
# Don't install cmake modules for split ebuilds to avoid collisions.
case ${KMNAME} in
- kdebase-workspace|kdebase-runtime|kdepim|kdegames)
+ kdebase-workspace|kdebase-runtime|kdepim|kdegames|kdegraphics)
if [[ ${PN} != "libkdegames" ]]; then
KMCOMPILEONLY="${KMCOMPILEONLY}
cmake/modules/"
@@ -247,10 +259,12 @@ kde4-meta_create_extractlists() {
}
__list_needed_subdirectories() {
- local i j kmextra_expanded kmmodule_expanded kmcompileonly_expanded extractlist topdir
+ local i j kmextra kmextra_expanded kmmodule_expanded kmcompileonly_expanded extractlist topdir
# We expand KMEXTRA by adding CMakeLists.txt files
- for i in ${KMEXTRA}; do
+ kmextra="${KMEXTRA}"
+ [[ ${1} != fatal ]] && kmextra="${kmextra} ${KMEXTRA_NONFATAL}"
+ for i in ${kmextra}; do
kmextra_expanded="${kmextra_expanded} ${i}"
j=$(dirname ${i})
while [[ ${j} != "." ]]; do
@@ -362,15 +376,18 @@ kde4-meta_change_cmakelists() {
# KMEXTRA section
for i in ${KMEXTRA}; do
debug-print "${LINENO}: KMEXTRA section, processing ${i}"
- # Ebuilds use KMEXTRA incorrectly to extract files which should be in $KMEXTRACTONLY
+ find "${S}"/${i} -name CMakeLists.txt -print0 | \
+ xargs -0 sed -i -e 's/^#DONOTCOMPILE //g' || \
+ die "${LINENO}: sed died uncommenting add_subdirectory instructions in KMEXTRA section while processing ${i}"
+ _change_cmakelists_parent_dirs ${i}
+ done
+ # KMEXTRA_NONFATAL section
+ for i in ${KMEXTRA_NONFATAL}; do
if [[ -d "${S}"/${i} ]]; then
find "${S}"/${i} -name CMakeLists.txt -print0 | \
xargs -0 sed -i -e 's/^#DONOTCOMPILE //g' || \
die "${LINENO}: sed died uncommenting add_subdirectory instructions in KMEXTRA section while processing ${i}"
_change_cmakelists_parent_dirs ${i}
- else
- [[ ${i} == doc/* ]] || \
- die "KMEXTRA should be used to compile and install subdirectories other than \$KMMODULE. Use KMEXTRACTONLY to extract some files."
fi
done