gpo.zugaina.org

Search Portage & Overlays:

app-misc/mc6

Midnight Commander fork with dynamically loaded panel plugins

Screenshots

  • mc6-6.0.4
    ~amd64
    +edit ftp gpm lua mongodb nls s3 samba sftp +slang spell sqlite test X

    View      Download      Browse     License: GPL-3+   
    Overlay: stuff

ChangeLog

commit a1417d38f3cec9e64ef541e4138f3dd4ef08875f
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Fri Sep 4 13:29:47 2026 +0200

app-misc/mc6: new package, add 6.0.4

A fork of GNU Midnight Commander, based on 4.8.33, whose panel contents
can be served by dynamically loaded plugins: git, docker, Kubernetes,
MongoDB, S3, FTP/FTPS, SFTP, Samba, systemd and shell connections, plus
arcmc for archives and mcstruct for structured binary files. Absent
from ::gentoo, ::guru and ::4nykey as of today.

Not co-installable with app-misc/mc. Upstream keeps PACKAGE as "mc"
deliberately -- the gettext domain and every data path derive from it --
so this installs /usr/bin/mc, the mcedit/mcview/mcdiff/mctree symlinks,
/usr/share/mc and /usr/libexec/mc. Upstream's own Debian packaging draws
the same conclusion with Conflicts/Replaces/Provides: mc; here that is
!!app-misc/mc.

Every plugin switch defaults to "auto" and disables itself silently when
its library is missing, so each is pinned to an explicit yes/no from USE
rather than left to the build host. The evidence that the pinning takes:
libsmbclient is installed here, and with USE=-samba the samba plugin is
still absent.

The same disease shows up outside the plugin switches, in probes that
read the build host's PATH and then change what gets installed. CHAFA
and PROCYON are pinned to "no" in src_configure so the Lua handler set
does not depend on what happens to be merged, and groff is a BDEPEND
because configure asks nroff whether it takes -mandoc, -c and -Tlatin1
and substitutes the answers into ext.d/text.sh and mc.menu, both of
which it installs. groff is not in @system, so without the dep the man
viewer differs by build host rather than by USE.

libarchive, libmagic and zlib are unconditional rather than USE-gated.
libarchive backs arcmc, which is not an add-on but the replacement for
the tarfs and cpiofs VFS modules this fork deleted; libmagic and zlib are
probed by bare AC_CHECK_HEADERS with no switch to turn them off, so a USE
flag would leave the automagic in place and buy nothing.

mc6-6.0.4-zlib-probe-memset.patch fixes one of those probes. Its link
test calls memset() with only <zlib.h> included, an error since GCC 14,
so HAVE_ZLIB was left undefined on every current toolchain and mcstruct
lost its inflate support -- silently, because a bare AC_CHECK_HEADERS has
nothing to report on and configure's summary never mentions zlib. Caught
by reading config.h, not by the exit status. Both configure and
configure.ac are patched, though only the former is used here.

Two things do not carry over from app-misc/mc's ebuild. --with-screen no
longer accepts ncursesw -- slang or ncurses only, and the ncurses branch
searches libncursesw before libncurses on its own -- so there is no
USE=unicode left to pass on. And --enable-charset, --enable-vfs-sftp,
--enable-vfs-undelfs and --enable-aspell are all gone: encoding support
is unconditional now, sftp is a panel plugin, undelfs was dropped, and
the spell checker g_module_opens libaspell or libhunspell at run time, so
USE=spell buys the library and changes nothing about the build.

LTO is filtered, and the miscompile was reproduced here rather than
taken from upstream's Debian packaging on faith. Built with GCC 15.3.1
and -O2 -flto=12, mctree_view fails one of seven checks:
test_collapse_from_transparent_child_focuses_visible_parent asserts
mctree_view_row_count (view) == 3 and gets 2, which is the collapsed
tree Debian describes. The same flags under GCC 16.2.0 give 7/7, so the
filter is there for the GCC 15 slot, which is still supported.

Build-checked at IUSE-max (all fifteen panel plugins plus the Lua runtime
extension produced) and at the ncurses/minimal end, and the test suite
passes under USE=test. Dependency resolution checked at three USE sets;
the only thing it reports is the app-misc/mc blocker.