diff options
| author | Andreas Sturmlechner <andreas.sturmlechner@gmail.com> | 2016-07-10 18:01:26 +0200 |
|---|---|---|
| committer | Johannes Huber <johu@gentoo.org> | 2016-07-13 20:21:52 +0200 |
| commit | 97e5b2da06082c1f7c0c83bd03058eb2c96921d6 (patch) | |
| tree | 28094135f20f44c2f3fc6379545704f0b735ee9b | |
| parent | 0ab2dfdff29b75efe16a6c1511b30160b66a891d (diff) | |
| download | kde-97e5b2da06082c1f7c0c83bd03058eb2c96921d6.tar.gz kde-97e5b2da06082c1f7c0c83bd03058eb2c96921d6.tar.bz2 kde-97e5b2da06082c1f7c0c83bd03058eb2c96921d6.zip | |
kde-apps/kde4-l10n: Merge kde5.eclass changes here, fix file collisions
Gentoo-bug: 588436
Also, bail out if files are missing.
Package-Manager: portage-2.2.28
Signed-off-by: Johannes Huber <johu@gentoo.org>
| -rw-r--r-- | kde-apps/kde4-l10n/files/kde4-l10n-16.04.1-remove-dirs | 43 | ||||
| -rw-r--r-- | kde-apps/kde4-l10n/kde4-l10n-16.04.3.ebuild | 107 |
2 files changed, 77 insertions, 73 deletions
diff --git a/kde-apps/kde4-l10n/files/kde4-l10n-16.04.1-remove-dirs b/kde-apps/kde4-l10n/files/kde4-l10n-16.04.1-remove-dirs deleted file mode 100644 index 9563950b6ac..00000000000 --- a/kde-apps/kde4-l10n/files/kde4-l10n-16.04.1-remove-dirs +++ /dev/null @@ -1,43 +0,0 @@ -# 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 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 diff --git a/kde-apps/kde4-l10n/kde4-l10n-16.04.3.ebuild b/kde-apps/kde4-l10n/kde4-l10n-16.04.3.ebuild index 57b27d61b7d..4e5b4931304 100644 --- a/kde-apps/kde4-l10n/kde4-l10n-16.04.3.ebuild +++ b/kde-apps/kde4-l10n/kde4-l10n-16.04.3.ebuild @@ -8,7 +8,7 @@ KDE_HANDBOOK="optional" KMNAME="kde-l10n" inherit kde4-base -DESCRIPTION="KDE internationalization package" +DESCRIPTION="KDE legacy internationalization package" HOMEPAGE="http://l10n.kde.org" KEYWORDS="~amd64 ~arm ~x86" @@ -20,23 +20,46 @@ RDEPEND=" >=kde-apps/kde-l10n-${PV} " -REMOVE_DIRS="${FILESDIR}/${PN}-16.04.1-remove-dirs" +REMOVE_DIRS="${FILESDIR}/${PN}-16.04.2-remove-dirs" REMOVE_MSGS="${FILESDIR}/${PN}-16.03.91-remove-messages" # /usr/portage/distfiles $ ls -1 kde-l10n-*-${PV}.* |sed -e 's:-${PV}.tar.xz::' -e 's:kde-l10n-::' |tr '\n' ' ' -MY_LANGS="ar ast bg bs ca ca@valencia cs da de el en_GB eo es et eu fa fi fr ga -gl he hi hr hu ia id is it ja kk km ko lt lv mr nb nds nl nn pa pl pt pt_BR ro -ru sk sl sr sv tr ug uk wa zh_CN zh_TW" +# Make this correspond with kde5.eclass; important: L10N, not LINGUAS here! +KDE_L10N=( + ar ast bg bs ca ca-valencia cs da de el en-GB eo es et eu fa fi fr ga + gl he hi hr hu ia id is it ja kk km ko lt lv mr nb nds nl nn pa pl pt pt-BR ro + ru sk sl sr sr-ijekavsk sr-Latn sr-Latn-ijekavsk sv tr ug uk wa zh-CN zh-TW +) # TODO: Drop no-op +minimal in 16.08.x - necessary kde5.eclass change happened after KF-5.23/Plasma-5.6.5 -IUSE="+minimal test $(printf 'l10n_%s ' ${MY_LANGS//[@_]/-})" +IUSE="+minimal test $(printf 'l10n_%s ' ${KDE_L10N[@]})" URI_BASE="${SRC_URI/-${PV}.tar.xz/}" -LURI_BASE="mirror://kde/stable/${LV}/src/${KMNAME}" SRC_URI="" -for MY_LANG in ${MY_LANGS} ; do - SRC_URI="${SRC_URI} l10n_${MY_LANG/[@_]/-}? ( ${URI_BASE}/${KMNAME}-${MY_LANG}-${PV}.tar.xz )" +kde_l10n2lingua() { + local l + for l; do + case ${l} in + ca-valencia) echo ca@valencia;; + sr-ijekavsk) echo sr@ijekavian;; + sr-Latn-ijekavsk) echo sr@ijekavianlatin;; + sr-Latn) echo sr@latin;; + uz-Cyrl) echo uz@cyrillic;; + *) echo "${l/-/_}";; + esac + done +} + +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}/${KMNAME}-sr-${PV}.tar.xz )" + ;; + *) + SRC_URI="${SRC_URI} l10n_${my_l10n}? ( ${URI_BASE}/${KMNAME}-$(kde_l10n2lingua ${my_l10n})-${PV}.tar.xz )" + ;; + esac done S="${WORKDIR}" @@ -47,7 +70,7 @@ pkg_setup() { elog "None of the requested L10N are supported by ${P}." elog elog "${P} supports these language codes:" - elog "${MY_LANGS//[@_]/-}" + elog "${KDE_L10N[@]}" elog fi [[ -n ${A} ]] && kde4-base_pkg_setup @@ -65,24 +88,16 @@ src_prepare() { default [[ -n ${A} ]] || return - # L10N=sr variants are subdirs within sr/ ... - if [[ -d "${KMNAME}-sr-${PV}" ]] ; then - for variant in "${KMNAME}"-sr-${PV}/4/sr/sr@*; do - mkdir -p "${KMNAME}-${variant##*/}-${PV}/4" || - die "Failed to create L10N=${variant##*/} subdir" - mv ${variant} "${KMNAME}-${variant##*/}-${PV}/4/${variant##*/}" || - die "Failed to move L10N=${variant##*/}" - cp -f "${KMNAME}-sr-${PV}"/CMakeLists.txt "${KMNAME}-${variant##*/}-${PV}" || - die "Failed to prepare L10N=${variant##*/} subdir" - echo "add_subdirectory(${variant##*/})" > "${KMNAME}-${variant##*/}-${PV}"/4/CMakeLists.txt || - die "Failed to prepare L10N=${variant##*/} subdir" - cp -f "${KMNAME}-sr-${PV}"/4/sr/CMakeLists.txt "${KMNAME}-${variant##*/}-${PV}"/4/${variant##*/} || - die "Failed to prepare L10N=${variant##*/} subdir" - sed -e "/^macro.*sr/d" \ - -e "s/sr/${variant##*/}/" \ - -i "${KMNAME}-${variant##*/}-${PV}"/4/${variant##*/}/CMakeLists.txt || - die "Failed to prepare L10N=${variant##*/} subdir" - done + # 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}/4/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 to cmake @@ -97,13 +112,16 @@ EOF sed -i -e "/add_subdirectory(5)/ s/^/#DONT/" {} + || die einfo "Removing file collisions with Plasma 5 and Applications" + [[ -f ${REMOVE_DIRS} ]] || die "Error: ${REMOVE_DIRS} not found!" + [[ -f ${REMOVE_MSGS} ]] || die "Error: ${REMOVE_MSGS} not found!" + use test && einfo "Tests enabled: Listing LINGUAS causing file collisions" einfo "Directories..." while read path; do if use test ; then # build a report w/ L10N="*" to submit @upstream local lngs - for lng in ${MY_LANGS}; do + for lng in $(kde_l10n2lingua ${KDE_L10N[@]}); do SDIR="${S}/${KMNAME}-${lng}-${PV}/4/${lng}" if [[ -d "${SDIR}"/${path%\ *}/${path#*\ } ]] ; then lngs+=" ${lng}" @@ -125,7 +143,7 @@ EOF while read path; do if use test ; then # build a report w/ L10N="*" to submit @upstream local lngs - for lng in ${MY_LANGS}; do + for lng in $(kde_l10n2lingua ${KDE_L10N[@]}); do SDIR="${S}/${KMNAME}-${lng}-${PV}/4/${lng}" if [[ -e "${SDIR}"/messages/${path} ]] ; then lngs+=" ${lng}" @@ -158,3 +176,32 @@ src_test() { :; } src_install() { [[ -n ${A} ]] && kde4-base_src_install } + +_l10n_variant_subdir2root() { + local lingua=$(kde_l10n2lingua ${1}) + local src=kde-l10n-${2}-${PV} + local dest=kde-l10n-${lingua}-${PV}/4 + + # create variant rootdir structure from parent lingua and adapt it + mkdir -p ${dest} || die "Failed to create ${dest}" + mv ${src}/4/${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}/4/${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}/4/$(kde_l10n2lingua ${1}) + + sed -e "/^macro.*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 +} |
