commit:     97b43be4c50c34648fddc478146fed66dcd3458b
Author:     Florian Schmaus <flow <AT> gentoo <DOT> org>
AuthorDate: Mon Feb 12 10:04:41 2024 +0000
Commit:     Florian Schmaus <flow <AT> gentoo <DOT> org>
CommitDate: Mon Feb 12 10:04:41 2024 +0000
URL:        https://gitweb.gentoo.org/proj/tex-overlay.git/commit/?id=97b43be4

texlive-common.eclass: add --ignore-errors to etexmf-update and efmtutil-sys

Signed-off-by: Florian Schmaus <flow <AT> gentoo.org>

 eclass/texlive-common.eclass | 18 ++++++++++++++++--
 1 file 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"

Reply via email to