Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: add gnome3.gnome-builder #33270

Closed
wants to merge 3 commits into from
Closed

WIP: add gnome3.gnome-builder #33270

wants to merge 3 commits into from

Conversation

andir
Copy link
Member

@andir andir commented Jan 1, 2018

Motivation for this change

I was tempted to build a GTK application using gnome-builder. This is my current WIP on getting it to run on NixOS.

Current remaining issues:

  • Add meta attribute to the new packages
  • icons in gnome-builder do not show up
  • python modules throw many errors e.g.:
    • TypeError: must be an interface
    • NotImplementedError: <GType void (4)>
  • Templates for new projects do not render (probably related to the previous issues)
  • typelib seems to have constructed an invalid path to a shared library during build:
    WARNING: Failed to load shared library '/nix/store/x30dzq82zv0w4nxg42bd7q60zlmi6jk0-gnome-builder-3.27.2/lib/libide-1.0.so' referenced by the typelib: /nix/store/x30dzq82zv0w4nxg42bd7q60zlmi6jk0-gnome-builder-3.27.2/lib/libide-1.0.so: cannot open shared object file: No such file or directory
Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Fits CONTRIBUTING.md.

let
version = "3.27.2";
name = "gnome-builder-${version}";
pythonPath = with python3Packages; python3Packages.makePythonPath [ libpeas pygobject3 ];
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

libpeas is not marked as a Python module, so it won't be added to the pythonPath. Packages that provide bindings should be added to python-packages.nix and use toPythonModule function.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, still in the state where I just got it to (finally) got it to startup. I'll work on that next.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

libpeas doesn't seem to actually provide any .py files. It is just a shared lib that supports loading python addons.

nativeBuildInputs = [ gettext meson ninja pkgconfig python3 wrapGAppsHook ];
buildInputs = [ devhelp gspell gtk3 gtksourceview json_glib jsonrpc_glib libdazzle libgit2-glib libpeas libxml2 llvmPackages.clang llvmPackages.llvm pcre sysprof template_glib vala vte webkitgtk ];

propagatedUserEnvPkgs = [ gnome_themes_standard ];
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know if there is any way around it but try to avoid using propagatgedUserEnvPkgs.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

adding the theme as simple buildInput did solve it. Apparently there are some hooks that fixup things..

@jtojnar jtojnar added 6.topic: GNOME GNOME desktop environment and its underlying platform 8.has: package (new) labels Jan 1, 2018

meta = {
homepage = http://sysprof.com/;
homepage = https://git.gnome.org/browse/sysprof/;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

, ...}:

stdenv.mkDerivation rec {
version = "3.27.2";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Versions with odd minor version number are unstable. https://developer.gnome.org/programming-guidelines/stable/versioning.html.en#stable-unstable-versions Unless the stable version is broken, it is preferred.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am aware of that. Since the 3.26 release there has been larger restructuring in build system of gnome-builder. I didn't want to invest time in tinkering with an older version when the (expected) release is end of February/start of march. That would also line up with NixOS 18.03.

I intend to bump the version to the next stable version as soon as those are available.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay.


pythonPath = with python3Packages; makePythonPath [ pygobject3 ];
preFixup = ''
glib-compile-schemas $out/share/glib-2.0/schemas
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you move this to postInstall, glib setup hook will take care of setting GSETTINGS_SCHEMAS_PATH.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, changed that.

, vte
, webkitgtk
, wrapGAppsHook
, ...}:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is ellipsis here?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leftover from some tinkering. Will be removed with next push.

, ninja
, pcre
, pkgconfig
, pkgs
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this here?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leftover from some tinkering. Will be removed with next push.

buildInputs = [ glib gtk3 ];
nativeBuildInputs = [ ninja meson pkgconfig vala ];

enableParallelBuilding = true;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Derivations using meson are built in parallel by default: #32271

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, removed.


outputs = [ "out" "dev" ];

