diff options
| author | Andreas Sturmlechner <andreas.sturmlechner@gmail.com> | 2016-07-10 17:56:43 +0200 |
|---|---|---|
| committer | Johannes Huber <johu@gentoo.org> | 2016-07-13 20:21:52 +0200 |
| commit | 2735d6b7ff0f201c36ffed7055032cf540dfcf82 (patch) | |
| tree | 1a36c8d00f66a64bc9463e9c508abf50cd8cf946 | |
| parent | 77054202886bf129dd1c088792e9fb3089a10a3c (diff) | |
| download | kde-2735d6b7ff0f201c36ffed7055032cf540dfcf82.tar.gz kde-2735d6b7ff0f201c36ffed7055032cf540dfcf82.tar.bz2 kde-2735d6b7ff0f201c36ffed7055032cf540dfcf82.zip | |
kde5.eclass: Add KDEBASE=kdel10n and helper functions
Signed-off-by: Johannes Huber <johu@gentoo.org>
| -rw-r--r-- | eclass/kde5.eclass | 90 | ||||
| -rw-r--r-- | kde-apps/kde4-l10n/files/kde4-l10n-16.04.2-remove-dirs | 44 |
2 files changed, 134 insertions, 0 deletions
diff --git a/eclass/kde5.eclass b/eclass/kde5.eclass index b285f6d12d0..763029c8137 100644 --- a/eclass/kde5.eclass +++ b/eclass/kde5.eclass @@ -99,6 +99,16 @@ else : ${KDE_TEST:=false} fi +# @ECLASS-VARIABLE: KDE_L10N +# @DESCRIPTION: +# This is an array of translations this ebuild supports. These translations +# are automatically added to IUSE. +if [[ ${KDEBASE} = kdel10n ]]; then + if [[ -n ${KDE_L10N} ]]; then + IUSE="${IUSE} $(printf 'l10n_%s ' ${KDE_L10N[@]})" + fi +fi + # @ECLASS-VARIABLE: KDE_PIM_KEEP_SUBDIR # @DESCRIPTION: # If building a split package from KMNAME="kdepim", provide a list of @@ -129,6 +139,8 @@ KDE_UNRELEASED=( ) if [[ ${KDEBASE} = kdevelop ]]; then HOMEPAGE="https://www.kdevelop.org/" +elif [[ ${KDEBASE} = kdel10n ]]; then + HOMEPAGE="http://l10n.kde.org" elif [[ ${KMNAME} = kdepim ]]; then HOMEPAGE="https://www.kde.org/applications/office/kontact/" else @@ -331,6 +343,21 @@ _calculate_src_uri() { esac fi + if [[ ${KDEBASE} = kdel10n ]] ; then + local uri_base="${SRC_URI/${PN}-${PV}.tar.xz/}kde-l10n/kde-l10n" + SRC_URI="" + for my_l10n in ${KDE_L10N[@]} ; do + case ${my_l10n} in + sr | sr-ijekavsk | sr-Latn-ijekavsk | sr-Latn) + SRC_URI="${SRC_URI} l10n_${my_l10n}? ( ${uri_base}-sr-${PV}.tar.xz )" + ;; + *) + SRC_URI="${SRC_URI} l10n_${my_l10n}? ( ${uri_base}-$(kde_l10n2lingua ${my_l10n})-${PV}.tar.xz )" + ;; + esac + done + fi + if _kde_is_unreleased ; then RESTRICT+=" fetch" fi @@ -443,6 +470,14 @@ kde5_src_unpack() { git-r3_src_unpack ;; esac + elif [[ ${KDEBASE} = kdel10n ]]; then + mkdir -p "${S}" || die "Failed to create source dir ${S}" + cd "${S}" + for my_tar in ${A}; do + tar -xpf "${DISTDIR}/${my_tar}" --xz \ + "${my_tar/.tar.xz/}/CMakeLists.txt" "${my_tar/.tar.xz/}/5" 2> /dev/null || + elog "${my_tar}: tar extract command failed at least partially - continuing" + done else default fi @@ -454,6 +489,32 @@ kde5_src_unpack() { kde5_src_prepare() { debug-print-function ${FUNCNAME} "$@" + if [[ ${KDEBASE} = kdel10n ]]; then + # move known variant subdirs to root dir, currently sr@* + use_if_iuse l10n_sr-ijekavsk && _l10n_variant_subdir2root sr-ijekavsk sr + use_if_iuse l10n_sr-Latn-ijekavsk && _l10n_variant_subdir2root sr-Latn-ijekavsk sr + use_if_iuse l10n_sr-Latn && _l10n_variant_subdir2root sr-Latn sr + if use_if_iuse l10n_sr; then + rm -rf kde-l10n-sr-${PV}/5/sr/sr@* || die "Failed to cleanup L10N=sr" + _l10n_variant_subdir_buster sr + elif [[ -d kde-l10n-sr-${PV} ]]; then + # having any variant selected means parent lingua will be unpacked as well + rm -r kde-l10n-sr-${PV} || die "Failed to remove sr parent lingua" + fi + + # add all l10n directories to cmake + cat <<-EOF > CMakeLists.txt || die +project(${PN}) +cmake_minimum_required(VERSION 2.8.12) +$(printf "add_subdirectory( %s )\n" \ + `find . -mindepth 1 -maxdepth 1 -type d | sed -e "s:^\./::"`) +EOF + + # drop KDE4-based part + find -maxdepth 2 -type f -name CMakeLists.txt -exec \ + sed -i -e "/add_subdirectory(4)/ s/^/#DONT/" {} + || die + fi + cmake-utils_src_prepare # only build examples when required @@ -729,4 +790,33 @@ kde5_pkg_postrm() { xdg_pkg_postrm } +_l10n_variant_subdir2root() { + local lingua=$(kde_l10n2lingua ${1}) + local src=kde-l10n-${2}-${PV} + local dest=kde-l10n-${lingua}-${PV}/5 + + # create variant rootdir structure from parent lingua and adapt it + mkdir -p ${dest} || die "Failed to create ${dest}" + mv ${src}/5/${2}/${lingua} ${dest}/${lingua} || die "Failed to create ${dest}/${lingua}" + cp -f ${src}/CMakeLists.txt kde-l10n-${lingua}-${PV} || die "Failed to prepare L10N=${1} subdir" + echo "add_subdirectory(${lingua})" > ${dest}/CMakeLists.txt || + die "Failed to prepare ${dest}/CMakeLists.txt" + cp -f ${src}/5/${2}/CMakeLists.txt ${dest}/${lingua} || + die "Failed to create ${dest}/${lingua}/CMakeLists.txt" + sed -e "s/${2}/${lingua}/" -i ${dest}/${lingua}/CMakeLists.txt || + die "Failed to prepare ${dest}/${lingua}/CMakeLists.txt" + + _l10n_variant_subdir_buster ${1} +} + +_l10n_variant_subdir_buster() { + local dir=kde-l10n-$(kde_l10n2lingua ${1})-${PV}/5/$(kde_l10n2lingua ${1}) + + sed -e "/^add_subdirectory(/d" -i ${dir}/CMakeLists.txt || die "Failed to cleanup ${dir} subdir" + + for subdir in $(find ${dir} -mindepth 1 -maxdepth 1 -type d | sed -e "s:^\./::"); do + echo "add_subdirectory(${subdir##*/})" >> ${dir}/CMakeLists.txt + done +} + fi diff --git a/kde-apps/kde4-l10n/files/kde4-l10n-16.04.2-remove-dirs b/kde-apps/kde4-l10n/files/kde4-l10n-16.04.2-remove-dirs new file mode 100644 index 00000000000..f09bf822b4a --- /dev/null +++ b/kde-apps/kde4-l10n/files/kde4-l10n-16.04.2-remove-dirs @@ -0,0 +1,44 @@ +# Disable any subdirectories listed here. Comments are ignored +# First argument: parent directory +# Second argument: which subdirectory to disable in CMakeLists.txt +# kde-l10n 5 +data/kdeedu khangman +docs/applications kate +docs/applications konsole +docs/applications kwrite +docs/kde-runtime glossary +docs/kde-runtime khelpcenter +docs/kdeedu kig +docs/kdeedu parley +docs/kdeedu step +docs/kdegames bomber +docs/kdegraphics gwenview +docs/kdegraphics kruler +docs/kdesdk kapptemplate +docs/kdesdk okteta +docs/kdesdk umbrello +docs/kdeutils kwalletmanager +scripts kdeedu +# Plasma 5 +docs kde-workspace +docs/kde-runtime fundamentals +docs/kde-runtime kdesu +docs/kde-runtime khelpcenter +docs/kde-runtime knetattach +docs/kde-runtime onlinehelp +docs/kde-runtime/kcontrol bookmarks +docs/kde-runtime/kcontrol cookies +docs/kde-runtime/kcontrol ebrowsing +docs/kde-runtime/kcontrol emoticons +docs/kde-runtime/kcontrol icons +docs/kde-runtime/kcontrol kcmcgi +docs/kde-runtime/kcontrol kcm_ssl +docs/kde-runtime/kcontrol nepomuk +docs/kde-runtime/kcontrol smb +docs/kde-runtime/kcontrol trash +docs/kde-runtime/kcontrol useragent +messages kde-workspace +messages kdeplasma-addons +# kdepim-l10n 5 +docs kdepim +docs kdepimlibs |
