diff -ruN /tmp/atom-1.56.0/script/lib/install-application.js /tmp/patched/script/lib/install-application.js This is a test patch for Tiny Core that helps extension packaging. * bypass Icon caching which requires sudo privilege * fix data directory to /usr/local/share * set baseIconThemeDirPath to '/tmp/atom-root/usr/local/share/icons/hicolor' To apply the patch: (either one is fine) cd atom-source && patch -Np3 < this.patch cd atom-source && patch ./script/lib/install-application.js this.patch To build mkdir -p /tmp/atom-root/usr/local/share/icons/hicolor ./script/build --install=/tmp/atom-root/usr/local --- /tmp/atom-1.56.0/script/lib/install-application.js 2021-04-09 16:13:53.000000000 +0000 +++ /tmp/patched/script/lib/install-application.js 2021-04-29 00:20:07.002421825 +0000 @@ -31,18 +31,7 @@ * https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html#variables */ function findBaseIconThemeDirPath() { - const defaultBaseIconThemeDir = '/usr/share/icons/hicolor'; - const dataDirsString = process.env.XDG_DATA_DIRS; - if (dataDirsString) { - const dataDirs = dataDirsString.split(path.delimiter); - if (dataDirs.includes('/usr/share/') || dataDirs.includes('/usr/share')) { - return defaultBaseIconThemeDir; - } else { - return path.join(dataDirs[0], 'icons', 'hicolor'); - } - } else { - return defaultBaseIconThemeDir; - } + return '/tmp/atom-root/usr/local/share/icons/hicolor'; } module.exports = function(packagedAppPath, installDir) { @@ -146,9 +135,9 @@ } }); - console.log(`Updating icon cache for "${baseIconThemeDirPath}"`); + console.log(`Skipping icon cache for "${baseIconThemeDirPath}"`); try { - execSync(`gtk-update-icon-cache ${baseIconThemeDirPath} --force`); + execSync(`echo gtk-update-icon-cache -q -f -t /usr/local/share/icons/hicolor`); } catch (e) {} }