Official GNU Software

Software that forms part of the GNU project.

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)

anubis

Version: 4.2  —  2014-05-23
** New operation mode: proxy

** Command line option precedence

Command line options take precedence over configuration file
statements.

** elif statement

A familiar `elif' statement is supported, e.g.:

if condition-1
  action-list-1
elif condition-2
  action-list-2
elif condition-3
  action-list-3
else
  action-list-4
fi
  
** New CONTROL statement esmtp-auth-delayed.

When set to `yes', this statement instructs Anubis to postpone ESMTP
authentication until MAIL command is issued by the client.  This
allows to change authentication credentials in the SMTP section (see
below).

** SMTP section

The new section "SMTP" is invoked each time an SMTP command
is received. This section may alter the command's argument, using the
"modify command", e.g.:

BEGIN SMTP
regex :extended
modify command [ehlo] "foo.bar.net"
if command ["mail from:"] "<(.*)>(.*)"
  modify command ["mail from:"] "<root@bar.net>\2"
fi
END

It is also allowed to use esmtp-* keywords in this section, provided
that `esmtp-auth-delayed yes' is set in the CONTROL section. Changes
in the ESMTP authentication credentials take effect if they occur
either before receiving MAIL command from the client, or when handling
this command, e.g.:

BEGIN SMTP
if command ["mail from:"] "<smith(\+.*)?@@example.net>"
  esmtp-auth-id smith
  esmtp-password guessme
else
  esmtp-auth no
fi
END

** New keywords: log-facility and log-tag

** Guile output

By default Scheme's standard error and output ports are redirected to
syslog, using priorities `err' and `warning' correspondingly.

** MySQL options file

When using MySQL for Anubis user database, the database parameters and
access credentials are read from the file /etc/my.cnf, section
"anubis".  Additionally, two URL parameters are provided:
"options-file", which sets the name of the options file, and
"options-group", which sets the name of the group.

	  
Category:
Description:

An SMTP message submission daemon. It represents an intermediate layer between mail user agent (MUA) and mail transport agent (MTA), receiving messages from the MUA, applying to them a set of predefined changes and finally inserting modified messages into an MTA routing network. The set of changes applied to a message is configurable on a system-wide and per-user basis.

Related projects:

cflow

Version: 1.7  —  2021-12-30
* Multiple start functions are allowed

The '--main' option can be given multiple times.  A separate graph
will be drawn for each function given as its argument.

* New option --target=FUNCTION

If this option is given, the produced graph will contain only paths
leading from start function (or functions) to the given FUNCTION.

Multiple '--target' options are allowed.

* New output format: dot

The '-f dot' (or '--format=dot') option instructs cflow to output
graph as a description in DOT language, suitable as input to graphviz
programs.

* cflow-mode: new commands for navigating in the graph:

  c   go to the calling function
  n   go to the next function at the same nesting level
  p   go to the previous function at the same nesting level

* Bugfixes:

** CVE-2019-16165
** CVE-2019-16166
** Fix parsing of K&R style function declarations
** Improve parsing of typecasts
** Fix recursive call detection

	  
Category:
Description:

This tool analyzes a collection of C source files and prints a graph charting control flow within the program.

Related projects:

cpio

Version: 2.13  —  2019-11-06
* Fix CVE-2015-1197
* Fix CVE-2016-2037
* Fix CVE-2019-14866
	  
Category:
Description:

GNU cpio copies files into or out of a cpio or tar archive. The archive can be another file on the disk, a magnetic tape, or a pipe. GNU cpio supports a wide variety of archive formats.

Related projects:

dico

Version: 2.11  —  2021-04-27
* Bugfixes in the gcide module

* Fix searches in the gcider utility

* Support for Python 2 has been withdrawn

	  
Category:
Description:

GNU Dico provides a flexible modular implementation of dictionary server, a number of modules for it, and a console based dictionary lookup utility. A Web interface is also available.

