Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
7f31805
SPECS: Add asciinema.
misaka00251 Jun 4, 2026
549417f
SPECS: Add rust-avt-0.18.
misaka00251 Jul 14, 2026
cd440a8
SPECS: Add agg.
misaka00251 Jul 14, 2026
344de9b
SPECS: Add rust-fontdb-0.23.
misaka00251 Jul 14, 2026
df695ba
SPECS: Add rust-gifski-1.
misaka00251 Jul 14, 2026
d9aa2c6
SPECS: rust-reqwest-0.13: Update to 0.13.4.
misaka00251 Jul 14, 2026
72f5d85
SPECS: Add rust-resvg-0.45.
misaka00251 Jul 14, 2026
6536d19
SPECS: Add rust-swash-0.2.
misaka00251 Jul 14, 2026
40d933d
SPECS: Add rust-tiny-skia-0.11.
misaka00251 Jul 14, 2026
1e9219b
SPECS: Add rust-usvg-0.45.
misaka00251 Jul 14, 2026
dd70ec2
SPECS: Add rust-gif-0.13.
misaka00251 Jul 14, 2026
46d48da
SPECS: Add rust-gif-dispose-5.
misaka00251 Jul 14, 2026
f41c7cc
SPECS: Add rust-imagequant-4.
misaka00251 Jul 14, 2026
339554a
SPECS: Add rust-ordered-channel-1.
misaka00251 Jul 14, 2026
5815657
SPECS: Add rust-resize-0.8.
misaka00251 Jul 14, 2026
0d0b2e6
SPECS: Add rust-yuv-0.1.
misaka00251 Jul 14, 2026
965df4a
SPECS: Add rust-pico-args-0.5.
misaka00251 Jul 14, 2026
ca83ecd
SPECS: Add rust-svgtypes-0.15.
misaka00251 Jul 14, 2026
cdb8978
SPECS: Add rust-skrifa-0.31.
misaka00251 Jul 14, 2026
b33ae08
SPECS: Add rust-yazi-0.2.
misaka00251 Jul 14, 2026
5889ebe
SPECS: Add rust-zeno-0.3.
misaka00251 Jul 14, 2026
f320ad1
SPECS: Add rust-tiny-skia-path-0.11.
misaka00251 Jul 14, 2026
6f411e1
SPECS: Add rust-simplecss-0.2.
misaka00251 Jul 14, 2026
445e522
SPECS: Add rust-zune-jpeg-0.4.
misaka00251 Jul 14, 2026
3f20e2a
SPECS: Add rust-kurbo-0.11.
misaka00251 Jul 14, 2026
b66de72
SPECS: Add rust-imagesize-0.13.
misaka00251 Jul 14, 2026
919be16
SPECS: Add rust-roxmltree-0.20.
misaka00251 Jul 14, 2026
f54a406
SPECS: Add rust-strict-num-0.1.
misaka00251 Jul 14, 2026
a168fde
SPECS: Add rust-xmlwriter-0.1.
misaka00251 Jul 14, 2026
54609fc
SPECS: Add rust-natord-1.
misaka00251 Jul 14, 2026
2953f44
SPECS: Add rust-core-maths-0.1.
misaka00251 Jul 14, 2026
4412e0f
SPECS: Add rust-fontconfig-parser-0.5.
misaka00251 Jul 14, 2026
17ad530
SPECS: Add rust-lodepng-3.
misaka00251 Jul 14, 2026
41507cc
SPECS: Add rust-pbr-1.
misaka00251 Jul 14, 2026
0871c7b
SPECS: Add rust-unicode-vo-0.1.
misaka00251 Jul 14, 2026
0915dda
SPECS: Add rust-unicode-script-0.5.
misaka00251 Jul 14, 2026
d0a2bcd
SPECS: Add rust-rustybuzz-0.20.
misaka00251 Jul 14, 2026
6717731
SPECS: Add rust-read-fonts-0.29.
misaka00251 Jul 14, 2026
64d4483
SPECS: Add rust-png-0.17.
misaka00251 Jul 14, 2026
e478609
SPECS: Add rust-float-cmp-0.9.
misaka00251 Jul 14, 2026
1fd89a4
SPECS: Add rust-zune-core-0.4.
misaka00251 Jul 14, 2026
db4ccb0
SPECS: Add rust-font-types-0.9.
misaka00251 Jul 14, 2026
8cb1147
SPECS: Add rust-unicode-bidi-mirroring-0.4.
misaka00251 Jul 14, 2026
305c25b
SPECS: Add rust-unicode-ccc-0.4.
misaka00251 Jul 14, 2026
73369c3
SPECS: rust-aws-lc-sys-0.35: Fix build w/ rva23.
misaka00251 Jul 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions SPECS/agg/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
[package]
name = "agg"
version = "1.9.0"
authors = ["Marcin Kulik <m@ku1ik.com>"]
edition = "2021"
homepage = "https://docs.asciinema.org/manual/agg/"
repository = "https://github.com/asciinema/agg"
description = "asciinema gif generator"
license = "GPL-3.0-or-later"

