gnu: mc: Fix cross-(mis)compilation & substitutions.
* gnu/packages/mc.scm (mc)[arguments]: Set PERL_FOR_BUILD. Rename 'patch-FHS-file-names phase to 'patch-file-names. Properly distinguish build-time from run-time commands. Reorganise to catch more occurrences. [inputs]: Add bash-minimal and perl.
This commit is contained in:
parent
bce8235ebe
commit
a5f76d482f
1 changed files with 33 additions and 19 deletions
|
@ -2,7 +2,7 @@
|
||||||
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
|
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
|
||||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
|
;;; 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.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -21,6 +21,7 @@
|
||||||
|
|
||||||
(define-module (gnu packages mc)
|
(define-module (gnu packages mc)
|
||||||
#:use-module (gnu packages aspell)
|
#:use-module (gnu packages aspell)
|
||||||
|
#:use-module (gnu packages bash)
|
||||||
#:use-module (gnu packages check)
|
#:use-module (gnu packages check)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (gnu packages glib)
|
#:use-module (gnu packages glib)
|
||||||
|
@ -52,28 +53,39 @@
|
||||||
(list
|
(list
|
||||||
#:configure-flags
|
#:configure-flags
|
||||||
#~(list "--with-screen=ncurses"
|
#~(list "--with-screen=ncurses"
|
||||||
"--enable-aspell")
|
"--enable-aspell"
|
||||||
|
(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
|
#:phases
|
||||||
#~(modify-phases %standard-phases
|
#~(modify-phases %standard-phases
|
||||||
(add-after 'patch-source-shebangs 'patch-FHS-file-names
|
(add-after 'patch-source-shebangs 'patch-file-names
|
||||||
(lambda _
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
;; Patch files to refer to executables in the store or $PATH.
|
;; The following commands are all invoked at run time.
|
||||||
(substitute* "misc/mcedit.menu.in"
|
(substitute*
|
||||||
(("#! /bin/sh") (string-append "#!" (which "sh")))
|
(list "lib/utilunix.c"
|
||||||
(("/bin/bash") (which "bash")))
|
"src/filemanager/ext.c"
|
||||||
(substitute* (list "lib/utilunix.c"
|
"src/usermenu.c"
|
||||||
"src/usermenu.c"
|
"src/vfs/fish/fish.c"
|
||||||
"src/vfs/fish/fish.c"
|
;; This file hard-codes other shells, but they're never
|
||||||
"tests/src/vfs/extfs/helpers-list/Makefile.in")
|
;; tried after mc's first choice (bash) is found.
|
||||||
(("/bin/sh") (which "sh")))
|
"lib/shell.c")
|
||||||
|
(("/bin/(ba|)sh" file)
|
||||||
|
(search-input-file inputs file)))
|
||||||
(substitute* "src/filemanager/ext.c"
|
(substitute* "src/filemanager/ext.c"
|
||||||
(("/bin/rm") "rm")
|
;; Look up in $PATH at run time, rather than hard-coding now.
|
||||||
(("/bin/sh") (which "sh")))
|
(("/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)))
|
||||||
|
|
||||||
;; There are other /bin/<shell>s hard-coded in this file, but they
|
;; The following commands are all invoked at build time.
|
||||||
;; are never tried after bash (mc's first choice) is found.
|
(substitute* "tests/src/vfs/extfs/helpers-list/Makefile.in"
|
||||||
(substitute* "lib/shell.c"
|
(("/bin/sh")
|
||||||
(("/bin/bash") (which "bash")))))
|
(which "sh")))))
|
||||||
(add-before 'check 'fix-tests
|
(add-before 'check 'fix-tests
|
||||||
(lambda _
|
(lambda _
|
||||||
;; Don't expect a UID or GID of ‘0’ in the build environment.
|
;; Don't expect a UID or GID of ‘0’ in the build environment.
|
||||||
|
@ -88,11 +100,13 @@
|
||||||
(("usr/bin") "/")))))))
|
(("usr/bin") "/")))))))
|
||||||
(native-inputs (list perl pkg-config))
|
(native-inputs (list perl pkg-config))
|
||||||
(inputs (list aspell
|
(inputs (list aspell
|
||||||
|
bash-minimal
|
||||||
check
|
check
|
||||||
glib
|
glib
|
||||||
gpm
|
gpm
|
||||||
libssh2
|
libssh2
|
||||||
ncurses
|
ncurses
|
||||||
|
perl
|
||||||
unzip))
|
unzip))
|
||||||
(home-page "https://www.midnight-commander.org")
|
(home-page "https://www.midnight-commander.org")
|
||||||
(properties
|
(properties
|
||||||
|
|
Reference in a new issue