Related projects:

direvent

Version: 5.3  —  2021-12-30
* Introduce compound events

The "change" event is implemented on GNU/Linux and FreeBSD.  This
event is delivered when a file was modified and closed.

* New configuration statement for manipulating the environment.

The "environ" statement is now a compound statement. It can contain
five kinds of substatements: "clear" to clear the environment, "keep"
to retain certain variables while clearing the environment, "set" to
set a variable, "unset" to unset a variable or variables, and "eval"
to evaluate a variable reference for side effects.

Both "keep" and "unset" can take globbing pattern as their argument,
in which case they affect all variables matching that pattern. 

The value part in the "set" statement is subject to variable
expansion.

The "environ" block can appear in global context as well.  In this
case it applies to all watchers.

The support for the old one-line "environ" syntax is retained for
backward compatibility.

* Variable expansion in arguments to some configuration statements.

Both macro and environment variables are expanded in arguments to all
substatements of the new "environ" block statement and in the argument
to the "command" statement.  In the latter case, expansion of the
environment variables is controlled by the "shell" option.  If the
option is set, the variable will be expanded by the shell.  Otherwise,
they are expanded by direvent prior to invoking the command.

* Rewrite the recursive watching support

In particular, this fixes the bug where recursive watchers silently
assumed that the "create" generic event was configured for the
watcher.

* Change interface for bulk closing of file descriptors

To speed up launching of the user commands, system-dependent
interfaces for closing the file descriptors above the given one are
used, if available.
	  
Category:
Description:

GNU Direvent monitors a set of directories on the file system and reacts when their content changes. When a change is detected, the program invokes an external command configured for that kind of change.

Related projects:

gcide

(Not released)
Category:
Description:

GNU Collaborative International Dictionary of English, a free dictionary based on Webster’s Revised Unabridged Dictionary Version (published 1913) with additions from WordNet, proof-read and supplemented by volunteers from around the world.

Related projects:

gdbm

Version: 1.23  —  2022-02-04
* Bucket cache switched from balanced tree to hash table

Change suggested by Terence Kelly.

* Speed up flushing the changed buckets on disk

* New option codes for gdbm_setopt

** GDBM_GETDBFORMAT

Return the database format.

** GDBM_GETDIRDEPTH

Return the directory depth, i.e. the number of initial (most significant)
bits in hash value that are interpreted as index to the directory.

** GDBM_GETBUCKETSIZE

Return maximum number of keys per bucket.

** GDBM_GETCACHEAUTO

Return the status of the automatic cache adjustment.

** GDBM_SETCACHEAUTO

Enable or disable automatic cache adjustment.
	  
Category:
Description:

GNU dbm is a library of database functions that use extendible hashing and works similar to the standard UNIX dbm functions. These routines are provided to a programmer needing to create and manipulate a hashed database.

Related projects:

gnulib

(Not released)
Category:
Description:

Gnulib is a central location for common GNU code, which is shared among many GNU (and non-GNU) packages.

go-gdbm

(Not released)
Category:
Description:

Go API for GNU DBM.

Related projects:

inetutils

Version: 1.9.3  —  May 12, 2015
* ftp

An old inability to allow other names than the canonical name has
been corrected.  This means that a machine entry in the .netrc file
will now be used as expected.  Previously any alias name was replaced
by the corresponding canonical name, before reading the .netrc file.

The internal command `hash' accepts a suffixed letter to the size
argument, like `12k', instead of 12288.  Made a minor change to the
syntax of the command itself, allowing size changes independently
of activation of hash markings.  After a transfer the summary gives
the speed as `Mbytes/s', `kbytes/s', or `bytes/s'.