include = [
"/Cargo.lock",
"/Cargo.toml",
"/LICENSE",
"/README.md",
"/fonts/NotoEmoji-OFL.txt",
"/fonts/NotoEmoji-Regular.ttf",
"/fonts/SymbolsNerdFont-LICENSE.txt",
"/fonts/SymbolsNerdFont-Regular.ttf",
"/src/**",
]

# MSRV
rust-version = "1.85.0"

[dependencies]
anyhow = "1.0.102"
avt = "0.18.0"
clap = { version = "4.6.1", features = ["derive"] }
env_logger = "0.11.10"
fontdb = "0.23.0"
gifski = "1.34.0"
imgref = "1.12.1"
log = "0.4.29"
reqwest = { version = "0.13.3", default-features = false, features = ["blocking", "rustls", "gzip"] }
resvg = { version = "0.45.1", features = ["text"] }
rgb = "0.8.53"
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.149"
shellexpand = "3.1.2"
swash = "0.2.7"
tiny-skia = "0.11.4"
ttf-parser = "0.25.1"
usvg = "0.45.1"

[profile.release]
strip = true
codegen-units = 1
63 changes: 63 additions & 0 deletions SPECS/agg/agg.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# SPDX-FileCopyrightText: (C) 2026 Institute of Software, Chinese Academy of Sciences (ISCAS)
# SPDX-FileCopyrightText: (C) 2026 openRuyi Project Contributors
# SPDX-FileContributor: misaka00251 <liuxin@iscas.ac.cn>
#
# SPDX-License-Identifier: MulanPSL-2.0

Name: agg
Version: 1.9.0
Release: %autorelease
Summary: asciinema gif generator
License: GPL-3.0-only
URL: https://docs.asciinema.org/manual/agg/
VCS: git:https://github.com/asciinema/agg.git
#!RemoteAsset: sha256:8170119502ad2c1c697e5cd4d050d87c425ecee726c5f6c3c2140703bcb31bb3
Source: https://github.com/asciinema/agg/archive/refs/tags/v%{version}.tar.gz
BuildSystem: rust

