diff --git a/eclass/trinity-base.eclass b/eclass/trinity-base.eclass deleted file mode 100644 index ff116ba9..00000000 --- a/eclass/trinity-base.eclass +++ /dev/null @@ -1,440 +0,0 @@ -# Copyright 1999-2013 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: $ - -# -# Original Author: fat-zer -# Purpose: support planty of ebuilds for trinity project (a kde3 fork). -# - -RESTRICT=network-sandbox -inherit trinity-functions cmake-utils base - -# FIXME we don't need to write to both -addwrite "/usr/qt/3/etc/settings" -addpredict "/usr/qt/3/etc/settings" -addwrite "/usr/tqt3/etc/settings" -addpredict "/usr/tqt3/etc/settings" - -# ban EAPI 0, 1 and 2 -case $EAPI in - 0|1|2|3|4) die "EAPI=${EAPI} is not supported" ;; - 5) ;; - *) die "Unknown EAPI=${EAPI}" -esac - -# @ECLASS-VARIABLE: BUILD_TYPE -# @DESCRIPTION: -# Determins he build type: live or release -if [[ ${PV} = *9999* ]]; then - BUILD_TYPE="live" -else - BUILD_TYPE="release" -fi -export BUILD_TYPE - -# @ECLASS-VARIABLE: TRINITY_MODULE_NAME -# @DESCRIPTION: -# The name of trinity module; It's used for multiple purposes. First of all it -# determines the tarball name (git repository for live packages) -echo "${TRINITY_MODULE_NAME:=${PN}}" >/dev/null - -# @ECLASS-VARIABLE: TRINITY_SCM -# @DESCRIPTION: -# Determins from what version control system code is chiking out for live -# ebuilds. - -# @ECLASS-VARIABLE: TMP_DOCDIR -# @DESCRIPTION: -# A temporary directory used to copy common documentation before installing it -# -# @ECLASS-VARIABLE: TRINTY_BASE_NO_INSTALL_DOC -# @DESCRIPTION: -# if setted to anything except "no" this variable prevents -# trinity-base_src_install() to install documentation -# - -# @ECLASS-VARIABLE: TRINTY_LANGS -# @DESCRIPTION: -# This is a whitespace-separated list of translations this ebuild supports. -# These translations are automatically added to IUSE. Therefore ebuilds must set -# this variable before inheriting any eclasses. To enable only selected -# translations, ebuilds must call enable_selected_linguas(). kde4-{base,meta}.eclass does -# this for you. - -# @ECLASS-VARIABLE: TRINTY_DOC_LANGS -# @DESCRIPTION: -# This is a whitespace-separated list of translations this ebuild supports. -# These translations are automatically added to IUSE. Therefore ebuilds must set -# this variable before inheriting any eclasses. To enable only selected -# translations, ebuilds must call enable_selected_linguas(). kde4-{base,meta}.eclass does -# this for you. - -# @ECLASS-VARIABLE: TRINITY_HANDBOOK -# @DESCRIPTION: -# Set to enable handbook in application. Possible values are 'always', 'optional' -# (handbook USE flag) and 'never'. -# This variable must be set before inheriting any eclasses. Defaults to 'never'. -# As well It ensures buildtime and runtime dependencies. -TRINITY_HANDBOOK="${TRINITY_HANDBOOK:-never}" - -# @ECLASS-VARIABLE: TRINITY_EXTRAGEAR_PACKAGING -# @DESCRIPTION: -# Set TRINITY_EXTRAGEAR_PACKAGING=yes before inheriting if the package use extragear-like -# packaging and then supports ${TRINITY_LANGS}, ${TRINITY_DOC_LANGS} and -# ${TRINITY_HANDBOOK} variables. The translations are found in the directory -# pointed by the TEG_PO_DIR variable. - -# @ECLASS-VARIABLE: TRINITY_GIT_MIRROR -# @DESCRIPTION: -# User (or ebuild) can decide another git mirror if it's needed; -# Defaults to http://scm.trinitydesktop.org/scm/git - -# @ECLASS-VARIABLE: TRINITY_GIT_BRANCH -# @DESCRIPTION: -# Specify git branch for live ebuilds. Default: master - -# @ECLASS-VARIABLE: TRINITY_COMMON_DOCS -# @DESCRIPTION: -# Common doc names that was found in trinity project's dirs. -TRINITY_COMMON_DOCS="AUTHORS BUGS CHANGELOG CHANGES COMMENTS COMPLIANCE COMPILING - CONFIG_FORMAT CONFIGURING COPYING COPYRIGHT CREDITS DEBUG DESIGN FAQ - HACKING HISTORY HOWTO IDEAS INSTALL LICENSE MAINTAINERS NAMING NEWS - NOTES PLUGINS PORTING README SECURITY-HOLES TASKGROUPS TEMPLATE - TESTCASES THANKS THOUGHTS TODO VERSION" - -# @ECLASS-VARIABLE: TRINITY_TARBALL -# @DESCRIPTION: -# This variable holds the name of the tarboll with current module's source code. - -# @ECLASS-VARIABLE: TRINITY_BASE_SRC_URI -# @DESCRIPTION: -# The top SRC_URI for all trinity packages -TRINITY_BASE_SRC_URI="http://www.mirrorservice.org/sites/trinitydesktop.org/trinity/releases/" -# TRINITY_BASE_SRC_URI="http://trinity.blackmag.net/releases" # the old one - -#reset TRINITY_SCM and inherit proper eclass -if [[ ${BUILD_TYPE} = live ]]; then - # set default TRINITY_SCM if not set - [[ -z "$TRINITY_SCM" ]] && TRINITY_SCM=git - - case ${TRINITY_SCM} in - git) inherit git-2 ;; - *) die "Unsupported TRINITY_SCM=${TRINITY_SCM}" ;; - esac - - #set some varyables - case ${TRINITY_SCM} in - git) - EGIT_REPO_URI="${TRINITY_GIT_MIRROR:=https://mirror.git.trinitydesktop.org/gitea/TDE}/${TRINITY_MODULE_NAME}" - EGIT_BRANCH="${TRINITY_GIT_BRANCH:=master}" - EGIT_PROJECT="trinity/${TRINITY_MODULE_NAME}" - EGIT_HAS_SUBMODULES="yes" - ;; - esac - S="${WORKDIR}/${TRINITY_MODULE_NAME}" -elif [[ "${BUILD_TYPE}" == release ]]; then - mod_name="${TRINITY_MODULE_NAME}" - mod_ver="${TRINITY_MODULE_VER:=${PV}}" - - case ${mod_ver} in - 3.5.13.1) - full_mod_name="${mod_name}-${mod_ver}" - TRINITY_TARBALL="${full_mod_name}.tar.gz" ;; - 3.5.13.2) - full_mod_name="${mod_name}-trinity-${mod_ver}" - TRINITY_TARBALL="${full_mod_name}.tar.xz" ;; - *) - full_mod_name="${mod_name}-${mod_ver}" - TRINITY_TARBALL="${full_mod_name}.tar.xz" - esac - - if [[ -n "${TRINITY_MODULE_TYPE}" ]] ; then - SRC_URI="${TRINITY_BASE_SRC_URI}/${mod_ver}/${TRINITY_MODULE_TYPE}/$TRINITY_TARBALL" - else - SRC_URI="${TRINITY_BASE_SRC_URI}/${mod_ver}/$TRINITY_TARBALL" - fi - - S="${WORKDIR}/${full_mod_name}" -else - die "Unknown BUILD_TYPE=${BUILD_TYPE}" -fi - - -if [[ -n "${TRINITY_EXTRAGEAR_PACKAGING}" ]]; then -# @ECLASS-VARIABLE: TEG_PO_DIR -# @DESCRIPTION: -# Change the translation directory for extragear packages. The default is ${S}/po - TEG_PO_DIR="${TEG_PO_DIR:-${S}/po}" - -# @ECLASS-VARIABLE: TEG_DOC_DIR -# @DESCRIPTION: -# Change the documentation directory for extragear packages. The default is -# ${S}/doc - TEG_DOC_DIR="${TEG_DOC_DIR:-${S}/doc}" - - if [[ -n "${TRINITY_LANGS}" || -n "${TRINITY_DOC_LANGS}" ]]; then - for lang in ${TRINITY_LANGS} ${TRINITY_DOC_LANGS}; do - IUSE="${IUSE} linguas_${lang}" - done - - trinityhandbookdepend=" - app-text/docbook-xml-dtd:4.2 - app-text/docbook-xsl-stylesheets - " - case ${TRINITY_HANDBOOK} in - yes | always) - DEPEDND+=" ${trinityhandbookdepend}" - ;; - optional) - IUSE+=" +handbook" - DEPEND+=" handbook? ( ${trinityhandbookdepend} )" - ;; - *) ;; - esac - fi -fi - -# @FUNCTION: trinity-base_src_unpack -# @DESCRIPTION: -# A default src unpack function to be call git-2_src_unpack either -trinity-base_src_unpack() { - if [[ ${BUILD_TYPE} = live ]]; then - case "${TRINITY_SCM}" in - - git) - git-2_src_unpack - ;; - *) die "TRINITY_SCM: ${TRINITY_SCM} is not supported by ${FUNCNAME}" ;; - esac - else - base_src_unpack - fi -} - - -# @FUNCTION: trinity-base_src_prepare -# @DESCRIPTION: -# General pre-configure and pre-compile function for Trinity applications. -trinity-base_src_prepare() { - debug-print-function ${FUNCNAME} "$@" - -# # Only enable selected languages, used for KDE extragear apps. -# if [[ -n ${KDE_LINGUAS} ]]; then -# enable_selected_linguas -# fi - local dir lang - - # SCM bootstrap - if [[ ${BUILD_TYPE} = live ]]; then - case ${TRINITY_SCM} in - svn) subversion_src_prepare ;; - git) ;; - *) die "TRINITY_SCM: ${TRINITY_SCM} is not supported by ${FUNCNAME}" - esac - fi - - # Apply patches - base_src_prepare - - # Handle documentation and translations for extragear packages - if [[ -n "$TRINITY_EXTRAGEAR_PACKAGING" ]]; then - # remove not selected languages - if [[ -n $TRINITY_LANGS ]]; then - einfo "Removing unselected translations from ${TEG_PO_DIR}" - for dir in $(find ${TEG_PO_DIR} -mindepth 1 -maxdepth 1 -type d ); do - lang="$(basename "$dir")" - if ! has "$lang" ${TRINITY_LANGS}; then - eerror "Translation $lang seems to present in the package but is not supported by the ebuild" - elif ! has $lang ${LINGUAS}; then - rm -rf $dir - fi - done - fi - - # if we removed all translations we should point it - if [[ -z $(find ${TEG_PO_DIR} -mindepth 1 -maxdepth 1 -type d) ]]; then - TRINITY_NO_TRANSLATIONS=yes - fi - - # remove not selected documentation - if [[ -n $TRINITY_DOC_LANGS ]]; then - einfo "Removing unselected documentation from ${TEG_DOC_DIR}" - for dir in $(find ${TEG_DOC_DIR} -mindepth 1 -maxdepth 1 -type d ); do - lang="$(basename "$dir")" - if [[ "$lang" == "${PN}" || \ - "$lang" == "${TRINITY_MODULE_NAME}" ]] ; then - echo -n; # do nothing it's main documentation - elif ! has "$lang" ${TRINITY_LANGS}; then - eerror "Documentation translated to language $lang seems to present in the package but is not supported by the ebuild" - elif ! has $lang ${LINGUAS}; then - rm -rf $dir - fi - done - fi - fi -} - - -# @FUNCTION: trinity-base_src_configure -# @DESCRIPTION: -# Call standart cmake-utils_src_onfigure and add some common arguments. -trinity-base_src_configure() { - debug-print-function ${FUNCNAME} "$@" - local eg_cmakeargs - - [[ -n "${PREFIX}" ]] && export PREFIX="${TDEDIR}" - - if [[ -n "$TRINITY_EXTRAGEAR_PACKAGING" ]]; then - eg_cmakeargs=( -DBUILD_ALL=ON ) - if [[ "$TRINITY_NO_TRANSLATIONS" == "yes" ]]; then - eg_cmakeargs=( -DBUILD_TRANSLATIONS=OFF "${eg_cmakeargs[@]}" ) - else - eg_cmakeargs=( -DBUILD_TRANSLATIONS=ON "${eg_cmakeargs[@]}" ) - fi - if [[ "${TRINITY_HANDBOOK}" == optional ]]; then - eg_cmakeargs=( - $(cmake-utils_use_with handbook DOC) - "${eg_cmakeargs[@]}" ) - fi - fi - - mycmakeargs=( - -DCMAKE_INSTALL_PREFIX="${EPREFIX}${TDEDIR}" - -DCMAKE_INSTALL_RPATH="${EPREFIX}${TDEDIR}" - $([[ "${TRINITY_NEED_ARTS}" == "optional" ]] && cmake-utils_use_with arts ARTS) - "${eg_cmakeargs[@]}" - "${mycmakeargs[@]}" - ) - cmake-utils_src_configure -} - -# @FUNCTION: trinity-base_src_compile -# @DESCRIPTION: -# Just call cmake-utils_src_compile. -trinity-base_src_compile() { - debug-print-function ${FUNCNAME} "$@" - - cmake-utils_src_compile -} - -# @FUNCTION: trinity-base_src_install -# @DESCRIPTION: -# Call standart cmake-utils_src_install and installs common documentation. -trinity-base_src_install() { - debug-print-function ${FUNCNAME} "$@" - cmake-utils_src_install - - trinity-base_fix_desktop_files - if [[ -z "$TRINITY_BASE_NO_INSTALL_DOC" || - "$TRINITY_BASE_NO_INSTALL_DOC" == "no" ]]; then - trinity-base_create_tmp_docfiles - trinity-base_install_docfiles - fi -} - -# @FUNCTION: trinity-base_create_tmp_docfiles -# @DESCRIPTION: -# Create docfiles in the form ${TMP_DOCDIR}/path.to.docfile.COMMON_NAME -# Also see the description for TRINITY_COMMON_DOCS and TMP_DOCDIR. -trinity-base_create_tmp_docfiles() { - debug-print-function ${FUNCNAME} "$@" - local srcdirs dir docfile targetdoc - - if [[ -z "$TMP_DOCDIR" || ! -d "$TMP_DOCDIR" ]] ; then - TMP_DOCDIR="$T/docs" - mkdir -p ${TMP_DOCDIR} - fi - - if [[ -z "$@" ]] ; then - srcdirs="./" - else - srcdirs="$@" - fi - - einfo "Generating documentation list..." - for dir in $srcdirs; do - for doc in ${TRINITY_COMMON_DOCS}; do - for docfile in $(find $dir -type f -name "*${doc}*"); do - targetdoc="${docfile//\//.}" - targetdoc="${targetdoc#..}" - cp "${docfile}" "$TMP_DOCDIR/${targetdoc}" - done - done - done - -# if [[ "${TRINITY_INSTALL_ROOT_DOCS}" == "yes" && " ${srcdirs} " == "* ./ *" ]]; then -# for doc in ${TRINITY_COMMON_DOCS}; do -# for docfile in $(ls ./"*${doc}*"); do -# targetdoc="${docfile//\//.}" -# targetdoc="${targetdoc#..}" -# cp "${docfile}" "$TMP_DOCDIR/${targetdoc}" -# done -# done -# fi -} - -# @FUNCTION: trinity-base_install_docfiles -# @DESCRIPTION: -# Install documentation from ${TMP_DOCDIR} or from first argument. -trinity-base_install_docfiles() { - debug-print-function ${FUNCNAME} "$@" - local doc docdir - [[ -n "$TMP_DOCDIR" ]] && docdir="$TMP_DOCDIR" - [[ -n "$1" ]] && docdir="$1" - [[ -z "$docdir" ]] && die "docdir is not set in ${FUNCNAME}." - - pushd "${docdir}" >/dev/null - find . -maxdepth 1 -type f | while read doc; do - einfo "Installing documentation: ${doc##*/}" - dodoc "${doc}" - done - popd >/dev/null -} - -# @FUNCTION: trinity-base_fix_desktop_files -# @DESCRIPTION: -# Perform desktop files modifications according to current version. You can pass -# either desktop files or direcories to the parametrs. In case you'd pass a -# directory the function will recursively search for all desktop files and -# modify them. If no argument specified the function assume to work on the ${D}; -trinity-base_fix_desktop_files() { - - # Test if we have to perform any file fixing for current version - case "3.5" in - *${TRINITY_VER}*);; - *) return 0 ;; - esac - - local file_list dir_list f - - if [ "$#" != 0 ]; then - # Get directories and files from arguments - for f in $@; do - if [ -f "$f" ]; then - file_list+=" $f" - elif [ -d "$f" ]; then - dir_list+=" $f" - else - eerror "${FUNCNAME}: bad argument type: $(stat -c %F "$f")" - fi - done - else - dir_list="${D}" - fi - - # Recursivly search for desktop files in directories - for f in $dir_list; do - file_list+="$(find ${f} -type f -name '*.desktop')" - done - - # Performe the updates - case "${TRINITY_VER}" in - 3.5) - for f in $file_list; do - sed -i '/^OnlyShowIn=/s/KDE/TDE/g' "$f" - done;; - esac -} - -EXPORT_FUNCTIONS src_configure src_compile src_install src_prepare diff --git a/eclass/trinity-functions.eclass b/eclass/trinity-functions.eclass deleted file mode 100644 index 6e15321d..00000000 --- a/eclass/trinity-functions.eclass +++ /dev/null @@ -1,205 +0,0 @@ -# Copyright 1999-2013 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: $ - -# -# Original Author: Alexander Golubev (Fat-Zer) -# Purpose: basic trinity functions and variables -# - -inherit versionator multilib - -TRINITY_LIVEVER="14.0.0" - -# @FUNCTION: set-trinityver -# @USAGE: < version > -# @DESCRIPTION: -# Sets the right TRINITY_VER, TDEDIR etc... -# !!! unfinished -set-trinityver() { - debug-print-function $FUNCNAME "$@" - - # set install location: - # - 3rd party apps go into /usr, and have SLOT="0". - # - kde-base category ebuilds go into /usr/kde/$MAJORVER.$MINORVER, - # and have SLOT="$MAJORVER.$MINORVER". - # - This function exports $PREFIX (location to install to) and $KDEDIR - # (location of kdelibs to link against) for all ebuilds. - # - # -- Overrides - deprecated but working for now: -- - # - If $KDEPREFIX is defined (in the profile or env), it overrides everything - # and both base and 3rd party kde stuff goes in there. - # - If $KDELIBSDIR is defined, the kdelibs installed in that location will be - # used, even by kde-base packages. - - # get version elements - if [[ -n "$1" ]]; then - ETRINITY_VER="$1" - else - ETRINITY_VER="$PV" - fi - - case "$ETRINITY_VER" in - 3.* ) - export TRINITY_VER="$(get_version_component_range 1-2 "${ETRINITY_VER}")" ;; - 9999 ) - export TRINITY_VER="$(get_major_version "$TRINITY_LIVEVER" )" ;; - * ) - export TRINITY_VER="$(get_major_version "$ETRINITY_VER" )" ;; - esac - - export TDEDIR="/usr/trinity/${TRINITY_VER}" - export TDEDIRS="/usr/trinity/${TRINITY_VER}" - - # 3.5.x still uses KDE* variables - if [ "${TRINITY_VER}" = "3.5" ]; then - export KDEDIR="$TDEDIR" - export KDEDIRS="$TDEDIRS" - fi - - # this sould solve problems like "cannot find libraries" espessialy when - # compiling kdelibs - # NOTE: That can breaks compilation of tdelibs: - # binaries which runs during compilation are tring to load shared - # libraries from the TDE's directory wich may be broken. - # TODO: fix that issue for tdelibs - adjust-trinity-paths -} - -# @FUNCTION: get-trinity-libdirs -# @USAGE: -# @DESCRIPTION: -# lists all the trinity library directories -get-trinity-libdirs() { - local rv - for libdir in $(get_all_libdirs); do - echo " ${TDEDIR}/${libdir}" - done -} - -# @FUNCTION: adjust-trinity-paths -# @USAGE: < version > -# @DESCRIPTION: -# Adjust PATH LDPATH and LD_LIBRARY_PATH to see only current trinity version -adjust-trinity-paths() { - debug-print-function $FUNCNAME "$@" - local libdir - - # this function can be called during depend phase so we shouldn't use sed here - PATH="$(trinity_remove_path_component "$PATH" "/usr/trinity/*/bin")" - PATH="$(trinity_remove_path_component "$PATH" "/usr/trinity/*/sbin")" - PATH="$(trinity_prepand_path_component "$PATH" "${TDEDIR}/bin" )" - - # FIXME: it seems we don't need LDPATH -# LDPATH="$(trinity_remove_path_component "$LDPATH" "/usr/trinity/*/${libdir}")" - LD_LIBRARY_PATH="$(trinity_remove_path_component "$LD_LIBRARY_PATH" "/usr/trinity/*/${libdir}")" - for libdir in $(get-trinity-libdirs); do -# LDPATH="$(trinity_prepand_path_component "$LDPATH" "${TDEDIR}/${libdir}" )" - LD_LIBRARY_PATH="$(trinity_prepand_path_component "$LD_LIBRARY_PATH" "${libdir}" )" - done - - export PATH - export LD_LIBRARY_PATH - - # Unset home paths so aplications wouldn't try to write to root's dir while build - unset TDEHOME - unset TDEROOTHOME -} - -trinity_remove_path_component() { - local i new_path path_array - - IFS=: read -ra path_array <<< "$1" - for i in "${path_array[@]}"; do - case "$i" in - $2 ) ;; # delete specyfied entry - "" ) ;; - * ) new_path="${new_path}:${i}" ;; - esac - done - - echo "${new_path#:}" -} - -trinity_prepand_path_component() { - local new_path - - new_path="${2%:}:${1#:}" - echo "${new_path%:}" -} - -# @FUNCTION: need-trinity -# @USAGE: < version > -# @DESCRIPTION: -# Sets the correct DEPEND and RDEPEND for the needed trinity < version >. -need-trinity() { - debug-print-function $FUNCNAME "$@" - - local my_depend - - # determine install locations - set-trinityver $1 - adjust-trinity-paths - - case "$1" in - 3.5*) - my_depend=">=trinity-base/kdelibs-${ETRINITY_VER}:3.5";; - *) - my_depend=">=trinity-base/tdelibs-${ETRINITY_VER}:${TRINITY_VER}";; - esac - - DEPEND="$DEPEND $my_depend" - RDEPEND="$RDEPEND $my_depend" -} - -# @ECLASS-VARIABLE: TRINITY_NEED_ARTS -# @DESCRIPTION: -# This variable is setted by need-arts function. Possible arguments values 'yes', 'no' and 'optional' -# Default is 'no' -TRINITY_NEED_ARTS="no" - -# @FUNCTION: need-arts -# @USAGE: need-arts -# @DESCRIPTION: -# This function adds DEPEND's for aRTs-support Possible arguments are 'yes' and 'optinal' -# 'yes' means arts is required, optional' results in USE flag arts. -# NOTE: this function modifies IUSE DEPEND and RDEPEND variables, so if you call it before setting -# those variables don't forget to include the priviously setted value into them. -need-arts() { - debug-print-function $FUNCNAME "$@" - - local tdelibs my_depend - - [[ -z "${1}" ]] && die "$FUNCNAME requires an argument" - - TRINITY_NEED_ARTS=$1; - - case "${TRINITY_VER}" in - "") die "You must call set-trinityver unctions to set TRINITY_VER before calling $FUNCNAME.";; - 3.5*) tdelibs="trinity-base/kdelibs";; - *) tdelibs="trinity-base/tdelibs";; - esac - - # handle trinity-base/tdelibs in special way - if [[ "${CATEGORY}/${PN}" == "${tdelibs}" ]]; then - if [[ "$1" == optional ]]; then - my_depend=" arts? ( trinity-base/arts )" - IUSE+=" arts" - else - die "aRTs support for ${tdelibs} supposed to be optional" - fi - else - case "$1" in - yes) my_depend=" trinity-base/arts - ${tdelibs}[arts]" ;; - optional) my_depend=" arts? ( trinity-base/arts - ${tdelibs}[arts] )" - IUSE+=" arts" ;; - *) die "bad parameter: $1" - esac - fi - - DEPEND+=" ${my_depend}"; - RDEPEND+=" ${my_depend}"; -} - diff --git a/eclass/trinity-meta.eclass b/eclass/trinity-meta.eclass deleted file mode 100644 index b6ddb073..00000000 --- a/eclass/trinity-meta.eclass +++ /dev/null @@ -1,262 +0,0 @@ -# Copyright 1999-2013 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: $ - -# -# Original Author: fat-zer -# Purpose: make easy to install trinity ebuilds. -# - -inherit trinity-base trinity-functions cmake-utils - -LICENSE="GPL-2 LGPL-2" -HOMEPAGE="http://www.trinitydesktop.org/" - -# set slot, TDEDIR, TRINITY_VER and PREFIX -set-trinityver -[[ -z "$SLOT" ]] && SLOT="$TRINITY_VER" - -if [[ "$TRINITY_VER" == "3.5" ]]; then -# common dependencies - DEPEND="trinity-base/kdelibs:${SLOT}" -else - DEPEND="trinity-base/tdelibs:${SLOT}" -fi - -# @FUNCTION: trinity-meta_set_trinity_submodule -# @DESCRIPTION: -# sets the TRINITY_SUBMODULE variable to vth value aptained from ${PN} -# if it doesn't set yet -trinity-meta_set_trinity_submodule() { - debug-print-function $FUNCNAME "$@" - - if [[ -z "$TRINITY_SUBMODULE" ]]; then - TRINITY_SUBMODULE="${PN#${TRINITY_MODULE_NAME}-}" - fi -} - -# @FUNCTION: trinity-meta_src_pkg_setup -# @DESCRIPTION: -# Default pkg_setup function. It sets the correct ${S} -# nessecary files. -trinity-meta_pkg_setup() { - debug-print-function ${FUNCNAME} "$@" - adjust-trinity-paths - - trinity-meta_set_trinity_submodule -} - -# @FUNCTION: trinity-meta_src_unpack -# @DESCRIPTION: -# Default source extract function. It tries to unpack only -# nessecary files. -trinity-meta_src_unpack() { - debug-print-function ${FUNCNAME} "$@" - - if [[ ${BUILD_TYPE} = live ]]; then - case "${TRINITY_SCM}" in - svn) - mkdir -p "$S" - ESVN_RESTRICT="export" subversion_src_unpack - subversion_wc_info - subversion_bootstrap - ;; - git) - git-2_src_unpack - ;; - *) die "TRINITY_SCM: ${TRINITY_SCM} is not supported by ${FUNCNAME}" ;; - esac - fi - trinity-meta_src_extract -} - -# @FUNCTION: trinity-meta_src_extract -# @DESCRIPTION: -# A function to extract the source for a split KDE ebuild. -# Also see KMMODULE, KMEXTRACT -trinity-meta_src_extract() { - debug-print-function ${FUNCNAME} "$@" - - trinity-meta_create_extractlists - - if [[ "${BUILD_TYPE}" = live ]]; then - einfo "Exporting parts of working copy to ${S}" - case "$TRINITY_SCM" in - svn) trinity-meta_rsync_copy ;; - git) # we nothing can do to prevent git from unpacking code - ;; - *) die "TRINITY_SCM: ${TRINITY_SCM} is not supported by ${FUNCNAME}" - esac - else - local tarfile tarparams f extractlist - - case $TRINITY_TARBALL in - *.gz) - tarparams=" --gzip" - ;; - *.xz) - tarparams=" --xz" - ;; - esac - - # Full path to source tarball - tarfile="${DISTDIR}/${TRINITY_TARBALL}" - - # Detect real toplevel dir from tarball name - it will be used upon extraction - topdir="${TRINITY_TARBALL%.tar.*}" - - ebegin "Unpacking parts of ${TRINITY_TARBALL} to ${WORKDIR}" - - for f in $TSM_EXTRACT_LIST; do - extractlist+=" ${topdir}/${f}" - done - - tar -xpf "${tarfile}" ${tarparams} -C "${WORKDIR}" ${extractlist} 2> /dev/null \ - || echo "tar extract command failed at least partially - continuing anyway" - - # Make sure $S points to right place - [[ "${WORKDIR}/${topdir}" != "${S}" ]] && S="${WORKDIR}/${topdir}" - fi -} - -# @FUNCTION: trinity-meta_rsync_copy -# @DESCRIPTION: -# Copies files from svn or git repository to $S -trinity-meta_rsync_copy() { - debug-print-function ${FUNCNAME} "$@" - - local rsync_options subdir targetdir wc_path escm - case "${TRINITY_SCM}" in - svn) wc_path="${ESVN_WC_PATH}";; - git) wc_path="${EGIT_STORE_DIR}/${EGIT_PROJECT}";; - *) die "TRINITY_SCM: ${TRINITY_SCM} is not supported by ${FUNCNAME}" ;; - esac - - rsync_options="--group --links --owner --perms --quiet --exclude=.svn/ --exclude=.git/" - - # Copy ${TRINITY_MODULE_NAME} non-recursively (toplevel files) - rsync ${rsync_options} "${wc_path}"/* "${S}" \ - || die "rsync: can't export toplevel files to '${S}'." - # Copy cmake directory - if [[ -d "${wc_path}/cmake" ]]; then - rsync --recursive ${rsync_options} "${wc_path}/cmake" "${S}" \ - || die "rsync: can't export cmake files to '${S}'." - fi - # Copy all subdirectories listed in $TSM_EXTRACT_LIST - for subdir in ${TSM_EXTRACT_LIST}; do - rsync --recursive ${rsync_options} "${wc_path}/${subdir}" \ - "${S}/$(dirname subdir)" \ - || die "rsync: can't export object '${wc_path}/${subdir}' to '${S}'." - done -} - -# @FUNCTION: trinity-meta_create_extractlists -# @DESCRIPTION: -# Create lists of files and subdirectories to extract. -# Also see descriptions of KMMODULE and KMEXTRACT -trinity-meta_create_extractlists() { - debug-print-function ${FUNCNAME} "$@" - local submod - - # if $TSM_EXTRACT is not set assign it to dirs named in TRINITY_SUBMODULE - if [ -z "${TSM_EXTRACT}" ]; then - for submod in ${TRINITY_SUBMODULE}; do - TSM_EXTRACT="${TSM_EXTRACT} ${submod}/" - done - fi - - # add package-specific files and directories - case "${TRINITY_MODULE_NAME}" in - kdebase) TSM_EXTRACT_LIST+=" kcontrol/ kdmlib/" ;; - tdebase) TSM_EXTRACT_LIST+=" kcontrol/" ;; - *) ;; # nothing special for over modules -# *) die "TRINITY_MODULE_NAME ${TRINITY_MODULE_NAME} is not supported by function ${FUNCNAME}" ;; - esac - - TSM_EXTRACT_LIST+=" ${TSM_EXTRACT} ${TSM_EXTRACT_ALSO} cmake/ CMakeLists.txt" - TSM_EXTRACT_LIST+=" config.h.cmake ConfigureChecks.cmake" - - debug-print "line ${LINENO} ${ECLASS} ${FUNCNAME}: TSM_EXTRACT_LIST=\"${TSM_EXTRACT_LIST}\"" -} - -# @FUNCTION: trinity-meta_src_prepare -# @DESCRIPTION: -# Default src prepare function. Currently it's only a stub. -trinity-meta_src_prepare() { - debug-print-function ${FUNCNAME} "$@" - local shared_patch_dir f f_name; - - shared_patch_dir="${FILESDIR}/shared/${TRINITY_MODULE_NAME}-${PV}/patches/" - if [ -d "${shared_patch_dir}" ]; then - find "${shared_patch_dir}" -type f | while read f; do - f_name="$(basename "${f}")" - case "${f_name}" in - *.diff | *.patch ) epatch "${f}" ;; - *.gz ) cp "${f}" "${T}" - gunzip ${T}/${f_name} - epatch ${T}/${f_name%.gz} - ;; - *.bz2 ) cp "${f}" "${T}" - bunzip2 ${T}/${f_name} - epatch ${T}/${f_name%.bz2} - ;; - *) die "unknown patch type in the patch directory" ;; - esac - done; - fi - -# fix bad cmake code fo 3.5.13.1 - if [ $PV == "3.5.13.1" ]; then - [ -f "cmake/modules/FindTDE.cmake" ] && \ - sed -ie 's!HINTS\s\+${\w*BIN\w*}!HINTS "${TDE_PREFIX}/bin" ${BIN_INSTALL_DIR}!' \ - cmake/modules/FindTDE.cmake - fi - - trinity-base_src_prepare -} - -# @FUNCTION: trinity-meta_src_configure -# @DESCRIPTION: -# Default source configure function. It sets apropriate cmake args. -# Also see description of KMMODULE -trinity-meta_src_configure() { - debug-print-function ${FUNCNAME} "$@" - - local item tsmargs mod - - for item in $TRINITY_SUBMODULE; do - mod="${item^^}" - mod="${mod//-/_}" - tsmargs+=" -DBUILD_${mod}=ON" - done - - mycmakeargs=( - "${mycmakeargs[@]}" - ${tsmargs} - ) - - trinity-base_src_configure -} - -# @FUNCTION: trinity-meta_src_compile -# @DESCRIPTION: -# Just call trinity-base_src_compile. -trinity-meta_src_compile() { - debug-print-function ${FUNCNAME} "$@" - - trinity-base_src_compile -} - -# @FUNCTION: trinity-meta_src_install -# @DESCRIPTION: -# Call default cmake install function. and install documentation. -trinity-meta_src_install() { - debug-print-function ${FUNCNAME} "$@" - - TRINITY_BASE_NO_INSTALL_DOC="yes" trinity-base_src_install - - trinity-base_create_tmp_docfiles $TSM_EXTRACT - trinity-base_install_docfiles -} - -EXPORT_FUNCTIONS src_prepare src_configure src_compile src_install src_unpack pkg_setup