diff options
Diffstat (limited to 'gnu/packages/mc.scm')
-rw-r--r-- | gnu/packages/mc.scm | 100 |
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/"))) |