Python-zstd package missing

Hello all! First time posting here.

Well, as some of you may know, wyng-backup is an amazing backup project, aimed at creating differential backups of Thin LVMs/BTRFS volumes, mainly targeting QubesOS pools.

I use its qubes:// target since forever and abstract fs mounting of backup fs there to be cifs for a while, but that is sub:optimal https://github.com/tasket/wyng-backup?tab=readme-ov-file#options-detail. The ideal would be to use the qubes+ssh:// so the qube is only responsible to host private key in that trusted qube and permit dom0 to use openwrt through ssh to deal with the archive side of things, which is basically a python script pushed and run there, requiring std unix tools and python3 to do its operations. In my use case with ACM3200, probably the most popular commodity router supported by OpenWRT, the router sits there doing mostly nothing all day, and having it as a backend for differential backups would be perfect.

I checked OpenWrt packages recently, and was happy to discover that python3-cryptodome was already present, but also saw that python3-zstd was not. To be the most efficient, pythin3-zstd is not a stong dependency but highly suggested by wyng-backup. My backups are in zstd format, and just rsyncing them there if python3-zstd was available would permit me to go forward in that PoC.

By adding python3-zstd package under OpenWrt, wyng-backups could use OpenWrt to write to atached USB/msata/m.2 attached drives through ssh with ssh authentication, and as long as the qube being able to talk to the configured properly to talk to the ssh backup server, it could be an easy way to use wyng i an SOHO setup with wyng being setuped to run in the background and keep backups up to date at all times, only the work done outside of that WIFI network would be excluded of easy backup restoration. The qube would just be used to connect to ssh server under qube-ssh://, and the ssh server would be the archive backend. That is, the ssh server (OpenWrt router) would be used directly for IO operation, as opposed to have qubes:// which needs to either use sshfs/cifs to mount remote fs locally, which requires cifs unix extension setup, reconnection tweaks etc, while if ssh server was the wng-backup archive backend directly, none of this would be required. Of course, some additional requirements would be missing, but python3-zstd is directly specificed in wyng requirements and is not available as of today.

Note that wyng-backup is not limited to QubesOS, but QubesOS is its first class citizen. Any OSes having TLVM/BRTFS partition scheme would benefit of using wyng-backup, only wung-util-qubes is carved for exxclusive QubesOS usage.


TLDR: adding python3-zstd is the only missing package to turn OpenWrt into wyng possible archive host (with additional model specific storage), which could be subect to a nice writeup and make wyng-backup easily used by all QubesOS community.

Was there any reason to not have python3-zstd up to now? I searched and found nothing. Thanks!

This is typically answered with a kind of generic answer. No one bothered about it not being there, yet - no one was willing to package- and maintain it so far.

OpenWrt does not package stuff just because it's there and hasn't made it up the trees in time, someone needs to take care of it (mid- to longer term).