From b16a10d914a52ea685a6ff0326f4b4e35c7d2df4 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 25 Mar 2014 15:57:28 -0500 Subject: [PATCH 2/2] gnu: Add mc * gnu/packages/mc.scm: New file * gnu/packages/patches/mc-fix-ncurses-build.patch: New patch * gnu-system.am (GNU_SYSTEM_MODULES): Add mc.scm. (dist_patch_DATA): Add patch --- gnu-system.am | 2 + gnu/packages/mc.scm | 77 +++++++++++++++++++++++ gnu/packages/patches/mc-fix-ncurses-build.patch | 37 +++++++++++ 3 files changed, 116 insertions(+) create mode 100644 gnu/packages/mc.scm create mode 100644 gnu/packages/patches/mc-fix-ncurses-build.patch diff --git a/gnu-system.am b/gnu-system.am index bfa0516..1bfb647 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -146,6 +146,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/mail.scm \ gnu/packages/make-bootstrap.scm \ gnu/packages/maths.scm \ + gnu/packages/mc.scm \ gnu/packages/messaging.scm \ gnu/packages/mit-krb5.scm \ gnu/packages/moe.scm \ @@ -305,6 +306,7 @@ dist_patch_DATA = \ gnu/packages/patches/m4-gets-undeclared.patch \ gnu/packages/patches/m4-readlink-EINVAL.patch \ gnu/packages/patches/make-impure-dirs.patch \ + gnu/packages/patches/mc-fix-ncurses-build.patch \ gnu/packages/patches/mcron-install.patch \ gnu/packages/patches/mit-krb5-init-fix.patch \ gnu/packages/patches/mpc123-initialize-ao.patch \ diff --git a/gnu/packages/mc.scm b/gnu/packages/mc.scm new file mode 100644 index 0000000..3031057 --- /dev/null +++ b/gnu/packages/mc.scm @@ -0,0 +1,77 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Eric Bavier +;;; +;;; 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 . + +(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-replace + 'configure + (lambda* (#:key #:allow-other-keys #:rest args) + (let ((configure (assoc-ref %standard-phases 'configure))) + (substitute* "configure" + (("/usr/bin/file") (which "file"))) + (apply configure args))) + %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 0000000..c583c92 --- /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; + -- 1.7.9.5