User Software

To facilitate navigating in this list, projects are categorized by their purpose, authorship, and current state. Each project entry lists the categories it pertains to. Clicking on a category name will bring a listing of all projects in that category.

Additionally, a list of related projects is provided where applicable. Each element in that list is a link to the corresponding project entry.

Clicking on a project's name will bring this project's entry as a separate page (a permalink).

Hovering your mouse over the version information of a project shows the list of changes introduced by that version.

Sort controls below allow you to order the list either lexicographically or by the most recent release date, in both directions.

Using the Search control, you can select projects by name. Shell-style globbing patterns (wildcards) are accepted.

(Return to the project listing)


Version: 1.0  —  2019-07-31
Initial release.

UNIX filter for marking each line of input with the timestamp (useful with Apache ForensicLog).

Related projects:


Version: 0.2  —  2024-06-30
* New options gcide-include-tags and gcide-exclude-tags

These options control which tags will be eligible for spell-checking.

A filter for spell-checking GCIDE dictionary files with GNU Aspell.

Related projects:


Version: 1.1  —  2024-01-07
* Automatic release type

Release type can be determined automatically, from version numbers of
the files to be uploaded.  To do so, version number semantics must
be declared in the configuration file using the "version_semantics"

  version_semantics gnu
     Assumes GNU version semantics: two-part version numbers
     (e.g. 1.0) or three-part numbers whose third value (patchlevel)
     is numerically less than 90 mean "stable" releases.  Three-part
     numbers with patchlevel greater than or equal to 90 mean "alpha"

  version_semantics kernel
     Even major numbers correspond to "stable" releases.  Odd major
     numbers correspond to "alpha" releases.

Grayupload uploads software tarballs to,,, or any other site that uses the automatic ftp upload protocol. Its main audience are GNU developers and developers hosting their software on

Related projects:


Version: 2.1  —  2017-03-11
* Convert textual frames to/from the currently used character set

The character set is deduced from the locale settings.  It can also be
set explicitly using the --charset option.

* New option --broken-8bit-encoding

Use this option for files where textual frames are stored as
ISO-8859-1, but are actually using another 8-bit encoding.  The
argument to this option is the name of the enchoding actually used.

In query mode, this option helps display such frames properly.

Use it with the --fixup option to fix such frames in the file.

* New option --encoding

Specifies encoding to store textual frames in ID3 tags.

* New option --fixup

Modifies the ID3 v2 tag so that it can be understood by most devices.

* The --convert option can be used to remove unnecessary ID3 formats.

For example, if the file input.mp3 contains both version 1 and 2 tags,
the following will remove version 1 tags:

  idest --convert=2 input.mp3

* Fix processing of unknown frames.

* Fix operation of setpic and pic modules with Guile 2.x.

* Improve documentation

Idest is an ID3 Edit and Scripting Tool, a command line utility for manipulating ID3 tags. The utility allows to create new tags, to view, modify or delete the existing ones. It also provides a flexible scripting capability.


Version: 1.0  —  2024-06-07
Initial release.

Ion runs the supplied program with its three standard streams connected to a tty, which means that the program’s stdin, stdout, and stderr become line-buffered.

Related projects:


Version: 1.0  —  2024-03-08
Initial version.

Recursively removes contents of a given directory. Designed for fast removal of a very large number of files. A range of allowable load average (LA) can be given, in which case the program will pause when LA reaches the maximum allowed value and resume operation when it falls below the given minimum.


Version: 1.4  —  2021-11-22
* tallyman: if passed empty service ID, don't attempt to contact the collector

Monitors state of running docker containers via SNMP. The package provides two utilities:

  • tallyman

    A health state collector to be run inside the container.

  • stevedore

    A container state collector and SNMP agent daemon.

Each container is supposed to run the tallyman command as part of its HEALTHCHECK configuration. This tool takes as its argument the command line that does the actual checking, collects its return and sends it over to the stevedore daemon that acts as a collector and simultaneously as a SNMP subagent, delivering the collected information to the snmpd daemon.

Related projects:


Version: 1.04  —  2021-08-09
	- Fix operation without -d option

Notifies the Translation Project about new POT files


(Not released)

Emacs major mode for editing VCL files.


Version: 4.1  —  2023-02-23
* Diagnostic directives: $$warning and $$error

The $$warning directive emits warning message.  It does not alter exit
status in any way.

The $$error directive reports a fatal error and sets exit status to
65 (or any other, if supplied as argument).

After both directives, processing is resumed at the next line.

* $$exit

New directive $$exit causes immediate termination of the program.
Decimal exit code may be supplied as argument.

* New directive: $$eval

The text between $$eval and $$end is expanded and the resulting
expansion is scanned again, producing the actual output.  This makes
it possible to create variable names on the fly and obtain their values.
Useful in loops, e.g.:

  $$loop I 0 1 2 3 4 5 6 7
  $$  eval
  \$\$ ifset VAR_$I
  Expand \$VAR_$I;
  \$\$ endif
  $$ end

* Bugfixes

** Fix closing the $$range loop.

Xenv is a text preprocessor. It reads input from files (or the standard input, if none are supplied) and prints it on the standard output, replacing references to environment variables with their actual values. Variables are referenced using POSIX-compatible shell syntax: $NAME, ${NAME}, ${NAME:-word}, ${NAME+=word}, ${NAME:=word}, ${NAME:?word}. A special ternary construct is provided: ${NAME:|word1|word2}, which substitutes the expansion of word1 if NAME is set and the expansion of word2 otherwise. Preprocessor directives provide support for inclusion of external files, conditional text expansion (depending on the value of an environment variable or exit code of an external command), diversions, for and foreach loops etc.