<!-- 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
    <footnote>These have been, however, rebranded and are provided
    with different names due to trademark issues</footnote>,
  <item>a complete set of office applications, including the
    OpenOffice.org 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.
Another &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>.  This package 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 pacakge, 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>A list of packages which are still needed to be packaged for Debian
exists, the <url id="http://www.debian.org/devel/wnpp/" name="Work-Needing
and Prospective Packages list">.

<p>For more details about adding the 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 them. 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 is it?

<p>In order to make sure that your system has been installed from the
real Debian base disks 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>The existence of the program <tt>dpkg</tt> shows that you should be able
to install Debian packages on your system, but as the program has been
ported to many other operating systems and architectures, this is no longer
a reliable method of determining is a system &debian;.

<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>.
To view versions of all installed packages, run:
  <example>dpkg -l</example>
For a more verbose description, use:
  <example>dpkg --status foo</example>

<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>Vast majority of the software we packaged supports entering
    non-US-ASCII characters used in other Latin languages (e.g. ISO-8859-1
    or ISO-8859-2), and a number of programs support multi-byte languages
    such as Japanese or Chinese.
  <item>Currently, support for German-, Spanish-, Finnish-, 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="pine">Where is pine?

<p>Due to its restrictive license, it's in the non-free area. Moreover,
since license does not even allow modified binaries to be distributed,
you have to compile it yourself from the source and the Debian patches.

<p>The source package name is <package/pine/. You can use the
<package/pine-tracker/ package to be notified about when you need to
upgrade.

<p>Note that there are many replacements for both pine and pico, such as
<package/mutt/ and <package/nano/, that are located in the main section.

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

<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 2008-09, <package/daemontools/, <package/djbdns/ and
<package/ucspi-tcp/ are shipped with Debian lenny (in main).  As of this
writing (2008-09), <package/qmail/ nor <package/ezmlm/ is shipped with Debian
main; see <url name="Bug #457318 (ITP qmail)"
id="http://bugs.debian.org/457318"> and <url name="Bug #469193 (ITP ezmlm-idx)"
id="http://bugs.debian.org/469193"> for the current status.

<p>As of 2008-09, <tt>publicfile</tt> was still not free software.

<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 is not
only 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.

