<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../../general.ent">
  %general-entities;

  <!ENTITY NetworkManager-download-http
           "&gnome-download-http;/NetworkManager/1.0/NetworkManager-&NetworkManager-version;.tar.xz">
  <!ENTITY NetworkManager-download-ftp
           "&gnome-download-ftp;/NetworkManager/1.0/NetworkManager-&NetworkManager-version;.tar.xz">
  <!ENTITY NetworkManager-md5sum        "71cae8707a90fa92e28cafbc9262b548">
  <!ENTITY NetworkManager-size          "3.1 MB">
  <!ENTITY NetworkManager-buildsize     "221 MB (additional 1 MB for the tests)">
  <!ENTITY NetworkManager-time          "1.8 SBU (additional 0.1 SBU for the tests)">
]>

<sect1 id="NetworkManager" xreflabel="NetworkManager-&NetworkManager-version;">
  <?dbhtml filename="networkmanager.html"?>

  <sect1info>
    <othername>$LastChangedBy: bdubbs $</othername>
    <date>$Date: 2015-03-01 20:45:33 -0500 (Sun, 01 Mar 2015) $</date>
  </sect1info> 

  <title>NetworkManager-&NetworkManager-version;</title>

  <indexterm zone="NetworkManager">
    <primary sortas="a-NetworkManager">NetworkManager</primary>
  </indexterm>

  <sect2 role="package">
    <title>Introduction to NetworkManager</title>

    <para>
      <application>NetworkManager</application> is a set of co-operative
      tools that make networking simple and straightforward. Whether WiFi, wired,
      3G, or Bluetooth, NetworkManager allows you to quickly move from one network
      to another: Once a network has been configured and joined once, it can be
      detected and re-joined automatically the next time it's available.
    </para>

    &lfs77_checked;

    <bridgehead renderas="sect3">Package Information</bridgehead>
    <itemizedlist spacing="compact">
      <listitem>
        <para>
          Download (HTTP): <ulink url="&NetworkManager-download-http;"/>
        </para>
      </listitem>
      <listitem>
        <para>
          Download (FTP): <ulink url="&NetworkManager-download-ftp;"/>
        </para>
      </listitem>
      <listitem>
        <para>
          Download MD5 sum: &NetworkManager-md5sum;
        </para>
      </listitem>
      <listitem>
        <para>
          Download size: &NetworkManager-size;
        </para>
      </listitem>
      <listitem>
        <para>
          Estimated disk space required: &NetworkManager-buildsize;
        </para>
      </listitem>
      <listitem>
        <para>
          Estimated build time: &NetworkManager-time;
        </para>
      </listitem>
    </itemizedlist>

    <bridgehead renderas="sect3">NetworkManager Dependencies</bridgehead>

    <bridgehead renderas="sect4">Required</bridgehead>
    <para role="required">
      <xref linkend="dbus-glib"/>,
      <xref linkend="libndp"/>,
      <xref linkend="libnl"/>,
      <xref linkend="nss"/>,
      (or <xref linkend="gnutls"/>), and
      <xref linkend="udev-extras"/> (for GUdev)
    </para>

    <bridgehead renderas="sect4">Recommended</bridgehead>
    <para role="recommended">
      <xref linkend="consolekit"/>,
      <xref linkend="dhcpcd"/> or
      <xref linkend="dhcp"/> (client only),
      <xref linkend="gobject-introspection"/>,
      <xref linkend="iptables"/>,
      <xref linkend="libsoup"/>,
      <xref linkend="newt"/> (for <command>nmtui</command>),
      <xref linkend="polkit"/>,
      <xref linkend="upower"/>, and
      <xref linkend="vala"/>
    </para>

    <bridgehead renderas="sect4">Optional</bridgehead>
    <para role="optional">
      <xref linkend="bluez"/>,
      <xref linkend="gtk-doc"/>,
      <xref linkend="qt4"/>,
      <xref linkend="valgrind"/>,
      <xref linkend="wpa_supplicant"/> (built with D-Bus support),
      <ulink url="http://libteam.org/">libteam</ulink>, and
      <ulink url="http://www.freedesktop.org/software/ModemManager/">
      ModemManager</ulink>,
    </para>

    <para condition="html" role="usernotes">User Notes:
      <ulink url="&blfs-wiki;/NetworkManager"/>
    </para>
  </sect2>

  <sect2 role="installation">
    <title>Installation of NetworkManager</title>

    <para>
      If <xref linkend="qt4"/> and  <xref linkend="qt5"/> are installed, you
      need to choose <application>Qt4</application> with
      <command>source setqt4</command>, before starting. Install
      <application>NetworkManager</application> by running the following
      commands:
    </para>

<screen><userinput>./configure --prefix=/usr        \
            --sysconfdir=/etc    \
            --localstatedir=/var \
            --with-nmtui         \
            --disable-ppp        \
            --with-systemdsystemunitdir=no \
            --docdir=/usr/share/doc/network-manager-&NetworkManager-version; &amp;&amp;
make</userinput></screen>

    <para>
      An already active graphical session with bus address is necessary to run
      the tests. To test the results, issue: <command>make check</command>.
    </para>

    <para>
      Now, as the <systemitem class="username">root</systemitem> user:
    </para>

<screen role="root"><userinput>make install</userinput></screen>

  </sect2>

  <sect2 role="commands">
    <title>Command Explanations</title>

    <para>
      <parameter>--with-nmtui</parameter>: This parameter enables build of
      <command>nmtui</command>.
    </para>

    <para>
      <parameter>--with-systemdsystemunitdir=no</parameter>: This parameter is
      used for sysv init systems. If you use systemd, replace "no" by the
      proper directory.
    </para>

    <para>
      <parameter>--disable-ppp</parameter>: This parameter disables parameteral
      <application>PPP</application> support in
      <application>NetworkManager</application>.
    </para>

    <para>
      <option>--enable-gtk-doc</option>: Use this switch if you have installed
      <xref linkend="gtk-doc"/> and wish to build the API manuals.
    </para>

    <para>
      <option>--without-iptables</option>: Use this switch if you don't have 
      <application>Iptables</application> installed.
    </para>

  </sect2>

  <sect2 role="configuration">
    <title>Configuring NetworkManager</title>

    <sect3 id="NetworkManager-config">
      <title>Config Files</title>
      <para>
        <filename>/etc/NetworkManager/NetworkManager.conf</filename>
      </para>

      <indexterm zone="NetworkManager NetworkManager-config">
        <primary
        sortas="e-etc-NetworkManager-NetworkManager.conf">
        /etc/NetworkManager/NetworkManager.conf</primary>
      </indexterm>

    </sect3>

    <sect3><title>Configuration Information</title>

      <para>
        For <application>NetworkManager</application> to work, at least
        minimal configuration file must be present. Such file is not
        installed with <command>make install</command>. Issue following
        command as the
        <systemitem class="username">root</systemitem> user to create
        minimal <filename>NetworkManager.conf</filename> file:
      </para>

<screen role="root"><userinput>cat &gt;&gt; /etc/NetworkManager/NetworkManager.conf &lt;&lt; "EOF"
<literal>[main]
plugins=keyfile</literal>
EOF</userinput></screen>

      <para>
        You can add <option>dns=none</option> to suppress changes to
         <filename>/etc/resolv.conf</filename>. See
         <command>man 5 NetworkManager.conf</command>
         for any additional options.
      </para>

    </sect3>

    <sect3 id="NetworkManager-init">
      <title>Boot Script</title>

      <para>
        To automatically start the <command>NetworkManager</command> daemon when the
        system is rebooted, install the
        <filename>/etc/rc.d/init.d/networkmanager</filename> bootscript from the
        <xref linkend="bootscripts"/> package.
      </para>

      <indexterm zone="NetworkManager NetworkManager-init">
        <primary sortas="f-NetworkManager">NetworkManager</primary>
      </indexterm>

