diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/xdg-desktop-portal')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/xdg-desktop-portal/default.nix | 89 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/xdg-desktop-portal/fix-paths.patch | 13 |
2 files changed, 102 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/xdg-desktop-portal/default.nix b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal/default.nix new file mode 100644 index 000000000000..1049ce3201a4 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal/default.nix @@ -0,0 +1,89 @@ +{ stdenv +, fetchFromGitHub +, nixosTests +, substituteAll +, autoreconfHook +, pkgconfig +, libxml2 +, glib +, pipewire +, fontconfig +, flatpak +, gsettings-desktop-schemas +, acl +, dbus +, fuse +, libportal +, geoclue2 +, json-glib +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "xdg-desktop-portal"; + version = "1.6.0"; + + outputs = [ "out" "installedTests" ]; + + src = fetchFromGitHub { + owner = "flatpak"; + repo = pname; + rev = version; + sha256 = "0fbsfpilwbv7j6cimsmmz6g0r96bw0ziwyk9z4zg2rd1mfkmmp9a"; + }; + + patches = [ + # Hardcode paths used by x-d-p itself. + (substituteAll { + src = ./fix-paths.patch; + inherit flatpak; + }) + ]; + + nativeBuildInputs = [ + autoreconfHook + pkgconfig + libxml2 + wrapGAppsHook + ]; + + buildInputs = [ + glib + pipewire + fontconfig + flatpak + acl + dbus + geoclue2 + fuse + libportal + gsettings-desktop-schemas + json-glib + ]; + + # Seems to get stuck after "PASS: test-portals 39 /portal/inhibit/monitor" + # TODO: investigate! + doCheck = false; + + configureFlags = [ + "--enable-installed-tests" + ]; + + makeFlags = [ + "installed_testdir=${placeholder "installedTests"}/libexec/installed-tests/xdg-desktop-portal" + "installed_test_metadir=${placeholder "installedTests"}/share/installed-tests/xdg-desktop-portal" + ]; + + passthru = { + tests = { + installedTests = nixosTests.installed-tests.xdg-desktop-portal; + }; + }; + + meta = with stdenv.lib; { + description = "Desktop integration portals for sandboxed apps"; + license = licenses.lgpl21; + maintainers = with maintainers; [ jtojnar ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/xdg-desktop-portal/fix-paths.patch b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal/fix-paths.patch new file mode 100644 index 000000000000..98e26e88b5ce --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal/fix-paths.patch @@ -0,0 +1,13 @@ +diff --git a/src/notification.c b/src/notification.c +index 5412609..4243e98 100644 +--- a/src/notification.c ++++ b/src/notification.c +@@ -366,7 +366,7 @@ + int status; + g_autofree char *err = NULL; + g_autoptr(GError) error = NULL; +- const char *icon_validator = LIBEXECDIR "/flatpak-validate-icon"; ++ const char *icon_validator = "@flatpak@/libexec/flatpak-validate-icon"; + const char *args[6]; + + if (G_IS_THEMED_ICON (icon)) |