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.3  —  2024-01-05
** Fix compilation with GDBM 1.18.1

** Support for Guile version 2.2.0 and later

Support for prior versions has been withdrawn.

** anubisusr requires GnuTLS

** New configuration statement: use-pam

Used in CONTROL section, this boolean statement enables or disables
the use of the Pluggable Authentication Module interface for
accounting and session management.

** New configuration statement: identd-keyfile

Sets the name of the file with shared keys used for decryting replies
from the auth service.  It is used in traditional mode if anubis
receives an encrypted response from the client's identd server
(e.g. if they are running pidentd with encryption).

** Bugfixes
	  
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.15  —  2024-01-14
* Fix operation of --no-absolute-filenames --make-directories
* Restore access and modification times of symlinks in copy-in
  and copy-pass modes.
	  
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.17  —  2024-01-06
* Use of TLS in pop3d and imap4d

If not explicitly specified, the TLS mode to use (ondemand, connect,
etc.) is derived from the configured port.  E.g., for imap4d, port 143
implies ondemand mode, and port 993 implies connection mode.

The global tls-mode setting is used only when the mode cannot be
detemined otherwise, i.e. neither per-server tls-mode is given nor
the port gives any clues as to the TLS mode to use.

* Bugfixes

** movemail: fix handling of -P option.
** pop3d, imap4d: fix global timeout and transcript configuration statements
** pop3d, imap4d: global tls-mode is used only when the mode to use cannot
   be determined otherwise.
** pop3d, imap4d: if not set explicitly, derive tls mode from the port used.
** Improve file safety checking routine.
** Fix compilation with new gcc versions.
	  
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.4  —  2024-01-06
* Micron is a part of GNU project

* Take into account DST changes when computing job startup time

* Minor fix in crontab parser
	  
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.35  —  2023-07-18
* Fail when building GNU tar, if the platform supports 64-bit time_t
  but the build uses only 32-bit time_t.

* Leave the devmajor and devminor fields empty (rather than zero) for
  non-special files, as this is more compatible with traditional tar.

* Bug fixes

** Fix interaction of --update with --wildcards.

** When extracting archives into an empty directory, do not create
   hard links to files outside that directory.

** Handle partial reads from regular files.

** Warn "file changed as we read it" less often.
   Formerly, tar warned if the file's size or ctime changed.
   However, this generated a false positive if tar read a file
   while another process hard-linked to it, changing its ctime.
   Now, tar warns if the file's size, mtime, user ID, group ID,
   or mode changes.  Although neither heuristic is perfect,
   the new one should work better in practice.

** Fix --ignore-failed-read to ignore file-changed read errors
   as far as exit status is concerned.  You can now suppress file-changed
   issues entirely with --ignore-failed-read --warning=no-file-changed.

** Fix --remove-files to not remove a file that changed while we read it.

** Fix --atime-preserve=replace to not fail if there was no need to replace,
   either because we did not read the file, or the atime did not change.

** Fix race when creating a parent directory while another process is
   also doing so.

** Fix handling of prefix keywords not followed by "." in pax headers.

** Fix handling of out-of-range sparse entries in pax headers.

** Fix handling of --transform='s/s/@/2'.

** Fix treatment of options ending in / in files-from list.

** Fix crash on 'tar --checkpoint-action exec=\"'.

** Fix low-memory crash when reading incremental dumps.

** Fix --exclude-vcs-ignores memory allocation misuse.
	  
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: 7.1  —  18 October 2023
* Language
 . new generic definition commands, @defblock, @defline and @deftypeline,
   for definitions without automatic index entries
 . new @linemacro facility eases use of generic definition commands
 . new command @link creates plain links (supported output formats only)
 . @cartouche takes an argument to specify the cartouche title
 . you can use the new commands @nodedescription and @nodedescriptionblock
   to give text to be used in menu descriptions in Info and HTML output

* texi2any
 . @itemx at the beginning of a @table is now an error, not a warning
 . better validity checking of deeply nested commands
 . check that @set and @clear only appear at the start of a line
 . warn about missing menu entries even if CHECK_NORMAL_MENU_STRUCTURE is
   not set.  you can turn this off by setting CHECK_MISSING_MENU_ENTRY to 0.
 . no longer use --enable-encoding and --disable-encoding to determine
   whether to output encoded characters (instead of entities or commands)
   for HTML, XML, DocBook and LaTeX; instead, use the value of the
   OUTPUT_CHARACTERS customization variable.
 . stricter checks on input encoding, in particular more warnings and
   errors with malformed UTF-8
 . support any input file encoding if support exists in the operating
   system, not just a selected list of encodings
 . resolve an alias referring to another alias at definition time
 . internally, use "source marks" to keep all Texinfo source information that
   is not in the final tree (location of macros, values and included files
   expansion, @if* blocks, DEL comment, and @ protecting end of line on @def*
   lines)
 . HTML output:
    . format @subentry and index entries with @seealso or @seeentry in a more
      similar way to printed output
    . output @shortcontents before @contents by default
    . omit colons after index entries by default.  this can still be
      configured with INDEX_ENTRY_COLON.
    . add @example syntax highlighting as a texi2any extension
    . no more capitalization of @sc argument in HTML Cross-references
    . change @point expansion to U+22C6 in HTML Cross-references
    . if a @node is not associated with a sectioning command but is
      followed by a heading command not usually associated to nodes
      such as @heading and this command appears before other formatted
      content, the heading command is assumed to supply the node heading.
      you can customize this with USE_NEXT_HEADING_FOR_LONE_NODE.
 . Info output:
    . new variable ASCII_DASHES_AND_QUOTES, on by default,
      outputs ASCII characters for literal quote or hyphen characters
      in source, rather than UTF-8.  this makes it easier to search
      Info files.
    . new ASCII_GLYPH variable for using ASCII renditions for glyph
      commands (like @bullet)
    . ASCII_PUNCTUATION still includes the effect of these new variables.
    . new variables AUTO_MENU_DESCRIPTION_ALIGN_COLUMN and AUTO_MENU_MAX_WIDTH
      control the format of descriptions in generated menus
 . XML output:
    . place menu leading text and menu separators in elements instead
      of attributes

* texi2dvi
 . macro expansion with texi2any requires at least version 5.0 (only
   happens with --expand option or with very old texinfo.tex)

* texinfo.tex
 . in @code, ` and ' output by default with backtick and undirected
   single quote glyphs in the typewriter font.  you can still configure
   this using the @codequoteundirected/@codequotebacktick commands.
 . do not insert a space for @ def line continuation, matching the behavior
   of texi2any
 . align section titles in table of contents when more than 10 sections
 . microtype is off by default, for speed
 . page headings generation is no longer linked to the @titlepage command

* info
 . when going Up, position cursor on menu entry for current node
 . allow mouse scrolling support regardless of termcap entries.  this
   supports some more xterm configurations.
 . do not use "/index" as a possible file extension for Info files

* Distribution
  . autoconf 2.71, automake 1.16.5, 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: