A number of notable software packages were developed for, or are maintained by, the Free Software Foundation as part of the GNU Project. What it means to be a GNU package Summarising the situation in 2013, Richard Stallman identified nine aspects which generally apply to being a GNU package, but he noted that exceptions and flexibility are possible when there are good reasons: 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 There 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. Notes Software development The software listed below is generally useful to software developers and other computer programmers. GNU toolchain 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 The following libraries and software frameworks are often used in combination with the basic toolchain tools above to build software. (For libraries specifically