summary refs log tree commit diff
path: root/pkgs/desktops/cinnamon/xapp/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/desktops/cinnamon/xapp/default.nix')
-rw-r--r--pkgs/desktops/cinnamon/xapp/default.nix105
1 files changed, 105 insertions, 0 deletions
diff --git a/pkgs/desktops/cinnamon/xapp/default.nix b/pkgs/desktops/cinnamon/xapp/default.nix
new file mode 100644
index 00000000000..655284f20d8
--- /dev/null
+++ b/pkgs/desktops/cinnamon/xapp/default.nix
@@ -0,0 +1,105 @@
+{ fetchFromGitHub
+, fetchpatch
+, glib
+, gobject-introspection
+, gtk3
+, libgnomekbd
+, gdk-pixbuf
+, cairo
+, xorg
+, meson
+, ninja
+, pkg-config
+, python3
+, lib
+, stdenv
+, vala
+, wrapGAppsHook
+, inxi
+, mate
+, dbus
+, libdbusmenu-gtk3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "xapp";
+  version = "2.2.14";
+
+  outputs = [ "out" "dev" ];
+
+  patches = [
+    # Add missing gio-unix-2.0 dependency, can be removed on next update
+    # https://github.com/linuxmint/xapp/pull/156
+    (fetchpatch {
+      url = "https://github.com/linuxmint/xapp/commit/052081f75d1c1212aeb6a913772723c81607bcb3.patch";
+      sha256 = "sha256-VL70Y1FIa7lQ/zKjEx0GhaU1QRu4z6Yu400/bDbgZgM=";
+    })
+  ];
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = pname;
+    rev = version;
+    hash = "sha256-BebsS7y/hRQSc4rYOIWJ+sSJ5fLZaCpNAE48JnviUUc=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    python3
+    vala
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gobject-introspection
+    (python3.withPackages (ps: with ps; [
+      pygobject3
+      setproctitle # mate applet
+    ]))
+    libgnomekbd
+    gdk-pixbuf
+    xorg.libxkbfile
+    python3.pkgs.pygobject3 # for .pc file
+    mate.mate-panel # for gobject-introspection
+    dbus
+    libdbusmenu-gtk3
+  ];
+
+  # Requires in xapp.pc
+  propagatedBuildInputs = [
+    gtk3
+    cairo
+    glib
+  ];
+
+  mesonFlags = [
+    "-Dpy-overrides-dir=${placeholder "out"}/${python3.sitePackages}/gi/overrides"
+  ];
+
+  postPatch = ''
+    chmod +x schemas/meson_install_schemas.py # patchShebangs requires executable file
+
+    patchShebangs \
+      libxapp/g-codegen.py \
+      meson-scripts/g-codegen.py \
+      schemas/meson_install_schemas.py
+
+    # Patch pastebin & inxi location
+    sed "s|/usr/bin/pastebin|$out/bin/pastebin|" -i scripts/upload-system-info
+    sed "s|'inxi'|'${inxi}/bin/inxi'|" -i scripts/upload-system-info
+
+    # Patch gtk3 module target dir
+    substituteInPlace libxapp/meson.build \
+         --replace "gtk3_dep.get_pkgconfig_variable('libdir')" "'$out'"
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/linuxmint/xapp";
+    description = "Cross-desktop libraries and common resources";
+    license = licenses.lgpl3;
+    platforms = platforms.linux;
+    maintainers = teams.cinnamon.members;
+  };
+}