src = fetchFromGitHub {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mirror://gnome/sources/libdazzle…

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

buildInputs = [ meson ninja pkgconfig glib ];
nativeBuildInputs = [ gettext glib gobjectIntrospection flex bison vala ];
src = fetchgit {
url = https://gitlab.gnome.org/GNOME/template-glib.git;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mirror://gnome/sources/template-glib…

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

url = "http://www.sysprof.com/sysprof-1.2.0.tar.gz";
sha256 = "1wb4d844rsy8qjg3z5m6rnfm72da4xwzrrkkb1q5r10sq1pkrw5s";
src = fetchgit {
url = "git://git.gnome.org/sysprof";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mirror://gnome/sources/sysprof…

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@jtojnar
Copy link
Contributor

jtojnar commented Jan 1, 2018

The typelib path is supposed to be addressed by 1dba3c0 but it only works when typelibdir is an absolute path. This is how I fixed it in polari: https://gitlab.gnome.org/GNOME/polari/merge_requests/15

@andir
Copy link
Member Author

andir commented Jan 1, 2018

Thank you for the feedback so far.

Most of the comments should be addresses. Still have to invest more time into the typelib issue.

@jtojnar
Copy link
Contributor

jtojnar commented Jan 1, 2018

There are also some dependencies missing:

  • jedi and sphinx from pythonPackages
  • ctags
  • appstream-glib and desktop_file_utils for build

@jtojnar
Copy link
Contributor

jtojnar commented Jan 1, 2018

Some path patches:

Expand
--- a/pkgs/desktops/gnome-3/devtools/gnome-builder/default.nix
+++ b/pkgs/desktops/gnome-3/devtools/gnome-builder/default.nix
@@ -1,15 +1,23 @@
 {stdenv
+, autoconf
 , clang
+, clang-tools
+, cmake
 , ctags
+, substituteAll
 , defaultIconTheme
 , devhelp
 , fetchurl
 , gettext
+, gjs
+, glib
 , gnome_themes_standard
+, gnumake
 , gspell
 , gtk3
 , gtksourceview
 , hicolor_icon_theme
+, indent
 , json_glib
 , jsonrpc_glib
 , libdazzle
@@ -19,15 +26,18 @@
 , llvmPackages
 , meson
 , ninja
+, packagekit
 , pcre
 , pkgconfig
 , python3
 , python3Packages
 , sysprof
 , template_glib
+, unzip
 , vala
 , vte
 , webkitgtk
+, which
 , wrapGAppsHook
 , ...}:
 
@@ -52,7 +62,14 @@
 
   mesonFlags = "-D with_flatpak=false";
 
-  patches = [ ./patch_libide.patch ];
+  patches = [
+    ./patch_libide.patch
+    (substituteAll {
+      src = ./fix-paths.patch;
+      glibDev = glib.dev;
+      inherit autoconf clang clang-tools cmake gjs gnumake indent meson packagekit pkgconfig unzip which;
+    })
+  ];
 
   postPatch = ''
     patchShebangs build-aux/meson/post_install.py
--- /dev/null
+++ b/pkgs/desktops/gnome-3/devtools/gnome-builder/fix-paths.patch
@@ -0,0 +1,230 @@
+--- a/doc/help/examples/format_on_save.py
++++ b/doc/help/examples/format_on_save.py
+@@ -40,7 +40,7 @@
+                            Gio.SubprocessFlags.STDOUT_PIPE)
+ 
+         # Setup our cmdline arguments
+-        launcher.push_argv('indent')
++        launcher.push_argv('@indent@/bin/indent')
+ 
+         # If your target program is installed on the host (and not bundled
+         # or found in the build environment runtime) you might need to set
+--- a/src/libide/projects/ide-project.c
++++ b/src/libide/projects/ide-project.c
+@@ -732,7 +732,7 @@
+ 
+       launcher = ide_subprocess_launcher_new (0);
+       ide_subprocess_launcher_set_run_on_host (launcher, TRUE);
+-      ide_subprocess_launcher_push_argv (launcher, "gio");
++      ide_subprocess_launcher_push_argv (launcher, "@glibDev@/bin/gio");
+       ide_subprocess_launcher_push_argv (launcher, "trash");
+       ide_subprocess_launcher_push_argv (launcher, uri);
+ 
+--- a/src/libide/runtimes/ide-runtime.c
++++ b/src/libide/runtimes/ide-runtime.c
+@@ -106,7 +106,7 @@
+           g_autoptr(IdeSubprocess) subprocess = NULL;
+ 
+           ide_subprocess_launcher_set_run_on_host (launcher, TRUE);
+-          ide_subprocess_launcher_push_argv (launcher, "which");
++          ide_subprocess_launcher_push_argv (launcher, "@which@/bin/which");
+           ide_subprocess_launcher_push_argv (launcher, program);
+ 
+           if (NULL != (subprocess = ide_subprocess_launcher_spawn (launcher, cancellable, NULL)))
+--- a/src/libide/transfers/ide-pkcon-transfer.c
++++ b/src/libide/transfers/ide-pkcon-transfer.c
+@@ -140,7 +140,7 @@
+ 
+   launcher = ide_subprocess_launcher_new (G_SUBPROCESS_FLAGS_STDOUT_PIPE);
+   ide_subprocess_launcher_set_run_on_host (launcher, TRUE);
+-  ide_subprocess_launcher_push_argv (launcher, "pkcon");
++  ide_subprocess_launcher_push_argv (launcher, "@packagekit@/bin/pkcon");
+   ide_subprocess_launcher_push_argv (launcher, "install");
+   ide_subprocess_launcher_push_argv (launcher, "-y");
+   ide_subprocess_launcher_push_argv (launcher, "-p");
+--- a/src/plugins/autotools/ide-autotools-autogen-stage.c
++++ b/src/plugins/autotools/ide-autotools-autogen-stage.c
+@@ -94,7 +94,7 @@
+     }
+   else
+     {
+-      ide_subprocess_launcher_push_argv (launcher, "autoreconf");
++      ide_subprocess_launcher_push_argv (launcher, "@autoconf@/bin/autoreconf");
+       ide_subprocess_launcher_push_argv (launcher, "-fiv");
+     }
+ 
+--- a/src/plugins/autotools/ide-autotools-make-stage.c
++++ b/src/plugins/autotools/ide-autotools-make-stage.c
+@@ -96,7 +96,7 @@
+       if (ide_runtime_contains_program_in_path (runtime, "gmake", cancellable))
+         self->make = "gmake";
+       else
+-        self->make = "make";
++        self->make = "@gnumake@/bin/make";
+     }
+ 
+   if (NULL == (launcher = ide_build_pipeline_create_launcher (pipeline, error)))
+--- a/src/plugins/autotools/ide-makecache.c
++++ b/src/plugins/autotools/ide-makecache.c
+@@ -1042,7 +1042,7 @@
+ {
+   DZL_COUNTER_INC (instances);
+ 
+-  self->make_name = "make";
++  self->make_name = "@gnumake@/bin/make";
+ 
+   self->file_targets_cache = dzl_task_cache_new ((GHashFunc)g_file_hash,
+                                                  (GEqualFunc)g_file_equal,
+--- a/src/plugins/beautifier/gb-beautifier-process.c
++++ b/src/plugins/beautifier/gb-beautifier-process.c
+@@ -222,7 +222,7 @@
+     return NULL;
+ 
+   args = g_ptr_array_new ();
+-  g_ptr_array_add (args, "clang-format");
++  g_ptr_array_add (args, "@clang-tools@/bin/clang-format");
+   g_ptr_array_add (args, "-style=file");
+   g_ptr_array_add (args, tmp_src_path);
+   g_ptr_array_add (args, NULL);
+--- a/src/plugins/clang/ide-clang-service.c
++++ b/src/plugins/clang/ide-clang-service.c
+@@ -213,7 +213,7 @@
+ 
+   subprocess = g_subprocess_new (G_SUBPROCESS_FLAGS_STDOUT_PIPE,
+                                  &error,
+-                                 "clang",
++                                 "@clang@/bin/clang",
+                                  "-print-file-name=include",
+                                  NULL);
+ 
+--- a/src/plugins/cmake/gbp-cmake-pipeline-addin.c
++++ b/src/plugins/cmake/gbp-cmake-pipeline-addin.c
+@@ -131,7 +131,7 @@
+ 
+   prefix_option = g_strdup_printf ("-DCMAKE_INSTALL_PREFIX=%s", prefix);
+ 
+-  ide_subprocess_launcher_push_argv (configure_launcher, "cmake");
++  ide_subprocess_launcher_push_argv (configure_launcher, "@cmake@/bin/cmake");
+   ide_subprocess_launcher_push_argv (configure_launcher, "-G");
+   ide_subprocess_launcher_push_argv (configure_launcher, "Ninja");
+   ide_subprocess_launcher_push_argv (configure_launcher, ".");
+--- a/src/plugins/flatpak/gbp-flatpak-sources.c
++++ b/src/plugins/flatpak/gbp-flatpak-sources.c
+@@ -281,7 +281,7 @@
+   va_list ap;
+ 
+   va_start (ap, error);
+-  res = archive_spawn (dir, NULL, error, "unzip", ap);
++  res = archive_spawn (dir, NULL, error, "@unzip@/bin/unzip", ap);
+   va_end (ap);
+ 
+   return res;
+--- a/src/plugins/gjs-symbols/gjs_symbols.py
++++ b/src/plugins/gjs-symbols/gjs_symbols.py
+@@ -251,7 +251,7 @@
+         runtime = context.get_configuration_manager().get_current().get_runtime()
+         launcher = runtime.create_launcher()
+         launcher.set_flags(Gio.SubprocessFlags.STDOUT_PIPE | Gio.SubprocessFlags.STDERR_SILENCE)
+-        launcher.push_args(('gjs', '-c', script))
++        launcher.push_args(('@gjs@/bin/gjs', '-c', script))
+         if unsaved_file is not None:
+             launcher.push_argv(unsaved_file.get_content().get_data().decode('utf-8'))
+         else:
+--- a/src/plugins/jhbuild/jhbuild_plugin.py
++++ b/src/plugins/jhbuild/jhbuild_plugin.py
+@@ -98,7 +98,7 @@
+             try:
+                 launcher = Ide.SubprocessLauncher.new(Gio.SubprocessFlags.STDOUT_SILENCE |
+                                                       Gio.SubprocessFlags.STDERR_SILENCE)
+-                launcher.push_argv('which')
++                launcher.push_argv('@which@/bin/which')
+                 launcher.push_argv(jhbuild_bin)
+ 
+                 launcher.set_run_on_host(True)
+--- a/src/plugins/meson/gbp-meson-build-target-provider.c
++++ b/src/plugins/meson/gbp-meson-build-target-provider.c
+@@ -282,7 +282,7 @@
+   pipeline = ide_build_manager_get_pipeline (build_manager);
+   cancellable = g_task_get_cancellable (task);
+ 
+-  ide_subprocess_launcher_push_argv (launcher, "meson");
++  ide_subprocess_launcher_push_argv (launcher, "@meson@/bin/meson");
+   ide_subprocess_launcher_push_argv (launcher, "introspect");
+   ide_subprocess_launcher_push_argv (launcher, "--installed");
+   ide_subprocess_launcher_push_argv (launcher, ide_build_pipeline_get_builddir (pipeline));
+@@ -359,7 +359,7 @@
+       IDE_EXIT;
+     }
+ 
+-  ide_subprocess_launcher_push_argv (launcher, "meson");
++  ide_subprocess_launcher_push_argv (launcher, "@meson@/bin/meson");
+   ide_subprocess_launcher_push_argv (launcher, "introspect");
+   ide_subprocess_launcher_push_argv (launcher, "--targets");
+ 
+--- a/src/plugins/meson/gbp-meson-pipeline-addin.c
++++ b/src/plugins/meson/gbp-meson-pipeline-addin.c
+@@ -113,7 +113,7 @@
+   parallel = ide_configuration_get_parallelism (config);
+ 
+   if (NULL == (meson = ide_configuration_getenv (config, "MESON")))
+-    meson = "meson";
++    meson = "@meson@/bin/meson";
+ 
+   /* Setup our meson configure stage. */
+ 
+--- a/src/plugins/meson/gbp-meson-test-provider.c
++++ b/src/plugins/meson/gbp-meson-test-provider.c
+@@ -202,7 +202,7 @@
+   builddir = ide_build_pipeline_get_builddir (pipeline);
+   ide_subprocess_launcher_set_cwd (launcher, builddir);
+ 
+-  ide_subprocess_launcher_push_argv (launcher, "meson");
++  ide_subprocess_launcher_push_argv (launcher, "@meson@/bin/meson");
+   ide_subprocess_launcher_push_argv (launcher, "introspect");
+   ide_subprocess_launcher_push_argv (launcher, "--tests");
+ 
+--- a/src/plugins/phpize/phpize_plugin.py
++++ b/src/plugins/phpize/phpize_plugin.py
+@@ -114,7 +114,7 @@
+             launcher.set_flags(Gio.SubprocessFlags.STDIN_PIPE |
+                                Gio.SubprocessFlags.STDOUT_PIPE |
+                                Gio.SubprocessFlags.STDERR_PIPE)
+-            launcher.push_argv('make')
++            launcher.push_argv('@gnumake@/bin/make')
+             launcher.push_argv('-f')
+             launcher.push_argv('-')
+             launcher.push_argv('print-CFLAGS')
+@@ -224,11 +224,11 @@
+ 
+         # Build the project using make.
+         build_launcher = pipeline.create_launcher()
+-        build_launcher.push_argv('make')
++        build_launcher.push_argv('@gnumake@/bin/make')
+         if config.props.parallelism > 0:
+             build_launcher.push_argv('-j{}'.format(config.props.parallelism))
+         clean_launcher = pipeline.create_launcher()
+-        clean_launcher.push_argv('make')
++        clean_launcher.push_argv('@gnumake@/bin/make')
+         clean_launcher.push_argv('clean')
+         build_stage = Ide.BuildStageLauncher.new(context, build_launcher)
+         build_stage.set_clean_launcher(clean_launcher)
+@@ -237,7 +237,7 @@
+ 
+         # Use "make install" to install the project.
+         install_launcher = pipeline.create_launcher()
+-        install_launcher.push_argv('make')
++        install_launcher.push_argv('@gnumake@/bin/make')
+         install_launcher.push_argv('install')
+         install_stage = Ide.BuildStageLauncher.new(context, install_launcher)
+         self.track(pipeline.connect(Ide.BuildPhase.INSTALL, 0, install_stage))
+--- a/src/plugins/vala-pack/ide-vala-index.vala
++++ b/src/plugins/vala-pack/ide-vala-index.vala
+@@ -547,7 +547,7 @@
+ 				var pkgname = "libvala-%s".printf (Config.VALA_VERSION);
+ 				string outstr = null;
+ 				var subprocess = new GLib.Subprocess (GLib.SubprocessFlags.STDOUT_PIPE,
+-					                                  "pkg-config",
++					                                  "@pkgconfig@/bin/pkg-config",
+ 					                                  "--variable=vapidir",
+ 					                                  pkgname,
+ 					                                  null);

@andir
Copy link
Member Author

andir commented Jan 1, 2018

@jtojnar thanks, I've added those as a separate commit for now. Gonna give it a test spin now.

@jtojnar
Copy link
Contributor

jtojnar commented Jan 1, 2018

Apparently, it applies to 3.27.3.

@andir
Copy link
Member Author

andir commented Jan 1, 2018

Yeah, I didn't pick that version just yet since that involves bumping other gnome dependencies and just makes this change bigger. The difference in patch is probably trivial. So far I only see this chunk that doesn't apply:

--- src/plugins/meson/gbp-meson-pipeline-addin.c
+++ src/plugins/meson/gbp-meson-pipeline-addin.c
@@ -113,7 +113,7 @@
   parallel = ide_configuration_get_parallelism (config);

   if (NULL == (meson = ide_configuration_getenv (config, "MESON")))
-    meson = "meson";
+    meson = "/nix/store/jc8aybbzvvsgkmzqg4m6zypz8r1xb581-meson-0.44.0/bin/meson";

   /* Setup our meson configure stage. */

@andir
Copy link
Member Author

andir commented Jan 2, 2018

Updating to 3.27.3 means updating glib to >=2.55 (also glibmm,…) which means we will trigger a rather large rebuild.. I am currently doing that locally to see what else might need fixes then.

@andir
Copy link
Member Author

andir commented Jan 2, 2018

With an upgraded glib and 3.27.3 we are getting this startup log. I will port your patch to 3.27.2 since upgrading glib to an unstable version seems even less reasonable then downgrading this to the old release.

 /nix/store/bs8qfsad6hkwknpyip0n8wakp1xsd1l3-gnome-builder-3.27.3/bin/gnome-builder                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             /home/andi/dev/nixos/nixpkgs
14:51:21.0794                                    (null)[ 13514]:  WARNING: Failed to load shared library '/nix/store/bs8qfsad6hkwknpyip0n8wakp1xsd1l3-gnome-builder-3.27.3/lib/libide-1.0.so' referenced by the typelib: /nix/store/bs8qfsad6hkwknpyip0n8wakp1xsd1l3-gnome-builder-3.27.3/lib/libide-1.0.so: cannot open shared object file: No such file or directory
14:51:21.0796                                   libpeas[ 13514]:  WARNING: Error importing plugin 'valgrind_plugin':
Traceback (most recent call last):
  File "/nix/store/y95dd7cmw2xlf6hvg2j93b227pblpaaq-python3-3.6.4/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/nix/store/bs8qfsad6hkwknpyip0n8wakp1xsd1l3-gnome-builder-3.27.3/lib/gnome-builder/plugins/valgrind_plugin.py", line 31, in <module>
    class ValgrindWorkbenchAddin(GObject.Object, Ide.WorkbenchAddin):
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/module.py", line 220, in __getattr__
    wrapper = metaclass(name, bases, dict_)
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/types.py", line 234, in __init__
    register_interface_info(cls.__info__.get_g_type())
TypeError: must be an interface
14:51:21.0796                                   libpeas[ 13514]:  WARNING: Error loading plugin 'valgrind_plugin'
14:51:21.0841                                   libpeas[ 13514]:  WARNING: Error importing plugin 'rustup_plugin':
Traceback (most recent call last):
  File "/nix/store/y95dd7cmw2xlf6hvg2j93b227pblpaaq-python3-3.6.4/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/nix/store/bs8qfsad6hkwknpyip0n8wakp1xsd1l3-gnome-builder-3.27.3/lib/gnome-builder/plugins/rustup_plugin.py", line 74, in <module>
    class RustUpWorkbenchAddin(GObject.Object, Ide.WorkbenchAddin):
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/module.py", line 220, in __getattr__
    wrapper = metaclass(name, bases, dict_)
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/types.py", line 234, in __init__
    register_interface_info(cls.__info__.get_g_type())
TypeError: must be an interface
14:51:21.0841                                   libpeas[ 13514]:  WARNING: Error loading plugin 'rustup_plugin'
14:51:21.0844                                   libpeas[ 13514]:  WARNING: Error importing plugin 'rust_langserv_plugin':
Traceback (most recent call last):
  File "/nix/store/y95dd7cmw2xlf6hvg2j93b227pblpaaq-python3-3.6.4/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/nix/store/bs8qfsad6hkwknpyip0n8wakp1xsd1l3-gnome-builder-3.27.3/lib/gnome-builder/plugins/rust_langserv_plugin.py", line 40, in <module>
    class RustService(Ide.Object, Ide.Service):
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/module.py", line 220, in __getattr__
    wrapper = metaclass(name, bases, dict_)
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/types.py", line 234, in __init__
    register_interface_info(cls.__info__.get_g_type())
TypeError: must be an interface
14:51:21.0844                                   libpeas[ 13514]:  WARNING: Error loading plugin 'rust_langserv_plugin'
14:51:21.0849                                   libpeas[ 13514]:  WARNING: Error importing plugin 'python_gi_imports_completion':
Traceback (most recent call last):
  File "/nix/store/y95dd7cmw2xlf6hvg2j93b227pblpaaq-python3-3.6.4/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/nix/store/bs8qfsad6hkwknpyip0n8wakp1xsd1l3-gnome-builder-3.27.3/lib/gnome-builder/plugins/python_gi_imports_completion.py", line 46, in <module>
    Ide.CompletionProvider):
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/module.py", line 220, in __getattr__
    wrapper = metaclass(name, bases, dict_)
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/types.py", line 234, in __init__
    register_interface_info(cls.__info__.get_g_type())
