From c585543ccd5065f0d5e36cdcbb51ada63c3a4370 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Tue, 8 Aug 2023 20:47:29 +0800 Subject: [PATCH] =?UTF-8?q?xdg-desktop-portal:=201.16.0=20=E2=86=92=201.17?= =?UTF-8?q?.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/flatpak/xdg-desktop-portal/compare/1.16.0...1.17.0 https://github.com/flatpak/xdg-desktop-portal/releases/tag/1.17.0 Ported to meson. Some of the changes are highlighted in the "Changes that might be relevant for distributors" session in https://github.com/flatpak/xdg-desktop-portal/releases/tag/1.18.0 Notably, desktop environments are now responsible for declaring preferred portal backends: https://github.com/flatpak/xdg-desktop-portal/commit/939f0b0fcec6a42c1acdc397986547e9805359ff Specify sysconfdir so that the configs are loaded from `/etc` rather than `$out/etc`. Changelog-reviewed-by: Bobby Rong Changelog-reviewed-by: Jan Tojnar --- .../libraries/xdg-desktop-portal/default.nix | 50 +++++++++++++------ .../installed-tests-path.patch | 30 +++++++++++ 2 files changed, 65 insertions(+), 15 deletions(-) create mode 100644 pkgs/development/libraries/xdg-desktop-portal/installed-tests-path.patch diff --git a/pkgs/development/libraries/xdg-desktop-portal/default.nix b/pkgs/development/libraries/xdg-desktop-portal/default.nix index 2cadab4a6742..c914dddfa208 100644 --- a/pkgs/development/libraries/xdg-desktop-portal/default.nix +++ b/pkgs/development/libraries/xdg-desktop-portal/default.nix @@ -1,11 +1,11 @@ { lib -, acl -, autoreconfHook -, dbus , fetchFromGitHub , flatpak , fuse3 , bubblewrap +, docbook_xml_dtd_412 +, docbook_xml_dtd_43 +, docbook_xsl , systemdMinimal , geoclue2 , glib @@ -13,6 +13,8 @@ , json-glib , libportal , libxml2 +, meson +, ninja , nixosTests , pipewire , gdk-pixbuf @@ -22,12 +24,13 @@ , stdenv , runCommand , wrapGAppsHook +, xmlto , enableGeoLocation ? true }: stdenv.mkDerivation (finalAttrs: { pname = "xdg-desktop-portal"; - version = "1.16.0"; + version = "1.17.0"; outputs = [ "out" "installedTests" ]; @@ -35,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "flatpak"; repo = "xdg-desktop-portal"; rev = finalAttrs.version; - sha256 = "sha256-5VNauinTvZrSaQzyP/quL/3p2RPcTJUDLscEQMJpvYA="; + sha256 = "sha256-OGf2ohP/Qd+ff3KfJYoHu9wbCAUXCP3wm/utjqkgccE="; }; patches = [ @@ -46,18 +49,24 @@ stdenv.mkDerivation (finalAttrs: { substitute "${flatpak.icon-validator-patch}" "$out" \ --replace "/icon-validator/validate-icon.c" "/src/validate-icon.c" '') + + # Allow installing installed tests to a separate output. + ./installed-tests-path.patch ]; nativeBuildInputs = [ - autoreconfHook + docbook_xml_dtd_412 + docbook_xml_dtd_43 + docbook_xsl libxml2 + meson + ninja pkg-config wrapGAppsHook + xmlto ]; buildInputs = [ - acl - dbus flatpak fuse3 bubblewrap @@ -80,17 +89,28 @@ stdenv.mkDerivation (finalAttrs: { geoclue2 ]; - configureFlags = [ - "--enable-installed-tests" - ] ++ lib.optionals (!enableGeoLocation) [ - "--disable-geoclue" + nativeCheckInputs = [ + python3.pkgs.pytest + python3.pkgs.python-dbusmock + python3.pkgs.pygobject3 + python3.pkgs.dbus-python ]; - makeFlags = [ - "installed_testdir=${placeholder "installedTests"}/libexec/installed-tests/xdg-desktop-portal" - "installed_test_metadir=${placeholder "installedTests"}/share/installed-tests/xdg-desktop-portal" + mesonFlags = [ + "--sysconfdir=/etc" + "-Dinstalled-tests=true" + "-Dinstalled_test_prefix=${placeholder "installedTests"}" + ] ++ lib.optionals (!enableGeoLocation) [ + "-Dgeoclue=false" ]; + doCheck = true; + + preCheck = '' + # For test_trash_file + export HOME=$(mktemp -d) + ''; + passthru = { tests = { installedTests = nixosTests.installed-tests.xdg-desktop-portal; diff --git a/pkgs/development/libraries/xdg-desktop-portal/installed-tests-path.patch b/pkgs/development/libraries/xdg-desktop-portal/installed-tests-path.patch new file mode 100644 index 000000000000..0a9547ba3628 --- /dev/null +++ b/pkgs/development/libraries/xdg-desktop-portal/installed-tests-path.patch @@ -0,0 +1,30 @@ +diff --git a/meson.build b/meson.build +index b25f9ef..7975f85 100644 +--- a/meson.build ++++ b/meson.build +@@ -40,8 +40,8 @@ if dataroot_dir == '' + dataroot_dir = datadir + endif + +-installed_tests_dir = prefix / libexecdir / 'installed-tests' / meson.project_name() +-installed_tests_data_dir = prefix / datadir / 'installed-tests' / meson.project_name() ++installed_tests_dir = get_option('installed_test_prefix') / 'libexec' / 'installed-tests' / meson.project_name() ++installed_tests_data_dir = get_option('installed_test_prefix') / 'share' / 'installed-tests' / meson.project_name() + docs_dir = datadir / 'doc' / meson.project_name() + + summary({ +diff --git a/meson_options.txt b/meson_options.txt +index fccada3..ca87600 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -38,6 +38,10 @@ option('installed-tests', + type: 'boolean', + value: false, + description: 'Enable installation of some test cases') ++option('installed_test_prefix', ++ type: 'string', ++ value: '', ++ description: 'Prefix for installed tests') + option('pytest', + type: 'feature', + value: 'auto',