Files
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

127 lines
2.5 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
vala,
ninja,
wrapGAppsHook4,
pkg-config,
gettext,
gobject-introspection,
glib,
gdk-pixbuf,
gtk4,
glib-networking,
libadwaita,
libcanberra,
libnotify,
libsoup_3,
libgee,
libomemo-c,
libgcrypt,
meson,
sqlite,
gpgme,
qrencode,
icu,
srtp,
libnice,
gnutls,
gstreamer,
gst-plugins-base,
gst-plugins-good,
gst-plugins-bad,
gst-vaapi,
webrtc-audio-processing,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "dino";
version = "0.5.0";
src = fetchFromGitHub {
owner = "dino";
repo = "dino";
tag = "v${finalAttrs.version}";
hash = "sha256-Y3MGKpfhjmqnIvmt4mXnkmpjF/riXPDXyUiSrsceY6o=";
};
postPatch = ''
echo ${finalAttrs.version} > VERSION
'';
nativeBuildInputs = [
vala
meson
ninja
pkg-config
wrapGAppsHook4
gettext
gobject-introspection
];
buildInputs = [
qrencode
glib
glib-networking # required for TLS support
libadwaita
libgee
sqlite
gdk-pixbuf
gtk4
libnotify
gpgme
libgcrypt
libsoup_3
icu
libcanberra
libomemo-c
srtp
libnice
gnutls
gstreamer
gst-plugins-base
gst-plugins-good # contains rtpbin, required for VP9
gst-plugins-bad # required for H264, MSDK
gst-vaapi # required for VAAPI
webrtc-audio-processing
];
doCheck = true;
mesonFlags = [
"-Dplugin-notification-sound=enabled"
"-Dplugin-rtp-h264=enabled"
"-Dplugin-rtp-msdk=enabled"
"-Dplugin-rtp-vaapi=enabled"
"-Dplugin-rtp-vp9=enabled"
];
# Undefined symbols for architecture arm64: "_gpg_strerror"
NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isDarwin "-lgpg-error";
# 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.hostPlatform.isDarwin) ''
cd "$out/lib/dino/plugins/"
for f in *.dylib; do
mv "$f" "$(basename "$f" .dylib).so"
done
'';
meta = with lib; {
description = "Modern Jabber/XMPP Client using GTK/Vala";
mainProgram = "dino";
homepage = "https://github.com/dino/dino";
license = licenses.gpl3Plus;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ qyliss ];
};
})