{
lib,
stdenv,
fetchFromGitLab,
buildPackages,
cargo,
meson,
ninja,
pkg-config,
desktop-file-utils,
rustPlatform,
rustc,
wrapGAppsHook4,
darwin,
gettext,
glib,
gtk4,
libadwaita,
libiconv,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "bustle";
version = "0.10.0";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = "bustle";
rev = finalAttrs.version;
hash = "sha256-5ZZiRD64OOMtTNxI0uvilGM22rsJv7vU3yPDY8ROrxU=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit (finalAttrs) pname version src;
hash = "sha256-XCKKzgSqTGF9WoaYnNtXB7e8BvtElmAfKH6s/7h8cGs=";
env = lib.optionalAttrs stdenv.hostPlatform.isDarwin {
# Set the location to gettext to ensure the nixpkgs one on Darwin instead of the vendored one.
# The vendored gettext does not build with clang 16.
GETTEXT_BIN_DIR = "${lib.getBin buildPackages.gettext}/bin";
GETTEXT_INCLUDE_DIR = "${lib.getDev gettext}/include";
GETTEXT_LIB_DIR = "${lib.getLib gettext}/lib";
nativeBuildInputs = [
cargo
meson
ninja
pkg-config
desktop-file-utils
rustPlatform.cargoSetupHook
rustc
wrapGAppsHook4
glib
];
buildInputs = [
gtk4
libadwaita
meta = {
description = "Graphical D-Bus message analyser and profiler";
homepage = "https://gitlab.gnome.org/World/bustle";
license = lib.licenses.lgpl21Plus;
maintainers = with lib.maintainers; [
jtojnar
aleksana
mainProgram = "bustle";
platforms = lib.platforms.all;
})