I am very interested in getting this up and running. gossip-0.12.0 is released in nixpkgs, but I’d like to run the latest. (v0.13.0) or even the bleeding edge (v0.14.0-unstable).
It builds, but with a few remaining issues that I cannot figure out:
- it isn’t finding the libsdl2-dev library (no audio device found), though I have SDL2 in my env pkgs and have followed the directions in the Rust-SDL2 readme.
- the app icon isn’t being found - I get a generic ‘gear’ icon
- it does not show up in my apps list, so I can only launch it from the command line
I would be very grateful for any pointers here.
released v0.12.0:
{
cmake,
darwin,
fetchFromGitHub,
ffmpeg_6,
fontconfig,
git,
lib,
libGL,
libxkbcommon,
makeDesktopItem,
openssl,
pkg-config,
rustPlatform,
stdenv,
wayland,
wayland-scanner,
xorg,
}:
rustPlatform.buildRustPackage rec {
pname = "gossip";
version = "0.12.0";
src = fetchFromGitHub {
owner = "mikedilger";
repo = "gossip";
tag = "v${version}";
hash = "sha256-mPM5HYPEUQ+cGrJ3G/0pmSN4ZQ9SvSNACJRTkgqTAeY=";
};
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
"egui-video-0.1.0" = "sha256-mks5wYl9s8AjaEtYx3hjOPoV7g+SbK2sC/cnqsc6sM4=";
"nostr-types-0.8.0-unstable" = "sha256-ewwOmJaGGRZ25xIM+8fGtB3m46MDQ2WpP0fGF6F5yR4=";
"ecolor-0.28.1" = "sha256-X0cUCNBCsWpeoiqbEp8o9QVl29DzIVe9jjNEq9SQ7kM=";
"ffmpeg-next-7.0.4" = "sha256-ED7zY944YLVR9dgRvXuCC2n7szKkPMH8DJX4jVBNRIQ=";
"watcher-0.1.0" = "sha256-SdwmbP8JrhkBbHEzSFALf0dF2T2xHigORizRRoPVblA=";
"lightning-0.0.123-beta" = "sha256-gngH0mOC9USzwUGP4bjb1foZAvg6QHuzODv7LG49MsA=";
"musig2-0.1.0" = "sha256-++1x7uHHR7KEhl8LF3VywooULiTzKeDu3e+0/c/8p9Y=";
"nip44-0.1.0" = "sha256-u2ALoHQrPVNoX0wjJmQ+BYRzIKsi0G5xPbYjgsNZZ7A=";
};
};
# See https://github.com/mikedilger/gossip/blob/dfd60aa5002d672dbc69ae1e77ab40db5ae36d9e/README.md.
RUSTFLAGS = "--cfg tokio_unstable";
# Some users might want to add "rustls-tls(-native)" for Rust TLS instead of OpenSSL.
buildFeatures = [
"video-ffmpeg"
"lang-cjk"
];
nativeBuildInputs =
[
cmake
git
pkg-config
rustPlatform.bindgenHook
]
++ lib.optionals stdenv.hostPlatform.isLinux [
wayland-scanner
];
buildInputs =
[
ffmpeg_6
fontconfig
libGL
libxkbcommon
openssl
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
darwin.apple_sdk.frameworks.AppKit
darwin.apple_sdk.frameworks.Cocoa
darwin.apple_sdk.frameworks.CoreGraphics
darwin.apple_sdk.frameworks.Foundation
darwin.apple_sdk.frameworks.ForceFeedback
darwin.apple_sdk.frameworks.AVFoundation
]
++ lib.optionals stdenv.hostPlatform.isLinux [
wayland
xorg.libX11
xorg.libXcursor
xorg.libXi
xorg.libXrandr
];
# Tests rely on local files, so disable them. (I'm too lazy to patch it.)
doCheck = false;
postInstall = ''
mkdir -p $out/logo
cp $src/logo/gossip.png $out/logo/gossip.png
mkdir -p $out/share/icons/hicolor/128x128/apps
ln -s $out/logo/gossip.png $out/share/icons/hicolor/128x128/apps/gossip.png
'';
postFixup = lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
patchelf $out/bin/gossip \
--add-rpath ${
lib.makeLibraryPath [
libGL
libxkbcommon
wayland
]
}
'';
desktopItems = [
(makeDesktopItem {
name = "Gossip";
exec = "gossip";
icon = "gossip";
comment = meta.description;
desktopName = "Gossip";
categories = [
"Chat"
"Network"
"InstantMessaging"
];
startupWMClass = "gossip";
})
];
meta = with lib; {
description = "Desktop client for nostr, an open social media protocol";
downloadPage = "https://github.com/mikedilger/gossip/releases/tag/${version}";
homepage = "https://github.com/mikedilger/gossip";
license = licenses.mit;
mainProgram = "gossip";
maintainers = with maintainers; [ msanft ];
platforms = platforms.unix;
};
}
diff between v0.12.0 and mine:
diff --git a/package.nix b/package.nix
index 5dbcf78b..6a3a962c 100644
--- a/package.nix
+++ b/package.nix
@@ -2,7 +2,7 @@
cmake,
darwin,
fetchFromGitHub,
- ffmpeg_6,
+ ffmpeg-full,
fontconfig,
git,
lib,
@@ -11,6 +11,8 @@
makeDesktopItem,
openssl,
pkg-config,
+ SDL2,
+ SDL2_sound,
rustPlatform,
stdenv,
wayland,
@@ -20,22 +22,23 @@
rustPlatform.buildRustPackage rec {
pname = "gossip";
- version = "0.12.0";
+ version = "0.14.0-unstable";
src = fetchFromGitHub {
owner = "mikedilger";
repo = "gossip";
- tag = "v${version}";
- hash = "sha256-mPM5HYPEUQ+cGrJ3G/0pmSN4ZQ9SvSNACJRTkgqTAeY=";
+ rev = "e8158d3ee9147f79250d8acf295782133cd692e5";
+ sha256 = "sha256-f3wuSBRmEBAldSszuSa3/AxcKRKmNdebFD1udv7ifsA=";
};
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
- "egui-video-0.1.0" = "sha256-mks5wYl9s8AjaEtYx3hjOPoV7g+SbK2sC/cnqsc6sM4=";
- "nostr-types-0.8.0-unstable" = "sha256-ewwOmJaGGRZ25xIM+8fGtB3m46MDQ2WpP0fGF6F5yR4=";
- "ecolor-0.28.1" = "sha256-X0cUCNBCsWpeoiqbEp8o9QVl29DzIVe9jjNEq9SQ7kM=";
- "ffmpeg-next-7.0.4" = "sha256-ED7zY944YLVR9dgRvXuCC2n7szKkPMH8DJX4jVBNRIQ=";
+ "egui-video-0.1.0" = "sha256-KqNMJthzXZjz2ZAtLhpV6aiJtPY5NGFEeWiQ/2PHcS8=";
+ "egui-file-dialog-0.7.0" = "sha256-RGO8IB4LjFBLAl/+26q39rd9AWLHqxfBE7KQCSyqXUM=";
+ "nostr-types-0.8.0-unstable" = "sha256-o6CQ/m0TOP+hISM3UUSdNMzbzZuxVLTSLb5Dx3Daf+c=";
+ "ecolor-0.30.0" = "sha256-CITmayWM3OplkfWzk4Eq7Vup5k6v2CZFX2W715AEc8E=";
+ "ffmpeg-next-7.1.0" = "sha256-R79hjy5CYHk7y52GvN4d94VflhN217ws+J8UifVyiuQ=";
"watcher-0.1.0" = "sha256-SdwmbP8JrhkBbHEzSFALf0dF2T2xHigORizRRoPVblA=";
"lightning-0.0.123-beta" = "sha256-gngH0mOC9USzwUGP4bjb1foZAvg6QHuzODv7LG49MsA=";
"musig2-0.1.0" = "sha256-++1x7uHHR7KEhl8LF3VywooULiTzKeDu3e+0/c/8p9Y=";
@@ -44,12 +47,12 @@ rustPlatform.buildRustPackage rec {
};
# See https://github.com/mikedilger/gossip/blob/dfd60aa5002d672dbc69ae1e77ab40db5ae36d9e/README.md.
- RUSTFLAGS = "--cfg tokio_unstable";
+ RUSTFLAGS = "-C target-cpu=native --cfg tokio_unstable";
# Some users might want to add "rustls-tls(-native)" for Rust TLS instead of OpenSSL.
buildFeatures = [
"video-ffmpeg"
- "lang-cjk"
+ #"lang-cjk"
];
nativeBuildInputs =
@@ -65,11 +68,13 @@ rustPlatform.buildRustPackage rec {
buildInputs =
[
- ffmpeg_6
+ ffmpeg-full
fontconfig
libGL
libxkbcommon
openssl
+ SDL2
+ SDL2_sound
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
darwin.apple_sdk.frameworks.AppKit
@@ -90,9 +95,14 @@ rustPlatform.buildRustPackage rec {
# Tests rely on local files, so disable them. (I'm too lazy to patch it.)
doCheck = false;
+ cargoSha256 = "sha256-f3wuSBRmEBAldSszuSa3/AxcKRKmNdebFD1udv7ifsA=";
+
postInstall = ''
+ mkdir -p $out/share/applications/
+ cp packaging/debian/gossip.desktop $out/share/applications/
mkdir -p $out/logo
cp $src/logo/gossip.png $out/logo/gossip.png
+ cp $src/logo/gossip.svg $out/logo/gossip.svg
mkdir -p $out/share/icons/hicolor/128x128/apps
ln -s $out/logo/gossip.png $out/share/icons/hicolor/128x128/apps/gossip.png
'';
@@ -108,6 +118,12 @@ rustPlatform.buildRustPackage rec {
}
'';
+ configureFlags = [
+ "--enable-sdl-video"
+ "--enable-sdl-audio"
+ "--with-sdl2"
+ ];
+
desktopItems = [
(makeDesktopItem {
name = "Gossip";