[arch-commits] Commit in mc/trunk (PKGBUILD mc-mksh-subshell-v2.patch)

Alad Wenter alad at archlinux.org
Sat Mar 2 16:36:45 UTC 2019


    Date: Saturday, March 2, 2019 @ 16:36:45
  Author: alad
Revision: 437399

upgpkg: mc 4.8.22-2

mc: support mksh for subshell

Added:
  mc/trunk/mc-mksh-subshell-v2.patch
Modified:
  mc/trunk/PKGBUILD

---------------------------+
 PKGBUILD                  |   18 +++++++---
 mc-mksh-subshell-v2.patch |   74 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 87 insertions(+), 5 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2019-03-02 16:21:52 UTC (rev 437398)
+++ PKGBUILD	2019-03-02 16:36:45 UTC (rev 437399)
@@ -1,12 +1,13 @@
+# Maintainer: Alad Wenter <alad at archlinux.org>
 # Maintainer: schuay <jakob.gruber at gmail.com>
 # Contributor: Daniel J Griffiths <ghost1227 at archlinux.us>
 
 pkgname=mc
 pkgver=4.8.22
-pkgrel=1
-pkgdesc="Midnight Commander is a text based filemanager/shell that emulates Norton Commander"
+pkgrel=2
+pkgdesc="A file manager that emulates Norton Commander"
 arch=('x86_64')
-url="https://www.ibiblio.org/mc/"
+url="https://midnight-commander.org/"
 license=('GPL')
 depends=('e2fsprogs' 'glib2' 'gpm' 'libssh2' 'slang')
 makedepends=('libxt' 'libx11' 'unzip')
@@ -34,9 +35,16 @@
         'etc/mc/mcedit.menu'
         'etc/mc/sfs.ini')
 options=('!emptydirs')
-source=("http://ftp.midnight-commander.org/${pkgname}-${pkgver}.tar.xz")
-sha256sums=('ee7868d7ba0498cf2cccefe107d7efee7f2571098806bba2aed5a159db801318')
+source=("http://ftp.midnight-commander.org/${pkgname}-${pkgver}.tar.xz"
+        "mc-mksh-subshell-v2.patch")
+sha256sums=('ee7868d7ba0498cf2cccefe107d7efee7f2571098806bba2aed5a159db801318'
+            '5147afa3f9dfc00d8b7b36bbb144bcdb78d86301a0f8196686262a9eee41fb96')
 
+prepare() {
+  cd ${pkgname}-${pkgver}
+  patch -p1 < "$srcdir"/mc-mksh-subshell-v2.patch
+}
+
 build() {
   export PYTHON=/usr/bin/python2
 

Added: mc-mksh-subshell-v2.patch
===================================================================
--- mc-mksh-subshell-v2.patch	                        (rev 0)
+++ mc-mksh-subshell-v2.patch	2019-03-02 16:36:45 UTC (rev 437399)
@@ -0,0 +1,74 @@
+# Support mksh for mc subshell
+# https://midnight-commander.org/ticket/3748
+diff -Naur mc-4.8.18.orig/lib/shell.c mc-4.8.18/lib/shell.c
+--- mc-4.8.18.orig/lib/shell.c	2016-09-22 18:24:12.000000000 +0000
++++ mc-4.8.18/lib/shell.c	2017-02-16 13:47:34.933939000 +0000
+@@ -66,6 +66,8 @@
+     /* 3rd choice: look for existing shells supported as MC subshells.  */
+     if (access ("/bin/bash", X_OK) == 0)
+         mc_shell->path = g_strdup ("/bin/bash");
++    else if (access ("/bin/mksh", X_OK) == 0)
++        mc_shell->path = g_strdup ("/bin/mksh");
+     else if (access ("/bin/ash", X_OK) == 0)
+         mc_shell->path = g_strdup ("/bin/ash");
+     else if (access ("/bin/dash", X_OK) == 0)
+@@ -149,6 +153,12 @@
+         mc_shell->type = SHELL_ZSH;
+         mc_shell->name = "zsh";
+     }
++    else if (strstr (mc_shell->path, "/mksh") != NULL
++             || strstr (mc_shell->real_path, "/mksh") != NULL)
++    {
++        mc_shell->type = SHELL_MKSH;
++        mc_shell->name = "mksh";
++    }
+     else if (strstr (mc_shell->path, "/tcsh") != NULL
+              || strstr (mc_shell->real_path, "/tcsh") != NULL)
+     {
+diff -Naur mc-4.8.18.orig/lib/shell.h mc-4.8.18/lib/shell.h
+--- mc-4.8.18.orig/lib/shell.h	2016-03-12 15:45:47.000000000 +0000
++++ mc-4.8.18/lib/shell.h	2017-02-15 21:57:39.000000000 +0000
+@@ -12,6 +12,7 @@
+ typedef enum
+ {
+     SHELL_NONE,
++    SHELL_MKSH,
+     SHELL_SH,
+     SHELL_BASH,
+     SHELL_ASH_BUSYBOX,          /* BusyBox default shell (ash) */
+diff -Naur mc-4.8.18.orig/src/subshell/common.c mc-4.8.18/src/subshell/common.c
+--- mc-4.8.18.orig/src/subshell/common.c	2016-09-22 18:24:12.000000000 +0000
++++ mc-4.8.18/src/subshell/common.c	2017-02-20 18:48:22.681514000 +0000
+@@ -320,6 +320,12 @@
+ 
+         break;
+ 
++    case SHELL_MKSH:
++        init_file = g_strdup (".shrc");
++        putenv_str = g_strconcat ("ENV=", init_file, (char *) NULL);
++        putenv (putenv_str);
++        break;
++
+         /* TODO: Find a way to pass initfile to TCSH, ZSH and FISH */
+     case SHELL_TCSH:
+     case SHELL_ZSH:
+@@ -367,6 +373,7 @@
+ 
+     case SHELL_ASH_BUSYBOX:
+     case SHELL_DASH:
++    case SHELL_MKSH:
+     case SHELL_TCSH:
+     case SHELL_FISH:
+         execl (mc_global.shell->path, mc_global.shell->path, (char *) NULL);
+@@ -801,6 +808,11 @@
+                     "PS1='\\u@\\h:\\w\\$ '\n", subshell_pipe[WRITE]);
+         break;
+ 
++    case SHELL_MKSH:
++        g_snprintf (precmd, buff_size,
++                    "PS1='$(pwd>&%d; kill -STOP $$)'\"$((( USER_ID )) && print '$ ' || print '# ')\"\n", subshell_pipe[WRITE]);
++        break;
++
+     case SHELL_ASH_BUSYBOX:
+         /* BusyBox ash needs a somewhat complicated precmd emulation via PS1, and it is vital
+          * that BB be built with active CONFIG_ASH_EXPAND_PRMT, but this is the default anyway.


More information about the arch-commits mailing list