(Virtual) Richard Stallman can inspect your computer!

Clearly, the tile is a joke: there is no way RMS could and would spy on you and your computer!
Therefore, what is this post about?
It is about a program named vrms, that stands for Virtual RMS. This is a software that has been originated on Debian and is now ported to other distributions, like CentOS (and other Red-Hat based), where it is called vrms-rpm.
But what is vrms or its cousin vrms-rpm?
It is a program that inspect the list of locally installed application packages to see which one are not blessed by RMS; in other words it provides you with a list of packages that have software licences that are not allowed by GNU.
Running such software, as you can see, is not mandatory and does not provide any boost to your system and its software, nor it will stop your computer to work: it will simply inform you that you can do better with regard to GNU software.
Running such program is a good and interesting experience!

Running vrms on a CentOS

On CentOS the package is named vrms-rmp and can be installed from the official repositories by means of yum or dnf.
Running it is as simple as:

% vrms-rpm --ascii --explain
897 pacchetti liberi (96.7%)
31 pacchetti non-liberi (3.3%)
 - centos-logos
   Licensed only for approved usage, see COPYING for details.
 - gobject-introspection
   GPLv2+, LGPLv2+, MIT
 - gobject-introspection-devel
   GPLv2+, LGPLv2+, MIT
 - iwl100-firmware
   Redistributable, no modification permitted
 - iwl1000-firmware
   Redistributable, no modification permitt
   ...


The --ascii option will print an ASCII-art image of RMS in the case your system is clean, or when it is too few GNU-compatible. Depending on your terminal, this can appear as garbage, so you can use the --image flag to show a “better drawing” of RMS (by means of escape sequences):



The --explain option will print out a line that explains why a particular package has been considered “bad”. For instance, the centos-logos is not allowed by GNU because it has a licence that limits the usage (Licensed only for approved usage, see COPYING for details).

There are different options, so you can use the command to consider “good” specific licences, as well as you can ask it to list all free or non free packages by means of --list option. For example, to see that free packages installed, you can use --list free:

% vrms-rpm --ascii --explain --list free
...
 - emacs-common 
   GPLv3+ and GFDL and BSD 
 - emacs-filesystem 
   GPLv3+ and CC0-1.0 
 - emacs-nox                              
   GPLv3+ and CC0-1.0    
   ...


Guess what? Emacs is considered as free software!

Tuning the licences

It is possible to define which licences are considered good for you: you can list every licence in a text file and use it as the default dictionary when scanning thru installed software.

% echo BSD  > good_licences.txt
% echo MIT >> good_licences.txt

% vrms-rpm --ascii --explain --licence-list ./good_licences.txt
...


The output of the command will include all the packages that are considered non free, according to your freedom definition. For instance, with the above configuration, even packages with GPL (in any form) will be considered as poor licensed packages.



Conclusions

Using vrms can help you understand how well your stack is open source, and which components could break your licensing.
Similarly, it can help you find out inconsistencies and incompatibilities across the system you are going to prepare, ship and deploy, or simply use!

The article (Virtual) Richard Stallman can inspect your computer! has been posted by Luca Ferrari on September 20, 2021