diff options
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/packages/mc.scm | 75 | ||||
-rw-r--r-- | gnu/packages/patches/mc-fix-ncurses-build.patch | 37 |
2 files changed, 112 insertions, 0 deletions
diff --git a/gnu/packages/mc.scm b/gnu/packages/mc.scm new file mode 100644 index 0000000000..aba14d59ac --- /dev/null +++ b/gnu/packages/mc.scm @@ -0,0 +1,75 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages mc) + #:use-module (guix packages) + #:use-module (guix licenses) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages) + #:use-module (gnu packages aspell) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages glib) + #:use-module (gnu packages ssh) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages check) + #:use-module (gnu packages file) + #:use-module (gnu packages perl)) + +(define-public mc + (package + (name "mc") + (version "4.8.11") + (source + (origin + (method url-fetch) + (uri (string-append "http://ftp.midnight-commander.org/mc-" + version ".tar.xz")) + (sha256 + (base32 + "0flrw5pq2mg2d39bh6dllndhpcfppjza6g70p4ry2wcx9y2flxqq")) + (patches (list (search-patch "mc-fix-ncurses-build.patch"))))) + (build-system gnu-build-system) + (native-inputs `(("pkg-config" ,pkg-config) + ("file" ,file) + ("perl" ,perl))) + (inputs `(("aspell" ,aspell) + ("ncurses" ,ncurses) + ("libssh2" ,libssh2) + ("glib" ,glib) + ("check" ,check))) + (arguments + `(#:configure-flags + '("--with-screen=ncurses" "--enable-aspell") + #:phases + (alist-cons-before + 'configure 'patch-configure + (lambda _ + (substitute* "configure" + (("/usr/bin/file") (which "file")))) + %standard-phases))) + (home-page "http://www.midnight-commander.org") + (synopsis "Graphical file manager") + (description + "GNU Midnight Commander is a command-line file manager laid out in a +common two-pane format. In addition to standard file management tasks such as +copying and moving, Midnight Commander also supports viewing the contents of +RPM package files and other archives and managing files on other computers via +FTP or FISH. It also includes a powerful text editor for opening text +files.") + (license gpl2))) diff --git a/gnu/packages/patches/mc-fix-ncurses-build.patch b/gnu/packages/patches/mc-fix-ncurses-build.patch new file mode 100644 index 0000000000..c583c92e10 --- /dev/null +++ b/gnu/packages/patches/mc-fix-ncurses-build.patch @@ -0,0 +1,37 @@ +Patch cherry-picked from resolution of +http://www.midnight-commander.org/ticket/3114 + +--- a/lib/tty/key.c (revision 0ed4a91d7df4e50512defd2e0734ecab7c9da07f) ++++ b/lib/tty/key.c (revision d870aedad1907773f8586fe818a89e6b5178b849) +@@ -1947,4 +1947,5 @@ + { + int c; ++ int flag = 0; /* Return value from select */ + #ifdef HAVE_LIBGPM + static struct Gpm_Event ev; /* Mouse event */ +@@ -1979,5 +1980,4 @@ + { + int nfd; +- static int flag = 0; /* Return value from select */ + fd_set select_set; + +--- a/lib/tty/tty-ncurses.c (revision bb65b467900ea9eb1f7867c059fd26fac86c747c) ++++ b/lib/tty/tty-ncurses.c (revision d870aedad1907773f8586fe818a89e6b5178b849) +@@ -50,4 +50,5 @@ + #include "tty.h" + #include "color-internal.h" ++#include "key.h" + #include "mouse.h" + #include "win.h" +@@ -531,4 +532,5 @@ + { + int res; ++ unsigned char str[UTF8_CHAR_LEN + 1]; + + res = g_unichar_to_utf8 (c, (char *) str); +@@ -541,5 +543,4 @@ + else + { +- unsigned char str[UTF8_CHAR_LEN + 1]; + const char *s; + |