diff options
Diffstat (limited to 'eclass/trinity-base.eclass')
-rw-r--r-- | eclass/trinity-base.eclass | 440 |
1 files changed, 0 insertions, 440 deletions
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 |