summary refs log tree commit diff
path: root/pkgs/development/tools/ashpd-demo/default.nix
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2021-10-09 21:32:42 +0200
committerJan Tojnar <jtojnar@gmail.com>2021-10-15 17:32:18 +0200
commitc389ff1626c9118eac98a4208a493a082ae2f75d (patch)
tree48badb43e758470aa19f9ee74c74d8a0b8193eee /pkgs/development/tools/ashpd-demo/default.nix
parent85ec600026c78c645a1110b4ed20478d73fb43e1 (diff)
downloadnixpkgs-c389ff1626c9118eac98a4208a493a082ae2f75d.tar
nixpkgs-c389ff1626c9118eac98a4208a493a082ae2f75d.tar.gz
nixpkgs-c389ff1626c9118eac98a4208a493a082ae2f75d.tar.bz2
nixpkgs-c389ff1626c9118eac98a4208a493a082ae2f75d.tar.lz
nixpkgs-c389ff1626c9118eac98a4208a493a082ae2f75d.tar.xz
nixpkgs-c389ff1626c9118eac98a4208a493a082ae2f75d.tar.zst
nixpkgs-c389ff1626c9118eac98a4208a493a082ae2f75d.zip
ashpd-demo: init at 0.0.1-alpha
Diffstat (limited to 'pkgs/development/tools/ashpd-demo/default.nix')
-rw-r--r--pkgs/development/tools/ashpd-demo/default.nix93
1 files changed, 93 insertions, 0 deletions
diff --git a/pkgs/development/tools/ashpd-demo/default.nix b/pkgs/development/tools/ashpd-demo/default.nix
new file mode 100644
index 00000000000..9e24309d984
--- /dev/null
+++ b/pkgs/development/tools/ashpd-demo/default.nix
@@ -0,0 +1,93 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, nix-update-script
+, meson
+, ninja
+, python3
+, rustPlatform
+, pkg-config
+, glib
+, libshumate
+, gst_all_1
+, gtk4
+, libadwaita
+, llvmPackages
+, glibc
+, pipewire
+, wayland
+, wrapGAppsHook4
+, desktop-file-utils
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ashpd-demo";
+  version = "0.0.1-alpha";
+
+  src =
+    let
+      share = fetchFromGitHub {
+        owner = "bilelmoussaoui";
+        repo = "ashpd";
+        rev = version;
+        sha256 = "Lf3Wj4VTDyJ5a1bJTEI6R6aaeEHZ+4hO+BsD98sKb/s=";
+      };
+    in
+    "${share}/ashpd-demo";
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-npqC8lu7acAggJyR4iDkcQZYMNNnseV2pB3+j4G/nIk=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    python3
+    rustPlatform.rust.cargo
+    rustPlatform.cargoSetupHook
+    rustPlatform.rust.rustc
+    wrapGAppsHook4
+    desktop-file-utils
+    glib # for glib-compile-schemas
+  ];
+
+  buildInputs = [
+    glib
+    gtk4
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
+    libadwaita
+    pipewire
+    wayland
+    libshumate
+  ];
+
+  # libspa-sys requires this for bindgen
+  LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
+  # <spa-0.2/spa/utils/defs.h> included by libspa-sys requires <stdbool.h>
+  BINDGEN_EXTRA_CLANG_ARGS = "-I${llvmPackages.libclang.lib}/lib/clang/${lib.getVersion llvmPackages.clang}/include -I${glibc.dev}/include";
+
+  postPatch = ''
+    patchShebangs build-aux/meson_post_install.py
+    # https://github.com/bilelmoussaoui/ashpd/pull/32
+    substituteInPlace build-aux/meson_post_install.py \
+      --replace "gtk-update-icon-cache" "gtk4-update-icon-cache"
+  '';
+
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+  meta = with lib; {
+    description = "Tool for playing with XDG desktop portals";
+    homepage = "https://github.com/bilelmoussaoui/ashpd/tree/master/ashpd-demo";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jtojnar ];
+    platforms = platforms.linux;
+  };
+}