diff options
author | phodina <phodina@protonmail.com> | 2021-10-13 22:11:54 +0000 |
---|---|---|
committer | Efraim Flashner <efraim@flashner.co.il> | 2021-11-04 20:09:53 +0200 |
commit | 575fcd3045ff1649e5319b6701ff9e28e97793e0 (patch) | |
tree | cba797560d002c1565cff20594653387148ba252 | |
parent | b30e2834f7f3cc16689a31195637f452426ce3d0 (diff) | |
download | guix-575fcd3045ff1649e5319b6701ff9e28e97793e0.tar.gz |
gnu: Add i3status-rust.
* gnu/packages/rust-apps.scm (i3status-rust): New variable. * gnu/packages/patches/i3status-rust-enable-unstable-features.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
-rw-r--r-- | gnu/packages/patches/i3status-rust-enable-unstable-features.patch | 20 | ||||
-rw-r--r-- | gnu/packages/rust-apps.scm | 77 |
2 files changed, 97 insertions, 0 deletions
diff --git a/gnu/packages/patches/i3status-rust-enable-unstable-features.patch b/gnu/packages/patches/i3status-rust-enable-unstable-features.patch new file mode 100644 index 0000000000..535b45d865 --- /dev/null +++ b/gnu/packages/patches/i3status-rust-enable-unstable-features.patch @@ -0,0 +1,20 @@ +From 3006390c0058f06c255d9850327163aebcdc3b40 Mon Sep 17 00:00:00 2001 +From: Petr Hodina <phodina@protonmail.com> +Date: Mon, 11 Oct 2021 22:35:39 +0200 +Subject: [PATCH] Enable unstable features. + + +diff --git a/src/main.rs b/src/main.rs +index d9e964b..820e22e 100644 +--- a/src/main.rs ++++ b/src/main.rs +@@ -1,3 +1,6 @@ ++#![feature(bool_to_option)] ++#![feature(clamp)] ++ + #[macro_use] + mod de; + #[macro_use] +-- +2.33.0 + diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm index 27cd57de8b..be60f3f376 100644 --- a/gnu/packages/rust-apps.scm +++ b/gnu/packages/rust-apps.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2021 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro> ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -34,6 +35,8 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (gnu packages) #:use-module (gnu packages admin) #:use-module (gnu packages compression) #:use-module (gnu packages crates-io) @@ -41,12 +44,14 @@ #:use-module (gnu packages curl) #:use-module (gnu packages documentation) #:use-module (gnu packages fontutils) + #:use-module (gnu packages glib) #:use-module (gnu packages gtk) #:use-module (gnu packages jemalloc) #:use-module (gnu packages linux) #:use-module (gnu packages ssh) #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python-xyz) #:use-module (gnu packages rust) #:use-module (gnu packages tls) @@ -440,6 +445,78 @@ characters, ASCII whitespace characters, other ASCII characters and non-ASCII.") "This package provides a command-line benchmarking tool.") (license (list license:expat license:asl2.0)))) +(define-public i3status-rust + (package + (name "i3status-rust") + (version "0.20.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/greshake/i3status-rust") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (patches (search-patches "i3status-rust-enable-unstable-features.patch")) + (sha256 + (base32 "00gzm3g297s9bfp13vnb623p7dfac3g6cdhz2b3lc6l0kmnnqs1s")))) + (build-system cargo-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("curl" ,curl) + ("dbus" ,dbus) + ("pulseaudio" ,pulseaudio) + ("openssl" ,openssl) + ("zlib" ,zlib))) + (arguments + `(#:features '("pulseaudio" "libpulse-binding") + #:install-source? #f + #:cargo-inputs + (("rust-chrono" ,rust-chrono-0.4) + ("rust-chrono-tz" ,rust-chrono-tz-0.5) + ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5) + ("rust-curl" ,rust-curl-0.4) + ("rust-dbus" ,rust-dbus-0.9) + ("rust-dbus-tree" ,rust-dbus-tree-0.9) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-nix" ,rust-nix-0.20) + ("rust-nl80211" ,rust-nl80211-0.0.2) + ("rust-serde" ,rust-serde-1) + ("rust-serde-derive" ,rust-serde-derive-1) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-signal-hook" ,rust-signal-hook-0.3) + ("rust-swayipc" ,rust-swayipc-2) + ("rust-toml" ,rust-toml-0.5) + ("rust-cpuprofiler" ,rust-cpuprofiler-0.0) + ("rust-inotify" ,rust-inotify-0.9) + ("rust-libpulse-binding" ,rust-libpulse-binding-2) + ("rust-maildir" ,rust-maildir-0.5) + ("rust-notmuch" ,rust-notmuch-0.6) + ("rust-progress" ,rust-progress-0.2)) + #:cargo-development-inputs + (("rust-assert-fs" ,rust-assert-fs-1)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-resources-path + (lambda* (#:key outputs #:allow-other-keys) + (let ((resources (string-append %output "/share"))) + (substitute* "src/util.rs" + (("/usr/share/i3status-rust") resources))))) + (add-after 'install 'install-resources + (lambda* (#:key outputs #:allow-other-keys) + (copy-recursively "files" (string-append %output "/share")))) + (add-after 'unpack 'enable-unstable-features + (lambda _ + (setenv "RUSTC_BOOTSTRAP" "1") + #t))))) + (home-page "https://github.com/greshake/i3status-rust") + (synopsis "i3status, written in pure Rust") + (description "@code{i3status-rs} is a feature-rich and resource-friendly +replacement for i3status, written in pure Rust. It provides a way to display +@code{blocks} of system information (time, battery status, volume, etc) on the i3 +bar. It is also compatible with sway.") + (license license:gpl3))) + (define-public ripgrep (package (name "ripgrep") |