<screen role="root"><userinput>make install-networkmanager</userinput></screen>

    </sect3>

  </sect2>

  <sect2 role="content">
    <title>Contents</title>

    <segmentedlist>
      <segtitle>Installed Programs</segtitle>
      <segtitle>Installed Libraries</segtitle>
      <segtitle>Installed Directories</segtitle>

      <seglistitem>
        <seg>
          NetworkManager, nm-avahi-autoipd.action, nm-dhcp-helper,
          nm-dispatcher, nm-iface-helper, nm-online, nmcli, and, hardlinked to
          each other: nmtui, nmtui-connect, nmtui-edit and nmtui-hostname
        </seg>
        <seg>
          libnm.so, libnm-glib.so, libnm-glib-vpn.so, libnm-util.so, and
          modules under /usr/lib/NetworkManager
        </seg>
        <seg>
          /etc/NetworkManager,
          /usr/include/{libnm,libnm-glib,NetworkManager},
          /usr/lib/NetworkManager,
          /usr/share/doc/NetworkManager-&NetworkManager-version;,
          /usr/share/gtk-doc/html/{libnm,libnm-glib,libnm-util,NetworkManager},
          and
          /var/{lib,run}/NetworkManager
        </seg>
      </seglistitem>
    </segmentedlist>

    <variablelist>
      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
      <?dbfo list-presentation="list"?>
      <?dbhtml list-presentation="table"?>

      <varlistentry id="nmcli">
        <term><command>nmcli</command></term>
        <listitem>
          <para>
            is a command-line tool for controlling
            <application>NetworkManager</application>
            and getting its status.
          </para>
          <indexterm zone="NetworkManager nmcli">
            <primary sortas="b-nmcli">nmcli</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="nm-online">
        <term><command>nm-online</command></term>
        <listitem>
          <para>
            is a utility to find out whether you are online.
          </para>
          <indexterm zone="NetworkManager nm-online">
            <primary sortas="b-nm-online">nm-online</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="nmtui">
        <term><command>nmtui</command></term>
        <listitem>
          <para>
            interactive ncurses based interface for
            <application>nmcli</application>.
          </para>
          <indexterm zone="NetworkManager nmtui">
            <primary sortas="b-nmtui">nmtui</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="nmtui-connect">
        <term><command>nmtui-connect</command></term>
        <listitem>
          <para>
            interactive ncurses based interface connection activate/deactivate.
          </para>
          <indexterm zone="NetworkManager nmtui-connect">
            <primary sortas="b-nmtui-connect">nmtui-connect</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="nmtui-edit">
        <term><command>nmtui-edit</command></term>
        <listitem>
          <para>
            interactive ncurses based interface connection editor.
          </para>
          <indexterm zone="NetworkManager nmtui-edit">
            <primary sortas="b-nmtui-edit">nmtui-edit</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="nmtui-hostname">
        <term><command>nmtui-hostname</command></term>
        <listitem>
          <para>
            interactive ncurses based interface hostname editor.
          </para>
          <indexterm zone="NetworkManager nmtui-hostname">
            <primary sortas="b-nmtui-hostname">nmtui-hostname</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="NetworkManager-prog">
        <term><command>NetworkManager</command></term>
        <listitem>
          <para>
            is the network management daemon.
          </para>
          <indexterm zone="NetworkManager NetworkManager-prog">
            <primary sortas="b-NetworkManager">NetworkManager</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libnm-glib">
        <term><filename class="libraryfile">libnm-glib.so</filename></term>
        <listitem>
          <para>
            contains functions used by <application>NetworkManager</application>.
          </para>
          <indexterm zone="NetworkManager libnm-glib">
            <primary sortas="c-libnm-glib">libnm-glib.so</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libnm-glib-vpn">
        <term><filename class="libraryfile">libnm-glib-vpn.so</filename></term>
        <listitem>
          <para>
            contains functions used by <application>NetworkManager</application>
            VPN plugins.
          </para>
          <indexterm zone="NetworkManager libnm-glib-vpn">
            <primary sortas="c-libnm-glib-vpn">libnm-glib-vpn.so</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libnm-util">
        <term><filename class="libraryfile">libnm-util.so</filename></term>
        <listitem>
          <para>
            contains functions used by <application>NetworkManager</application>
            utils.
          </para>
          <indexterm zone="NetworkManager libnm-util">
            <primary sortas="c-libnm-util">libnm-util.so</primary>
          </indexterm>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>
