glfs/general/sysutils/mc.xml
Bruce Dubbs 3b10fa875d Remove obsolete gtk+1, glib1, xmms, gsview.
Return glib2 to latest stable: glib-2.30.1.


git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@8937 af4574ff-66df-0310-9fd7-8a98e5e911e0
2011-11-05 21:04:08 +00:00

318 lines
12 KiB
XML

<?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 mc-download-http "http://www.ibiblio.org/pub/Linux/utils/file/managers/mc/mc-&mc-version;.tar.gz">
<!ENTITY mc-download-ftp "ftp://ftp.uni-koeln.de/util/shell/mc-&mc-version;.tar.gz">
<!ENTITY mc-md5sum "18b20db6e40480a53bac2870c56fc3c4">
<!ENTITY mc-size "3.8 MB">
<!ENTITY mc-buildsize "29 MB">
<!ENTITY mc-time "0.4 SBU">
]>
<sect1 id="mc" xreflabel="MC-&mc-version;">
<?dbhtml filename="mc.html"?>
<sect1info>
<othername>$LastChangedBy$</othername>
<date>$Date$</date>
</sect1info>
<title>MC-&mc-version;</title>
<indexterm zone="mc">
<primary sortas="a-MC">MC</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to MC</title>
<para><application>MC</application> (Midnight Commander) is a text-mode
full-screen file manager and visual shell. It provides a clear,
user-friendly, and somewhat protected interface to a Unix system while
making many frequent file operations more efficient and preserving the
full power of the command prompt.</para>
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>Download (HTTP): <ulink url="&mc-download-http;"/></para>
</listitem>
<listitem>
<para>Download (FTP): <ulink url="&mc-download-ftp;"/></para>
</listitem>
<listitem>
<para>Download MD5 sum: &mc-md5sum;</para>
</listitem>
<listitem>
<para>Download size: &mc-size;</para>
</listitem>
<listitem>
<para>Estimated disk space required: &mc-buildsize;</para>
</listitem>
<listitem>
<para>Estimated build time: &mc-time;</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">Additional Downloads</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>Required patch: <ulink
url="&patch-root;/mc-&mc-version;-bash32-1.patch"/></para>
</listitem>
<listitem>
<para>Recommended Patch: <ulink
url="&patch-root;/mc-&mc-version;-debian_fixes-1.patch"/></para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">Do I Need the Debian Patch?</bridgehead>
<para>Midnight Commander without the Debian patch is completely unusable
in multibyte locales because it assumes that characters and
bytes are the same thing. The issue manifests itself as massive screen
content corruption similar to what is depicted in
<ulink url="&files-anduin;/mc-bad.png">this screenshot</ulink>
(taken in the ru_RU.UTF-8 locale). For a general discussion of this type
of issue, see the <xref linkend="locale-wrong-multibyte-characters"/>
section of the <xref linkend="locale-issues"/> page. The Debian patch
mostly fixes this issue, and adds support for recoding remote FTP
filenames. Debian also fixed 64-bit issues, rare segfaults in
<command>mcedit</command>, and improved syntax highlighting.</para>
<para>If you do not use a multibyte locale and do not need any of the new
features or fixes, the patch is still supposed to be harmless.
However, the patch changes the dependencies and build instructions, and
in the past it caused unacceptable regressions for non-UTF-8 locale users.
Thus, failsafe instructions without the patch are left in the book just
in case. Due to the size and unofficial nature of the patch, please
do not report bugs in the patched <application>MC</application> to the
original <application>MC</application> developers.</para>
<bridgehead renderas="sect3">MC Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required"><!-- <xref linkend="GLib"/> (untested with Debian patch) or -->
<xref linkend="glib2"/></para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional"><xref linkend="gpm"/>,
<xref linkend="x-window-system"/>,
<xref linkend="samba3"/>,
<xref linkend="slang"/> (required when building with Debian patch),
<xref linkend="zip"/>,
<xref linkend="unzip"/>, and
<!-- <xref linkend="gnome-libs"/> -->
<ulink url="&gnome-download-http;/gnome-libs/1.4/">GNOME
Libraries-1.4</ulink></para>
<para condition="html" role="usernotes">User Notes:
<ulink url="&blfs-wiki;/MC"/></para>
</sect2>
<sect2 role="installation">
<title>Installation of MC</title>
<para>Fix incompatibility of <application>MC</application>-&mc-version;
with <application>Bash</application>-3.2:</para>
<screen><userinput>patch -Np1 -i ../mc-&mc-version;-bash32-1.patch</userinput></screen>
<para>If desired, apply Debian fixes:</para>
<screen><userinput>patch -Np1 -i ../mc-&mc-version;-debian_fixes-1.patch</userinput></screen>
<para>Install <application>MC</application> by
running the following commands:</para>
<screen><userinput>CPPFLAGS="-DUTF8" ./configure --prefix=/usr \
--enable-charset &amp;&amp;
make</userinput></screen>
<para><application>MC</application> with Debian patches expects its
documentation to be stored in UTF-8 encoding on disk, and automatically
converts it to the locale encoding when displaying on the terminal. This
is different from the expectations of the unpatched
<application>MC</application>, so the documentation files have to be
converted if (and only if) the Debian patch has been applied:</para>
<!-- The proposed (untested) fix...somebody who uses MC please verify -->
<screen><userinput>for file in lib/mc.hint{,.es,.it,.nl} doc/{es,it}/mc.hlp.*
do
iconv -f ISO-8859-1 -t UTF-8 ${file} > ${file}.utf8 &amp;&amp;
mv ${file}.utf8 ${file}
done &amp;&amp;
for file in lib/mc.hint{.cs,.hu,.pl} doc/{hu,pl}/mc.hlp.*
do
iconv -f ISO-8859-2 -t UTF-8 ${file} > ${file}.utf8 &amp;&amp;
mv ${file}.utf8 ${file}
done &amp;&amp;
for file in lib/mc.hint.sr doc/sr/mc.hlp.sr
do
iconv -f ISO-8859-5 -t UTF-8 ${file} > ${file}.utf8 &amp;&amp;
mv ${file}.utf8 ${file}
done &amp;&amp;
for file in doc/ru/mc.hlp.ru lib/mc.hint.ru
do
iconv -f KOI8-R -t UTF-8 ${file} > ${file}.utf8 &amp;&amp;
mv ${file}.utf8 ${file}
done &amp;&amp;
iconv -f KOI8-U -t UTF-8 lib/mc.hint.uk > lib/mc.hint.uk.utf8 &amp;&amp;
mv lib/mc.hint.uk.utf8 lib/mc.hint.uk &amp;&amp;
iconv -f BIG5 -t UTF-8 lib/mc.hint.zh > lib/mc.hint.zh.utf8 &amp;&amp;
mv lib/mc.hint.zh.utf8 lib/mc.hint.zh</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 install &amp;&amp;
chmod 1755 /usr/lib/mc/cons.saver</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para><parameter>CPPFLAGS="-DUTF8"</parameter>: This parameter activates
UTF-8 support in the Debian patch and has no effect without this
patch.</para>
<para><parameter>--enable-charset</parameter>: This option adds support
to <command>mcedit</command> for editing files in encodings different
from the one implied by the current locale. This feature works in
non-UTF-8 locales only, even with the Debian patch.</para>
<para><parameter>--with-screen=(slang|mcslang|ncurses)</parameter>: This
parameter selects the screen library used by <application>MC</application>.
<application>NCurses</application> support is
currently buggy (MC does not handle mouse events in xterm correctly).
UTF-8 support in the Debian patch is functional
only when external <xref linkend="slang"/> is used as a screen library
(this is the default).</para>
<para><parameter>--with-codepagedir=DIR</parameter>: This parameter was
useful only with <application>SAMBA</application>-2.x. New versions of
<application>SAMBA</application> do not have codepage files.</para>
<para><command>chmod 1755 /usr/lib/mc/cons.saver</command>: The
<command>cons.saver</command> program has to be installed setuid
root, because on LFS regular users have no access to
<filename>/dev/vcsa*</filename> devices. This step is optional if
<application>MC</application> is going to be started from X terminal
emulators or <command>ssh</command> sessions only (thus rendering the
<command>cons.saver</command> binary completely unneeded).</para>
<!-- Other distributions make the devices owned by the vcsa group
and make the cons.saver program setgid vcsa instead -->
</sect2>
<sect2 role="configuration">
<title>Configuring MC</title>
<sect3 id="mc-config">
<title>Config Files</title>
<para><filename>~/.mc/*</filename></para>
<indexterm zone="mc mc-config">
<primary sortas="e-AA..mc/*">~/..mc/*</primary>
</indexterm>
</sect3>
<sect3>
<title>Configuration Information</title>
<para>The <filename class="directory">~/.mc</filename> directory and
its contents are created when you start <command>mc</command> for the
first time. Then you can edit the main <filename>~/.mc/ini</filename>
configuration file manually or through the <application>MC</application>
shell. Consult the mc(1) man page for details.</para>
</sect3>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>cons.saver, mc, mcedit, mcmfmt, and mcview</seg>
<seg>None</seg>
<seg>/usr/share/mc and /usr/lib/mc</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="conssaver">
<term><command>cons.saver</command></term>
<listitem>
<para>is used internally by <command>mc</command> for saving and
restoring the text behind the panels on Linux text console.</para>
<indexterm zone="mc conssaver">
<primary sortas="b-conssaver">cons.saver</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="mc-prog">
<term><command>mc</command></term>
<listitem>
<para>is a visual shell.</para>
<indexterm zone="mc mc-prog">
<primary sortas="b-mc">mc</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="mcedit">
<term><command>mcedit</command></term>
<listitem>
<para>is an internal file editor.</para>
<indexterm zone="mc mcedit">
<primary sortas="b-mcedit">mcedit</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="mcmfmt">
<term><command>mcmfmt</command></term>
<listitem>
<para>is used internally by <command>mcview</command> when viewing
mailbox files.</para>
<indexterm zone="mc mcmfmt">
<primary sortas="b-mcmfmt">mcmfmt</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="mcview">
<term><command>mcview</command></term>
<listitem>
<para>is an internal file viewer.</para>
<indexterm zone="mc mcview">
<primary sortas="b-mcview">mcview</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>