diff --git a/app-misc/mc/Manifest b/app-misc/mc/Manifest index 8ed3fc4..13e5eac 100644 --- a/app-misc/mc/Manifest +++ b/app-misc/mc/Manifest @@ -2,9 +2,13 @@ AUX mc-4.8.26-ncurses-mouse.patch 612 BLAKE2B ba3324dfee320a6c08c65ec8bf7784075f AUX mc-4.8.28-tests.patch 1308 BLAKE2B 37f2d2a3264386d558212741d95c68c9362676d727d4d2b47a690dd6ad97c15ff943b3950cc28456ffceda78e88645bd6f73958a592f425594e727cc383721cf SHA512 41499d5ee4a7d0bf3e08c6fad56c2d46e3761f4f7359db1351c4ca1358a9ba33be7979df55d19263214acb3ea01271278efccff72d32ea3cf8a3cfb84a964f47 AUX mc-4.8.29-autoconf-c99.patch 849 BLAKE2B 7d9eb9b7f046dac592dee09e3598620c61167365aefb41186f4d60b803f17cf151280b9bf5facef7101f5297d9faa3b269c9b759095ad6bd01f79b4a8ee38211 SHA512 983de54aa05b09c9510945f4c3b83231779ee24808ec2cbbb2ce0e2b5743bb120d85edf0e9bd0d78e5aafb42601272997c2bcef9fb606de9e043d9619eba4485 AUX mc-4.8.29-gentoo-tools.patch 413 BLAKE2B 53e3f8e5e711374bbc5e3bb868df5e3345eed8f8de4ec3cac486b63c210bb10e6832b60292c614b4bd5c65ae750c5b2c38430ac1da2c9f6febb2b686199463ff SHA512 38598f57f4905659bc5d69f4ae19510ce35e76c8e33fc5262c5c8d17742483ebd5aa61ddac29a5811e111fe8ca66e6418fa4d48567e3a4e7ec4406916834c6fa +AUX mc-4.8.30-mcdiff-segfault.patch 1534 BLAKE2B ff3904f22a3f46251833f259255abd15015d47fed685447fb7f42b4d8adc042adb3104b4e41c2bedc0552335e681ca5df7404cd9cd0e4066a8a84714faa718c2 SHA512 41aa773416a3bd2f035ed584b6179f237b216010bd541b1a881f95f25eb5d05abbe721af2ae3c64dc39916525ff284cf0c5bf2ddde89e4bcf3647f7c5cad4e2d +AUX mc-4.8.30-musl-tests.patch 300 BLAKE2B 52dff36517ccd7643cf594e556b0f315081ed39d01735f6da351bdf3dadc70ce1b14e8320b5edb08a8ae1a2db533f1bea60ef6bb1c37bc24a80a0c671384349d SHA512 73b32f64c5976a1b4518d2cdb8c802d9a93c71aab3781c6edfc731d7088ac67e3a09687bc1cce8a3597117b333e13ba96c50c4b26a21f5ad4c81aa76f03cfb41 DIST mc-4.8.28.tar.xz 2333072 BLAKE2B f4218e6c166df85b7b3736f0fd1414c9507c72074f06001f12b114ce6c6fbbf3688ab850aa70f5063eb3920736f878e113eb39a5d261ccfc3ffa9dab473a8436 SHA512 ca3b3a57281e9387cb52bf1fcfc3f39a4d5f438aafc256dc492c192678824f67c983a852c759664efc5bc6d0de471c9b3929834f8301f6302ca1ebeee513fdfd DIST mc-4.8.29.tar.xz 2368164 BLAKE2B 0ecddf33b4b7b32918484bc7efe15ef1c9dda094814c85ceabf1b4bd9343507a33932b8cd050fdae2e683f9815ab6dd802ff8eb8e2215c6264be073bc5ac7e4d SHA512 c7e219eda34197d0294748cf5fd1a5dcfedfc17c20cfcf94c4dad5170f87095845f4fc0065e2868342125039c13cc3ba617804df74186816828e93ed71c1e9a3 +DIST mc-4.8.30.tar.xz 2380824 BLAKE2B 2bf759314abae39db7596426cba22f6eaac0efc58e7025f1a7ef1863496ea7a3c00d298d101123b9defb109e76e31fe988227fb5c1112e06051b3c7a5b3dc1b6 SHA512 f793f744eaff236c9952d477236dd775a24d9ddd7ff46940bfe2d06da5596bed91d6bd9c85250696da6dcdc0a1890dc01c736654df3f59039674eff38e12e68e 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 EBUILD mc-4.8.29-r10.ebuild 3418 BLAKE2B 63a4ddaf5cfcd3443a72e519d75c52e4557374289c571971d6da2e2b9b1a74262b6125260717bfd3cd762daabde9f35d902d4d34c6b7af5c7654b518238e5ed6 SHA512 082ec71d5207692ce3fac652ee2270e9dc3b8d29293c8618dfe0d6e612fa7847bfad3676d882b78db5c2a47ae942c94cecec52b577d9168442d65ba875c754ba +EBUILD mc-4.8.30-r10.ebuild 3464 BLAKE2B bf497f1d7d742c0f3238bcf0da18ee2ee056c1f5d3884ddd342d3fa5e8e774eb9258787a079331c11e56255ecd2a587d08fcabe5731dcef9b23c0a608f136b79 SHA512 80720a72c7d7765a828263242a6cf3b6ef0948a85c024dbaad5623cf0e93eaf8139c99b5b3511f4c6c585bc47be28fca4b3f3680404f46fe4f9f11a3be62b246 diff --git a/app-misc/mc/files/mc-4.8.30-mcdiff-segfault.patch b/app-misc/mc/files/mc-4.8.30-mcdiff-segfault.patch new file mode 100644 index 0000000..ad752a1 --- /dev/null +++ b/app-misc/mc/files/mc-4.8.30-mcdiff-segfault.patch @@ -0,0 +1,36 @@ +From dfe3279a365d629ba848f0265108d98d9f12348f Mon Sep 17 00:00:00 2001 +From: Andrew Borodin +Date: Sun, 27 Aug 2023 19:32:53 +0300 +Subject: [PATCH] Ticket 4500: mcdiff: segfault when display of line numbers is + enabled. + +The bug was introduced in 00f84fbf24b5f65381f41c5d6333182bc7921700. + + * (dview_load_options): avoid NULL dereference: don't caclulate the + width of line numbers field here because dview->a isn't created yet. + * (dview_update): caclulate the width of line numbers field using an + actual length of diff lines array. + +Signed-off-by: Andrew Borodin +--- a/src/diffviewer/ydiff.c ++++ b/src/diffviewer/ydiff.c +@@ -2366,7 +2366,7 @@ dview_load_options (WDiff * dview) + dview->display_symbols = 1; + show_numbers = mc_config_get_bool (mc_global.main_config, "DiffView", "show_numbers", FALSE); + if (show_numbers) +- dview->display_numbers = calc_nwidth ((const GArray * const *) dview->a); ++ dview->display_numbers = 1; + tab_size = mc_config_get_int (mc_global.main_config, "DiffView", "tab_size", 8); + if (tab_size > 0 && tab_size < 9) + dview->tab_size = tab_size; +@@ -2885,6 +2885,10 @@ dview_update (WDiff * dview) + if (height < 2) + return; + ++ /* use an actual length of dview->a */ ++ if (dview->display_numbers != 0) ++ dview->display_numbers = calc_nwidth ((const GArray * const *) dview->a); ++ + width1 = dview->half1 + dview->bias; + width2 = dview->half2 - dview->bias; + if (dview->full) diff --git a/app-misc/mc/files/mc-4.8.30-musl-tests.patch b/app-misc/mc/files/mc-4.8.30-musl-tests.patch new file mode 100644 index 0000000..0e8ea32 --- /dev/null +++ b/app-misc/mc/files/mc-4.8.30-musl-tests.patch @@ -0,0 +1,15 @@ +--- a/tests/lib/vfs/path_len.c ++++ b/tests/lib/vfs/path_len.c +@@ -89,12 +89,6 @@ + "/тестовый/путь", + 26 + }, +-#ifdef HAVE_CHARSET +- { /* 3. */ +- "/#enc:KOI8-R/тестовый/путь", +- 38 +- }, +-#endif /* HAVE_CHARSET */ + }; + /* *INDENT-ON* */ + diff --git a/app-misc/mc/mc-4.8.30-r10.ebuild b/app-misc/mc/mc-4.8.30-r10.ebuild new file mode 100644 index 0000000..8cb6a1e --- /dev/null +++ b/app-misc/mc/mc-4.8.30-r10.ebuild @@ -0,0 +1,132 @@ +# Copyright 1999-2023 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" + +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 )" + +DEPEND=" + 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 + ) +" +RDEPEND="${DEPEND} + spell? ( app-dicts/aspell-en )" +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}"/${PN}-4.8.29-gentoo-tools.patch + "${FILESDIR}"/${PN}-4.8.30-mcdiff-segfault.patch +) + +src_prepare() { + default + + # Bug #906194 + use elibc_musl && eapply "${FILESDIR}"/${PN}-4.8.30-musl-tests.patch + + 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" +}