summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--eclass/texlive-common.eclass18
1 files changed, 16 insertions, 2 deletions
diff --git a/eclass/texlive-common.eclass b/eclass/texlive-common.eclass
index eb012f2..adfb7da 100644
--- a/eclass/texlive-common.eclass
+++ b/eclass/texlive-common.eclass
@@ -168,16 +168,23 @@ dobin_texmf_scripts() {
}
# @FUNCTION: etexmf-update
+# @USAGE: [--ignore-errors]
# @DESCRIPTION:
# Runs texmf-update if it is available and prints a warning otherwise. This
# function helps in factorizing some code. Useful in ebuilds' pkg_postinst and
# pkg_postrm phases.
+# If --ignore-errors is provided, then a non-zero exit status of texmf-update does not
+# cause die to be invoked.
# Called by app-text/dvipsk, app-text/texlive-core, dev-libs/kpathsea, and
# texlive-module.eclass.
etexmf-update() {
if has_version 'app-text/texlive-core' ; then
if [[ -z ${ROOT} && -x "${EPREFIX}"/usr/sbin/texmf-update ]] ; then
- "${EPREFIX}"/usr/sbin/texmf-update || die
+ "${EPREFIX}"/usr/sbin/texmf-update
+ local res="${?}"
+ if [[ "${?}" -ne 0 && "${#}" -ne 1 && "${1}" != "--ignore-errors" ]] && ver_test -ge 2023; then
+ die "texmf-update returned non-zero exit status ${res}"
+ fi
else
ewarn "Cannot run texmf-update for some reason."
ewarn "Your texmf tree might be inconsistent with your configuration"
@@ -187,15 +194,22 @@ etexmf-update() {
}
# @FUNCTION: efmtutil-sys
+# @USAGE: [--ignore-errors]
# @DESCRIPTION:
# Runs fmtutil-sys if it is available and prints a warning otherwise. This
# function helps in factorizing some code. Used in ebuilds' pkg_postinst to
# force a rebuild of TeX formats.
+# If --ignore-errors is provided, then a non-zero exit status of fmtutil-sys does not
+# cause die to be invoked.
efmtutil-sys() {
if has_version 'app-text/texlive-core' ; then
if [[ -z ${ROOT} && -x "${EPREFIX}"/usr/bin/fmtutil-sys ]] ; then
einfo "Rebuilding formats"
- "${EPREFIX}"/usr/bin/fmtutil-sys --all &> /dev/null || die
+ "${EPREFIX}"/usr/bin/fmtutil-sys --all &> /dev/null
+ local res="${?}"
+ if [[ "${?}" -ne 0 && "${#}" -ne 1 && "${1}" != "--ignore-errors" ]]; then
+ die "fmtutil-sys returned non-zero exit status ${res}"
+ fi
else
ewarn "Cannot run fmtutil-sys for some reason."
ewarn "Your formats might be inconsistent with your installed ${PN} version"