TypeError: must be an interface
14:51:21.0849                                   libpeas[ 13514]:  WARNING: Error loading plugin 'python_gi_imports_completion'
14:51:21.0852                                   libpeas[ 13514]:  WARNING: Error importing plugin 'phpize_plugin':
Traceback (most recent call last):
  File "/nix/store/y95dd7cmw2xlf6hvg2j93b227pblpaaq-python3-3.6.4/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/nix/store/bs8qfsad6hkwknpyip0n8wakp1xsd1l3-gnome-builder-3.27.3/lib/gnome-builder/plugins/phpize_plugin.py", line 49, in <module>
    class PHPizeBuildSystem(Ide.Object, Ide.BuildSystem, Gio.AsyncInitable):
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/module.py", line 220, in __getattr__
    wrapper = metaclass(name, bases, dict_)
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/types.py", line 234, in __init__
    register_interface_info(cls.__info__.get_g_type())
TypeError: must be an interface
14:51:21.0852                                   libpeas[ 13514]:  WARNING: Error loading plugin 'phpize_plugin'
14:51:21.0874                                   libpeas[ 13514]:  WARNING: Error importing plugin 'npm_plugin':
Traceback (most recent call last):
  File "/nix/store/y95dd7cmw2xlf6hvg2j93b227pblpaaq-python3-3.6.4/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/nix/store/bs8qfsad6hkwknpyip0n8wakp1xsd1l3-gnome-builder-3.27.3/lib/gnome-builder/plugins/npm_plugin.py", line 35, in <module>
    class NPMBuildSystem(Ide.Object, Ide.BuildSystem, Gio.AsyncInitable):
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/module.py", line 220, in __getattr__
    wrapper = metaclass(name, bases, dict_)
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/types.py", line 234, in __init__
    register_interface_info(cls.__info__.get_g_type())
