about summary refs log tree commit diff
path: root/pkgs/applications/networking/instant-messengers/dino
diff options
context:
space:
mode:
authorErin Shepherd <erin.shepherd@e43.eu>2020-09-21 20:43:11 +0200
committerErin Shepherd <erin.shepherd@e43.eu>2020-09-21 20:43:11 +0200
commit4990bd11957a09f488c851ccd1f22e4da2c425c5 (patch)
tree1878894b6d6183aeaaf3538a9ac7382a4e5265c4 /pkgs/applications/networking/instant-messengers/dino
parent26e6732724e1017e8f8fa750a52b5903486f7c2c (diff)
Dino: Enable on macOS/Darwin
 * Remove direct dependencies on some X11 libs. We still inherit them through
   Gtk+ but it's a start
 * Rename plugin files from .dylib to .so so Dino's plugin loader finds them

The experience is still somewhat janky (no app icon, macOS thinks the app is called
".dino-wrapped", and the Cocoa menu bar is nonresponsive), but beyond this things
mostly work fine
Diffstat (limited to 'pkgs/applications/networking/instant-messengers/dino')
-rw-r--r--pkgs/applications/networking/instant-messengers/dino/default.nix28
1 files changed, 22 insertions, 6 deletions
diff --git a/pkgs/applications/networking/instant-messengers/dino/default.nix b/pkgs/applications/networking/instant-messengers/dino/default.nix
index 9c286d0083209..70661fd942650 100644
--- a/pkgs/applications/networking/instant-messengers/dino/default.nix
+++ b/pkgs/applications/networking/instant-messengers/dino/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub
+{ lib, stdenv, fetchFromGitHub
 , vala, cmake, ninja, wrapGAppsHook, pkgconfig, gettext
 , gobject-introspection, gnome3, glib, gdk-pixbuf, gtk3, glib-networking
 , xorg, libXdmcp, libxkbcommon
@@ -60,23 +60,39 @@ stdenv.mkDerivation rec {
     libgcrypt
     libsoup
     pcre
-    xorg.libxcb
-    xorg.libpthreadstubs
-    libXdmcp
-    libxkbcommon
     epoxy
     at-spi2-core
     dbus
     icu
     libsignal-protocol-c
     librsvg
+  ] ++ lib.optionals (!stdenv.isDarwin) [
+    xorg.libxcb
+    xorg.libpthreadstubs
+    libXdmcp
+    libxkbcommon
   ];
 
+  # Dino looks for plugins with a .so filename extension, even on macOS where
+  # .dylib is appropriate, and despite the fact that it builds said plugins with
+  # that as their filename extension
+  #
+  # Therefore, on macOS rename all of the plugins to use correct names that Dino
+  # will load
+  #
+  # See https://github.com/dino/dino/wiki/macOS
+  postFixup = lib.optionalString (stdenv.isDarwin) ''
+    cd "$out/lib/dino/plugins/"
+    for f in *.dylib; do
+      mv "$f" "$(basename "$f" .dylib).so"
+    done
+  '';
+
   meta = with stdenv.lib; {
     description = "Modern Jabber/XMPP Client using GTK/Vala";
     homepage = "https://github.com/dino/dino";
     license = licenses.gpl3;
-    platforms = platforms.linux;
+    platforms = [ platforms.linux platforms.darwin ];
     maintainers = with maintainers; [ mic92 qyliss ];
   };
 }