diff options
Diffstat (limited to 'eclass')
-rw-r--r-- | eclass/Manifest.gz | bin | 39369 -> 39354 bytes | |||
-rw-r--r-- | eclass/ecm.eclass | 57 | ||||
-rw-r--r-- | eclass/frameworks.kde.org.eclass | 53 | ||||
-rw-r--r-- | eclass/gear.kde.org.eclass | 15 | ||||
-rw-r--r-- | eclass/kde.org.eclass | 10 | ||||
-rw-r--r-- | eclass/latex-package.eclass | 16 | ||||
-rw-r--r-- | eclass/plasma.kde.org.eclass | 11 | ||||
-rw-r--r-- | eclass/texlive-module.eclass | 15 | ||||
-rw-r--r-- | eclass/toolchain.eclass | 12 |
9 files changed, 120 insertions, 69 deletions
diff --git a/eclass/Manifest.gz b/eclass/Manifest.gz Binary files differindex 1f1dd53bfba7..c9949a72f07d 100644 --- a/eclass/Manifest.gz +++ b/eclass/Manifest.gz diff --git a/eclass/ecm.eclass b/eclass/ecm.eclass index fbe1a23cf205..21e2330ac34d 100644 --- a/eclass/ecm.eclass +++ b/eclass/ecm.eclass @@ -104,11 +104,25 @@ fi : "${ECM_HANDBOOK_DIR:=doc}" # @ECLASS_VARIABLE: ECM_PO_DIRS +# @PRE_INHERIT # @DESCRIPTION: # Specifies directories of l10n files relative to ${S} to be processed by # KF${_KFSLOT}I18n (ki18n_install). If IUSE nls exists and is disabled then # disable build of these directories in CMakeLists.txt. -: "${ECM_PO_DIRS:="po poqm"}" +if [[ ${ECM_PO_DIRS} ]]; then + [[ ${ECM_PO_DIRS@a} == *a* ]] || + die "ECM_PO_DIRS must be an array" +else + ECM_PO_DIRS=( po poqm ) +fi + +# @ECLASS_VARIABLE: ECM_PYTHON_BINDINGS +# @DESCRIPTION: +# Default value is "false", which means do nothing. +# If set to "off", pass -DBUILD_PYTHON_BINDINGS=OFF to mycmakeargs, and also +# disable cmake finding Python3, PySide6 and Shiboken6 to make it quiet. +# No other value is implemented as python bindings are not supported in Gentoo. +: "${ECM_PYTHON_BINDINGS:=false}" # @ECLASS_VARIABLE: ECM_QTHELP # @DEFAULT_UNSET @@ -155,16 +169,17 @@ fi : "${ECM_TEST:=false}" # @ECLASS_VARIABLE: KFMIN +# @PRE_INHERIT # @DEFAULT_UNSET # @DESCRIPTION: # Minimum version of Frameworks to require. Default value for kde-frameworks -# is ${PV} and 5.106.0 baseline for everything else. +# is ${PV} and 5.116.0 baseline for everything else. # If set to >=5.240, KF6/Qt6 is assumed thus SLOT=6 dependencies added and # -DQT_MAJOR_VERSION=6 added to cmake args. if [[ ${CATEGORY} = kde-frameworks ]]; then : "${KFMIN:=$(ver_cut 1-2)}" fi -: "${KFMIN:=5.106.0}" +: "${KFMIN:=5.116.0}" # @ECLASS_VARIABLE: _KFSLOT # @INTERNAL @@ -175,9 +190,7 @@ fi # prefixed cmake args. : "${_KFSLOT:=5}" if [[ ${CATEGORY} == kde-frameworks ]]; then - if [[ ${PV} != 5.9999 ]] && $(ver_test ${KFMIN} -ge 5.240); then - _KFSLOT=6 - fi + ver_test ${KFMIN} -ge 5.240 && _KFSLOT=6 else if [[ ${KFMIN/.*} == 6 ]] || $(ver_test ${KFMIN} -ge 5.240); then _KFSLOT=6 @@ -249,6 +262,15 @@ case ${ECM_HANDBOOK} in ;; esac +case ${ECM_PYTHON_BINDINGS} in + off|false) ;; + true) ;& # TODO if you really really want + *) + eerror "Unknown value for \${ECM_PYTHON_BINDINGS}" + die "Value ${ECM_PYTHON_BINDINGS} is not supported" + ;; +esac + case ${ECM_QTHELP} in true) IUSE+=" doc" @@ -339,7 +361,7 @@ _ecm_strip_handbook_translations() { fi local lang po - for po in ${ECM_PO_DIRS}; do + for po in ${ECM_PO_DIRS[*]}; do if [[ -d ${po} ]] ; then pushd ${po} > /dev/null || die for lang in *; do @@ -540,7 +562,7 @@ ecm_src_prepare() { if [[ ${ECM_TEST} = forceoptional ]] ; then [[ ${_KFSLOT} = 5 ]] && ecm_punt_qt_module Test # if forceoptional, also cover non-kde categories - cmake_comment_add_subdirectory autotests test tests + cmake_comment_add_subdirectory appiumtests autotests test tests elif [[ ${ECM_TEST} = forceoptional-recursive ]] ; then [[ ${_KFSLOT} = 5 ]] && ecm_punt_qt_module Test local f pf="${T}/${P}"-tests-optional.patch @@ -561,13 +583,13 @@ ecm_src_prepare() { eqawarn "Unified diff file ready for pickup in:" eqawarn " ${pf}" eqawarn "Push it upstream to make this message go away." - elif [[ ${CATEGORY} = kde-frameworks || ${CATEGORY} = kde-plasma || ${CATEGORY} = kde-apps ]] ; then - cmake_comment_add_subdirectory autotests test tests + elif [[ -n ${_KDE_ORG_ECLASS} ]] ; then + cmake_comment_add_subdirectory appiumtests autotests test tests fi fi # in frameworks, tests = manual tests so never build them - if [[ ${CATEGORY} = kde-frameworks ]] && [[ ${PN} != extra-cmake-modules ]]; then + if [[ -n ${_FRAMEWORKS_KDE_ORG_ECLASS} ]] && [[ ${PN} != extra-cmake-modules ]]; then cmake_comment_add_subdirectory tests fi } @@ -605,6 +627,13 @@ ecm_src_configure() { cmakeargs+=( -DBUILD_DESIGNERPLUGIN=$(usex designer) ) fi + if [[ ${ECM_PYTHON_BINDINGS} == off ]]; then + cmakeargs+=( + -DBUILD_PYTHON_BINDINGS=OFF + -DCMAKE_DISABLE_FIND_PACKAGE_{Python3,PySide6,Shiboken6}=ON + ) + fi + if [[ ${ECM_QTHELP} = true ]]; then cmakeargs+=( -DBUILD_QCH=$(usex doc) ) fi @@ -753,12 +782,6 @@ ecm_pkg_postinst() { false) xdg_pkg_postinst ;; *) ;; esac - - if [[ -n ${_KDE_ORG_ECLASS} ]] && [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]] && [[ ${KDE_BUILD_TYPE} = live ]]; then - einfo "WARNING! This is an experimental live ebuild of ${CATEGORY}/${PN}" - einfo "Use it at your own risk." - einfo "Do _NOT_ file bugs at bugs.gentoo.org because of this ebuild!" - fi } # @FUNCTION: ecm_pkg_postrm diff --git a/eclass/frameworks.kde.org.eclass b/eclass/frameworks.kde.org.eclass index 53811e339976..e1dc77c93561 100644 --- a/eclass/frameworks.kde.org.eclass +++ b/eclass/frameworks.kde.org.eclass @@ -25,6 +25,13 @@ esac if [[ -z ${_FRAMEWORKS_KDE_ORG_ECLASS} ]]; then _FRAMEWORKS_KDE_ORG_ECLASS=1 +# @ECLASS_VARIABLE: KDE_CATV +# @DESCRIPTION: +# Holds main Frameworks release number (major.minor) for use on same-category +# dependencies. +KDE_CATV=$(ver_cut 1-2) +readonly KDE_CATV + # @ECLASS_VARIABLE: KDE_PV_UNRELEASED # @INTERNAL # @DESCRIPTION: @@ -43,7 +50,7 @@ if [[ ${PN} == extra-cmake-modules ]]; then SLOT=0 else if [[ ${KDE_BUILD_TYPE} == release ]]; then - SLOT=${SLOT}/$(ver_cut 1-2) + SLOT=${SLOT}/${KDE_CATV} else SLOT=${SLOT}/9999 fi @@ -61,32 +68,24 @@ KDE_ORG_SCHEDULE_URI+="/Frameworks" # Helper variable to construct release group specific SRC_URI. _KDE_SRC_URI="mirror://kde/" -case ${KDE_BUILD_TYPE} in - live) - if [[ ${PV} == 5.239.9999 ]]; then - EGIT_BRANCH="kf5" - fi - ;; - *) - if [[ -z ${KDE_ORG_COMMIT} ]]; then - _KDE_SRC_URI+="stable/frameworks/$(ver_cut 1-2)/" - case ${KDE_ORG_NAME} in - kdelibs4support | \ - kdesignerplugin | \ - kdewebkit | \ - khtml | \ - kjs | \ - kjsembed | \ - kmediaplayer | \ - kross | \ - kxmlrpcclient) - _KDE_SRC_URI+="portingAids/" - ;; - esac +# TODO: Remove after last KF5 PortingAid treecleaned; bug 755956 +if [[ ${KDE_BUILD_TYPE} != live && -z ${KDE_ORG_COMMIT} ]]; then + _KDE_SRC_URI+="stable/frameworks/${KDE_CATV}/" + case ${KDE_ORG_NAME} in + kdelibs4support | \ + kdesignerplugin | \ + kdewebkit | \ + khtml | \ + kjs | \ + kjsembed | \ + kmediaplayer | \ + kross | \ + kxmlrpcclient) + _KDE_SRC_URI+="portingAids/" + ;; + esac - SRC_URI="${_KDE_SRC_URI}${KDE_ORG_TAR_PN}-${PV}.tar.xz" - fi - ;; -esac + SRC_URI="${_KDE_SRC_URI}${KDE_ORG_TAR_PN}-${PV}.tar.xz" +fi fi diff --git a/eclass/gear.kde.org.eclass b/eclass/gear.kde.org.eclass index 8089cbb53bf7..2ae40dfbc708 100644 --- a/eclass/gear.kde.org.eclass +++ b/eclass/gear.kde.org.eclass @@ -285,4 +285,19 @@ if $(ver_test -gt 24.07.75); then esac fi +# list of applications ported to KF6 post-24.08 in SLOT=6 having to block SLOT=5 +if $(ver_test -gt 24.11.75); then + case ${PN} in + cantor | \ + kalzium | \ + kmix | \ + kwave | \ + marble | \ + minuet | \ + step) + RDEPEND+=" !${CATEGORY}/${PN}:5" ;; + *) ;; + esac +fi + fi diff --git a/eclass/kde.org.eclass b/eclass/kde.org.eclass index 9be501ce9e3f..47a52ef0234c 100644 --- a/eclass/kde.org.eclass +++ b/eclass/kde.org.eclass @@ -235,6 +235,14 @@ kde.org_src_unpack() { esac } +kde.org_pkg_info() { + if [[ ${KDE_BUILD_TYPE} = live ]]; then + echo "WARNING! This is an experimental live ebuild of ${CATEGORY}/${PN}" + echo "Use it at your own risk." + echo "Only file bugs at bugs.gentoo.org if convinced that ebuild needs an update!" + fi +} + fi -EXPORT_FUNCTIONS pkg_nofetch src_unpack +EXPORT_FUNCTIONS pkg_nofetch src_unpack pkg_info diff --git a/eclass/latex-package.eclass b/eclass/latex-package.eclass index 4082e161b843..dfef7fc2836f 100644 --- a/eclass/latex-package.eclass +++ b/eclass/latex-package.eclass @@ -137,11 +137,16 @@ latex-package_src_doinstall() { continue einfo "Making documentation: ${i}" + local mypdflatex=( + pdflatex + ${LATEX_DOC_ARGUMENTS} + --halt-on-error + --interaction=nonstopmode + "${i}" + ) # some macros need compiler called twice, do it here. - set -- pdflatex ${LATEX_DOC_ARGUMENTS} \ - --halt-on-error --interaction=nonstopmode "${i}" - if "${@}"; then - "${@}" + if "${mypdflatex[@]}"; then + "${mypdflatex[@]}" else einfo "pdflatex failed, trying texi2dvi" texi2dvi -q -c --language=latex "${i}" || die @@ -195,6 +200,9 @@ latex-package_src_doinstall() { "all") latex-package_src_doinstall styles fonts bin doc ;; + *) + die "Unknown module: ${1}" + ;; esac shift done diff --git a/eclass/plasma.kde.org.eclass b/eclass/plasma.kde.org.eclass index 1a626de37bfb..6612028e298b 100644 --- a/eclass/plasma.kde.org.eclass +++ b/eclass/plasma.kde.org.eclass @@ -25,6 +25,13 @@ esac if [[ -z ${_PLASMA_KDE_ORG_ECLASS} ]]; then _PLASMA_KDE_ORG_ECLASS=1 +# @ECLASS_VARIABLE: KDE_CATV +# @DESCRIPTION: +# Holds main Plasma release number (major.minor.micro) for use on same-category +# dependencies. +KDE_CATV=$(ver_cut 1-3) +readonly KDE_CATV + # @ECLASS_VARIABLE: KDE_PV_UNRELEASED # @INTERNAL # @DESCRIPTION: @@ -64,10 +71,10 @@ if [[ ${KDE_BUILD_TYPE} == live ]]; then elif [[ -z ${KDE_ORG_COMMIT} ]]; then case ${PV} in 5.??.[6-9][05]* | 6.?.[6-9][05]* ) - _KDE_SRC_URI+="unstable/plasma/$(ver_cut 1-3)/" + _KDE_SRC_URI+="unstable/plasma/${KDE_CATV}/" RESTRICT+=" mirror" ;; - *) _KDE_SRC_URI+="stable/plasma/$(ver_cut 1-3)/" ;; + *) _KDE_SRC_URI+="stable/plasma/${KDE_CATV}/" ;; esac SRC_URI="${_KDE_SRC_URI}${KDE_ORG_TAR_PN}-${PV}.tar.xz" diff --git a/eclass/texlive-module.eclass b/eclass/texlive-module.eclass index f8b6f0858cd6..ebd65e3dd0d8 100644 --- a/eclass/texlive-module.eclass +++ b/eclass/texlive-module.eclass @@ -79,7 +79,7 @@ esac if [[ -z ${_TEXLIVE_MODULE_ECLASS} ]]; then _TEXLIVE_MODULE_ECLASS=1 -inherit texlive-common +inherit eapi9-pipestatus texlive-common HOMEPAGE="https://www.tug.org/texlive/" @@ -537,16 +537,15 @@ texlive-module_src_install() { grep_expressions+=(-e "/${f//./\\.}\$") done + local status + # "success-status aware grep", returning exit status 0 instead of 1. + _sgrep() { grep "$@"; return "$(( $? <= 1 ? 0 : $? ))"; } ebegin "Installing man pages" find texmf-dist/doc/man -type f -name '*.[0-9n]' -print | - grep -v "${grep_expressions[@]}" | + _sgrep -v "${grep_expressions[@]}" | xargs -d '\n' --no-run-if-empty nonfatal doman - local pipestatus="${PIPESTATUS[*]}" - # The grep in the middle of the pipe may return 1 in case - # everything from the input is dropped. - # See https://bugs.gentoo.org/931994 - [[ ${pipestatus} == "0 "[01]" 0" ]] - eend $? || die "error installing man pages (pipestatus: ${pipestatus})" + status=$(pipestatus -v) + eend $? || die "error installing man pages (PIPESTATUS: ${status})" # Delete all man pages under texmf-dist/doc/man find texmf-dist/doc/man -type f -name '*.[0-9n]' -delete || diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass index 8e91816735a9..d72047e891d1 100644 --- a/eclass/toolchain.eclass +++ b/eclass/toolchain.eclass @@ -204,7 +204,7 @@ GCCMICRO=$(ver_cut 3 ${GCC_PV}) # @INTERNAL # @DESCRIPTION: # Controls whether fixincludes should be used. -GCC_RUN_FIXINCLUDES=0 +: "${GCC_RUN_FIXINCLUDES:=0}" tc_use_major_version_only() { local use_major_version_only=0 @@ -2494,11 +2494,7 @@ toolchain_src_install() { if [[ ${GCC_RUN_FIXINCLUDES} == 0 ]] ; then # We remove the generated fixincludes, as they can cause things to break - # (ncurses, openssl, etc). We do not prevent them from being built, as - # in the following commit which we revert: - # https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/eclass/toolchain.eclass?r1=1.647&r2=1.648 - # This is because bsd userland needs fixedincludes to build gcc, while - # linux does not. Both can dispose of them afterwards. + # (ncurses, openssl, etc). while read x ; do grep -q 'It has been auto-edited by fixincludes from' "${x}" \ && rm -f "${x}" @@ -2518,8 +2514,6 @@ toolchain_src_install() { pushd "${WORKDIR}"/build-jit > /dev/null || die S="${WORKDIR}"/build-jit emake DESTDIR="${D}" -j1 install - # Punt some tools which are really only useful while building gcc - find "${ED}" -name install-tools -prune -type d -exec rm -rf "{}" \; || die # This one comes with binutils find "${ED}" -name libiberty.a -delete || die @@ -2542,8 +2536,6 @@ toolchain_src_install() { # - https://gcc.gnu.org/PR109898 S="${WORKDIR}"/build emake DESTDIR="${D}" -j1 install - # Punt some tools which are really only useful while building gcc - find "${ED}" -name install-tools -prune -type d -exec rm -rf "{}" \; || die # This one comes with binutils find "${ED}" -name libiberty.a -delete || die |