From 5a88a10a1919b29c4eaa9354cfaf45a77c0716d2 Mon Sep 17 00:00:00 2001 From: Colin Date: Tue, 4 Feb 2025 09:37:11 +0000 Subject: [PATCH] confy: ship --- hosts/common/programs/assorted.nix | 1 + hosts/common/programs/confy.nix | 19 +++++++++++++++++++ hosts/common/programs/default.nix | 1 + overlays/cross.nix | 28 ++++++++++++++++++++++++++++ 4 files changed, 49 insertions(+) create mode 100644 hosts/common/programs/confy.nix diff --git a/hosts/common/programs/assorted.nix b/hosts/common/programs/assorted.nix index 737f9001f..4ec32231e 100644 --- a/hosts/common/programs/assorted.nix +++ b/hosts/common/programs/assorted.nix @@ -286,6 +286,7 @@ in "alacritty" # terminal emulator "blanket" # ambient noise generator "calls" # gnome calls (dialer/handler) + "confy" # conference planning app "dbus" # "dconf" # or use `gsettings`, with its keyfile backend # "delfin" # Jellyfin client diff --git a/hosts/common/programs/confy.nix b/hosts/common/programs/confy.nix new file mode 100644 index 000000000..db00f9745 --- /dev/null +++ b/hosts/common/programs/confy.nix @@ -0,0 +1,19 @@ +{ ... }: +{ + sane.programs.confy = { + sandbox.net = "all"; + sandbox.whitelistDri = true; + sandbox.whitelistWayland = true; + sandbox.mesaCacheDir = ".cache/net.kirgroup.confy/mesa"; + sandbox.whitelistDbus.user.own = [ "net.kirgroup.confy" ]; + sandbox.whitelistPortal = [ + "NetworkMonitor" + "OpenURI" + ]; + + persist.byStore.private = [ + ".cache/net.kirgroup.confy" + # ".local/share/net.kirgroup.confy" #< empty + ]; + }; +} diff --git a/hosts/common/programs/default.nix b/hosts/common/programs/default.nix index 89969c5ba..c3af49da8 100644 --- a/hosts/common/programs/default.nix +++ b/hosts/common/programs/default.nix @@ -30,6 +30,7 @@ ./catt.nix ./celeste64.nix ./chatty.nix + ./confy.nix ./conky ./cozy.nix ./cups.nix diff --git a/overlays/cross.nix b/overlays/cross.nix index 7e5a8487c..4e1f0be34 100644 --- a/overlays/cross.nix +++ b/overlays/cross.nix @@ -190,6 +190,34 @@ in with final; { ]; }; + # 2025/02/04: upstreaming is unblocked, but a cleaner solution than this doesn't seem to exist yet + confy = (prev.confy.override { + blueprint-compiler = wrapBlueprint [ + buildPackages.gdk-pixbuf + buildPackages.glib + buildPackages.graphene + buildPackages.gtk4 + buildPackages.harfbuzz + buildPackages.libadwaita + buildPackages.pango + ]; + }).overrideAttrs (upstream: { + # meson's `python.find_installation` method somehow just doesn't support cross compilation. + # - + # so, build it to target build python, then patch in the host python + nativeBuildInputs = upstream.nativeBuildInputs ++ [ + python3.pythonOnBuildForHost + ]; + postFixup = '' + substituteInPlace $out/bin/.confy-wrapped --replace-fail ${python3.pythonOnBuildForHost} ${python3.withPackages ( + ps: with ps; [ + icalendar + pygobject3 + ] + )} + ''; + }); + # 2024/11/19: upstreaming is unblocked delfin = (prev.delfin.override { cargo = crossCargo;