BuildRequires: rust-rpm-macros
BuildRequires: rust
BuildRequires: cargo
BuildRequires: crate(anyhow-1/default) >= 1.0.102
BuildRequires: crate(avt-0.18/default) >= 0.18.0
BuildRequires: crate(clap-4/default) >= 4.6.1
BuildRequires: crate(clap-4/derive) >= 4.6.1
BuildRequires: crate(env-logger-0.11/default) >= 0.11.10
BuildRequires: crate(fontdb-0.23/default) >= 0.23.0
BuildRequires: crate(gifski-1/default) >= 1.34.0
BuildRequires: crate(imgref-1/default) >= 1.12.1
BuildRequires: crate(jni-sys-0.4/default) >= 0.4.1
BuildRequires: crate(log-0.4/default) >= 0.4.29
BuildRequires: crate(reqwest-0.13/blocking) >= 0.13.3
BuildRequires: crate(reqwest-0.13/gzip) >= 0.13.3
BuildRequires: crate(reqwest-0.13/rustls) >= 0.13.3
BuildRequires: crate(resvg-0.45/default) >= 0.45.1
BuildRequires: crate(resvg-0.45/text) >= 0.45.1
BuildRequires: crate(rgb-0.8/default) >= 0.8.53
BuildRequires: crate(serde-1/default) >= 1.0.228
BuildRequires: crate(serde-1/derive) >= 1.0.228
BuildRequires: crate(serde-json-1/default) >= 1.0.149
BuildRequires: crate(shellexpand-3/default) >= 3.1.2
BuildRequires: crate(swash-0.2/default) >= 0.2.7
BuildRequires: crate(tiny-skia-0.11/default) >= 0.11.4
BuildRequires: crate(ttf-parser-0.25/default) >= 0.25.1
BuildRequires: crate(usvg-0.45/default) >= 0.45.1

%description
agg is a command-line tool for generating animated GIF files from
terminal session recordings.

It supports conversion from asciicast files produced by asciinema
recorder. It uses Kornel Lesiński's excellent gifski library to
produce optimized, high quality GIF output with accurate frame timing.

%install
install -Dpm 0755 target/release/agg %{buildroot}%{_bindir}/agg

%files
%doc README.md
%license LICENSE
%{_bindir}/agg

%changelog
%autochangelog
69 changes: 69 additions & 0 deletions SPECS/asciinema/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
[package]
name = "asciinema"
version = "3.2.1"
edition = "2021"
authors = ["Marcin Kulik <m@ku1ik.com>"]
homepage = "https://asciinema.org"
repository = "https://github.com/asciinema/asciinema"
description = "Terminal session recorder, streamer, and player"
license = "GPL-3.0-or-later"

# MSRV
rust-version = "1.82.0"

