Skip to content

Commit b7886d7

Browse files
authored
fix: glib schema generation for snaps (#179109)
fix: glib schema generation for snaps (#179089)
1 parent 7d512ad commit b7886d7

File tree

2 files changed

+13
-10
lines changed

2 files changed

+13
-10
lines changed

resources/linux/snap/electron-launch

+10-10
Original file line numberDiff line numberDiff line change
@@ -162,41 +162,41 @@ function compile_giomodules {
162162
if [ -f "$1/glib-2.0/gio-querymodules" ]; then
163163
rm -rf "$GIO_MODULE_DIR"
164164
ensure_dir_exists "$GIO_MODULE_DIR"
165-
ln -s "$1"/gio/modules/*.so "$GIO_MODULE_DIR"
165+
ln -s "$SNAP"/usr/lib/"$ARCH"/gio/modules/*.so "$GIO_MODULE_DIR"
166166
"$1/glib-2.0/gio-querymodules" "$GIO_MODULE_DIR"
167167
fi
168168
}
169169
if [ "$needs_update" = true ]; then
170-
async_exec compile_giomodules "$SNAP/usr/lib/$ARCH"
170+
async_exec compile_giomodules "/snap/core20/current/usr/lib/$ARCH"
171171
fi
172172

173173
# Setup compiled gsettings schema
174-
GS_SCHEMA_DIR="$SNAP_USER_DATA/.local/share/glib-2.0/schemas"
174+
export GSETTINGS_SCHEMA_DIR="$SNAP_USER_DATA/.local/share/glib-2.0/schemas"
175175
function compile_schemas {
176176
if [ -f "$1" ]; then
177-
rm -rf "$GS_SCHEMA_DIR"
178-
ensure_dir_exists "$GS_SCHEMA_DIR"
177+
rm -rf "$GSETTINGS_SCHEMA_DIR"
178+
ensure_dir_exists "$GSETTINGS_SCHEMA_DIR"
179179
for ((i = 0; i < ${#data_dirs_array[@]}; i++)); do
180180
schema_dir="${data_dirs_array[$i]}/glib-2.0/schemas"
181181
if [ -f "$schema_dir/gschemas.compiled" ]; then
182182
# This directory already has compiled schemas
183183
continue
184184
fi
185185
if [ -n "$(ls -A "$schema_dir"/*.xml 2>/dev/null)" ]; then
186-
ln -s "$schema_dir"/*.xml "$GS_SCHEMA_DIR"
186+
ln -s "$schema_dir"/*.xml "$GSETTINGS_SCHEMA_DIR"
187187
fi
188188
if [ -n "$(ls -A "$schema_dir"/*.override 2>/dev/null)" ]; then
189-
ln -s "$schema_dir"/*.override "$GS_SCHEMA_DIR"
189+
ln -s "$schema_dir"/*.override "$GSETTINGS_SCHEMA_DIR"
190190
fi
191191
done
192192
# Only compile schemas if we copied anything
193-
if [ -n "$(ls -A "$GS_SCHEMA_DIR"/*.xml "$GS_SCHEMA_DIR"/*.override 2>/dev/null)" ]; then
194-
"$1" "$GS_SCHEMA_DIR"
193+
if [ -n "$(ls -A "$GSETTINGS_SCHEMA_DIR"/*.xml "$GSETTINGS_SCHEMA_DIR"/*.override 2>/dev/null)" ]; then
194+
"$1" "$GSETTINGS_SCHEMA_DIR"
195195
fi
196196
fi
197197
}
198198
if [ "$needs_update" = true ]; then
199-
async_exec compile_schemas "$SNAP/usr/lib/$ARCH/glib-2.0/glib-compile-schemas"
199+
async_exec compile_schemas "/snap/core20/current/usr/lib/$ARCH/glib-2.0/glib-compile-schemas"
200200
fi
201201

202202
# Gdk-pixbuf loaders

src/vs/platform/native/electron-main/nativeHostMainService.ts

+3
Original file line numberDiff line numberDiff line change
@@ -455,12 +455,14 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
455455
const gdkBackend = process.env['GDK_BACKEND'];
456456
const gioModuleDir = process.env['GIO_MODULE_DIR'];
457457
const gtkExePrefix = process.env['GTK_EXE_PREFIX'];
458+
const gsettingsSchemaDir = process.env['GSETTINGS_SCHEMA_DIR'];
458459
delete process.env['GDK_PIXBUF_MODULE_FILE'];
459460
delete process.env['GDK_PIXBUF_MODULEDIR'];
460461
delete process.env['GTK_IM_MODULE_FILE'];
461462
delete process.env['GDK_BACKEND'];
462463
delete process.env['GIO_MODULE_DIR'];
463464
delete process.env['GTK_EXE_PREFIX'];
465+
delete process.env['GSETTINGS_SCHEMA_DIR'];
464466

465467
shell.openExternal(url);
466468

@@ -471,6 +473,7 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
471473
process.env['GDK_BACKEND'] = gdkBackend;
472474
process.env['GIO_MODULE_DIR'] = gioModuleDir;
473475
process.env['GTK_EXE_PREFIX'] = gtkExePrefix;
476+
process.env['GSETTINGS_SCHEMA_DIR'] = gsettingsSchemaDir;
474477
}
475478

476479
moveItemToTrash(windowId: number | undefined, fullPath: string): Promise<void> {

0 commit comments

Comments
 (0)