diff --git a/app-misc/mc/Manifest b/app-misc/mc/Manifest new file mode 100644 index 0000000..b769e07 --- /dev/null +++ b/app-misc/mc/Manifest @@ -0,0 +1,6 @@ +AUX mc-4.8.26-ncurses-mouse.patch 612 BLAKE2B ba3324dfee320a6c08c65ec8bf7784075f8a36c111ffa75129251674152cea68cde87844d5849c82111d4fad779c1d13992a7d765c4bc48b39d865ab1f89cbb6 SHA512 f97025ad7b3719b372368028ad9428e0cac67069d04e70b2e2923dd998a9f687f0807254bdc859218869e1666db80807fd53c19291e2921b420bc357e79d9406 +AUX mc-4.8.28-tests.patch 1308 BLAKE2B 37f2d2a3264386d558212741d95c68c9362676d727d4d2b47a690dd6ad97c15ff943b3950cc28456ffceda78e88645bd6f73958a592f425594e727cc383721cf SHA512 41499d5ee4a7d0bf3e08c6fad56c2d46e3761f4f7359db1351c4ca1358a9ba33be7979df55d19263214acb3ea01271278efccff72d32ea3cf8a3cfb84a964f47 +DIST mc-4.8.28.tar.xz 2333072 BLAKE2B f4218e6c166df85b7b3736f0fd1414c9507c72074f06001f12b114ce6c6fbbf3688ab850aa70f5063eb3920736f878e113eb39a5d261ccfc3ffa9dab473a8436 SHA512 ca3b3a57281e9387cb52bf1fcfc3f39a4d5f438aafc256dc492c192678824f67c983a852c759664efc5bc6d0de471c9b3929834f8301f6302ca1ebeee513fdfd +DIST uc1541 21241 BLAKE2B fb0a1960f8d58f51b7af49eb253832b3965087efc765b5c8acc0280a058b883b28439f84950089ba64c1c5a47a074c4cfa488d349a2c5d330032bface8f827a1 SHA512 a7f5fb91c8e38203fd01c07df10bd299be25a60b7e96c056c24d08bf8594ca788c1cd5dc8a116801cf02ee8e84d86879382c1b4727a2b9b9e7c6912dbbc22de9 +DIST ulha 5495 BLAKE2B bd719ea676b17fce3c7e3a2c427c7faea1d57bbd8f9e8fee2ceda781cad1425fb80b7812328d33c8575aabf1add2f905532604bb759a2eb29bc0ad5bab27d603 SHA512 43f1bb444b7f796e8226e6448a9460c7470c40eeec51d84d80077f438cdedf207d7f9ef6da699d4edd839de3337244ff36341a33143d0847ba7c881e83119a0b +EBUILD mc-4.8.28-r10.ebuild 3511 BLAKE2B 94f4ca7ac151d445700cdd40939b51d083f236565362c5358d9e262d44d326260eada5470e501491d1b75bf59555584cfdf143aed22fdaf71858e6d5676a2b53 SHA512 de180744ef6a6afb4a9c1d38d5c7702903456bc9126a43790371bed6cecc703ea4444705dfe68ae1cde651065769bb8370f9771a3b9b3c37984b8f588126b133 diff --git a/app-misc/mc/files/mc-4.8.26-ncurses-mouse.patch b/app-misc/mc/files/mc-4.8.26-ncurses-mouse.patch new file mode 100644 index 0000000..bde04c9 --- /dev/null +++ b/app-misc/mc/files/mc-4.8.26-ncurses-mouse.patch @@ -0,0 +1,16 @@ +Fix mouse-key input with ncurses6 in terminals without basic X10 mouse +support, at the cost of breaking it with ncurses5. See discussion in +https://midnight-commander.org/ticket/4144 . + +--- a/lib/tty/key.c ++++ b/lib/tty/key.c +@@ -2124,8 +2124,7 @@ + gboolean extended = c == MCKEY_EXTENDED_MOUSE; + + #ifdef KEY_MOUSE +- extended = extended || (c == KEY_MOUSE && xmouse_seq == NULL +- && xmouse_extended_seq != NULL); ++ extended = extended || (c == KEY_MOUSE && xmouse_extended_seq != NULL); + #endif /* KEY_MOUSE */ + + xmouse_get_event (event, extended); diff --git a/app-misc/mc/files/mc-4.8.28-tests.patch b/app-misc/mc/files/mc-4.8.28-tests.patch new file mode 100644 index 0000000..ccd9dc1 --- /dev/null +++ b/app-misc/mc/files/mc-4.8.28-tests.patch @@ -0,0 +1,35 @@ +START_TEST uses the variable name _i, so GCC complains about redefining it with +a different type here. + +--- mc-4.8.28/tests/lib/strutil/filevercmp.c 2022-03-20 10:02:47.000000000 +0000 ++++ mc-4.8.28/tests/lib/strutil/filevercmp.c 2022-03-27 15:31:19.812120141 +0100 +@@ -353,20 +353,20 @@ + START_TEST (filevercmp_test5) + /* *INDENT-ON* */ + { +- size_t _i; ++ size_t ii; + +- for (_i = 0; _i < filevercmp_test_ds5_len; _i++) +- for (; filevercmp_test_ds5[_i] != NULL; _i++) ++ for (ii = 0; ii < filevercmp_test_ds5_len; ii++) ++ for (; filevercmp_test_ds5[ii] != NULL; ii++) + { +- const char *i = filevercmp_test_ds5[_i]; +- size_t _j; ++ const char *i = filevercmp_test_ds5[ii]; ++ size_t jj; + +- for (_j = _i; filevercmp_test_ds5[_j] != NULL; _j++) ++ for (jj = ii; filevercmp_test_ds5[jj] != NULL; jj++) + { +- const char *j = filevercmp_test_ds5[_j]; ++ const char *j = filevercmp_test_ds5[jj]; + +- ck_assert_int_eq (test_filevercmp (i, j), 0); +- ck_assert_int_eq (test_filevercmp (j, i), 0); ++ ck_assert_int_eq (test_filevercmp (i, j), 0); ++ ck_assert_int_eq (test_filevercmp (j, i), 0); + } + } + } diff --git a/app-misc/mc/mc-4.8.28-r10.ebuild b/app-misc/mc/mc-4.8.28-r10.ebuild new file mode 100644 index 0000000..45288de --- /dev/null +++ b/app-misc/mc/mc-4.8.28-r10.ebuild @@ -0,0 +1,133 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic + +MY_P="${P/_/-}" +SRC_URI=" + http://ftp.midnight-commander.org/${MY_P}.tar.xz + https://raw.githubusercontent.com/gryf/uc1541/master/uc1541 + https://raw.githubusercontent.com/gryf/mc_ulha/master/ulha +" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris" + +DESCRIPTION="GNU Midnight Commander is a text based file manager" +HOMEPAGE="https://midnight-commander.org" + +LICENSE="GPL-3" +SLOT="0" +IUSE="+edit gpm nls sftp +slang spell test unicode X" + +REQUIRED_USE="spell? ( edit )" + +RDEPEND=" + dev-python/extfslib + >=dev-libs/glib-2.30.0:2 + gpm? ( sys-libs/gpm ) + kernel_linux? ( sys-fs/e2fsprogs[tools(+)] ) + sftp? ( net-libs/libssh2 ) + slang? ( >=sys-libs/slang-2 ) + !slang? ( sys-libs/ncurses:=[unicode(+)?] ) + spell? ( app-text/aspell ) + X? ( + x11-libs/libX11 + x11-libs/libICE + x11-libs/libXau + x11-libs/libXdmcp + x11-libs/libSM + ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + app-arch/xz-utils + virtual/pkgconfig + nls? ( sys-devel/gettext ) + test? ( dev-libs/check ) +" + +RESTRICT="!test? ( test )" + +S="${WORKDIR}/${MY_P}" + +PATCHES=( + "${FILESDIR}"/${PN}-4.8.26-ncurses-mouse.patch + "${FILESDIR}"/${P}-tests.patch #836812 +) + +pkg_pretend() { + if use slang && use unicode ; then + ewarn "\"unicode\" USE flag only takes effect when the \"slang\" USE flag is disabled." + fi +} + +src_prepare() { + default + # patch touches configure.ac + eautoreconf +} + +src_configure() { + [[ ${CHOST} == *-solaris* ]] && append-ldflags "-lnsl -lsocket" + + local myeconfargs=( + --enable-charset + --enable-vfs + --with-screen=$(usex slang 'slang' "ncurses$(usex unicode 'w' '')") + $(use_enable kernel_linux vfs-undelfs) + # Today mclib does not expose any headers and is linked to + # single 'mc' binary. Thus there is no advantage of having + # a library. Let's avoid shared library altogether + # as it also conflicts with sci-libs/mc: bug #685938 + --disable-mclib + $(use_enable nls) + $(use_enable sftp vfs-sftp) + $(use_enable spell aspell) + $(use_enable test tests) + $(use_with gpm gpm-mouse) + $(use_with X x) + $(use_with edit internal-edit) + ) + econf "${myeconfargs[@]}" +} + +src_test() { + # Bug #759466 + if [[ ${EUID} == 0 ]] ; then + ewarn "You are emerging ${PN} as root with 'userpriv' disabled." + ewarn "Expect some test failures, or emerge with 'FEATURES=userpriv'!" + fi + + # CK_FORK=no to avoid using fork() in check library + # as mc mocks fork() itself: bug #644462. + # + # VERBOSE=1 to make test failures contain detailed + # information. + CK_FORK=no emake check VERBOSE=1 +} +src_install() { + emake DESTDIR="${D}" install + dodoc AUTHORS NEWS README + + # fix bug #334383 + if use kernel_linux && [[ ${EUID} == 0 ]] ; then + fowners root:tty /usr/libexec/mc/cons.saver + fperms g+s /usr/libexec/mc/cons.saver + fi + exeinto "/usr/libexec/mc/extfs.d/" + doexe "${DISTDIR}/ulha" + doexe "${DISTDIR}/uc1541" +} + +pkg_postinst() { + if use spell && ! has_version app-dicts/aspell-en ; then + elog "'spell' USE flag is enabled however app-dicts/aspell-en is not installed." + elog "You should manually set 'spell_language' in the Misc section of ~/.config/mc/ini" + elog "It has to be set to one of your installed aspell dictionaries or 'NONE'" + elog + fi + elog "To enable exiting to latest working directory," + elog "put this into your ~/.bashrc:" + elog ". ${EPREFIX}/usr/libexec/mc/mc.sh" +}