New Asciinema CLI 3.0

Next major version of the asciinema CLI is a rewrite in Rust! :crab:

I’m the current maintainer of the asciinema package, and I’m looking for feedback on how to handle the upcoming update as well as the changes I made in the asciinema spec file. I’m using this opportunity to learn more about Rust packaging and to quickly update the package once it’s released.

A Copr is available for testing the asciinema CLI 3.0.0 RC2:

# dnf copr enable xfgusta/asciinema
# dnf install asciinema

A new rust-asciinema package?

I was initially thinking about creating a new package called rust-asciinema and making the asciinema package obsolete, similar to what was done with rust-coreos-installer and coreos-installer. However, this approach seems a bit complicated. I decided to continue using the current asciinema repo and generate the package from the tarball with rust2rpm.

Spec: https://xfgusta.fedorapeople.org/pkgs/asciinema.spec
SRPM: https://xfgusta.fedorapeople.org/pkgs/asciinema-3.0.0~rc.2-1.fc41.src.rpm

Any feedback on the spec would be greatly appreciated.

License

I’m not sure if I did this right, but I just removed repeated expressions/terms to shorten the license tag. For example, there are MIT OR Apache-2.0 OR Zlib, MIT OR Zlib OR Apache-2.0, and Zlib OR Apache-2.0 OR MIT. I kept the first one and left out the rest.

SourceLicense:  GPL-3.0
# (Apache-2.0 OR MIT) AND BSD-3-Clause
# (MIT OR Apache-2.0) AND Unicode-DFS-2016
# 0BSD OR MIT OR Apache-2.0
# Apache-2.0
# Apache-2.0 OR BSL-1.0
# Apache-2.0 OR ISC OR MIT
# Apache-2.0 OR MIT
# Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
# BSD-2-Clause OR Apache-2.0 OR MIT
# BSD-3-Clause
# GPL-3.0
# ISC
# ISC AND MIT AND OpenSSL
# MIT
# MIT AND BSD-3-Clause
# MIT OR Apache-2.0
# MIT OR Apache-2.0 OR Zlib
# MIT OR Zlib OR Apache-2.0
# MPL-2.0
# Unlicense OR MIT
# Zlib OR Apache-2.0 OR MIT
License:        (Apache-2.0 OR MIT) AND BSD-3-Clause AND Unicode-DFS-2016 AND (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND GPL-3.0 AND ISC AND MIT AND OpenSSL AND (MIT OR Apache-2.0 OR Zlib) AND MPL-2.0 AND (Unlicense OR MIT)

Also, license-validate tool complained about the GPL-3.0. Should I change it to GPL-3.0-or-late?

$ license-validate -v "GPL-3.0"
No terminal matches 'G' in the current parser context, at line 1 col 1

GPL-3.0
^
[...]
$ license-validate -v "(Apache-2.0 OR MIT) AND BSD-3-Clause AND Unicode-DFS-2016 AND (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND GPL-3.0 AND ISC AND MIT AND OpenSSL AND (MIT OR Apache-2.0 OR Zlib) AND MPL-2.0 AND (Unlicense OR MIT)"
No terminal matches 'G' in the current parser context, at line 1 col 267

(BSD-2-Clause OR Apache-2.0 OR MIT) AND GPL-3.0 AND ISC AND MIT AND OpenSSL AND
                                        ^
[...]

Dependencies

Hopefully, I’ll only need to package three dependencies. Here are the review requests:

By the way, is there any tool to check which dependencies are already packaged? Sometimes, I just want to have an idea of what I’ll need to package. I had to check them one by one. It would be interesting to have a tool that checks if:

  • the package already exists in Fedora; or
  • it exists, but with a different version declared in Cargo.toml; or
  • it doesn’t exist, but there is an package review ticket open; or
  • it doesn’t exist in Fedora, nor is there a ticket.