TypeError: must be an interface
14:51:21.0874                                   libpeas[ 13514]:  WARNING: Error loading plugin 'npm_plugin'
14:51:21.0876                                   libpeas[ 13514]:  WARNING: Error importing plugin 'mono_plugin':
Traceback (most recent call last):
  File "/nix/store/y95dd7cmw2xlf6hvg2j93b227pblpaaq-python3-3.6.4/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/nix/store/bs8qfsad6hkwknpyip0n8wakp1xsd1l3-gnome-builder-3.27.3/lib/gnome-builder/plugins/mono_plugin.py", line 14, in <module>
    class MonoPipelineAddin(Ide.Object, Ide.BuildPipelineAddin):
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/module.py", line 220, in __getattr__
    wrapper = metaclass(name, bases, dict_)
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/types.py", line 234, in __init__
    register_interface_info(cls.__info__.get_g_type())
TypeError: must be an interface
14:51:21.0876                                   libpeas[ 13514]:  WARNING: Error loading plugin 'mono_plugin'
14:51:21.0886                                   libpeas[ 13514]:  WARNING: Error importing plugin 'meson_templates':
Traceback (most recent call last):
  File "/nix/store/y95dd7cmw2xlf6hvg2j93b227pblpaaq-python3-3.6.4/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/nix/store/bs8qfsad6hkwknpyip0n8wakp1xsd1l3-gnome-builder-3.27.3/lib/gnome-builder/plugins/meson_templates.py", line 38, in <module>
    class LibraryTemplateProvider(GObject.Object, Ide.TemplateProvider):
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/module.py", line 220, in __getattr__
    wrapper = metaclass(name, bases, dict_)
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/types.py", line 234, in __init__
    register_interface_info(cls.__info__.get_g_type())
