summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
Diffstat (limited to 'eclass')
-rw-r--r--eclass/Manifest.gzbin39369 -> 39354 bytes
-rw-r--r--eclass/ecm.eclass57
-rw-r--r--eclass/frameworks.kde.org.eclass53
-rw-r--r--eclass/gear.kde.org.eclass15
-rw-r--r--eclass/kde.org.eclass10
-rw-r--r--eclass/latex-package.eclass16
-rw-r--r--eclass/plasma.kde.org.eclass11
-rw-r--r--eclass/texlive-module.eclass15
-rw-r--r--eclass/toolchain.eclass12
9 files changed, 120 insertions, 69 deletions
diff --git a/eclass/Manifest.gz b/eclass/Manifest.gz
index 1f1dd53bfba7..c9949a72f07d 100644
--- a/eclass/Manifest.gz
+++ b/eclass/Manifest.gz
Binary files differ
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