aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/mc.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/mc.scm')
-rw-r--r--gnu/packages/mc.scm100
1 files changed, 57 insertions, 43 deletions
diff --git a/gnu/packages/mc.scm b/gnu/packages/mc.scm
index 141295ed90..994f89f524 100644
--- a/gnu/packages/mc.scm
+++ b/gnu/packages/mc.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
-;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021, 2023 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -21,6 +21,7 @@
(define-module (gnu packages mc)
#:use-module (gnu packages aspell)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages glib)
@@ -32,69 +33,82 @@
#:use-module (gnu packages)
#:use-module (guix build-system gnu)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix licenses)
#:use-module (guix packages))
(define-public mc
(package
(name "mc")
- (version "4.8.29")
+ (version "4.8.30")
(source
(origin
(method url-fetch)
(uri (string-append "https://ftp.osuosl.org/pub/midnightcommander/mc-"
version ".tar.xz"))
(sha256
- (base32 "1m0aai4paxpcf3lw1dd94zyxc7wd0ysmfwpibg50q62q9yws7n01"))))
+ (base32 "1py7jm620lsas7rcv5j69608gdshmp25d9gx958hr5sb2jr3rg2y"))))
(build-system gnu-build-system)
+ (arguments
+ (list
+ #:configure-flags
+ #~(list "--with-screen=ncurses"
+ "--enable-aspell"
+ "--disable-configure-args" ; don't keep superfluous references
+ (string-append "PERL_FOR_BUILD=" ; to build .hlp files
+ #$(this-package-native-input "perl") "/bin/perl")
+ (string-append "PERL=" ; for run-time helpers, mainly VFS
+ #$(this-package-input "perl") "/bin/perl"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'patch-source-shebangs 'patch-file-names
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; The following commands are all invoked at run time.
+ (substitute*
+ (list "lib/utilunix.c"
+ "src/filemanager/ext.c"
+ "src/usermenu.c"
+ "src/vfs/fish/fish.c"
+ ;; This file hard-codes other shells, but they're never
+ ;; tried after mc's first choice (bash) is found.
+ "lib/shell.c")
+ (("/bin/(ba|)sh" file)
+ (search-input-file inputs file)))
+ (substitute* "src/filemanager/ext.c"
+ ;; Look up in $PATH at run time, rather than hard-coding now.
+ (("/bin/(rm)" command)
+ command))
+ (substitute* "misc/mcedit.menu.in"
+ ;; These are script templates. Don't embed store file names.
+ (("#! /bin/([[:alnum:]]*)" _ file)
+ (string-append "#!/usr/bin/env " file)))
+
+ ;; The following commands are all invoked at build time.
+ (substitute* "tests/src/vfs/extfs/helpers-list/Makefile.in"
+ (("/bin/sh")
+ (which "sh")))))
+ (add-before 'check 'fix-tests
+ (lambda _
+ ;; Don't expect a UID or GID of ‘0’ in the build environment.
+ (with-directory-excursion "tests/src/vfs/extfs/helpers-list/data"
+ (substitute* (list "rpm.custom.output"
+ "rpm.glib.output")
+ ((" 0 0") "<<uid>> <<gid>>")))
+ ;; XXX ERROR:mc_realpath.c:99:realpath_test: assertion failed
+ ;; (resolved_path == data->expected_string): ("" == "/usr/bin")
+ (substitute* "tests/lib/mc_realpath.c"
+ (("/usr/bin") "/")
+ (("usr/bin") "/")))))))
(native-inputs (list perl pkg-config))
(inputs (list aspell
+ bash-minimal
check
glib
gpm
libssh2
ncurses
+ perl
unzip))
- (arguments
- `(#:configure-flags
- '("--with-screen=ncurses" "--enable-aspell")
- #:phases
- (modify-phases %standard-phases
- (add-after 'patch-source-shebangs 'patch-FHS-file-names
- (lambda _
- ;; Patch files to refer to executables in the store or $PATH.
- (substitute* "misc/mcedit.menu.in"
- (("#! /bin/sh") (string-append "#!" (which "sh")))
- (("/bin/bash") (which "bash")))
- (substitute* "misc/ext.d/misc.sh.in"
- (("/bin/cat") "cat"))
- (substitute* (list "lib/utilunix.c"
- "src/usermenu.c"
- "src/vfs/fish/fish.c"
- "tests/src/vfs/extfs/helpers-list/Makefile.in")
- (("/bin/sh") (which "sh")))
- (substitute* "src/filemanager/ext.c"
- (("/bin/rm") "rm")
- (("/bin/sh") (which "sh")))
-
- ;; There are other /bin/<shell>s hard-coded in this file, but they
- ;; are never tried after bash (mc's first choice) is found.
- (substitute* "lib/shell.c"
- (("/bin/bash") (which "bash")))
- #t))
- (add-before 'check 'fix-tests
- (lambda _
- ;; Don't expect a UID or GID of ‘0’ in the build environment.
- (with-directory-excursion "tests/src/vfs/extfs/helpers-list/data"
- (substitute* (list "rpm.custom.output"
- "rpm.glib.output")
- ((" 0 0") "<<uid>> <<gid>>")))
- ;; XXX ERROR:mc_realpath.c:99:realpath_test: assertion failed
- ;; (resolved_path == data->expected_string): ("" == "/usr/bin")
- (substitute* "tests/lib/mc_realpath.c"
- (("/usr/bin") "/")
- (("usr/bin") "/"))
- #t)))))
(home-page "https://www.midnight-commander.org")
(properties
`((release-monitoring-url . "https://ftp.osuosl.org/pub/midnightcommander/")))