[dependencies]
anyhow = "1.0"
nix = { version = "0.30", features = ["fs", "term", "process", "signal", "poll"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
clap = { version = "4.0", features = ["derive", "wrap_help"] }
signal-hook = { version = "0.3", default-features = false }
uuid = { version = "1.6", features = ["v4"] }
reqwest = { version = "0.12", default-features = false, features = ["blocking", "rustls-tls-native-roots", "multipart", "gzip", "json", "stream"] }
rustyline = { version = "17.0", default-features = false }
config = { version = "0.15", default-features = false, features = ["toml"] }
which = "8.0"
tempfile = "3.23"
avt = "0.18"
axum = { version = "0.8", default-features = false, features = ["http1", "ws"] }
tokio = { version = "1.40", features = ["rt-multi-thread", "net", "sync", "time", "fs", "process"] }
futures-util = { version = "0.3", default-features = false, features = ["sink"] }
tokio-stream = { version = "0.1", default-features = false, features = ["sync", "time"] }
rust-embed = "8.8"
tower-http = { version = "0.6", features = ["trace", "compression-gzip"] }
tracing = { version = "0.1", default-features = false }
tracing-subscriber = { version = "0.3.20", default-features = false, features = ["fmt", "env-filter"] }
rgb = { version = "0.8", default-features = false }
url = "2.5"
tokio-tungstenite = { version = "0.28", default-features = false, features = ["connect", "rustls-tls-native-roots"] }
rustls = { version = "0.23", default-features = false, features = ["ring"] }
tokio-util = { version = "0.7", features = ["rt"] }
rand = "0.9"
async-trait = "0.1"
signal-hook-tokio = { version = "0.3", features = ["futures-v0_3"] }
bytes = "1.11"
zstd = "0.13.3"

[build-dependencies]
clap = { version = "4.0", features = ["derive", "wrap_help"] }
clap_complete = "4.0"
clap_mangen = "0.2"
url = "2.5"

[profile.release]
strip = true
lto = true
codegen-units = 1

[profile.integration-test]
inherits = "release"
opt-level = 0
lto = false
codegen-units = 256
strip = "none"
incremental = true
debug-assertions = false
overflow-checks = false

[features]
macos-tty = []
110 changes: 110 additions & 0 deletions SPECS/asciinema/asciinema.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
# SPDX-FileCopyrightText: (C) 2026 Institute of Software, Chinese Academy of Sciences (ISCAS)
# SPDX-FileCopyrightText: (C) 2026 openRuyi Project Contributors
# SPDX-FileContributor: misaka00251 <liuxin@iscas.ac.cn>
#
# SPDX-License-Identifier: MulanPSL-2.0

Name: asciinema
Version: 3.2.1
Release: %autorelease
Summary: Terminal session recorder, streamer and player
License: GPL-3.0-or-later
URL: https://asciinema.org
VCS: git:https://github.com/asciinema/asciinema.git
#!RemoteAsset: sha256:e7e49a09c664a76afc5bc25ca09871eb090bfbe68a2ddbc72750d3cb215d36f1
Source: https://github.com/asciinema/asciinema/archive/refs/tags/v%{version}.tar.gz
BuildSystem: rust

BuildRequires: rust-rpm-macros
BuildRequires: rust
BuildRequires: cargo
BuildRequires: crate(anyhow-1/default) >= 1.0.0
BuildRequires: crate(async-trait-0.1/default) >= 0.1.0
BuildRequires: crate(avt-0.18/default) >= 0.18.0
BuildRequires: crate(axum-0.8/http1) >= 0.8.0
BuildRequires: crate(axum-0.8/ws) >= 0.8.0
BuildRequires: crate(bytes-1/default) >= 1.11.0
BuildRequires: crate(clap-4) >= 4.0.0
BuildRequires: crate(clap-4/default) >= 4.0.0
BuildRequires: crate(clap-4/derive) >= 4.0.0
BuildRequires: crate(clap-4/wrap-help) >= 4.0.0
BuildRequires: crate(clap-complete-4) >= 4.0.0
BuildRequires: crate(clap-mangen-0.2) >= 0.2.0
BuildRequires: crate(config-0.15/toml) >= 0.15.0
BuildRequires: crate(futures-util-0.3/sink) >= 0.3.0
BuildRequires: crate(nix-0.30/default) >= 0.30.0
BuildRequires: crate(nix-0.30/fs) >= 0.30.0
BuildRequires: crate(nix-0.30/poll) >= 0.30.0
BuildRequires: crate(nix-0.30/process) >= 0.30.0
BuildRequires: crate(nix-0.30/signal) >= 0.30.0
BuildRequires: crate(nix-0.30/term) >= 0.30.0
BuildRequires: crate(rand-0.9/default) >= 0.9.0
BuildRequires: crate(reqwest-0.12/blocking) >= 0.12.0
BuildRequires: crate(reqwest-0.12/gzip) >= 0.12.0
BuildRequires: crate(reqwest-0.12/json) >= 0.12.0
BuildRequires: crate(reqwest-0.12/multipart) >= 0.12.0
BuildRequires: crate(reqwest-0.12/rustls-tls-native-roots) >= 0.12.0
BuildRequires: crate(reqwest-0.12/stream) >= 0.12.0
BuildRequires: crate(rgb-0.8) >= 0.8.0
BuildRequires: crate(rust-embed-8/default) >= 8.8.0
BuildRequires: crate(rustls-0.23/ring) >= 0.23.0
BuildRequires: crate(rustyline-17) >= 17.0.0
BuildRequires: crate(serde-1/default) >= 1.0.0
BuildRequires: crate(serde-1/derive) >= 1.0.0
BuildRequires: crate(serde-json-1/default) >= 1.0.0
BuildRequires: crate(signal-hook-0.3) >= 0.3.0
BuildRequires: crate(signal-hook-tokio-0.3/default) >= 0.3.0
BuildRequires: crate(signal-hook-tokio-0.3/futures-v0-3) >= 0.3.0
BuildRequires: crate(tempfile-3/default) >= 3.23.0
BuildRequires: crate(tokio-1/default) >= 1.40.0
BuildRequires: crate(tokio-1/fs) >= 1.40.0
BuildRequires: crate(tokio-1/net) >= 1.40.0
BuildRequires: crate(tokio-1/process) >= 1.40.0
BuildRequires: crate(tokio-1/rt-multi-thread) >= 1.40.0
BuildRequires: crate(tokio-1/sync) >= 1.40.0
BuildRequires: crate(tokio-1/time) >= 1.40.0
BuildRequires: crate(tokio-stream-0.1/sync) >= 0.1.0
BuildRequires: crate(tokio-stream-0.1/time) >= 0.1.0
BuildRequires: crate(tokio-tungstenite-0.28/connect) >= 0.28.0
BuildRequires: crate(tokio-tungstenite-0.28/rustls-tls-native-roots) >= 0.28.0
BuildRequires: crate(tokio-util-0.7/default) >= 0.7.0
BuildRequires: crate(tokio-util-0.7/rt) >= 0.7.0
BuildRequires: crate(tower-http-0.6/compression-gzip) >= 0.6.0
BuildRequires: crate(tower-http-0.6/default) >= 0.6.0
BuildRequires: crate(tower-http-0.6/trace) >= 0.6.0
BuildRequires: crate(tracing-0.1) >= 0.1.0
BuildRequires: crate(tracing-subscriber-0.3/env-filter) >= 0.3.20
BuildRequires: crate(tracing-subscriber-0.3/fmt) >= 0.3.20
BuildRequires: crate(url-2) >= 2.5.0
BuildRequires: crate(url-2/default) >= 2.5.0
BuildRequires: crate(uuid-1/default) >= 1.6.0
BuildRequires: crate(uuid-1/v4) >= 1.6.0
BuildRequires: crate(which-8/default) >= 8.0.0
BuildRequires: bash-completion
# For Tests
BuildRequires: pkgconfig(python3)

Recommends: agg

%description
asciinema (aka asciinema CLI or asciinema recorder) is a command-line tool
for recording and live streaming terminal sessions.

%build -p
# Generate man pages and shell completion files
export ASCIINEMA_GEN_DIR=assets

%install
install -Dpm 0755 target/release/asciinema %{buildroot}%{_bindir}/asciinema
install -Dpm 0644 assets/man/*.1 -t %{buildroot}/%{_mandir}/man1/
install -Dpm 0644 assets/completion/asciinema.bash -t %{buildroot}/%{bash_completions_dir}

%files
%doc README.md CHANGELOG.md
%license LICENSE
%{_bindir}/asciinema
%{_mandir}/man1/asciinema*.1*
%{bash_completions_dir}/asciinema.bash

%changelog
%autochangelog
75 changes: 75 additions & 0 deletions SPECS/rust-avt-0.18/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.82.0"
name = "avt"
version = "0.18.0"
authors = ["Marcin Kulik <m@ku1ik.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "asciinema virtual terminal"
readme = "README.md"
license = "Apache-2.0"
repository = "https://github.com/asciinema/avt"

[lib]
name = "avt"
path = "src/lib.rs"

[[example]]
name = "text"
path = "examples/text.rs"

[[test]]
name = "integration_test"
path = "tests/integration_test.rs"

[[bench]]
name = "charset"
path = "benches/charset.rs"
harness = false

[[bench]]
name = "parser"
path = "benches/parser.rs"
harness = false

[[bench]]
name = "vt"
path = "benches/vt.rs"
harness = false

[dependencies.rgb]
version = "0.8.33"

[dependencies.unicode-width]
version = "0.1.13"

[dev-dependencies.criterion]
version = "0.3"

[dev-dependencies.pretty_assertions]
version = "1.0"

[dev-dependencies.proptest]
version = "=1.9.0"

[dev-dependencies.rand]
version = "0.7"

[dev-dependencies.tempfile]
version = "=3.24.0"
Loading
Loading