Package: hyfetch Version: 1.99.0-1.1 Severity: wishlist X-Debbugs-Cc: [email protected]
Hi Cat and thank you for maintaining hyfetch! After filing my other bugs I found out that hyfetch was rewritten in Rust and my other bugs maybe do not even apply anymore once the new upstream version is packaged. So I looked into doing that and saw in my IRC logs that you asked in #debian-rust how to best package this back in September 2025. I tried to create a proof-of-concept and attached a possible patch to the end of this mail. For this to work the rust crate called bpaf needs to be packaged first. Unfortunately I ran into issues with that and am still waiting for somebody in #debian-rust to help me with it. Nevertheless, since I'll be quite busy in the coming days, I thought I better dump what I have here so that it does not get lost. Feel free to do with it whatever you like. Maybe (hopefully) I come back to it and finish it up. Thanks! cheers, josch >From cd26f4e054cebbed99f398d2116edbc6cb002794 Mon Sep 17 00:00:00 2001 From: Johannes Schauer Marin Rodrigues <[email protected]> Date: Sat, 13 Dec 2025 00:14:05 +0100 Subject: [PATCH] wip --- debian/changelog | 5 ++ debian/control | 74 +++++++++++++++++ debian/patches/relax-deps.patch | 143 ++++++++++++++++++++++++++++++++ debian/patches/series | 1 + debian/rules | 30 +++++++ debian/source/format | 1 + 6 files changed, 254 insertions(+) create mode 100644 debian/changelog create mode 100644 debian/control create mode 100644 debian/patches/relax-deps.patch create mode 100644 debian/patches/series create mode 100755 debian/rules create mode 100644 debian/source/format diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 00000000..d3a6aaf2 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,5 @@ +hyfetch (2.0.5-1) UNRELEASED; urgency=medium + + * Initial release. (Closes: #XXXXXX) + + -- Johannes Schauer Marin Rodrigues <[email protected]> Fri, 12 Dec 2025 13:45:35 +0100 diff --git a/debian/control b/debian/control new file mode 100644 index 00000000..e8a8176e --- /dev/null +++ b/debian/control @@ -0,0 +1,74 @@ +Source: hyfetch +Section: utils +Priority: optional +Maintainer: Cat Kasin <[email protected]> +Build-Depends: + debhelper-compat (= 13), + bash-completion, + dh-exec, + dh-python, + dh-sequence-bash-completion, + python3, + python3-setuptools, + cargo:native, + dh-cargo (>= 25), + rustc:native, + libstd-rust-dev, + librust-indexmap-dev, + librust-regex-dev, + librust-unicode-normalization-dev, + librust-fs-extra-dev, + librust-serde-dev, + librust-serde-json-dev, + librust-anyhow-dev, + librust-heck-dev, + librust-shell-words-dev, + librust-deranged-dev, + librust-tempfile-dev, + librust-aho-corasick-dev, + librust-crossterm-dev, + librust-ansi-colours-dev, + librust-terminal-size-dev, + librust-thiserror-dev, + librust-which-dev, + librust-directories-dev, + librust-itertools-dev, + librust-palette-dev, + librust-unicode-segmentation-dev, + librust-tracing-dev, + librust-strum-dev, +Standards-Version: 4.7.0 +Vcs-Git: https://salsa.debian.org/Catumin/hyfetch.git +Vcs-Browser: https://salsa.debian.org/Catumin/hyfetch +Homepage: https://github.com/hykilpikonna/hyfetch +Rules-Requires-Root: no + +Package: hyfetch +Architecture: any +Depends: + ${python3:Depends}, + ${misc:Depends}, + neowofetch +Recommends: pciutils +Description: Command-line Tool that Presents System Info + HyFetch is a command line script to display information about + your Linux system, such as amount of installed packages, OS + and kernel version, active GTK theme, CPU info, and used/available + memory. It is a fork of neofetch, and adds pride flag coloration + to the OS logo. + . + Hyfetch also has the ability to integrate with other system info + tools, such as fastfetch, to use them to gather info that is then + displayed through hyfetch. + +Package: neowofetch +Architecture: all +Depends: ${misc:Depends} +Multi-Arch: foreign +Recommends: chafa, caca-utils, imagemagick, jp2a, libsixel-bin, w3m-img, pciutils +Description: Shows Linux System Information with Distribution Logo + Neowofetch is a fork of Neofetch, the cross-platform and + easy-to-use system information command line script that collects + your Linux system information and displays it on the terminal + next to animage, either your distribution logo or any ascii art + of your choice. diff --git a/debian/patches/relax-deps.patch b/debian/patches/relax-deps.patch new file mode 100644 index 00000000..ea6ba0cf --- /dev/null +++ b/debian/patches/relax-deps.patch @@ -0,0 +1,143 @@ +--- a/crates/hyfetch/Cargo.toml ++++ b/crates/hyfetch/Cargo.toml +@@ -12,31 +12,31 @@ default-run = "hyfetch" + [dependencies] + aho-corasick = { workspace = true, features = ["perf-literal", "std"] } + ansi_colours = { workspace = true, features = [] } +-anstream = { workspace = true, features = [], optional = true } ++#anstream = { workspace = true, features = [], optional = true } + anyhow = { workspace = true, features = ["std"] } +-bpaf = { workspace = true, features = [] } ++#bpaf = { workspace = true, features = [] } + crossterm = { workspace = true, features = [] } + deranged = { workspace = true, features = ["serde", "std"] } + directories = { workspace = true, features = [] } +-enterpolation = { workspace = true, features = ["bspline", "std"] } +-fastrand = { workspace = true, features = ["std"] } ++#enterpolation = { workspace = true, features = ["bspline", "std"] } ++#fastrand = { workspace = true, features = ["std"] } + indexmap = { workspace = true, features = ["serde", "std"] } + itertools = { workspace = true, features = ["use_std"] } + palette = { workspace = true, features = ["std"] } + serde = { workspace = true, features = ["derive", "std"] } + serde_json = { workspace = true, features = ["std"] } +-serde_path_to_error = { workspace = true, features = [] } ++#serde_path_to_error = { workspace = true, features = [] } + shell-words = { workspace = true, features = ["std"] } + strum = { workspace = true, features = ["derive", "std"] } +-supports-color = { workspace = true, features = [] } ++#supports-color = { workspace = true, features = [] } + tempfile = { workspace = true, features = [] } +-terminal-colorsaurus = { workspace = true, features = [] } ++#terminal-colorsaurus = { workspace = true, features = [] } + terminal_size = { workspace = true, features = [] } + thiserror = { workspace = true, features = [] } +-time = { workspace = true, features = ["local-offset", "std"] } +-toml_edit = { workspace = true, features = [], optional = true } ++#time = { workspace = true, features = ["local-offset", "std"] } ++#toml_edit = { workspace = true, features = [], optional = true } + tracing = { workspace = true, features = ["attributes", "std"] } +-tracing-subscriber = { workspace = true, features = ["ansi", "fmt", "smallvec", "std", "tracing-log"] } ++#tracing-subscriber = { workspace = true, features = ["ansi", "fmt", "smallvec", "std", "tracing-log"] } + unicode-segmentation = { workspace = true, features = [] } + which = { workspace = true, features = [] } + +@@ -50,17 +50,18 @@ serde_json = { workspace = true, feature + anyhow = { workspace = true, features = ["std"] } + heck = "0.5.0" + +-[target.'cfg(windows)'.dependencies] +-enable-ansi-support = { workspace = true, features = [] } +-normpath = { workspace = true, features = [] } +-same-file = { workspace = true, features = [] } +-crossterm = { workspace = true, features = ["windows"] } ++#[target.'cfg(windows)'.dependencies] ++#enable-ansi-support = { workspace = true, features = [] } ++#normpath = { workspace = true, features = [] } ++#same-file = { workspace = true, features = [] } ++#crossterm = { workspace = true, features = ["windows"] } + + [features] +-default = ["autocomplete", "color", "macchina"] +-autocomplete = ["bpaf/autocomplete"] +-color = ["bpaf/dull-color"] +-macchina = ["dep:anstream", "dep:toml_edit", "toml_edit/display"] ++default = [] ++#default = ["autocomplete", "color", "macchina"] ++#autocomplete = ["bpaf/autocomplete"] ++#color = ["bpaf/dull-color"] ++#macchina = ["dep:anstream", "dep:toml_edit", "toml_edit/display"] + + [lints] + workspace = true +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -14,38 +14,38 @@ license = "MIT" + [workspace.dependencies] + aho-corasick = { version = "1.1.3", default-features = false } + ansi_colours = { version = "1.2.2", default-features = false } +-anstream = { version = "0.6.14", default-features = false } ++#anstream = { version = "0.6.14", default-features = false } + anyhow = { version = "1.0.86", default-features = false } +-bpaf = { version = "0.9.12", default-features = false } +-crossterm = { version = "0.29.0", default-features = false } ++#bpaf = { version = "0.9.12", default-features = false } ++crossterm = { version = ">=0.28.0", default-features = false } + deranged = { version = "0.3.11", default-features = false } +-directories = { version = "6.0.0", default-features = false } +-enable-ansi-support = { version = "0.2.1", default-features = false } +-enterpolation = { version = "0.2.1", default-features = false } +-fastrand = { version = "2.1.0", default-features = false } ++directories = { version = ">=5.0.0", default-features = false } ++#enable-ansi-support = { version = "0.2.1", default-features = false } ++#enterpolation = { version = "0.2.1", default-features = false } ++#fastrand = { version = "2.1.0", default-features = false } + indexmap = { version = "2.2.6", default-features = false } +-itertools = { version = "0.14.0", default-features = false } +-normpath = { version = "1.2.0", default-features = false } ++itertools = { version = ">=0.13.0", default-features = false } ++#normpath = { version = "1.2.0", default-features = false } + palette = { version = "0.7.6", default-features = false } + regex = { version = "1.10.5", default-features = false } +-same-file = { version = "1.0.6", default-features = false } ++#same-file = { version = "1.0.6", default-features = false } + serde = { version = "1.0.203", default-features = false } + serde_json = { version = "1.0.118", default-features = false } +-serde_path_to_error = { version = "0.1.16", default-features = false } ++#serde_path_to_error = { version = "0.1.16", default-features = false } + shell-words = { version = "1.1.0", default-features = false } +-strum = { version = "0.27.2", default-features = false } +-supports-color = { version = "3.0.0", default-features = false } ++strum = { version = ">=0.26.0", default-features = false } ++#supports-color = { version = "3.0.0", default-features = false } + tempfile = { version = "3.10.1", default-features = false } +-terminal-colorsaurus = { version = "1.0.0", default-features = false } +-terminal_size = { version = "0.4.3", default-features = false } ++#terminal-colorsaurus = { version = "1.0.0", default-features = false } ++terminal_size = { version = ">=0.4.2", default-features = false } + thiserror = { version = "1.0.61", default-features = false } +-time = { version = "0.3.36", default-features = false } +-toml_edit = { version = "0.23.6", default-features = false } ++#time = { version = "0.3.36", default-features = false } ++#toml_edit = { version = "0.23.6", default-features = false } + tracing = { version = "0.1.40", default-features = false } +-tracing-subscriber = { version = "0.3.18", default-features = false } ++#tracing-subscriber = { version = "0.3.18", default-features = false } + unicode-normalization = { version = "0.1.23", default-features = false } + unicode-segmentation = { version = "1.11.0", default-features = false } +-which = { version = "7.0.1", default-features = false } ++which = { version = ">=7.0.1", default-features = false } + + [workspace.lints.clippy] + arithmetic_side_effects = "warn" +--- a/crates/hyfetch/src/neofetch_util.rs ++++ b/crates/hyfetch/src/neofetch_util.rs +@@ -30,7 +30,7 @@ use strum::AsRefStr; + use toml_edit::{value, DocumentMut, Item, Table}; + use tracing::debug; + use unicode_segmentation::UnicodeSegmentation as _; +-use which::which; ++use which; + use crate::ascii::{RawAsciiArt, RecoloredAsciiArt}; + use crate::color_util::{printc, NeofetchAsciiIndexedColor, PresetIndexedColor}; + use crate::distros::Distro; diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 00000000..bdddf05a --- /dev/null +++ b/debian/patches/series @@ -0,0 +1 @@ +relax-deps.patch diff --git a/debian/rules b/debian/rules new file mode 100755 index 00000000..6ea45b06 --- /dev/null +++ b/debian/rules @@ -0,0 +1,30 @@ +#!/usr/bin/make -f +# +# https://wiki.debian.org/Gnome/Rust_Packaging + + +export DEB_BUILD_MAINT_OPTIONS = hardening=+all +DPKG_EXPORT_BUILDFLAGS = 1 +include /usr/share/dpkg/default.mk +include /usr/share/rustc/architecture.mk +export DEB_HOST_RUST_TYPE +export PATH:=/usr/share/cargo/bin:$(PATH) +export CARGO=/usr/share/cargo/bin/cargo +export CARGO_HOME=$(CURDIR)/debian/cargo_home +export CARGO_REGISTRY=$(CURDIR)/debian/cargo_registry +export DEB_CARGO_CRATE=$(DEB_SOURCE)_$(DEB_VERSION_UPSTREAM) + +%: + dh $@ --buildsystem=cargo # --sourcedirectory=crates/hyfetch/ + +execute_after_dh_auto_clean: + $(CARGO) clean + rm -rf $(CARGO_HOME) + rm -rf $(CARGO_REGISTRY) + rm -f debian/cargo-checksum.json + +execute_before_dh_auto_configure: + $(CARGO) prepare-debian $(CARGO_REGISTRY) --link-from-system + rm -f Cargo.lock + touch debian/cargo-checksum.json + diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 00000000..163aaf8d --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) -- 2.47.3

