From 37d0473b7fc6d25557f8ebd8cbde71d4cdf02bf3 Mon Sep 17 00:00:00 2001 From: Colin Date: Fri, 25 Aug 2023 12:03:35 +0000 Subject: [PATCH] cross: enable gnome-clocks, gnome-shell, squeekboard, better libgweather --- overlays/cross.nix | 49 ++++++++++++++++------------------------ overlays/preferences.nix | 18 +++++++++++++++ 2 files changed, 37 insertions(+), 30 deletions(-) diff --git a/overlays/cross.nix b/overlays/cross.nix index 435c5264..77f97ed9 100644 --- a/overlays/cross.nix +++ b/overlays/cross.nix @@ -639,9 +639,11 @@ in { # 2023/08/01: upstreaming is blocked on nautilus, gnome-user-share (apache-httpd, webp-pixbuf-loader) # fixes: "src/meson.build:106:0: ERROR: Program 'glib-compile-resources' not found or not executable" file-roller = mvToNativeInputs [ final.glib ] super.file-roller; + # 2023/08/01: upstreaming is unblocked # fixes: "meson.build:75:6: ERROR: Program 'gtk-update-icon-cache' not found or not executable" - # gnome-clocks = addNativeInputs [ final.gtk4 ] super.gnome-clocks; + gnome-clocks = wrapGAppsHook4Fix super.gnome-clocks; + # 2023/07/31: upstreaming is blocked on argyllcms, libavif # fixes: "src/meson.build:3:0: ERROR: Program 'glib-compile-resources' not found or not executable" # gnome-color-manager = mvToNativeInputs [ final.glib ] super.gnome-color-manager; @@ -673,31 +675,12 @@ in { # # "-Dgtk_doc=${lib.boolToString (prev.stdenv.buildPlatform == prev.stdenv.hostPlatform)}" # # ]; # }); - # gnome-shell = super.gnome-shell.overrideAttrs (upstream: { - # # 2023/08/01: upstreaming is blocked on argyllcms, gnome-keyring, gnome-clocks, ibus, libavif, webp-pixbuf-loader - # nativeBuildInputs = upstream.nativeBuildInputs ++ [ - # final.gjs # fixes "meson.build:128:0: ERROR: Program 'gjs' not found or not executable" - # final.buildPackages.gobject-introspection # fixes "shew| Build-time dependency gobject-introspection-1.0 found: NO" - # ]; - # buildInputs = lib.remove final.gobject-introspection upstream.buildInputs; - # # try to reduce gobject-introspection/shew dependencies - # # TODO: these likely aren't all necessary - # mesonFlags = [ - # "-Dextensions_app=false" - # "-Dextensions_tool=false" - # "-Dman=false" - # "-Dgtk_doc=false" - # # fixes "src/st/meson.build:198:2: ERROR: Dependency "libmutter-test-12" not found, tried pkgconfig" - # "-Dtests=false" - # ]; - # outputs = [ "out" "dev" ]; - # postPatch = upstream.postPatch or "" + '' - # # disable introspection for the gvc (libgnome-volume-control) subproject - # # to remove its dependency on gobject-introspection - # sed -i s/introspection=true/introspection=false/ meson.build - # sed -i 's/libgvc_gir/# libgvc_gir/' meson.build src/meson.build - # ''; - # }); + gnome-shell = super.gnome-shell.overrideAttrs (upstream: { + # 2023/08/01: upstreaming is blocked on argyllcms, gnome-keyring, gnome-clocks, ibus, libavif, webp-pixbuf-loader + nativeBuildInputs = upstream.nativeBuildInputs ++ [ + final.gjs # fixes "meson.build:128:0: ERROR: Program 'gjs' not found or not executable" + ]; + }); gnome-settings-daemon = super.gnome-settings-daemon.overrideAttrs (orig: { # 2023/07/31: upstreaming is blocked on argyllcms, libavif # glib solves: "Program 'glib-mkenums mkenums' not found or not executable" @@ -824,6 +807,10 @@ in { # final.vala # fixes: "Package `ibus-1.0' not found in specified Vala API directories or GObject-Introspection GIR directories" # ]; # }); + # ibus = buildInQemu (prev.ibus.override { + # # not enough: still tries to execute build machine perl + # buildPackages.gtk-doc = final.gtk-doc; + # }); # fixes: "make: gcc: No such file or directory" # java-service-wrapper = useEmulatedStdenv prev.java-service-wrapper; @@ -949,6 +936,8 @@ in { sed -i '2i import os; os.environ["GI_TYPELIB_PATH"] = ""' build-aux/meson/gen_locations_variant.py substituteInPlace meson.build \ --replace "g_ir_scanner.found() and not meson.is_cross_build()" "g_ir_scanner.found()" + substituteInPlace libgweather/meson.build \ + --replace "dependency('vapigen'," "dependency('vapigen', native:true," ''; }); @@ -1753,10 +1742,10 @@ in { # cargoDeps = null; # cargoVendorDir = "vendor"; - depsBuildBuild = upstream.depsBuildBuild or [] ++ [ - final.pkg-config - ]; - # this looks to be identical to upstream: probably not needed? + # depsBuildBuild = (upstream.depsBuildBuild or []) ++ [ + # final.pkg-config + # ]; + # this is identical to upstream, but somehow build fails if i remove it?? nativeBuildInputs = with final; [ meson ninja diff --git a/overlays/preferences.nix b/overlays/preferences.nix index 02754781..e9849be6 100644 --- a/overlays/preferences.nix +++ b/overlays/preferences.nix @@ -2,6 +2,24 @@ # prefer to encode these in `sane.programs` # resort to this method for e.g. system dependencies, or things which are referenced from too many places. (self: super: with self; { + gnome = super.gnome.overrideScope' (gself: gsuper: with gself; { + evolution-data-server = gsuper.evolution-data-server.override { + # OAuth depends on webkitgtk_4_1: old, forces an annoying recompilation + enableOAuth2 = false; + gnome-online-accounts = gnome-online-accounts.override { + # avoid webkitgtk_4_1 build + enableBackend = false; + }; + }; + # gnome-shell = gsuper.gnome-shell.override { + # evolution-data-server-gtk4 = evolution-data-server-gtk4.override { + # # avoid webkitgtk_6_0 build. lol. + # # TODO: re-enable this. + # withGtk4 = false; + # }; + # }; + }); + pipewire = super.pipewire.override { # avoid a dep on python3.10-PyQt5, which has mixed qt5 versions. # this means we lose firewire support (oh well..?)