The .netrc file can be overridden by the environment variable NETRC.
Of even higher precedence is the new option `-N/--netrc'.  The access
to the resulting file, whatever method, is now denied unless it is a
regular file.

* ifconfig

Better command line parsing on BSD and Solaris systems.  Touch only
changeable flags on all systems.

* logger

The ability to use numerical facilities is restored to full range.

* ping, ping6

The ability to specify a pattern as payload is corrected.

* syslogd

A new switch `-T/--local-time' makes the service ignore a time
stamp passed on by the remote host, recording instead the local
time at the moment the message was received.  As a short form of
`--pidfile', the switch `-P' is new.

In common with other syslogd implementations, rsyslogd and sysklogd,
there has for a long time existed an attack vector based on large
facility numbers, made public in CVE-2014-3684.  This is now mended
in our code base.

* telnetd

The ability to autologin a client, without using authentication,
is now functional in the expected manner, i.e., the prompt for a
user name is suppressed in favour of an immediate password prompt.

In a setting where the client is using a UTF-8 encoding, it was
common to observe strange characters in most responses.  This was
caused by the server daemon, due to incomplete purging of internal
protocol data.  The issue should now be resolved.

* whois

Improved cooperation with servers like `whois.arin.net', `whois.eu',
and `whois.ripe.net'.
	  
Category:
Description:

Inetutils, or GNU Internet Utilities, are the basic internet utilities of the GNU Operating System.

mailutils

Version: 3.15  —  2022-04-17
* mbox format: don't count terminating empty line as part of the message

* Improve performance of the Sieve fileinto action

* Improve efficiency of operations on flat mailboxes in append mode

* Bugfixes in quoted-printable and fromrd filters

* Variois fixes in mbox and dotmail format libraries

* Fix compilation with flex version 2.6.1
	  
Category:
Description:

GNU Mailutils is a swiss army knife of electronic mail handling. It contains a rich set of mail-related utilities and daemons, including pop3d, imap4d, sieve and several domain-specific mail delivery agents.

Related projects:

micron

Version: 1.3  —  2021-10-29
* Appending cronjob output to a file

Output of a cronjob can be captured and appended to a disk file,
instead of sending it via email or logging it using syslog.  This is
controlled by the _MICRON_OUTFILE (global) and _JOB_OUTFILE (per-job)
built-in variables.

* New option -P FILE

Writes PID of the running process to FILE.  The file will be removed
when the program terminates.

* Option -v replaces -o

To set initial value of a built-in variable, use the "-v NAME=VALUE"
option.

* The -V option

To obtain the micrond version, use the -V option.

* Bugfixes

** Fix allocation of environment and built-in variables defined in crontabs.
	  
Category:
Description:

An enhanced implementation of UNIX cron daemon.

paxutils

(Not released)
Category:
Description:

Paxutils is intended to provide a set of archiver programs. It will include tar and cpio utilities and will provide POSIX pax program.

Related projects:

pies

Version: 1.8  —  2022-08-13
* New configuration keywords

** sigterm SIG

Available for use in "component" sections.  This statement defines
signal which pies should send to the running component instance in
order to terminate it.  Defaults to SIGTERM.

* Fix the component shutdown sequence

The shutdown sequence is determined taking into account dependencies
between components, so that all dependent components are stopped
before their prerequisite components.

* Fallback log file

Fallback log file is a place where pies writes out of band log messages,
i.e. messages about not being able to open syslog socket or send logs
to it.  Regular log messages are diverted to this file if syslog was
requested, but cannot be used because of a permanent error.

* Bugfixes

** Fix piesctl config reload

** Fix configuration preprocessing.

** Varios fixes in REST API server.
	  
Category:
Description:

GNU pies (pronounced p-yes) is a program invocation and execution supervisor. This utility allows to execute usual foreground-mode applications in detached mode, as if they were daemons. It combines the fucntionality of init and inetd programs. It can be used to control complex multi-component software.

Related projects:

radius

Version: 1.6  —  2008-12-06
* Configuration file raddb/config

The syslog statement takes an optional 4th argument specifying syslog
tag to use, e.g.:

    channel default {
	    syslog local1.info radiusd;
    };

* New attributes

** GNU-Server-Address

Holds IP address of the RADIUS server that recieved the
request. Notice, that the value of this attribute is "0.0.0.0" if
there are no `listen' statement in your `raddb/config'.
    
