From f1fe8f924ee727fbd50e777e00b1016e6ef5bf90 Mon Sep 17 00:00:00 2001 From: deepend Date: Wed, 18 Feb 2026 13:04:26 -0700 Subject: [PATCH] 7 Updated the Meson post-install script to import shutil and add a helper that checks tool availability before invoking post-install commands. This prevents hard failures when optional desktop tooling is not installed (e.g., on macOS/Homebrew CI). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replaced direct subprocess.call(...) calls for gtk-update-icon-cache and update-desktop-database with guarded calls that emit a clear “Skipping …: command not found” message when absent, while preserving existing behavior when present. --- meson_post_install.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/meson_post_install.py b/meson_post_install.py index ba0063fe..9d269d42 100644 --- a/meson_post_install.py +++ b/meson_post_install.py @@ -3,16 +3,24 @@ import os import sys import subprocess +import shutil prefix = os.environ.get('MESON_INSTALL_PREFIX', '/usr/local') datadir = os.path.join(prefix, 'share') # Packaging tools define DESTDIR and this isn't needed for them if 'DESTDIR' not in os.environ: + def run_if_available(command, *args): + if shutil.which(command) is None: + print(f'Skipping {command}: command not found') + return + + subprocess.call([command, *args]) + print('Updating icon cache...') - subprocess.call(['gtk-update-icon-cache', '-qtf', - os.path.join(datadir, 'icons', 'hicolor')]) + run_if_available('gtk-update-icon-cache', '-qtf', + os.path.join(datadir, 'icons', 'hicolor')) print('Updating desktop database...') - subprocess.call(['update-desktop-database', '-q', - os.path.join(datadir, 'applications')]) + run_if_available('update-desktop-database', '-q', + os.path.join(datadir, 'applications'))