Subject: [PATCH 1/4] gnu: Add rust-cpuprofiler-0.0.4.

OpenSubmitted by phodina.
Details
One participant
  • phodina
Owner
unassigned
Severity
normal
P
P
phodina wrote 7 days ago
(name . guix-patches@gnu.org)(address . guix-patches@gnu.org)
z5j7TKb8VrWU9lXZ7vQfuQqPDC8KK9CJECAEKOu76TomEMrzKlXqeGIxxazbhfty5UwM3IPIaIspta3OggHKqYX38hG64suNvbhyehsKGYI=@protonmail.com
Hi,
these patches add tool similar to i3status, polybar, etc which is used in WM like i3 or sway to display the contents of the bars.
This one is written in Rust and can be used under Wayland and X11. Therefore I placed it into the rust-apps.scm rather than wm.scm. But I'm open to critical review :-)
Petr
Toggle snippet (50 lines)* gnu/packages/crates-io.scm (rust-cpuprofiler-0.0.4): New variable.
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scmindex 089b9f456c..5fb7bd9e69 100644--- a/gnu/packages/crates-io.scm+++ b/gnu/packages/crates-io.scm@@ -46,6 +46,7 @@ #:use-module (gnu packages admin) #:use-module (gnu packages cmake) #:use-module (gnu packages compression)+ #:use-module (gnu packages cpp) #:use-module (gnu packages crates-graphics) #:use-module (gnu packages crates-gtk) #:use-module (gnu packages crypto)@@ -10461,6 +10462,32 @@ to the @code{is_x86_feature_detected!} macro.") to @code{is_x86_feature_detected}.") (license (list license:expat license:asl2.0))))
+(define-public rust-cpuprofiler-0.0.4+ (package+ (name "rust-cpuprofiler")+ (version "0.0.4")+ (source+ (origin+ (method url-fetch)+ (uri (crate-uri "cpuprofiler" version))+ (file-name+ (string-append name "-" version ".tar.gz"))+ (sha256+ (base32+ "0az588yyl9r13w4k7xfdh5ckfaq52fwpjry2q2hblazxpjflgy23"))))+ (build-system cargo-build-system)+ (arguments+ `(#:cargo-inputs+ (("rust-error-chain" ,rust-error-chain-0.12)+ ("rust-lazy-static" ,rust-lazy-static-1)+ ("rust-pkg-config" ,rust-pkg-config-0.3))))+ (inputs `(("gperftools" ,gperftools)))+ (home-page+ "https://github.com/AtheMathmo/cpuprofiler")+ (synopsis "Bindings to google's cpu profiler")+ (description "Bindings to google's cpu profiler")+ (license license:bsd-2)))+ (define-public rust-crates-index-0.13 (package (name "rust-crates-index")--2.33.0
P
P
phodina wrote 7 days ago
Subject: [PATCH 2/4] gnu: Add rust-libpulse-sys-1.
(name . 51193@debbugs.gnu.org)(address . 51193@debbugs.gnu.org)
n3hNWGWRnKhwRmBklOGKgVcs9Rs7Xz6JH2bDvGM0nmX-Z8iRW5njAsezSPJVsQynafdYsOLrbeKXnhgXabekU1WtBVaz0tMRXupIahJcVXE=@protonmail.com
* gnu/packages/crates-io.scm (rust-libpulse-sys-1): New variable.
Toggle diff (53 lines)diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scmindex 5fb7bd9e69..c5703804df 100644--- a/gnu/packages/crates-io.scm+++ b/gnu/packages/crates-io.scm@@ -64,6 +64,7 @@ #:use-module (gnu packages nettle) #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config)+ #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) #:use-module (gnu packages rust) #:use-module (gnu packages rust-apps)@@ -25284,6 +25285,40 @@ file. @end itemize") (license license:gpl2+)))
++(define-public rust-libpulse-sys-1+ (package+ (name "rust-libpulse-sys")+ (version "1.18.0")+ (source+ (origin+ (method url-fetch)+ (uri (crate-uri "libpulse-sys" version))+ (file-name+ (string-append name "-" version ".tar.gz"))+ (sha256+ (base32+ "10msfr8f951v86ag0fl2bsm4a3siq2r7hz9bqhhg7i234s1yj5yg"))))+ (build-system cargo-build-system)+ (arguments+ `(#:skip-build? #t+ #:cargo-inputs+ (("rust-libc" ,rust-libc-0.2)+ ("rust-num-derive" ,rust-num-derive-0.3)+ ("rust-num-traits" ,rust-num-traits-0.2)+ ("rust-pkg-config" ,rust-pkg-config-0.3)+ ("rust-winapi" ,rust-winapi-0.3))))+ (native-inputs `(("pkg-config" ,pkg-config)))+ (inputs `(("pulseaudio" ,pulseaudio)))+ (home-page+ "https://github.com/jnqnfe/pulse-binding-rust")+ (synopsis+ "FFI bindings for the PulseAudio")+ (description+ "This package provides FFI bindings for the PulseAudio libpulse system+library.")+ (license (list license:expat license:asl2.0))))+ (define-public rust-libsqlite3-sys-0.22 (package (name "rust-libsqlite3-sys")
--2.33.0
P
P
phodina wrote 7 days ago
Subject: [PATCH 3/4] gnu: Add rust-libpulse-binding-2.
(address . 51193@debbugs.gnu.org)
cEKxLQHSkoQionfKbuWgVP82V_adgN5M3F6hyhrXbpd8UDm2HaJAmMMtE_e7rmbkqKtccpnCvaCyUgy0_aRF1vCVyNjKgiuyTlvg-hsayHc=@protonmail.com
* gnu/packages/crates-io.scm (rust-libpulse-binding-2): New variable.
Toggle diff (49 lines)diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scmindex c5703804df..67aa8f04da 100644--- a/gnu/packages/crates-io.scm+++ b/gnu/packages/crates-io.scm@@ -25285,6 +25285,44 @@ file. @end itemize") (license license:gpl2+)))
+;; https://github.com/jnqnfe/pulse-binding-rust/blob/c788a8069f455f864d2ba5f0aa5f62e6648dfd26/pulse-sys/build.rs+;; fix location of pulseaudio+(define-public rust-libpulse-binding-2+ (package+ (name "rust-libpulse-binding")+ (version "2.23.1")+ (source+ (origin+ (method url-fetch)+ (uri (crate-uri "libpulse-binding" version))+ (file-name+ (string-append name "-" version ".tar.gz"))+ (sha256+ (base32+ "1qx85j489mmad9cvw5k71271l3qy4s8a5qq8a9wac6cfi4viz5fv"))))+ (build-system cargo-build-system)+ (arguments+ `(#:cargo-inputs+ (("rust-bitflags" ,rust-bitflags-1)+ ("rust-libc" ,rust-libc-0.2)+ ("rust-libpulse-sys" ,rust-libpulse-sys-1)+ ("rust-num-derive" ,rust-num-derive-0.3)+ ("rust-num-traits" ,rust-num-traits-0.2)+ ("rust-winapi" ,rust-winapi-0.3))+ #:phases+ (modify-phases %standard-phases+ (add-before 'check 'set-HOME+ (lambda _ (setenv "HOME" "/tmp") #t)))))+ (native-inputs `(("pkg-config" ,pkg-config)))+ (inputs `(("pulseaudio" ,pulseaudio)))+ (home-page+ "https://github.com/jnqnfe/pulse-binding-rust")+ (synopsis+ "Binding for the PulseAudio libpulse library")+ (description+ "This package provides a Rust language binding for the PulseAudio libpulse+library.")+ (license (list license:expat license:asl2.0))))
(define-public rust-libpulse-sys-1 (package
--2.33.0
P
P
phodina wrote 7 days ago
Subject: [PATCH 4/4] gnu: Add i3status-rust.
(address . 51193@debbugs.gnu.org)
zCX2XGMerxh7_5Wp17Mgfvbsd6_OuubDCZmODa9WGt3YjT_62519ZkPAQyhGtKtEE4I5h3mta60AQ3X29a6WBTFSVgdUFvQ7JVYsGlKzWP4=@protonmail.com
* gnu/packages/rust-apps.scm (i3status-rust): New variable.* gnu/packages/patches/i3status-rust-enable-unstable-features.patch: New file.
Toggle diff (135 lines)diff --git a/gnu/packages/patches/i3status-rust-enable-unstable-features.patch b/gnu/packages/patches/i3status-rust-enable-unstable-features.patchnew file mode 100644index 0000000000..edbbef7534--- /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.scmindex 27cd57de8b..39bfc9fba2 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,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix packages)+ #:use-module (guix utils) #:use-module (gnu packages admin) #:use-module (gnu packages compression) #:use-module (gnu packages crates-io)@@ -41,12 +43,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 +444,73 @@ 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 (string-append 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 `(("dbus" ,dbus)+ ("pulseaudio" ,pulseaudio)+ ("zlib" ,zlib)+ ("openssl" ,openssl)+ ("curl" ,curl)))+ (arguments+ `(#:features '("pulseaudio" "libpulse-binding")+ #: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.4)+ ("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)+ ("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"))#t))+ (add-after 'unpack 'enable-unstable-features+ (lambda _+ (setenv "RUSTC_BOOTSTRAP" "1")+ #t)))))+ (synopsis "i3status, written in pure Rust")+ (description "i3status-rs is a feature-rich and resource-friendly replacement+for i3status, written in pure Rust. It provides a way to display 'blocks' of+system information (time, battery status, volume, etc) on the i3 bar. It is also+compatible with sway.")+ (home-page "https://github.com/greshake/i3status-rust")+ (license license:gpl3)))+ (define-public ripgrep (package (name "ripgrep")
--2.33.0
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send email to 51193@debbugs.gnu.org