857ac54ad9
Recently, upstream has incorporated support for non-Gregorian calendars using the icu_calendar crate. To manage the substantial increase in binary size caused by this addition, upstream has made this feature flag optional. In line with this decision, this commit introduces the withICUCalendar option, set to a default value of false.
65 lines
1.5 KiB
Nix
65 lines
1.5 KiB
Nix
{ lib
|
|
, rustPlatform
|
|
, fetchFromGitHub
|
|
, pkg-config
|
|
, makeWrapper
|
|
, dbus
|
|
, libpulseaudio
|
|
, notmuch
|
|
, openssl
|
|
, ethtool
|
|
, lm_sensors
|
|
, iw
|
|
, iproute2
|
|
, withICUCalendar ? false
|
|
}:
|
|
|
|
rustPlatform.buildRustPackage rec {
|
|
pname = "i3status-rust";
|
|
version = "0.32.3";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "greshake";
|
|
repo = pname;
|
|
rev = "refs/tags/v${version}";
|
|
hash = "sha256-CldVak1BQ4VhRt24hHdog5O3crkQBZBkRWNT7uYUw4Y=";
|
|
};
|
|
|
|
cargoHash = "sha256-gWBmzpgZcsO4u8kXSqtr4FIYvshXpxWbECg/tcyl9Ok=";
|
|
|
|
nativeBuildInputs = [ pkg-config makeWrapper ];
|
|
|
|
buildInputs = [ dbus libpulseaudio notmuch openssl lm_sensors ];
|
|
|
|
buildFeatures = [
|
|
"notmuch"
|
|
"maildir"
|
|
"pulseaudio"
|
|
] ++ (lib.optionals withICUCalendar [ "icu_calendar" ]);
|
|
|
|
prePatch = ''
|
|
substituteInPlace src/util.rs \
|
|
--replace "/usr/share/i3status-rust" "$out/share"
|
|
'';
|
|
|
|
postInstall = ''
|
|
mkdir -p $out/share
|
|
cp -R examples files/* $out/share
|
|
'';
|
|
|
|
postFixup = ''
|
|
wrapProgram $out/bin/i3status-rs --prefix PATH : ${lib.makeBinPath [ iproute2 ethtool iw ]}
|
|
'';
|
|
|
|
# Currently no tests are implemented, so we avoid building the package twice
|
|
doCheck = false;
|
|
|
|
meta = with lib; {
|
|
description = "Very resource-friendly and feature-rich replacement for i3status";
|
|
homepage = "https://github.com/greshake/i3status-rust";
|
|
license = licenses.gpl3Only;
|
|
mainProgram = "i3status-rs";
|
|
maintainers = with maintainers; [ backuitist globin ];
|
|
platforms = platforms.linux;
|
|
};
|
|
}
|