Commit c585543c authored by Bobby Rong's avatar Bobby Rong Committed by Jan Tojnar
Browse files

xdg-desktop-portal: 1.16.0 → 1.17.0

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: default avatarBobby Rong <rjl931189261@126.com>
Changelog-reviewed-by: default avatarJan Tojnar <jtojnar@gmail.com>
parent 8a87c968
Loading
Loading
Loading
Loading
+35 −15
Original line number Diff line number Diff line
{ 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;
+30 −0
Original line number Diff line number Diff line
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',