[bug#68048] gnu: cdparanoia: Fix cross-compiling.
Commit Message
* gnu/packages/cdrom.scm (cdparanoia)
[native-inputs]: when cross compiling to riscv64-linux-gnu, add config.
[arguments]: when target riscv64-linux-gnu, add update-config-scripts phase.
<#:configure-flags>: when cross-compiling, use `(assoc-ref %outputs "out")'.
Change-Id: I442c668c3d52c241f0d405f51ea8d995bfefd3fd
---
gnu/packages/cdrom.scm | 28 ++++++++++++++++++++++++++--
1 file changed, 26 insertions(+), 2 deletions(-)
base-commit: 0d13d095420861022e68e87ceebd5e037e12a8b3
Comments
Hello,
When cross-compiling for aarch64-linux-gnu, I have the following error:
--8<---------------cut here---------------start------------->8---
configure: error: /gnu/store/rib9g2ig1xf3kclyl076w28parmncg4k-bash-minimal-5.1.16/bin/bash ./config.sub aarch64-linux-gnu failed
error: in phase 'configure': uncaught exception:
%exception #<&invoke-error program: "/gnu/store/rib9g2ig1xf3kclyl076w28parmncg4k-bash-minimal-5.1.16/bin/bash" arguments: ("./configure" "CC_FOR_BUILD=gcc" "CONFIG_SHELL=/gnu/store/rib9g2ig1xf3kclyl076w28parmncg4k-bash-minimal-5.1.16/bin/bash" "SHELL=/gnu/store/rib9g2ig1xf3kclyl076w28parmncg4k-bash-minimal-5.1.16/bin/bash" "--prefix=/gnu/store/qn2iwmdv7k5105qds7vczrhyyp2587ic-cdparanoia-10.2" "--enable-fast-install" "--build=x86_64-unknown-linux-gnu" "--host=aarch64-linux-gnu" "LDFLAGS=-Wl,-rpath=/gnu/store/qn2iwmdv7k5105qds7vczrhyyp2587ic-cdparanoia-10.2/lib") exit-status: 1 term-signal: #f stop-signal: #f>
phase `configure' failed after 0.3 seconds
command "/gnu/store/rib9g2ig1xf3kclyl076w28parmncg4k-bash-minimal-5.1.16/bin/bash" "./configure" "CC_FOR_BUILD=gcc" "CONFIG_SHELL=/gnu/store/rib9g2ig1xf3kclyl076w28parmncg4k-bash-minimal-5.1.16/bin/bash" "SHELL=/gnu/store/rib9g2ig1xf3kclyl076w28parmncg4k-bash-minimal-5.1.16/bin/bash" "--prefix=/gnu/store/qn2iwmdv7k5105qds7vczrhyyp2587ic-cdparanoia-10.2" "--enable-fast-install" "--build=x86_64-unknown-linux-gnu" "--host=aarch64-linux-gnu" "LDFLAGS=-Wl,-rpath=/gnu/store/qn2iwmdv7k5105qds7vczrhyyp2587ic-cdparanoia-10.2/lib" failed with status 1
builder for `/gnu/store/w02ly1dkxf4n8ndfccmvny9nawir4pjs-cdparanoia-10.2.drv' failed with exit code 1
build of /gnu/store/w02ly1dkxf4n8ndfccmvny9nawir4pjs-cdparanoia-10.2.drv failed
--8<---------------cut here---------------end--------------->8---
> + ,@(if (and (target-riscv64?)
> + (%current-target-system))
This condition may need to be extended?
Thanks,
Mathieu
@@ -14,6 +14,7 @@
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
+;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -233,10 +234,33 @@ (define-public cdparanoia
`(#:tests? #f ; there is no check target
#:parallel-build? #f ;randomly fails to link
#:configure-flags ; Add $libdir to the RUNPATH of all the executables.
- (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))
+ (list (string-append "LDFLAGS=-Wl,-rpath="
+ ,(if (%current-target-system)
+ '(assoc-ref %outputs "out")
+ '%output)
+ "/lib"))
;; Building in parallel is flaky: “ld: […]/cachetest.c:393: undefined
;; reference to `paranoia_free'”.
- #:parallel-build? #f))
+ #:parallel-build? #f
+ ,@(if (and (target-riscv64?)
+ (%current-target-system))
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'update-config-scripts
+ (lambda* (#:key inputs native-inputs #:allow-other-keys)
+ ;; Replace outdated config.guess and config.sub.
+ (for-each (lambda (file)
+ (install-file
+ (search-input-file
+ (or native-inputs inputs)
+ (string-append "/bin/" file)) "."))
+ '("config.guess" "config.sub"))))))
+ '())))
+ (native-inputs
+ (if (and (target-riscv64?)
+ (%current-target-system))
+ (list config)
+ '()))
(home-page "https://www.xiph.org/paranoia/")
(synopsis "Audio CD reading utility")
(description "Cdparanoia retrieves audio tracks from CDDA capable CDROM