Linux : make desktop cache updates optional in installers

Skip desktop/MIME cache refresh for console installers, where no desktop integration files are installed.

Guard update-mime-database and update-desktop-database calls so minimal systems without desktop-file-utils do not print post-install errors.

Apply the same best-effort cache refresh behavior to FreeBSD generic scripts for parity.

Also fix the FreeBSD uninstall script to remove the per-resolution PNG icons from /usr/local/share/icons, matching where they are installed.
This commit is contained in:
Mounir IDRASSI
2026-06-18 21:23:17 +09:00
parent 50daadb548
commit 762d965f2d
4 changed files with 71 additions and 17 deletions
+12 -3
View File
@@ -6,6 +6,16 @@ removal_failed() {
echo "Error: File removal failed, please run the script with elevated privileges." 1>&2 && exit 1
}
update_system_caches() {
if command -v update-mime-database >/dev/null 2>&1; then
update-mime-database /usr/local/share/mime >/dev/null 2>&1
fi
if command -v update-desktop-database >/dev/null 2>&1; then
update-desktop-database -q >/dev/null 2>&1
fi
return 0
}
rm -f /usr/bin/veracrypt || removal_failed
rm -f /usr/local/share/applications/veracrypt.desktop || removal_failed
rm -f /usr/local/share/pixmaps/veracrypt.xpm || removal_failed
@@ -15,11 +25,10 @@ rm -fr /usr/share/doc/veracrypt || removal_failed
rm -f /usr/local/share/icons/hicolor/scalable/apps/veracrypt.svg || removal_failed
rm -f /usr/local/share/icons/hicolor/symbolic/apps/veracrypt-symbolic.svg || removal_failed
for res in 16 22 24 32 48 64 256 512 1024; do \
rm -f /usr/share/icons/hicolor/${res}x${res}/apps/veracrypt.png || removal_failed ;\
rm -f /usr/local/share/icons/hicolor/${res}x${res}/apps/veracrypt.png || removal_failed ;\
done
rm -f /usr/bin/veracrypt-uninstall.sh || removal_failed
update-mime-database /usr/local/share/mime >/dev/null 2>&1
update-desktop-database -q
update_system_caches
echo VeraCrypt uninstalled.
@@ -117,6 +117,23 @@ show_exit_message()
fi
}
update_system_caches_command()
{
if [ "$INSTALLER_TYPE" = "console" ]
then
printf ':'
return 0
fi
printf '%s' "if command -v update-mime-database >/dev/null 2>&1; then $SUDO update-mime-database /usr/local/share/mime >/dev/null 2>&1; fi; if command -v update-desktop-database >/dev/null 2>&1; then $SUDO update-desktop-database -q >/dev/null 2>&1; fi"
}
update_system_caches()
{
eval "$(update_system_caches_command)"
return 0
}
# License extraction
trap 'rm -f $LICENSE $PACKAGE; exit 1' HUP INT QUIT TERM
@@ -1066,26 +1083,30 @@ then
if [ $GUI -eq 1 ]
then
CACHE_UPDATE_COMMAND=$(update_system_caches_command)
if [ $XTERM -eq 1 ]
then
exec xterm -T 'VeraCrypt Setup' -e sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE && $SUDO rm -f $OBSOLETE_DONATION_BANK_FILES; rm -f $PACKAGE; $SUDO update-mime-database /usr/share/mime >/dev/null 2>&1; $SUDO update-desktop-database -q; echo; echo Press Enter to exit...; read A"
exec xterm -T 'VeraCrypt Setup' -e sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE && $SUDO rm -f $OBSOLETE_DONATION_BANK_FILES; rm -f $PACKAGE; $CACHE_UPDATE_COMMAND; echo; echo Press Enter to exit...; read A"
else
if [ $GTERM -eq 1 ]
then
exec gnome-terminal --title='VeraCrypt Setup' -- sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE && $SUDO rm -f $OBSOLETE_DONATION_BANK_FILES; rm -f $PACKAGE; $SUDO update-mime-database /usr/share/mime >/dev/null 2>&1; $SUDO update-desktop-database -q; echo; echo Press Enter to exit...; read A"
exec gnome-terminal --title='VeraCrypt Setup' -- sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE && $SUDO rm -f $OBSOLETE_DONATION_BANK_FILES; rm -f $PACKAGE; $CACHE_UPDATE_COMMAND; echo; echo Press Enter to exit...; read A"
else
if [ $KTERM -eq 1 ]
then
exec konsole --qwindowtitle 'VeraCrypt Setup' -e sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE && $SUDO rm -f $OBSOLETE_DONATION_BANK_FILES; rm -f $PACKAGE; $SUDO update-mime-database /usr/share/mime >/dev/null 2>&1; $SUDO update-desktop-database -q; echo; echo Press Enter to exit...; read A"
exec konsole --qwindowtitle 'VeraCrypt Setup' -e sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE && $SUDO rm -f $OBSOLETE_DONATION_BANK_FILES; rm -f $PACKAGE; $CACHE_UPDATE_COMMAND; echo; echo Press Enter to exit...; read A"
fi
fi
fi
else
echo 'Installing package...'
$SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE && INSTALLED=1 && $SUDO rm -f $OBSOLETE_DONATION_BANK_FILES && $SUDO update-mime-database /usr/share/mime >/dev/null 2>&1 && $SUDO update-desktop-database -q
$SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE && INSTALLED=1
if [ $INSTALLED -eq 1 ]
then
$SUDO rm -f $OBSOLETE_DONATION_BANK_FILES
update_system_caches
show_exit_message ''
fi
fi
+11 -2
View File
@@ -6,6 +6,16 @@ removal_failed() {
echo "Error: File removal failed, please run the script with elevated privileges." 1>&2 && exit 1
}
update_system_caches() {
if command -v update-mime-database >/dev/null 2>&1; then
update-mime-database /usr/share/mime >/dev/null 2>&1
fi
if command -v update-desktop-database >/dev/null 2>&1; then
update-desktop-database -q >/dev/null 2>&1
fi
return 0
}
rm -f /usr/bin/veracrypt || removal_failed
rm -f /usr/sbin/mount.veracrypt || removal_failed
rm -f /usr/share/applications/veracrypt.desktop || removal_failed
@@ -20,7 +30,6 @@ for res in 16 22 24 32 48 64 256 512 1024; do \
done
rm -f /usr/bin/veracrypt-uninstall.sh || removal_failed
update-mime-database /usr/share/mime >/dev/null 2>&1
update-desktop-database -q
update_system_caches
echo VeraCrypt uninstalled.
+23 -8
View File
@@ -121,6 +121,23 @@ show_exit_message()
fi
}
update_system_caches_command()
{
if [ "$INSTALLER_TYPE" = "console" ]
then
printf ':'
return 0
fi
printf '%s' "if command -v update-mime-database >/dev/null 2>&1; then $SUDO update-mime-database /usr/share/mime >/dev/null 2>&1; fi; if command -v update-desktop-database >/dev/null 2>&1; then $SUDO update-desktop-database -q >/dev/null 2>&1; fi"
}
update_system_caches()
{
eval "$(update_system_caches_command)"
return 0
}
# License extraction
trap 'rm -f $LICENSE $PACKAGE; exit 1' HUP INT QUIT TERM
@@ -1070,17 +1087,19 @@ then
if [ $GUI -eq 1 ]
then
CACHE_UPDATE_COMMAND=$(update_system_caches_command)
if [ $XTERM -eq 1 ]
then
exec xterm -T 'VeraCrypt Setup' -e sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE && $SUDO rm -f $OBSOLETE_DONATION_BANK_FILES; rm -f $PACKAGE; $SUDO update-mime-database /usr/share/mime >/dev/null 2>&1; $SUDO update-desktop-database -q; echo; echo Press Enter to exit...; read A"
exec xterm -T 'VeraCrypt Setup' -e sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE && $SUDO rm -f $OBSOLETE_DONATION_BANK_FILES; rm -f $PACKAGE; $CACHE_UPDATE_COMMAND; echo; echo Press Enter to exit...; read A"
else
if [ $GTERM -eq 1 ]
then
exec gnome-terminal --title='VeraCrypt Setup' -- sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE && $SUDO rm -f $OBSOLETE_DONATION_BANK_FILES; rm -f $PACKAGE; $SUDO update-mime-database /usr/share/mime >/dev/null 2>&1; $SUDO update-desktop-database -q; echo; echo Press Enter to exit...; read A"
exec gnome-terminal --title='VeraCrypt Setup' -- sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE && $SUDO rm -f $OBSOLETE_DONATION_BANK_FILES; rm -f $PACKAGE; $CACHE_UPDATE_COMMAND; echo; echo Press Enter to exit...; read A"
else
if [ $KTERM -eq 1 ]
then
exec konsole --qwindowtitle 'VeraCrypt Setup' -e sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE && $SUDO rm -f $OBSOLETE_DONATION_BANK_FILES; rm -f $PACKAGE; $SUDO update-mime-database /usr/share/mime >/dev/null 2>&1; $SUDO update-desktop-database -q; echo; echo Press Enter to exit...; read A"
exec konsole --qwindowtitle 'VeraCrypt Setup' -e sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE && $SUDO rm -f $OBSOLETE_DONATION_BANK_FILES; rm -f $PACKAGE; $CACHE_UPDATE_COMMAND; echo; echo Press Enter to exit...; read A"
fi
fi
fi
@@ -1091,11 +1110,7 @@ then
if [ $INSTALLED -eq 1 ]
then
$SUDO rm -f $OBSOLETE_DONATION_BANK_FILES
$SUDO update-mime-database /usr/share/mime >/dev/null 2>&1 && $SUDO update-desktop-database -q
fi
if [ $INSTALLED -eq 1 ]
then
update_system_caches
show_exit_message ''
fi
fi