mc: 4.8.27 Version 4.8.27 - Core * Minimal version of Autoconf is 2.64 * Minimal version of Automake is 1.12 * Minimal version of Gettext is 0.18.2 * Minimal version of libssh2 is 1.2.8 * Reimplement version detection * Significantly reduce rebuilt time after version change * Drop automatic migration of configuration from ~/.mc to XDG-based directories * zsh: support custom configuration file: ~/.local/share/mc/.zshrc * Widgets: implement WST_VISIBLE state to show/hide widgets * "Find File": add "Follow symlinks" option - VFS * extfs: support unrar-6 * extfs: support official 7z binary * ftpfs: apply file list parser from lftp project - Editor * Word completion: get candidates from all open files * etags: get rid of hardcoded list length and window width * Update syntax files: - Python * Add syntax highlighting: - Verilog and SystemVerilog header files - JSON - openrc-run scripts - Misc * Code clean up * Filehighlight of c++ and h++ files as sources * Filehighlight of JSON files as documents * Support of alacritty terminal emulator (https://github.com/alacritty/alacritty) * Support of foot terminal emulator (https://codeberg.org/dnkl/foot) * Support of (alt+)shift+arrow keys in st terminal emulator (st.suckless.org) * Mouse support in screen: don't check $DISPLAY variable * mc.ext: support fb2 e-books * ext.d: use mediainfo to view info about various media files * Remove OS/distro-specific package-related stuff from source tree - Fixes * FTBFS against NCurses on OS X 10.9.5 * Segfault on dialog before panels get visible * Crash if shadow is out of screen (build against NCurses) * Crash in search * Crash on startup with enabled subshell in FreeBSD (workaround) * Hang on start randomly with zsh as subshell * If command line is invisible it's partially displayed * Broken handling of zip archives * Broken handling of jar files as zip archives * Timestamps of symlinks, sockets, fifos, etc are not preserved after copy/move * %view action in the user menu doesn't work on no-exec filesystem * Hardlinks are not colored by file type or extension * mcedit: silent macro makes terminal disrupted * mcedit: disrupting of TAGS file path * vfs: unable to browse compressed tar archives * sftpfs vfs: CVE-2021-36370: server fingerprint isn't verified (discovered by AUT-milCERT during an audit of open source software) * ftpfs vfs: month of file is always January * Tests: log files are written by libcheck and automake simultaneouslydiff -r1.123 -r1.124 pkgsrc/sysutils/mc/Makefile
(nia)
@@ -1,17 +1,16 @@ | @@ -1,17 +1,16 @@ | |||
1 | # $NetBSD: Makefile,v 1.123 2021/09/29 19:01:21 adam Exp $ | 1 | # $NetBSD: Makefile,v 1.124 2021/10/18 13:36:45 nia Exp $ | |
2 | 2 | |||
3 | DISTNAME= mc-4.8.26 | 3 | DISTNAME= mc-4.8.27 | |
4 | PKGREVISION= 2 | |||
5 | CATEGORIES= sysutils | 4 | CATEGORIES= sysutils | |
6 | # Supports HTTPS, but cert is invalid... | 5 | # Supports HTTPS, but cert is invalid... | |
7 | MASTER_SITES= http://ftp.midnight-commander.org/ | 6 | MASTER_SITES= http://ftp.midnight-commander.org/ | |
8 | EXTRACT_SUFX= .tar.xz | 7 | EXTRACT_SUFX= .tar.xz | |
9 | 8 | |||
10 | MAINTAINER= cheusov@NetBSD.org | 9 | MAINTAINER= cheusov@NetBSD.org | |
11 | HOMEPAGE= https://www.midnight-commander.org/ | 10 | HOMEPAGE= https://www.midnight-commander.org/ | |
12 | COMMENT= User-friendly file manager and visual shell | 11 | COMMENT= User-friendly file manager and visual shell | |
13 | LICENSE= gnu-gpl-v2 | 12 | LICENSE= gnu-gpl-v2 | |
14 | 13 | |||
15 | USE_TOOLS+= pkg-config unzip:run perl:build gmake | 14 | USE_TOOLS+= pkg-config unzip:run perl:build gmake | |
16 | GNU_CONFIGURE= yes | 15 | GNU_CONFIGURE= yes | |
17 | USE_PKGLOCALEDIR= yes | 16 | USE_PKGLOCALEDIR= yes |
@@ -1,14 +1,14 @@ | @@ -1,14 +1,14 @@ | |||
1 | @comment $NetBSD: PLIST,v 1.21 2021/01/24 16:45:03 nia Exp $ | 1 | @comment $NetBSD: PLIST,v 1.22 2021/10/18 13:36:45 nia Exp $ | |
2 | bin/mc | 2 | bin/mc | |
3 | bin/mcdiff | 3 | bin/mcdiff | |
4 | bin/mcedit | 4 | bin/mcedit | |
5 | bin/mcview | 5 | bin/mcview | |
6 | libexec/mc/ext.d/archive.sh | 6 | libexec/mc/ext.d/archive.sh | |
7 | libexec/mc/ext.d/doc.sh | 7 | libexec/mc/ext.d/doc.sh | |
8 | libexec/mc/ext.d/image.sh | 8 | libexec/mc/ext.d/image.sh | |
9 | libexec/mc/ext.d/misc.sh | 9 | libexec/mc/ext.d/misc.sh | |
10 | libexec/mc/ext.d/package.sh | 10 | libexec/mc/ext.d/package.sh | |
11 | libexec/mc/ext.d/sound.sh | 11 | libexec/mc/ext.d/sound.sh | |
12 | libexec/mc/ext.d/text.sh | 12 | libexec/mc/ext.d/text.sh | |
13 | libexec/mc/ext.d/video.sh | 13 | libexec/mc/ext.d/video.sh | |
14 | libexec/mc/ext.d/web.sh | 14 | libexec/mc/ext.d/web.sh | |
@@ -185,27 +185,26 @@ share/mc/hints/mc.hint.pl | @@ -185,27 +185,26 @@ share/mc/hints/mc.hint.pl | |||
185 | share/mc/hints/mc.hint.pt | 185 | share/mc/hints/mc.hint.pt | |
186 | share/mc/hints/mc.hint.pt_BR | 186 | share/mc/hints/mc.hint.pt_BR | |
187 | share/mc/hints/mc.hint.ro | 187 | share/mc/hints/mc.hint.ro | |
188 | share/mc/hints/mc.hint.ru | 188 | share/mc/hints/mc.hint.ru | |
189 | share/mc/hints/mc.hint.sk | 189 | share/mc/hints/mc.hint.sk | |
190 | share/mc/hints/mc.hint.sr | 190 | share/mc/hints/mc.hint.sr | |
191 | share/mc/hints/mc.hint.sv | 191 | share/mc/hints/mc.hint.sv | |
192 | share/mc/hints/mc.hint.sv_SE | 192 | share/mc/hints/mc.hint.sv_SE | |
193 | share/mc/hints/mc.hint.tr | 193 | share/mc/hints/mc.hint.tr | |
194 | share/mc/hints/mc.hint.uk | 194 | share/mc/hints/mc.hint.uk | |
195 | share/mc/hints/mc.hint.zh | 195 | share/mc/hints/mc.hint.zh | |
196 | share/mc/hints/mc.hint.zh_CN | 196 | share/mc/hints/mc.hint.zh_CN | |
197 | share/mc/hints/mc.hint.zh_TW | 197 | share/mc/hints/mc.hint.zh_TW | |
198 | share/mc/mc.charsets | |||
199 | share/mc/mc.lib | 198 | share/mc/mc.lib | |
200 | share/mc/skins/dark.ini | 199 | share/mc/skins/dark.ini | |
201 | share/mc/skins/darkfar.ini | 200 | share/mc/skins/darkfar.ini | |
202 | share/mc/skins/default.ini | 201 | share/mc/skins/default.ini | |
203 | share/mc/skins/double-lines.ini | 202 | share/mc/skins/double-lines.ini | |
204 | share/mc/skins/featured-plus.ini | 203 | share/mc/skins/featured-plus.ini | |
205 | share/mc/skins/featured.ini | 204 | share/mc/skins/featured.ini | |
206 | share/mc/skins/gotar.ini | 205 | share/mc/skins/gotar.ini | |
207 | share/mc/skins/gray-green-purple256.ini | 206 | share/mc/skins/gray-green-purple256.ini | |
208 | share/mc/skins/gray-orange-blue256.ini | 207 | share/mc/skins/gray-orange-blue256.ini | |
209 | share/mc/skins/julia256.ini | 208 | share/mc/skins/julia256.ini | |
210 | share/mc/skins/mc46.ini | 209 | share/mc/skins/mc46.ini | |
211 | share/mc/skins/modarcon16-defbg.ini | 210 | share/mc/skins/modarcon16-defbg.ini | |
@@ -257,26 +256,27 @@ share/mc/syntax/f90.syntax | @@ -257,26 +256,27 @@ share/mc/syntax/f90.syntax | |||
257 | share/mc/syntax/filehighlight.syntax | 256 | share/mc/syntax/filehighlight.syntax | |
258 | share/mc/syntax/fortran.syntax | 257 | share/mc/syntax/fortran.syntax | |
259 | share/mc/syntax/glsl.syntax | 258 | share/mc/syntax/glsl.syntax | |
260 | share/mc/syntax/go.syntax | 259 | share/mc/syntax/go.syntax | |
261 | share/mc/syntax/haskell.syntax | 260 | share/mc/syntax/haskell.syntax | |
262 | share/mc/syntax/hive.syntax | 261 | share/mc/syntax/hive.syntax | |
263 | share/mc/syntax/html.syntax | 262 | share/mc/syntax/html.syntax | |
264 | share/mc/syntax/idl.syntax | 263 | share/mc/syntax/idl.syntax | |
265 | share/mc/syntax/ini.syntax | 264 | share/mc/syntax/ini.syntax | |
266 | share/mc/syntax/j.syntax | 265 | share/mc/syntax/j.syntax | |
267 | share/mc/syntax/jal.syntax | 266 | share/mc/syntax/jal.syntax | |
268 | share/mc/syntax/java.syntax | 267 | share/mc/syntax/java.syntax | |
269 | share/mc/syntax/js.syntax | 268 | share/mc/syntax/js.syntax | |
269 | share/mc/syntax/json.syntax | |||
270 | share/mc/syntax/kotlin.syntax | 270 | share/mc/syntax/kotlin.syntax | |
271 | share/mc/syntax/latex.syntax | 271 | share/mc/syntax/latex.syntax | |
272 | share/mc/syntax/lisp.syntax | 272 | share/mc/syntax/lisp.syntax | |
273 | share/mc/syntax/lkr.syntax | 273 | share/mc/syntax/lkr.syntax | |
274 | share/mc/syntax/lsm.syntax | 274 | share/mc/syntax/lsm.syntax | |
275 | share/mc/syntax/lua.syntax | 275 | share/mc/syntax/lua.syntax | |
276 | share/mc/syntax/m4.syntax | 276 | share/mc/syntax/m4.syntax | |
277 | share/mc/syntax/mail.syntax | 277 | share/mc/syntax/mail.syntax | |
278 | share/mc/syntax/makefile.syntax | 278 | share/mc/syntax/makefile.syntax | |
279 | share/mc/syntax/markdown.syntax | 279 | share/mc/syntax/markdown.syntax | |
280 | share/mc/syntax/meson.syntax | 280 | share/mc/syntax/meson.syntax | |
281 | share/mc/syntax/ml.syntax | 281 | share/mc/syntax/ml.syntax | |
282 | share/mc/syntax/named.syntax | 282 | share/mc/syntax/named.syntax |
@@ -1,9 +1,9 @@ | @@ -1,9 +1,9 @@ | |||
1 | $NetBSD: distinfo,v 1.40 2021/10/07 14:58:04 nia Exp $ | 1 | $NetBSD: distinfo,v 1.41 2021/10/18 13:36:45 nia Exp $ | |
2 | 2 | |||
3 | RMD160 (mc-4.8.26.tar.xz) = 5a5eea55bd90fb8f2687062e00ef040233bb9679 | 3 | RMD160 (mc-4.8.27.tar.xz) = d1d9aff2bcd569018ef1a66bc58785acc20c3749 | |
4 | SHA512 (mc-4.8.26.tar.xz) = f2f06915b775ecc94016fe5d5db9301e953cc89ee0708e79ee96e14a9f53142a467b27061ca57f65b40310fa86d4d13e2f2a29a601f8fefa6216fb10f73007be | 4 | SHA512 (mc-4.8.27.tar.xz) = c955d66cee06e3a0e0c795f2f6b98b184762363390a903cf8ef83dc5e98e6e94d5a9c06c4788d9ff4b3ae111541df8c7dc0b864a5c21c40421a81cd8690e9a69 | |
5 | Size (mc-4.8.26.tar.xz) = 2492612 bytes | 5 | Size (mc-4.8.27.tar.xz) = 2510296 bytes | |
6 | SHA1 (patch-contrib_Makefile.in) = 0b9ad555c2f702cba12b6b5e5f0ae07c16499903 | 6 | SHA1 (patch-contrib_Makefile.in) = 0b9ad555c2f702cba12b6b5e5f0ae07c16499903 | |
7 | SHA1 (patch-misc_Makefile.in) = b17cdebdcd0adae91a6cff3f25939cebeb1e964f | 7 | SHA1 (patch-misc_Makefile.in) = b17cdebdcd0adae91a6cff3f25939cebeb1e964f | |
8 | SHA1 (patch-src_subshell_common.c) = b6d390da68aa0028d21683b1959340e51f67efd6 | 8 | SHA1 (patch-src_subshell_common.c) = f38eab7cae73799509c57e2fe507d085701e541f | |
9 | SHA1 (patch-src_vfs_sfs_Makefile.in) = 90ce81b0dcf2ef2134884137d86e147219d180ed | 9 | SHA1 (patch-src_vfs_sfs_Makefile.in) = 90ce81b0dcf2ef2134884137d86e147219d180ed |
@@ -1,48 +1,89 @@ | @@ -1,48 +1,89 @@ | |||
1 | $NetBSD: patch-src_subshell_common.c,v 1.2 2019/01/18 22:28:38 bsiegert Exp $ | 1 | $NetBSD: patch-src_subshell_common.c,v 1.3 2021/10/18 13:36:45 nia Exp $ | |
2 | 2 | |||
3 | Report error from read since tcsetattr can replace errno. | 3 | Report error from read since tcsetattr can replace errno. | |
4 | Recognize /bin/sh as valid shell and don't complain about it. | 4 | Recognize /bin/sh as valid shell and don't complain about it. | |
5 | 5 | |||
6 | --- src/subshell/common.c.orig 2018-12-28 19:35:25.000000000 +0000 | 6 | --- src/subshell/common.c.orig 2021-08-01 16:45:58.000000000 +0000 | |
7 | +++ src/subshell/common.c | 7 | +++ src/subshell/common.c | |
8 | @@ -317,6 +317,7 @@ init_subshell_child (const char *pty_nam | 8 | @@ -345,6 +345,7 @@ init_subshell_child (const char *pty_nam | |
9 | 9 | |||
10 | case SHELL_ASH_BUSYBOX: | 10 | case SHELL_ASH_BUSYBOX: | |
11 | case SHELL_DASH: | 11 | case SHELL_DASH: | |
12 | + case SHELL_SH: | 12 | + case SHELL_SH: | |
13 | /* Do we have a custom init file ~/.local/share/mc/ashrc? */ | 13 | /* Do we have a custom init file ~/.local/share/mc/ashrc? */ | |
14 | init_file = mc_config_get_full_path ("ashrc"); | 14 | init_file = mc_config_get_full_path (MC_ASHRC_FILE); | |
15 | 15 | |||
16 | @@ -510,7 +511,7 @@ static gboolean | 16 | @@ -740,7 +741,7 @@ static gboolean | |
17 | feed_subshell (int how, gboolean fail_on_error) | 17 | feed_subshell (int how, gboolean fail_on_error) | |
18 | { | 18 | { | |
19 | fd_set read_set; /* For 'select' */ | 19 | fd_set read_set; /* For 'select' */ | |
20 | - int bytes; /* For the return value from 'read' */ | 20 | - int bytes; /* For the return value from 'read' */ | |
21 | + int serrno, bytes; /* For the return value from 'read' */ | 21 | + int serrno, bytes; /* For the return value from 'read' */ | |
22 | int i; /* Loop counter */ | 22 | int i; /* Loop counter */ | |
23 | 23 | |||
24 | struct timeval wtime; /* Maximum time we wait for the subshell */ | 24 | struct timeval wtime; /* Maximum time we wait for the subshell */ | |
25 | @@ -565,19 +566,20 @@ feed_subshell (int how, gboolean fail_on | 25 | @@ -774,6 +775,7 @@ feed_subshell (int how, gboolean fail_on | |
26 | ||||
27 | if (select (maxfdp + 1, &read_set, NULL, NULL, wptr) == -1) | |||
28 | { | |||
29 | + serrno = errno; | |||
30 | /* Despite using SA_RESTART, we still have to check for this */ | |||
31 | if (errno == EINTR) | |||
32 | { | |||
33 | @@ -784,7 +786,7 @@ feed_subshell (int how, gboolean fail_on | |||
34 | } | |||
35 | tcsetattr (STDOUT_FILENO, TCSANOW, &shell_mode); | |||
36 | fprintf (stderr, "select (FD_SETSIZE, &read_set...): %s\r\n", | |||
37 | - unix_error_string (errno)); | |||
38 | + unix_error_string (serrno)); | |||
39 | exit (EXIT_FAILURE); | |||
40 | } | |||
41 | ||||
42 | @@ -797,19 +799,20 @@ feed_subshell (int how, gboolean fail_on | |||
26 | /* for (i=0; i<5; ++i) * FIXME -- experimental */ | 43 | /* for (i=0; i<5; ++i) * FIXME -- experimental */ | |
27 | { | 44 | { | |
28 | bytes = read (mc_global.tty.subshell_pty, pty_buffer, sizeof (pty_buffer)); | 45 | bytes = read (mc_global.tty.subshell_pty, pty_buffer, sizeof (pty_buffer)); | |
29 | + serrno = errno; | 46 | + serrno = errno; | |
30 | 47 | |||
31 | /* The subshell has died */ | 48 | /* The subshell has died */ | |
32 | - if (bytes == -1 && errno == EIO && !subshell_alive) | 49 | - if (bytes == -1 && errno == EIO && !subshell_alive) | |
33 | + if (((bytes == -1 && errno == EIO) || bytes == 0) && !subshell_alive) | 50 | + if (((bytes == -1 && errno == EIO) || bytes == 0) && !subshell_alive) | |
34 | return FALSE; | 51 | return FALSE; | |
35 | 52 | |||
36 | - if (bytes <= 0) | 53 | - if (bytes <= 0) | |
37 | + if (bytes < 0) | 54 | + if (bytes < 0) | |
38 | { | 55 | { | |
39 | #ifdef PTY_ZEROREAD | 56 | #ifdef PTY_ZEROREAD | |
40 | /* On IBM i, read(1) can return 0 for a non-closed fd */ | 57 | /* On IBM i, read(1) can return 0 for a non-closed fd */ | |
41 | continue; | 58 | continue; | |
42 | #else | 59 | #else | |
43 | tcsetattr (STDOUT_FILENO, TCSANOW, &shell_mode); | 60 | tcsetattr (STDOUT_FILENO, TCSANOW, &shell_mode); | |
44 | - fprintf (stderr, "read (subshell_pty...): %s\r\n", unix_error_string (errno)); | 61 | - fprintf (stderr, "read (subshell_pty...): %s\r\n", unix_error_string (errno)); | |
45 | + fprintf (stderr, "read (subshell_pty...): %s\r\n", unix_error_string (serrno)); | 62 | + fprintf (stderr, "read (subshell_pty...): %s\r\n", unix_error_string (serrno)); | |
46 | exit (EXIT_FAILURE); | 63 | exit (EXIT_FAILURE); | |
47 | #endif | 64 | #endif | |
48 | } | 65 | } | |
66 | @@ -827,9 +830,10 @@ feed_subshell (int how, gboolean fail_on | |||
67 | bytes = read (subshell_pipe[READ], subshell_cwd, sizeof (subshell_cwd)); | |||
68 | if (bytes <= 0) | |||
69 | { | |||
70 | + serrno = errno; | |||
71 | tcsetattr (STDOUT_FILENO, TCSANOW, &shell_mode); | |||
72 | fprintf (stderr, "read (subshell_pipe[READ]...): %s\r\n", | |||
73 | - unix_error_string (errno)); | |||
74 | + unix_error_string (serrno)); | |||
75 | exit (EXIT_FAILURE); | |||
76 | } | |||
77 | ||||
78 | @@ -854,9 +858,10 @@ feed_subshell (int how, gboolean fail_on | |||
79 | bytes = read (STDIN_FILENO, pty_buffer, sizeof (pty_buffer)); | |||
80 | if (bytes <= 0) | |||
81 | { | |||
82 | + serrno = errno; | |||
83 | tcsetattr (STDOUT_FILENO, TCSANOW, &shell_mode); | |||
84 | fprintf (stderr, | |||
85 | - "read (STDIN_FILENO, pty_buffer...): %s\r\n", unix_error_string (errno)); | |||
86 | + "read (STDIN_FILENO, pty_buffer...): %s\r\n", unix_error_string (serrno)); | |||
87 | exit (EXIT_FAILURE); | |||
88 | } | |||
89 |