** GNU-Server-Port

Holds UDP port number of the RADIUS server that recieved the request.

* Automake function AM_GNU_RADIUS is provided, for checking if
GNU Radius is installed from configure.ac scripts.

* Guile support requires Guile version 1.8 or later.

* Bugfixes
** Pass NAS-IP-Address to mlc_stop_query	
	
	  
Category:
Description:

GNU Radius is an extensible and scalable authentication and accounting server.

rush

Version: 2.3  —  2022-07-16
* Fix invalid memory addressing in remopt command

* Fix building with flex >= 2.6.1 (EOF check)
	  
Category:
Description:

GNU Rush is a Restricted User Shell. It is intended for use with ssh, rsh and similar remote access programs. Using a sophisticated configuration file, Rush gives you complete control over the command lines users can execute, system resources they can use, etc. In particular, it allows to run remote programs in a chrooted environment.

Related projects:

tar

Version: 1.34  —  2021-02-13
* Fix extraction over pipe (savannah bug #60002)

* Fix memory leak in read_header (savannah bug #59897)

* Fix extraction when . and .. are unreadable

See https://lists.gnu.org/archive/html/bug-tar/2021-01/msg00012.html

* Gracefully handle duplicate symlinks when extracting

See https://lists.gnu.org/archive/html/bug-tar/2021-01/msg00026.html

* Re-initialize supplementary groups when switching to user privileges
	  
Category:
Description:

GNU tar is an archiver program. It is used to create and manipulate files that are actually collections of many other files; the program provides users with an organized and systematic method of controlling a large amount of data.

Related projects:

texinfo

Version: 6.8  —  3 July 2021
* Language
  . new command @displaymath for formatting of mathematical notation
  . @example takes an argument to specify the language
  . mark these commands as deprecated, not to be used:
    @centerchap, @definfoenclose, @refill, @inforef.
  . new paper size @bsixpaper

* texi2any
  . should be faster as Perl XS parser is enabled by default
  . SHOW_MENU customization variable replaced by FORMAT_MENU.
    FORMAT_MENU set to 'menu' is the same as SHOW_MENU set to 1, and
    FORMAT_MENU set to 'nomenu' is the same as SHOW_MENU set to 0.
  . only check menu structure if CHECK_NORMAL_MENU_STRUCTURE variable is set
  . changes to HTML output:
      . MathJax support for display of math.  new variables HTML_MATH,
        MATHJAX_SCRIPT and MATHJAX_SOURCE.
      . new variables JS_WEBLABELS and JS_WEBLABELS_FILE to support
        JavaScript License Web Labels
      . by default, use sectional tables of contents instead of menus
      . use section names in links by default (configure with
        xrefautomaticsectiontitle customization variable)
      . CONTENTS_OUTPUT_LOCATION sets location of table of contents
      . document sections wrapped in <div> elements
      . new variable USE_NODE_DIRECTIONS to use node or section structure
        for node directions
      . copiable anchor links for definitions with COPIABLE_ANCHORS variable
      . experimental JavaScript browsing interface enabled with INFO_JS_DIR
      . don't add an extra period before file extension given as an argument
        to @image if image file is not found

* info
  . support compressed dir files

* texi2dvi
  . stop on first error in input file

* texinfo.tex
  . put logical page numbers into PDF's ('page labels')
  . put chapter numbers in the PDF outline
  . new Finnish translation

* Distribution
  . autoconf 2.71, automake 1.16.3, gettext 0.21
	  
Category:
Description:

Texinfo is the official documentation format of the GNU project. It uses a single source file to produce output in a number of formats, both online and printed (dvi, html, info, pdf, xml, etc.).

Related projects: