<!-- retain these comments for translator revision tracking -->
<!-- Original version: $Revision: 1.34 $ -->
<chapt id="software">Software available in the Debian system

<sect id="apps">What types of applications and development software are
  available for &debian;?

<p>Like most Linux distributions, &debian; provides:
<list>
  <item>the major GNU applications for software development, file
    manipulation, and text processing, including gcc, g++, make, texinfo,
    Emacs, the Bash shell and numerous upgraded Unix utilities,
  <item>Perl, Python, Tcl/Tk and various related programs, modules and
    libraries for each of them,
  <item>TeX (LaTeX) and Lyx, dvips, Ghostscript,
  <item>the Xorg windowing system, which provides a networked graphical user
    interface for Linux, and countless X applications including the GNOME,
    KDE and Xfce desktop environments,
  <item>a full suite of networking applications, including servers for
    Internet protocols such as HTTP (WWW), FTP, NNTP (news), SMTP and POP
    (mail) and  DNS (name servers); relational databases like PostgreSQL, MySQL;
    also provided are web browsers including the various Mozilla products,
  <item>a complete set of office applications, including the
    LibreOffice productivity suite, Gnumeric and other spreadsheets,
    WYSIWYG editors, calendars.
</list>

<p>More than &main-pkgs; packages, ranging from news servers and readers
to sound support, FAX programs, database and spreadsheet programs, image
processing programs, communications, net, and mail utilities, Web servers,
and even ham-radio programs are included in the distribution.
Other &contrib-nonfree-pkgs; software suites are available as Debian
packages, but are not formally part of Debian due to license restrictions.

<sect id="softwareauthors">Who wrote all that software?

<p>For each package the <em>authors</em> of the program(s) are credited in
the file <tt>/usr/share/doc/PACKAGE/copyright</tt>, where PACKAGE is to be
substituted with the package's name.

<p><em>Maintainers</em> who package this software for the &debian; system are
listed in the Debian control file (see <ref id="controlfile">) that comes with
each package.  The Debian changelog, in
<tt>/usr/share/doc/PACKAGE/changelog.Debian.gz</tt>, mentions the people who've
worked on the Debian packaging too.

<sect id="pkglist">How can I get a current list of programs that have been
  packaged for Debian?

<p>A complete list is available from any of the <url name="Debian
mirrors" id="http://www.debian.org/distrib/ftplist">, in the file
<tt>indices/Maintainers</tt>.  That file includes the package names
and the names and e-mails of their respective maintainers.

<p>The <url name="WWW interface to the Debian packages"
id="http://packages.debian.org/"> conveniently summarizes the packages
in each of about thirty "sections" of the Debian archive.

<sect id="buildenv">How can I install a developer's environment to build packages?

<p>If you want to build packages in your Debian system you will need
to have a basic development environment, including a C/C++ compiler
and some other essential packages. In order to install this environment you
just need to install the <package>build-essential</package> package.  This is a
meta-package or place-holder package which depends on the standard
development tools one needs to build a Debian package.

<p>Some software can, however, need additional software to be rebuilt,
including library headers or additional tools such as <prgn/autoconf/
or <prgn/gettext/. Debian provides many of the tools needed to
build other software as Debian packages.

<p>Finding which software is precisely required can be tricky, however, unless
you are planning on rebuilding Debian packages. This last task is rather easy
to do, as official packages have to include a list of the additional software
(besides the packages in <package>build-essential</package>) needed to build
the package, this is known as <tt>Build-Dependencies</tt>. To install all the
packages needed to build a given source package and then build said source
package you can just run:

<example>
# apt-get build-dep <var>foo</var>
# apt-get source --build <var>foo</var>
</example>

<p>Notice that if you want to build the Linux kernels distributed by Debian
you will want to install also the <package>kernel-package</package> package.
For more information see <ref id="customkernel">.

<sect id="missing">What is missing from &debian;?

<p>There is a list of packages which still need to be packaged for Debian, the <url id="http://www.debian.org/devel/wnpp/" name="Work-Needing
and Prospective Packages list">.

<p>For more details about adding missing things, see <ref id="contrib">.

<sect id="no-devs">Why do I get "ld: cannot find -lfoo" messages when
  compiling programs? Why aren't there any libfoo.so files in Debian library
  packages?

<p>Debian Policy requires that such symbolic links (to libfoo.so.x.y.z or
similar) are placed in separate, development packages. Those packages are
usually named libfoo-dev or libfooX-dev (presuming the library package is
named libfooX, and X is a whole number).

<sect id="java">(How) Does Debian support Java?

<p>Several <em>free</em> implementations of Java technology are available as
Debian packages, providing both Java Development Kits as well as Runtime
Environments. You can write, debug and run Java programs using Debian.

<p>Running a Java applet requires a web browser with the capability to
recognize and execute it. Several web browsers available in Debian, such
as Mozilla or Konqueror, support Java plug-ins that enable running Java
applets within them.

<p>Please refer to the <url name="Debian Java FAQ"
id="http://www.debian.org/doc/manuals/debian-java-faq/"> for more
information.

<sect id="isitdebian">How can I check that I am using a Debian system, and
  what version it is?

<p>In order to make sure that your system has been installed from the
real Debian base disks,
use the <example>lsb_release -a</example> command. It will display the name of the
distribution (in Distributor ID field) and the version of the system
(in Release and Codename fields). The following is an example run 
in a Debian system:

<example>
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 7.4 (wheezy)
Release:    7.4
Codename:   wheezy
</example>

<p>You can also check for the existence of
<tt>/etc/debian_version</tt> file, which contains a single one-line entry
giving the version number of the release, as defined by the package
<tt>base-files</tt>.

<p>Users should be aware, however, that the Debian system consists of many
parts, each of which can be updated (almost) independently. Each Debian
"release" contains well defined and unchanging contents.  Updates are
separately available.  For a one-line description of the installation status
of package <tt>foo</tt>, use the command <tt>dpkg --list foo</tt>.
For a more verbose description, use:
  <example>dpkg --status foo</example>
To view versions of all installed packages, run:
  <example>dpkg -l</example>

<p>Note that the existence of the program <tt>dpkg</tt> shows that you should be able
to install Debian packages on your system. However, since the program has been
ported to many other operating systems and architectures, this is no longer
a reliable method of determining if a system is &debian;.

<sect id="nonenglish">How does Debian support non-English languages?

<p><list>
  <item>&debian; is distributed with keymaps for nearly two dozen
    keyboards, and with utilities (in the <tt>kbd</tt> package) to install,
    view, and modify the tables.
    <p>The installation prompts the user to specify the keyboard he will use.
  <item>Nearly all of the software in Debian supports UTF-8 as
    character set. Legacy character sets, such as ISO-8859-1
    or ISO-8859-2, should be considered obsolete.
  <item>Currently, support for German-, Spanish-, French-,
    Hungarian-, Italian-, Japanese-, Korean-, Dutch-, Polish-, 
    Portuguese-, Russian-, Turkish-, and Chinese-language
    manual pages is provided through the <tt>manpages-LANG</tt> packages
    (where LANG is the two-letter ISO country code). To access an NLS manual
    page, the user must set the shell LC_MESSAGES variable to the appropriate
    string.
    <p>For example, in the case of the Italian-language manual pages,
    LC_MESSAGES needs to be set to 'italian'.  The <prgn/man/ program will
    then search for Italian manual pages under <tt>/usr/share/man/it/</tt>.
</list>

<sect id="qmail">Where is ezmlm/djbdns/qmail?

<p>Dan J. Bernstein used to distribute <url id="http://cr.yp.to/software.html"
name="all software he has written"> with a restrictive license which does not
allow modified binaries to be distributed.  In november 2007 however, Bernstein
said "[...] i have decided to put all of my future and [...] past software into
the public domain".  See <url id="http://cr.yp.to/distributors.html" name="FAQ
from distributors"> for his distribution terms.

<p>As of this writing (2016-03), <package/ezmlm-idx/ is available in
experimental only (<package/mlmmj/ is similar, and shipped with Debian jessie);
<package/djbdns/ is available in sid (unstable) only, see <url name="Bug
#516394" id="https://bugs.debian.org/516394"> and <url name="Bug #796118"
id="https://bugs.debian.org/796118"> for details and see <package/dbndns/ for a
similar alternative; the <tt>publicfile</tt> software is still not free
software, a <package/publicfile-installer/ package is available from Debian's
contrib section.

<p>Other software of Dan J. Bernstein (<package/qmail/, <package/daemontools/,
<package/ucspi-tcp/) is shipped with Debian.



<sect id="flash">Where is a player for Flash (SWF)?

<p>Debian ships both <package/gnash/ and <package/swfdec/: two free
SWF movie players.

<sect id="googleearth">Where is Google Earth?

<p>Google Earth is available for GNU/Linux from Google's web site, but not
only it is not Free Software, but is completely undistributable by a third party.
However, <package/googleearth-package/ (in the contrib-section) might be
helpful in using this software.

<sect id="voip">Where is VoIP software?

<p>Two main open protocols are used for Voice Over IP: SIP and H.323.  Both are
implemented by a wide variety of software in Debian main.  <package/ekiga/ is
one of the popular clients.

<sect id="nonfreewireless">I have a wireless network card which doesn't work
with Linux.  What should I do?

<p>Buy one which does :)

<p>Alternatively, use <package/ndiswrapper/ to use a driver for Windows (if you
have one) on your Linux system.  See the <url name="Debian Wiki ndiswrapper
page" id="http://wiki.debian.org/NdisWrapper"> for more information.

