Skip to content

snapspace: when bc (dependency) is not present, output is broken/not useful #3

@seb26

Description

@seb26

Thank you for this great tool.

On a system lacking bc, snapspace output is like below

[seb@xxxx:~]$ bash snapspace xx/yy/zz/aa/bb
 OLDREFS   UNIQUE  UNIQUE%   SNAPSHOT
snapspace: line 75: bc: command not found
snapspace: line 13: bc: command not found
snapspace: line 13: bc: command not found
  1528294227968         1528208908288           %   syncoid_xxxx_2025-11-02:17:00:08-GMT11:00
snapspace: line 75: bc: command not found
snapspace: line 13: bc: command not found
snapspace: line 13: bc: command not found
  31842775040         1183744           %   autosnap_2025-12-13_02:06:34_daily
snapspace: line 75: bc: command not found
snapspace: line 13: bc: command not found
snapspace: line 13: bc: command not found
  31842844672         217088           %   autosnap_2025-12-14_00:00:31_daily
snapspace: line 75: bc: command not found
snapspace: line 13: bc: command not found
snapspace: line 13: bc: command not found

Installing bc & available at runtime of snapspace obviously rectifies issue and output is useful again.

I had this result in Debian 13, minimal packages from a netinstall, no bc at the time. Also in NixOS no bc (but that OS is very much provide-for-yourself).

Suggest:

  • Fail if bc is not present on the system with pointer to user to install
  • Mention bc as a dependency in README

Environment:

seb@xxxx:~$ zfs --version
zfs-2.3.2-2
zfs-kmod-2.3.2-2
seb@xxxx:~$ uname -a
Linux xxxx 6.12.63+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.63-1 (2025-12-30) x86_64 GNU/Linux

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions