Error running gjs built with prefix: g_object_new_is_valid_property: object class 'GjsContext' has no property named 'program-path'
Sorry, I guess it's more of a question, but it may highlight an issue with the build system or the documentation for newcommers.
I cannot get gjs to run when configured with a custom prefix.
$ cd /tmp
$ git clone --depth=1 https://gitlab.gnome.org/GNOME/gjs.git
$ cd gjs
$ meson -Dprefix=${PWD}/prefix _build
$ ninja -C _build
$ ninja -C _build install
$ ./prefix/bin/gjs
(gjs:27410): GLib-GObject-CRITICAL **: 12:38:24.659: g_object_new_is_valid_property: object class 'GjsContext' has no property named 'program-path'
./prefix/bin/gjs: symbol lookup error: ./prefix/bin/gjs: undefined symbol: gjs_context_set_argv
meson output
$ meson -Dprefix=${PWD}/prefix _build
The Meson build system
Version: 0.55.3
Source dir: /tmp/gjs
Build dir: /tmp/gjs/_build
Build type: native build
Project name: gjs
Project version: 1.67.2
C compiler for the host machine: ccache cc (gcc 10.2.1 "cc (GCC) 10.2.1 20201125 (Red Hat 10.2.1-9)")
C linker for the host machine: cc ld.bfd 2.35-18
C++ compiler for the host machine: ccache c++ (gcc 10.2.1 "c++ (GCC) 10.2.1 20201125 (Red Hat 10.2.1-9)")
C++ linker for the host machine: c++ ld.bfd 2.35-18
Host machine cpu family: x86_64
Host machine cpu: x86_64
Compiler for C++ supports arguments -fno-strict-aliasing: YES
Compiler for C++ supports arguments -Wno-variadic-macros -Wvariadic-macros: YES
Compiler for C++ supports arguments -Wno-missing-field-initializers -Wmissing-field-initializers: YES
Compiler for C supports arguments -Wno-typedef-redefinition -Wtypedef-redefinition: NO
Compiler for C++ supports link arguments -Bsymbolic-functions: YES
Compiler for C supports arguments -fno-semantic-interposition: YES
Compiler for C++ supports arguments -fno-semantic-interposition: YES
Compiler for C++ supports arguments -fno-rtti: YES
Found pkg-config: /usr/bin/pkg-config (1.7.3)
Run-time dependency glib-2.0 found: YES 2.66.7
Run-time dependency gthread-2.0 found: YES 2.66.7
Run-time dependency gobject-2.0 found: YES 2.66.7
Run-time dependency gio-2.0 found: YES 2.66.7
Run-time dependency libffi found: YES 3.1
Run-time dependency gobject-introspection-1.0 found: YES 1.66.1
Run-time dependency mozjs-78 found: YES 78.7.0
Run-time dependency cairo found: YES 1.16.0
Run-time dependency cairo-gobject found: YES 1.16.0
Run-time dependency cairo-xlib found: YES 1.16.0
Found CMake: /usr/bin/cmake (3.18.4)
Run-time dependency sysprof-capture-4 found: NO (tried pkgconfig and cmake)
Looking for a fallback subproject for the dependency sysprof-capture-4
Cloning into 'sysprof'...
remote: Enumerating objects: 455, done.
remote: Counting objects: 100% (455/455), done.
remote: Compressing objects: 100% (357/357), done.
remote: Total 455 (delta 206), reused 254 (delta 82), pack-reused 0
Receiving objects: 100% (455/455), 765.53 KiB | 299.00 KiB/s, done.
Resolving deltas: 100% (206/206), done.
|Executing subproject sysprof method meson
|
|Project name: sysprof
|Project version: 3.39.94
|C compiler for the host machine: ccache cc (gcc 10.2.1 "cc (GCC) 10.2.1 20201125 (Red Hat 10.2.1-9)")
|C linker for the host machine: cc ld.bfd 2.35-18
|Compiler for C supports arguments -fvisibility=hidden: YES
|Has header "execinfo.h" : YES
|Checking for function "strlcpy" : NO
|Checking for function "reallocarray" : YES
|Run-time dependency polkit-agent-1 found: NO (tried pkgconfig and cmake)
|Run-time dependency polkit-gobject-1 found: NO (tried pkgconfig and cmake)
|Run-time dependency libunwind-generic found: YES 1.4.0
|Header <libunwind.h> has symbol "unw_set_cache_size" with dependency libunwind-generic: YES
|Checking whether type "struct perf_event_attr" has member "use_clockid" : YES
|Checking whether type "struct perf_event_attr" has member "clockid" : YES
|Compiler for C supports arguments -Wcast-align: YES
|Compiler for C supports arguments -Wdeclaration-after-statement: YES
|Compiler for C supports arguments -Wformat-nonliteral: YES
|Compiler for C supports arguments -Wformat-security: YES
|Compiler for C supports arguments -Wmissing-include-dirs: YES
|Compiler for C supports arguments -Wnested-externs: YES
|Compiler for C supports arguments -Wno-missing-field-initializers -Wmissing-field-initializers: YES
|Compiler for C supports arguments -Wno-sign-compare -Wsign-compare: YES
|Compiler for C supports arguments -Wno-unused-parameter -Wunused-parameter: YES
|Compiler for C supports arguments -Wno-cast-function-type -Wcast-function-type: YES
|Compiler for C supports arguments -Wpointer-arith: YES
|Compiler for C supports arguments -Wredundant-decls: YES
|Compiler for C supports arguments -Wswitch-default: YES
|Compiler for C supports arguments -Wswitch-enum: YES
|Compiler for C supports arguments -Wuninitialized: YES
|Compiler for C supports arguments -Werror=format-security -Werror=format=2: YES
|Compiler for C supports arguments -Werror=empty-body: YES
|Compiler for C supports arguments -Werror=implicit-function-declaration: YES
|Compiler for C supports arguments -Werror=pointer-arith: YES
|Compiler for C supports arguments -Werror=init-self: YES
|Compiler for C supports arguments -Werror=int-conversion: YES
|Compiler for C supports arguments -Werror=misleading-indentation: YES
|Compiler for C supports arguments -Werror=missing-include-dirs: YES
|Compiler for C supports arguments -Werror=overflow: YES
|Compiler for C supports arguments -Werror=parenthesis: NO
|Compiler for C supports arguments -Werror=return-type: YES
|Compiler for C supports arguments -Werror=shadow: YES
|Compiler for C supports arguments -Werror=strict-prototypes: YES
|Compiler for C supports arguments -Werror=undef: YES
|Compiler for C supports arguments -Werror=incompatible-pointer-types: YES
|Compiler for C supports link arguments -Wl,-z,relro: YES
|Compiler for C supports link arguments -Wl,-z,now: YES
|Compiler for C supports link arguments -fstack-protector-strong: YES
|Configuring sysprof-version.h using configuration
|Run-time dependency threads found: YES
|Configuring config.h using configuration
|Build targets in project: 4
|Subproject sysprof finished.
Dependency sysprof-capture-4 from subproject subprojects/sysprof found: YES 3.39.94
Library readline found: YES
Checking for function "timer_settime" : NO
Library rt found: YES
Checking for function "timer_settime" with dependency -lrt: YES
Header <signal.h> has symbol "SIGEV_THREAD_ID" : YES
Checking if "SpiderMonkey is a non-debug build" with dependency mozjs-78 compiles: YES
Checking if "SpiderMonkey sanity check" with dependency mozjs-78 runs: YES
Checking if "printf() supports %I alternative int syntax" compiles: YES
Program dtrace found: YES
Program dbus-run-session found: YES
Program glib-compile-schemas found: YES
Check usable header "readline/readline.h" : YES
Check usable header "sys/syscall.h" : YES
Check usable header "unistd.h" : YES
Check usable header "signal.h" : YES
Configuring config.h using configuration
Configuring gjs.stp using configuration
Found pkg-config: /usr/bin/pkg-config (1.7.3)
Compiler for C++ supports link arguments -Wl,-no-undefined: YES
Compiler for C++ supports link arguments -Wl,--version-script,/tmp/gjs/libgjs.map: YES
Compiler for C++ supports link arguments -Wl,-exported_symbols_list,/tmp/gjs/libgjs.symbols: NO
Build-time dependency gobject-introspection-1.0 found: YES 1.66.1
Program g_ir_scanner found: YES (/usr/bin/g-ir-scanner)
Program g_ir_compiler found: YES (/usr/bin/g-ir-compiler)
DEPRECATION: Passing --warn-error is deprecated in favor of "fatal_warnings" keyword argument since v0.55
Program build/symlink-gjs.py found: YES (/usr/bin/python3 /tmp/gjs/build/symlink-gjs.py)
Program build/compile-gschemas.py found: YES (/usr/bin/python3 /tmp/gjs/build/compile-gschemas.py)
Run-time dependency gtk4 found: YES 4.0.3
Program scripts/testCommandLine.sh found: YES
Configuring testCommandLine.sh.test using configuration
Program scripts/testWarnings.sh found: YES
Configuring testWarnings.sh.test using configuration
DEPRECATION: Passing --warn-error is deprecated in favor of "fatal_warnings" keyword argument since v0.55
DEPRECATION: Passing --warn-error is deprecated in favor of "fatal_warnings" keyword argument since v0.55
Program glib-compile-schemas found: YES
Configuring testself.test using configuration
Configuring testByteArray.test using configuration
Configuring testExceptions.test using configuration
Configuring testFormat.test using configuration
Configuring testFundamental.test using configuration
Configuring testGettext.test using configuration
Configuring testGIMarshalling.test using configuration
Configuring testGio.test using configuration
Configuring testGLib.test using configuration
Configuring testGObject.test using configuration
Configuring testGObjectClass.test using configuration
Configuring testGObjectInterface.test using configuration
Configuring testGObjectValue.test using configuration
Configuring testGTypeClass.test using configuration
Configuring testImporter.test using configuration
Configuring testIntrospection.test using configuration
Configuring testLang.test using configuration
Configuring testLegacyByteArray.test using configuration
Configuring testLegacyClass.test using configuration
Configuring testLegacyGObject.test using configuration
Configuring testMainloop.test using configuration
Configuring testNamespace.test using configuration
Configuring testPackage.test using configuration
Configuring testParamSpec.test using configuration
Configuring testPrint.test using configuration
Configuring testRegress.test using configuration
Configuring testSignals.test using configuration
Configuring testSystem.test using configuration
Configuring testTweener.test using configuration
Configuring testWarnLib.test using configuration
Configuring testCairo.test using configuration
Configuring testGtk3.test using configuration
Configuring testGObjectDestructionAccess.test using configuration
Configuring testLegacyGtk.test using configuration
Configuring testGtk4.test using configuration
Configuring testGDBus.test using configuration
Configuring testESModules.test using configuration
Configuring testCairoModule.test using configuration
Program debugger-test.sh found: YES
Configuring backtrace.test using configuration
Configuring breakpoint.test using configuration
Configuring continue.test using configuration
Configuring delete.test using configuration
Configuring detach.test using configuration
Configuring down-up.test using configuration
Configuring finish.test using configuration
Configuring frame.test using configuration
Configuring keys.test using configuration
Configuring lastvalues.test using configuration
Configuring list.test using configuration
Configuring next.test using configuration
Configuring print.test using configuration
Configuring quit.test using configuration
Configuring return.test using configuration
Configuring set.test using configuration
Configuring step.test using configuration
Configuring throw.test using configuration
Configuring until.test using configuration
meson.build:698: WARNING: Your copy of SpiderMonkey is not debug-enabled, but you are
building a debug or debugoptimized build. This will make development more
difficult. Consider reconfiguring SpiderMonkey with --enable-debug.
Message: Optional features
Build Cairo module: true
Use readline for input in interactive shell and debugger: true
Build profiler (Linux only): true
Build targets in project: 27
gjs 1.67.2
Subprojects
sysprof: YES
Found ninja-1.10.2 at /usr/bin/ninja
If I manage to get it working I will send a MR for HACKING.md
to explicitely build gjs with a prefix if that's ok.
Edited by Sonny Piers