A number of notable software packages were developed for, or are maintained by, the Free Software Foundation as part of the GNU Project.
General aspects of GNU packages
editSummarising the situation in 2013, Richard Stallman identified nine aspects which generally apply to being a GNU package,[1] but he noted that exceptions and flexibility are possible when there are good reasons:[2]
- The package should say that it is a GNU package.
- It should be distributed via ftp.gnu.org, or another site offering access to everyone.
- The package's homepage should be on the GNU website.
- The developers must pay attention to making their software work well with other GNU packages.
- Documentation should be in Texinfo format, or in a format easily convertible to Texinfo.
- Should use GNU Guile for its extension language, but exceptions are explicitly possible in this regard.
- Should not recommend any non-free program, nor refer the user to any non-free documentation or non-free software.
- Use GNU terminology, including referring to GNU/Linux systems and free software in situations where other observers would write Linux and open source.
- The maintainer should be contactable, at least infrequently, to discuss problems in the software or fixing compatibility issues.
Base system
editThere is no official "base system" of the GNU operating system. GNU was designed to be a replacement for Unix operating systems of the 1980s and used the POSIX standards as a guide, but either definition would give a much larger "base system". The following list is instead a small set of GNU packages which seem closer to being "core" packages than being in any of the further down sections. Inclusions (such as plotutils) and exclusions (such as the C standard library) are of course debatable.
Name | Description | Provides | Latest release[Note 1] | |
---|---|---|---|---|
Version | Date | |||
bash | GNU's UNIX compatible shell | bash | 5.2.37[3] | 2024-09-23 |
coreutils | base commands | 9.5[4] | 2024-03-28 | |
cpio | archiving program | cpio | 2.15[5] | 2024-01-14 |
diffutils | contains utilities to compare files | diff, cmp, diff3, sdiff | 3.10[6] | 2023-05-21 |
findutils | contains search utilities | find, locate, updatedb, xargs[7] | 4.10.0[8][9] | 2024-06-01 |
finger | user information | — | 1.37 | 1992-10-28 |
grep | search for strings in files | grep | 3.11[10] | 2023-05-13 |
groff | document processing system (groff) | groff | 1.23.0[11] | 2023-07-07 |
GRUB | GRand Unified Bootloader | grub | 2.12[12] | 2023-12-20 |
gzip | compression program (gzip) | gzip | 1.13[13] | 2023-08-19 |
hurd[Note 2] | microkernel-based set of servers that perform the same function as a UNIX kernel | — | 0.9[14] | 2016-12-18 |
inetutils | useful utils for networking | ftp, telnet, rsh, rlogin, tftp | 2.5[15] | 2023-12-29 |
linux-libre | kernel that is maintained from modified versions of Linux to remove any software that does not include its source code, has its source code obfuscated, or is released under proprietary licenses | — | 6.11.7-gnu[16] | 2024-11-09 |
plotutils | useful utils for plotting to different devices | graph, libplot, libplotter | 2.6 | 2009-09-27 |
readline | useful library for reading command lines | readline | 8.2[17] | 2022-09-26 |
screen | a terminal multiplexer | screen | 5.0.0[18] | 2024-08-28 |
sysutils[Note 3] | system utilities to manage users, groups, passwords, shells | add-shell, chage, chfn, chgroup, chgrpmem, chpasswd, chsh, chuser, cppw, expiry, gpasswd, grpck, gshadow, hwclock, isosize, last, lastlog, login, lsage, lsgroup, lsuser, mkgroup, mkuser, nologin, passwd, pwck, remove-shell, rmgroup, rmuser, setpwnam, vipw, wall, write | 0.1.6[19] | 2009 |
tar | archiver able to create and handle file archives in various formats | tar | 1.35[20] | 2023-07-18 |
texinfo | documentation system for producing online and printed manuals | — | 7.1.1[21] | 2024-09-07 |
time | program to determine the duration of execution of a particular command | time | 1.9[22] | 2018-03-12 |
Notes
edit- ^ Stable versions. Note that some distros (e.g., Gentoo) use some development versions in case the stable versions are a bit old.
- ^ Note that because GNU Hurd is under active development, there is no stable version. The Hurd is distributed through version control systems.
- ^ No stable version yet. Current version is alpha and is not suitable for use in production systems.
Software development
editThe software listed below is generally useful to software developers and other computer programmers.
GNU toolchain
edit- GNU Binutils – contains the GNU assembler (as) and the GNU linker (ld)
- GNU Bison – parser generator intended to replace yacc
- GNU build system (autotools) – contains Autoconf, Automake, Autoheader, and Libtool
- GNU Compiler Collection – optimizing compiler for many programming languages, including C, C++, Fortran, Ada, and Java
- GNU Debugger (gdb) – an advanced debugger
- GNU m4 – macro processor
- GNU make – Make program for GNU
Other libraries and frameworks
editThe following libraries and software frameworks are often used in combination with the basic toolchain tools above to build software. (For libraries specifically designed to implement GUI desktops, see Graphical desktop.)
- BFD – object file library
- DotGNU – replacement for Microsoft .NET
- GNU C Library (glibc) – POSIX-compliant C library
- GNU Classpath – libraries for Java
- GNU FriBidi – a library that implements Unicode's Bidirectional Algorithm
- GNU ease.js – A Classical Object-Oriented framework for JavaScript
- GNU gettext – internationalization library
- Gnulib – portability library designed for use with the GNU build system
- GNU libmicrohttpd – embeddable HTTP server
- GNU lightning – just-in-time compilation for generating machine language
- GNU oSIP – Session Initiation Protocol library to implement VoIP applications
- GNU Portable Threads (pth) – software threads for POSIX-compatible operating systems
Other compilers and interpreters
editThe following packages provide compilers and interpreters for programming languages beyond those included in the GNU Compiler Collection.
- CLISP – ANSI Common Lisp implementation (compiler, debugger, and interpreter)
- Gawk – GNU awk implementation
- GnuCOBOL – COBOL compiler
- GNU Common Lisp – implementation of Common Lisp
- GNU Guile - embeddable implementation for the Scheme programming language
- GNU MDK – a development kit for programming in MIX
- GNU Pascal – Pascal compiler
- GNU Smalltalk – ANSI Smalltalk-98 implementation (interpreter and class library)
- MIT/GNU Scheme – interpreter, compiler and library for the Scheme programming language developed at MIT
- SmartEiffel – GNU Eiffel compiler
- Gforth — GNU Forth compiler
Other developer tools
edit- Data Display Debugger – debugger front-end for several debuggers (ddd)
- GNU arch – distributed revision control system (deprecated in favor of GNU Bazaar)
- GNU AutoGen – active tier-style tool for automated code generation
- GNU Bazaar – distributed revision control system
- GNU cflow – generates C flow graphs
- GNU cppi – indents C preprocessor directives in files to reflect their nesting
- GNU Fontutils – font management utilities
- GNU gperf – perfect hash function generator
- GNU indent – program to indent C and C++ source code
- GNU complexity – measures the complexity of C source code[23]
- GNUnited Nations - program for the translation of html files.[24]
User applications
editThe software listed below is generally useful to users not specifically engaged in software development.
Graphical desktop
editThe following packages provide GUI desktop environments, window managers, and associated graphics libraries.
- GNUstep – implementation of the Cocoa/OpenStep libraries and development tools for graphical applications
- Window Maker – window manager for the GNUstep environment
General system administration
edit- GNU Accounting Utils – set of utilities providing statistics on users and processes (last, ac, accton, lastcomm, sa, dump-utmp, dump-acct)
- GNU ddrescue – data recovery tool
- GNU Emacs – implementation of Emacs editor
- GNU fcrypt – on-the-fly encryption
- GNU Guix – package manager
- GNU libextractor – metadata extraction library and tool
- GNU Midnight Commander[25] – text-based Orthodox file manager & FTP client
- Mtools − collection of tools to edit MS-DOS floppy disks
- GNU nano – text editor
- GNU parallel – shell tool for executing jobs in parallel
- GNU Parted – hard drive partitioning program
- GNU Privacy Guard – PGP encryption replacement
- GNU Privacy Assistant, a graphical frontend to GNU Privacy Guard
- GNU Stow – managing the installation of software packages
- pexec – shell tool for executing jobs in parallel
Database
edit- GnowSys – kernel for semantic computing (a distributed agent oriented knowledge base.)
- GNU dbm (GDBM)
- GNU Ferret – Free Entity Relationship and Reverse Engineering Tool, an SQL database designer
Scientific software
edit- GNU Archimedes – TCAD software for semiconductor device simulations
- GNU Astronomy Utilities (Gnuastro) – Programs and libraries for astronomical data manipulation and analysis
- GNU Circuit Analysis Package (Gnucap) – GNU Circuit Analysis Package
- GNU datamash – programming language and command line utility for statistical computing
- GNU Electric – EDA software used to draw schematics and to do integrated circuit layout
- GNU MCSim – simulation and statistical inference tool for algebraic or differential equation systems
- GNU Multi-Precision Library (GMP) – arbitrary precision numerical calculation programming library
- GNU Octave – program for numerical computations, similar to MATLAB
- GNU Scientific Library (GSL) – Numeric analysis library.
- GNU Units – unit conversion
- R – programming language and software environment for statistical computing and graphics
- PSPP – statistical program, similar to SPSS
- XaoS – fractal zoomer
Internet
edit- Dld — performs dynamic link editing
- Jami (formerly GNU Ring) – a free softphone and videocall software, a drop-in replacement for Skype
- GNU Alexandria – uses GNU Bayonne to provide access to electronic content and services for the blind over the public telephone network
- GNU Anubis – outgoing mail processor that sits between the Mail User Agent and the Mail Transport Agent
- GNU FM – federated[clarification needed] music community platform, most commonly associated with Libre.fm
- GNU Mailman – electronic mailing list management
- GNU Mailutils – utilities for electronic mail handling (includes ao. implementations of mail, movemail & mh)[26]
- GNU MediaGoblin – decentralized media sharing
- GNU Artanis – Web Application Framework
- GNU Social – distributed social network that is the continuation of the StatusNet codebase
- Gnu Sovix – PHP-based website revision system
- GNU wget – advanced file retrieval from networks and the Internet
- GNUnet – decentralized, peer-to-peer communication network designed to be resistant to censorship
- Gnuzilla – version of the Mozilla Application Suite containing free software only (includes GNU IceCat web-browser)
- lsh – implementation of the Secure Shell (SSH) protocol version 2
- GNU LibreJS – a browser add-on that detects and blocks non-free and non-trivial JavaScript[27]
- GNU Taler – an anonymous electronic payment system[28][29]
- GNU Pipo BBS, a BBS under the GNU General Public License[30]
Office
edit- GNU Aspell – spell-checker designed to eventually replace Ispell
- GNU gcal – calculating and printing calendars
- GNU Miscfiles – several data files including standard airport, country, and language codes
- GNU Typist – multi-lingual typing tutor[31]
- Gnumeric – spreadsheet program (Microsoft Excel compatible)
- Ocrad – optical character recognition
Multimedia
edit- 3DLDF – graphics package for producing three-dimensional technical drawings (especially for inclusion in TeX documents)
- Dia – vector graphics program for creating diagrams
- GIMP – GNU Image Manipulation Program, a bitmap image editor (similar to Photoshop)
- Gnash – player and browser plugin for the Adobe Flash file format
- GNU LibreDWG – library for reading and writing .dwg files (used in CAD applications)
- GNU LilyPond – music typesetting application
- Gnu Maverik – Virtual Reality microkernel
- Gnu Panorama – 3D framework, ray tracing
Games
edit- GNU Backgammon – backgammon game
- GNUbik – implementation of the Rubik's Cube puzzle
- GNU Chess – chess engine for use with glChess, Xboard or similar
- GNU Go – implementation of the board game Go
- GNU Jump – based on Xjump; also known as SDL Jump
- GNU Kart – racing game
- GNU Robots – game for computer programmers
- GNU FreeDink - implementation of Dink Smallwood adventure/role-playing game
- Liquid War – war game
Business applications
edit- GNU Health – free health and hospital information system
- GNUmed – medical practice management software
- GnuCash – financial accounting application
- GNU remotecontrol[32] – a web application for managing building automation devices
- GNU Foliot – time keeping application for small organizations[33]
- GNU.FREE, a free voting system, suspended in 2002
- GNU Taler - planned decentralized online payment system designed to be taxable and accessible to mainstream currencies.[34]
- GNUe (GNU Enterprise), an enterprise planning software.
Fonts
edit- GNU FreeFont – a family of scalable outline fonts[35]
- GNU Unifont
See also
editReferences
edit- ^ Stallman, Richard (April 3, 2013). "Re: On the subject of Git, Bazaar, and the future of Emacs development". emacs-devel (Mailing list). Retrieved 25 August 2014.
- ^ Stallman, Richard (April 3, 2013). "Re: On the subject of Git, Bazaar, and the future of Emacs development". emacs-devel (Mailing list). Retrieved 25 August 2014.
- ^ https://ftp.gnu.org/gnu/bash/.
{{cite web}}
: Missing or empty|title=
(help) - ^ Pádraig Brady (28 March 2024). "coreutils-9.5 released [stable]". Retrieved 28 March 2024.
- ^ Sergey Poznyakoff (14 January 2024). "cpio-2.15 released". Retrieved 14 January 2024.
- ^ Jim Meyering (21 May 2023). "diffutils-3.10 released". Retrieved 22 May 2023.
- ^ "Findutils". www.gnu.org. Retrieved 2019-04-15.
- ^ Bernhard Voelker (1 June 2024). "GNU findutils 4.10.0 released". Retrieved 2 June 2024.
- ^ Bernhard Voelker (2 July 2024). "GNU findutils 4.10.0 released". Retrieved 3 July 2024.
- ^ Jim Meyering (13 May 2023). "grep-3.11 released". Retrieved 13 May 2023.
- ^ Bertrand Garrigues (7 July 2023). "Groff version 1.23.0". Retrieved 2 August 2023.
- ^ Daniel Kiper (20 December 2023). "GRUB 2.12 released". Retrieved 20 December 2023.
- ^ Jim Meyering (19 August 2023). "gzip-1.13 released [stable]". Retrieved 20 August 2023.
- ^ "GNU Hurd 0.9, GNU Mach 1.8, GNU MIG 1.8 released". Retrieved 11 May 2018.
- ^ Simon Josefsson (29 December 2023). "inetutils-2.5 released". Retrieved 22 January 2024.
- ^ "6.11.7-gnu". 9 November 2024. Retrieved 14 November 2024.
- ^ Chet Ramey (26 September 2022). "Readline-8.2 Release available". Retrieved 26 September 2022.
- ^ Alexander Naumov (29 August 2024). "GNU Screen v.5.0.0 is released". Retrieved 29 August 2024.
- ^ subversion repository NEWS file of sysutils retrieved 2013-07-23
- ^ Sergey Poznyakoff (18 July 2023). "tar-1.35 released [stable]". Retrieved 26 July 2023.
- ^ Gavin Smith (7 September 2024). "Texinfo 7.1.1 released". Retrieved 7 September 2024.
- ^ Assaf Gordon (12 March 2018). "GNU Time 1.9 released". Retrieved 27 September 2019.
- ^ "Release of version 1.5 of complexity". 29 February 2016. Retrieved 2 March 2016.
- ^ "GNUnited Nations". GNU.org. Free Software Foundation, Inc. Retrieved 19 December 2018.
- ^ "Midnight Commander".
- ^ "GNU Mailutils". Retrieved 7 January 2024.
- ^ "GNU LibreJS". The Free Software Foundation. Retrieved December 8, 2014.
- ^ "GNU Software". GNU.org. Retrieved September 24, 2015.
- ^ "GNU Taler - Taxable Anonymous Libre Electronic Reserve". Retrieved September 24, 2015.
- ^ Greve, Georg C. F. (2001). "Brave GNU World - Issue #26". gnu.org. Retrieved 2022-08-14.
The ancestry-line of the GNU Pipo BBS reaches over YAWK ("Yet Another Wersion of Citadel") back to Citadel, although it is completely independent code-wise. In fact it was a disagreement with Kenneth Haglund, author of YAWK, because of copyright-problems that triggered the development of the GNU Pipo BBS. The original development-team were Grégory Vandenbrouck and Sébastien Aperghis-Tramoni who worked on the GNU Pipo BBS with help from volunteers like Sébastien Bonnefoy.
- ^ Marston, Tim (2013-06-07). "GNU Typist 2.9.3 released" (Mailing list). info-gnu. Retrieved 2013-06-09.
- ^ "GNU remotecontrol". directory.fsf.org. FSF. 30 September 2013.
- ^ "Foliot is now part of GNU and becomes GNU Foliot". Savannah. 27 February 2016. Retrieved 2 March 2016.
- ^ "GNU Taler 0.0.0 Released: GNU Tries to Get into Electronic Payments".
- ^ "GNU FreeFont". GNU.org.