TypeError: must be an interface
14:51:21.0886                                   libpeas[ 13514]:  WARNING: Error loading plugin 'meson_templates'
14:51:21.0890                                   libpeas[ 13514]:  WARNING: Error importing plugin 'make_plugin':
Traceback (most recent call last):
  File "/nix/store/y95dd7cmw2xlf6hvg2j93b227pblpaaq-python3-3.6.4/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/nix/store/bs8qfsad6hkwknpyip0n8wakp1xsd1l3-gnome-builder-3.27.3/lib/gnome-builder/plugins/make_plugin.py", line 30, in <module>
    class MakeBuildSystem(Ide.Object, Ide.BuildSystem, Gio.AsyncInitable):
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/module.py", line 220, in __getattr__
    wrapper = metaclass(name, bases, dict_)
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/types.py", line 234, in __init__
    register_interface_info(cls.__info__.get_g_type())
TypeError: must be an interface
14:51:21.0891                                   libpeas[ 13514]:  WARNING: Error loading plugin 'make_plugin'
/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/types.py:204: Warning: cannot derive 'jhbuild_plugin+JhbuildRuntime' from non-derivable parent type 'void'
  _gi.type_register(cls, namespace.get('__gtype_name__'))
14:51:21.0895                                   libpeas[ 13514]:  WARNING: Error importing plugin 'jhbuild_plugin':
Traceback (most recent call last):
  File "/nix/store/y95dd7cmw2xlf6hvg2j93b227pblpaaq-python3-3.6.4/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/nix/store/bs8qfsad6hkwknpyip0n8wakp1xsd1l3-gnome-builder-3.27.3/lib/gnome-builder/plugins/jhbuild_plugin.py", line 30, in <module>
    class JhbuildRuntime(Ide.Runtime):
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/types.py", line 213, in __init__
    super(GObjectMeta, cls).__init__(name, bases, dict_)
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/types.py", line 192, in __init__
    cls._type_register(cls.__dict__)
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/types.py", line 204, in _type_register
    _gi.type_register(cls, namespace.get('__gtype_name__'))
RuntimeError: could not create new GType: jhbuild_plugin+JhbuildRuntime (subclass of void)
14:51:21.0895                                   libpeas[ 13514]:  WARNING: Error loading plugin 'jhbuild_plugin'
Warning: python3-lxml is not installed, no documentation will be available in Python auto-completion
14:51:22.0006                                   libpeas[ 13514]:  WARNING: Error importing plugin 'jedi_plugin':
Traceback (most recent call last):
  File "/nix/store/y95dd7cmw2xlf6hvg2j93b227pblpaaq-python3-3.6.4/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/nix/store/bs8qfsad6hkwknpyip0n8wakp1xsd1l3-gnome-builder-3.27.3/lib/gnome-builder/plugins/jedi_plugin.py", line 351, in <module>
    class JediCompletionProvider(Ide.Object, GtkSource.CompletionProvider, Ide.CompletionProvider):
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/module.py", line 220, in __getattr__
    wrapper = metaclass(name, bases, dict_)
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/types.py", line 234, in __init__
    register_interface_info(cls.__info__.get_g_type())
TypeError: must be an interface
14:51:22.0006                                   libpeas[ 13514]:  WARNING: Error loading plugin 'jedi_plugin'
14:51:22.0036                                   libpeas[ 13514]:  WARNING: Error importing plugin 'html_preview':
Traceback (most recent call last):
  File "/nix/store/y95dd7cmw2xlf6hvg2j93b227pblpaaq-python3-3.6.4/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/nix/store/bs8qfsad6hkwknpyip0n8wakp1xsd1l3-gnome-builder-3.27.3/lib/gnome-builder/plugins/html_preview.py", line 104, in <module>
    class HtmlPreviewData(GObject.Object, Ide.ApplicationAddin):
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/module.py", line 220, in __getattr__
    wrapper = metaclass(name, bases, dict_)
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/types.py", line 234, in __init__
    register_interface_info(cls.__info__.get_g_type())
TypeError: must be an interface
14:51:22.0036                                   libpeas[ 13514]:  WARNING: Error loading plugin 'html_preview'
14:51:22.0043                                   libpeas[ 13514]:  WARNING: Error importing plugin 'gjs_symbols':
Traceback (most recent call last):
  File "/nix/store/y95dd7cmw2xlf6hvg2j93b227pblpaaq-python3-3.6.4/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/nix/store/bs8qfsad6hkwknpyip0n8wakp1xsd1l3-gnome-builder-3.27.3/lib/gnome-builder/plugins/gjs_symbols.py", line 21, in <module>
    class JsSymbolNode(Ide.SymbolNode):
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/types.py", line 213, in __init__
    super(GObjectMeta, cls).__init__(name, bases, dict_)
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/types.py", line 190, in __init__
    propertyhelper.install_properties(cls)
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/_propertyhelper.py", line 400, in install_properties
    gproperties[prop.name] = prop.get_pspec_args()
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/_propertyhelper.py", line 374, in get_pspec_args
    raise NotImplementedError(ptype)
NotImplementedError: <GType void (4)>
14:51:22.0043                                   libpeas[ 13514]:  WARNING: Error loading plugin 'gjs_symbols'
14:51:22.0045                                   libpeas[ 13514]:  WARNING: Error importing plugin 'find_other_file':
Traceback (most recent call last):
  File "/nix/store/y95dd7cmw2xlf6hvg2j93b227pblpaaq-python3-3.6.4/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/nix/store/bs8qfsad6hkwknpyip0n8wakp1xsd1l3-gnome-builder-3.27.3/lib/gnome-builder/plugins/find_other_file.py", line 36, in <module>
    class FindOtherFile(GObject.Object, Ide.WorkbenchAddin):
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/module.py", line 220, in __getattr__
    wrapper = metaclass(name, bases, dict_)
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/types.py", line 234, in __init__
    register_interface_info(cls.__info__.get_g_type())
TypeError: must be an interface
14:51:22.0045                                   libpeas[ 13514]:  WARNING: Error loading plugin 'find_other_file'
14:51:22.0048                                   libpeas[ 13514]:  WARNING: Error importing plugin 'eslint_plugin':
Traceback (most recent call last):
  File "/nix/store/y95dd7cmw2xlf6hvg2j93b227pblpaaq-python3-3.6.4/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/nix/store/bs8qfsad6hkwknpyip0n8wakp1xsd1l3-gnome-builder-3.27.3/lib/gnome-builder/plugins/eslint_plugin.py", line 46, in <module>
    class ESLintDiagnosticProvider(Ide.Object, Ide.DiagnosticProvider):
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/module.py", line 220, in __getattr__
    wrapper = metaclass(name, bases, dict_)
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/types.py", line 234, in __init__
    register_interface_info(cls.__info__.get_g_type())
TypeError: must be an interface
14:51:22.0048                                   libpeas[ 13514]:  WARNING: Error loading plugin 'eslint_plugin'
14:51:22.0055                                   libpeas[ 13514]:  WARNING: Error importing plugin 'cargo_plugin':
Traceback (most recent call last):
  File "/nix/store/y95dd7cmw2xlf6hvg2j93b227pblpaaq-python3-3.6.4/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/nix/store/bs8qfsad6hkwknpyip0n8wakp1xsd1l3-gnome-builder-3.27.3/lib/gnome-builder/plugins/cargo_plugin.py", line 35, in <module>
    class CargoBuildSystem(Ide.Object, Ide.BuildSystem, Gio.AsyncInitable):
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/module.py", line 220, in __getattr__
    wrapper = metaclass(name, bases, dict_)
  File "/nix/store/3jldqj0n6q0nnlz7r1gl58pk70pvbzy7-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/types.py", line 234, in __init__
    register_interface_info(cls.__info__.get_g_type())
TypeError: must be an interface
14:51:22.0055                                   libpeas[ 13514]:  WARNING: Error loading plugin 'cargo_plugin'
^C

@jtojnar
Copy link
Contributor

jtojnar commented Jan 2, 2018

I think it keeping 3.27.2 is the most reasonable solution. i do not really want another glib derivation.

The errors are mostly from invalid typelib path.

@jtojnar jtojnar added this to In Progress in GNOME Feb 1, 2018
@jtojnar
Copy link
Contributor

jtojnar commented Feb 24, 2018

We will probably want to submit the patch to GNOME before 3.28 code freeze on March 5. Do you think you will have time to work on it before then?

@andir
Copy link
Member Author

andir commented Feb 25, 2018 via email

@jtojnar
Copy link
Contributor

jtojnar commented Mar 15, 2018

libdazzle was cherry-picked to #36893

@jtojnar
Copy link
Contributor

jtojnar commented Mar 28, 2018

I rebased the PR and updated the packages. #37381 fixed the typelib error, the Python one remains:

Traceback (most recent call last):
  File "/nix/store/ca6w12vshz0bvbdw7z3k7yr92kqjaq2a-python3-3.6.4/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/nix/store/2gp3krh7swd9q60m4zafvy286fnr2b1v-gnome-builder-3.28.0/lib/gnome-builder/plugins/make_plugin.py", line 34, in <module>
    class MakeBuildSystem(Ide.Object, Ide.BuildSystem, Gio.AsyncInitable):
  File "/nix/store/x7mkyvwc4d4xmkpza6assbw0yb4nzx34-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/module.py", line 220, in __getattr__
    wrapper = metaclass(name, bases, dict_)
  File "/nix/store/x7mkyvwc4d4xmkpza6assbw0yb4nzx34-python3.6-pygobject-3.26.1/lib/python3.6/site-packages/gi/types.py", line 234, in __init__
    register_interface_info(cls.__info__.get_g_type())
TypeError: must be an interface
00:57:50.0639                                   libpeas[ 17078]:  WARNING: Error loading plugin 'make_plugin'

@AdrianVovk
Copy link

Has this been abandoned?

@andir
Copy link
Member Author

andir commented May 16, 2018 via email

@jtojnar
Copy link
Contributor

jtojnar commented May 16, 2018

Sysprof requires a NixOS module, so I pushed it to master and rebased this PR.

@AdrianVovk If you want to finish this, try asking about the python issue on #gnome-builder on irc://irc.gnome.org.

@AdrianVovk
Copy link

AdrianVovk commented May 16, 2018

@jtojnar @andir I'll study it. I might be able to take it on. I don't know yet

@jtojnar
Copy link
Contributor

jtojnar commented Jul 30, 2018

  • template-glib cherry-picked as b2c565e
  • jsonrpc-glib cherry-picked as 80b5f52

@andir
Copy link
Member Author

andir commented Jul 31, 2018

Thanks for your work on this @jtojnar++. I know those are probably just because other things might need them but it seems like in the long run we might end up with most of the dependencies of gnome-builder in nixpkgs. 👍

Do you have an idea what the major missing parts are? Should we try to make a ToDo-List with things that are missing?

@jtojnar
Copy link
Contributor

jtojnar commented Jul 31, 2018

Not sure what else is missing, but there has been some progress in #44217.

@jtojnar jtojnar closed this Aug 2, 2018
@jtojnar jtojnar moved this from In Progress to Done in GNOME Aug 2, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
GNOME
  
Done
Development

Successfully merging this pull request may close these issues.

None yet

6 participants