glfs/networking/netprogs/ncftp.xml
2024-02-16 18:57:03 -06:00

347 lines
10 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!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 ncftp-download-http "https://www.ncftp.com/downloads/ncftp/ncftp-&ncftp-version;-src.tar.xz">
<!ENTITY ncftp-download-ftp " ">
<!ENTITY ncftp-md5sum "bbcb048d2412f4d62bc798818e703680">
<!ENTITY ncftp-size "416 KB">
<!ENTITY ncftp-buildsize "6.9 MB">
<!ENTITY ncftp-time "0.2 SBU">
]>
<sect1 id="ncftp" xreflabel="NcFTP-&ncftp-version;">
<?dbhtml filename="ncftp.html"?>
<title>NcFTP-&ncftp-version;</title>
<indexterm zone="ncftp">
<primary sortas="a-NcFTP">NcFTP</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to NcFTP</title>
<para>
The <application>NcFTP</application> package contains
a powerful and flexible interface to the Internet standard File Transfer
Protocol. It is intended to replace or supplement the stock
<command>ftp</command> program.
</para>
&lfs121_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Download (HTTP): <ulink url="&ncftp-download-http;"/>
</para>
</listitem>
<listitem>
<para>
Download (FTP): <ulink url="&ncftp-download-ftp;"/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &ncftp-md5sum;
</para>
</listitem>
<listitem>
<para>
Download size: &ncftp-size;
</para>
</listitem>
<listitem>
<para>
Estimated disk space required: &ncftp-buildsize;
</para>
</listitem>
<listitem>
<para>
Estimated build time: &ncftp-time;
</para>
</listitem>
</itemizedlist>
<!--
<bridgehead renderas="sect3">Additional Downloads</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Required patch:
<ulink url="&patch-root;/ncftp-&ncftp-version;-configure_fixes-1.patch"/>
</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">NcFTP Dependencies</bridgehead>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional">
<xref linkend="llvm"/> (with Clang, used by default if installed)
</para>
-->
</sect2>
<sect2 role="installation">
<title>Installation of NcFTP</title>
<para>
There are two ways to build <application>NcFTP</application>. The first
(and optimal) way builds most of the functionality as a shared library
and then builds and installs the program linked against this library.
The second method simply links all of the functionality into the binary
statically. This doesn't make the dynamic library available for linking
by other applications. You need to choose which method best suits you.
Note that the second method does <emphasis>not</emphasis> create an
entirely statically linked binary; only the <filename
class="libraryfile">libncftp</filename> parts are statically linked in,
in this case. Be aware that building and using the shared library is
covered by the Clarified Artistic License; however, developing
applications that utilize the shared library is subject to a different
license.
</para>
<!--
<para>
First, fix an issue caused by a change in behavior in GCC-10:
</para>
<screen><userinput remap="pre">sed -i 's/^Bookmark/extern Bookmark/' sh_util/gpshare.c</userinput></screen>
<para>
Next, update the configure script to use modern C standards:
</para>
<screen><userinput remap="pre">patch -Np1 -i ../ncftp-&ncftp-version;-configure_fixes-1.patch &amp;&amp;
autoreconf -fiv -I autoconf_local</userinput></screen>
-->
<para>
To install <application>NcFTP</application> using the
first (and optimal) method, run the following commands:
</para>
<screen><userinput>CC=/usr/bin/gcc \
./configure --prefix=/usr --sysconfdir=/etc &amp;&amp;
make -C libncftp shared &amp;&amp;
make</userinput></screen>
<para>
This package does not come with a test suite.
</para>
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role='root'><userinput>make -C libncftp soinstall &amp;&amp;
make install</userinput></screen>
<para>
To install <application>NcFTP</application> using the
second method (with the <filename class="libraryfile">libncftp</filename>
functionality linked in statically) run the following commands:
</para>
<screen role="nodump"><userinput>./configure --prefix=/usr --sysconfdir=/etc &amp;&amp;
make</userinput></screen>
<para>
This package does not come with a test suite.
</para>
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="nodump"><userinput>make install</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para>
<envar>CC=/usr/bin/gcc</envar>. This environment variable ensures
that <command>gcc</command> is used if <xref linkend="llvm"/> is
installed. The build procedure is broken if <command>gcc</command>
is not used.
</para>
<para>
<command>make -C ... &amp;&amp; make -C ...</command>:
These commands make and install the dynamic library <filename
class="libraryfile">libncftp</filename> which is then used to link
against when compiling the main program.
</para>
</sect2>
<sect2 role="configuration">
<title>Configuring NcFTP</title>
<sect3 id="ncftp-config">
<title>Config Files</title>
<para>
<filename>/etc/ncftp.*</filename> and
<filename>~/.ncftp/*</filename>; especially
<filename>/etc/ncftp.prefs_v3</filename> and
<filename>~/.ncftp/prefs_v3</filename>
</para>
<indexterm zone="ncftp ncftp-config">
<primary sortas="e-AA.ncftp/*">~/.ncftp/*</primary>
</indexterm>
<indexterm zone="ncftp ncftp-config">
<primary sortas="e-etc-ncftp.*">/etc/ncftp.*</primary>
</indexterm>
</sect3>
<sect3>
<title>Configuration Information</title>
<para>
Most <application>NcFTP</application> configuration is done while in
the program, and the configuration files are dealt with automatically.
One exception to this is <filename>~/.ncftp/prefs_v3</filename>. There
are various options to alter in there, including:
</para>
<screen><literal>yes-i-know-about-NcFTPd=yes</literal></screen>
<para>
This disables the splash screen advertising the
<application>NcFTPd</application> server.
</para>
<para>
There are other options in the <filename>prefs_v3</filename> file.
Most of these are self-explanatory. Global defaults can be set in
<filename>/etc/ncftp.prefs_v3</filename>.
</para>
</sect3>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Library</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>ncftp, ncftpbatch, ncftpbookmarks, ncftpget,
ncftpls, ncftpput, and ncftpspooler</seg>
<seg>libncftp.so</seg>
<seg>None</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="ncftp-prog">
<term><command>ncftp</command></term>
<listitem>
<para>
is a browser program for File Transfer Protocol
</para>
<indexterm zone="ncftp ncftp-prog">
<primary sortas="b-ncftp">ncftp</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="ncftpbatch">
<term><command>ncftpbatch</command></term>
<listitem>
<para>
is an individual batch FTP job processor
</para>
<indexterm zone="ncftp ncftpbatch">
<primary sortas="b-ncftpbatch">ncftpbatch</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="ncftpbookmarks">
<term><command>ncftpbookmarks</command></term>
<listitem>
<para>
is the <application>NcFTP</application> Bookmark Editor
(<application>NCurses</application>-based)
</para>
<indexterm zone="ncftp ncftpbookmarks">
<primary sortas="b-ncftpbookmarks">ncftpbookmarks</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="ncftpget">
<term><command>ncftpget</command></term>
<listitem>
<para>
is an internet file transfer program for scripts used to
retrieve files
</para>
<indexterm zone="ncftp ncftpget">
<primary sortas="b-ncftpget">ncftpget</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="ncftpls">
<term><command>ncftpls</command></term>
<listitem>
<para>
is an internet file transfer program for scripts used to
list files
</para>
<indexterm zone="ncftp ncftpls">
<primary sortas="b-ncftpls">ncftpls</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="ncftpput">
<term><command>ncftpput</command></term>
<listitem>
<para>
is an internet file transfer program for scripts used to
transfer files
</para>
<indexterm zone="ncftp ncftpput">
<primary sortas="b-ncftpput">ncftpput</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="ncftpspooler">
<term><command>ncftpspooler</command></term>
<listitem>
<para>
is a global batch FTP job processor daemon
</para>
<indexterm zone="ncftp ncftpspooler">
<primary sortas="b-ncftpspooler">ncftpspooler</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>