Message ID | tencent_9E72DB12A95A97CD8254E9ACB2BF641D9907@qq.com |
---|---|
State | New |
Headers | show |
Series | [bug#62432] gnu: libicns: fix riscv64 cross-build. | expand |
Z572 <873216071@qq.com> writes: > * gnu/packages/image.scm (libicns): fix riscv64 cross-build. Hello, this message is already in the commit message title, So I think there is no need to repeat it here. Also look in the guix commit log, I think it should be 'gnu: libicns: Fix cross-compilation for riscv64'. > + (arguments (if (target-riscv64?) > + (list #:phases > + #~(modify-phases %standard-phases > + (add-after 'unpack 'update-config-scripts > + (lambda* (#:key native-inputs inputs #:allow-other-keys) > + (for-each (lambda (file) > + (install-file > + (search-input-file > + (or native-inputs inputs) > + (string-append "/bin/" file)) ".")) > + '("config.guess" "config.sub"))))) ) > + '())) > + (native-inputs > + (if (target-riscv64?) > + (list config) > + '())) This updates 'config.guess' and 'config.sub' in a package to fix cross-compilation for riscv64 seems like a common practice (eg: also in your patches #62433, #62544). How about make a procedure for it to save some typing? It could be: ``` (define (autotools-config-updated-package p) "Return package P with @command{config.guess} and @command{config.sub} updated by the @code{config} package" (package (inherit p) ...)) ``` Which could go into (guix transformations).
On Mon, Apr 03, 2023 at 07:04:18PM +0800, 宋文武 via Guix-patches via wrote: > Z572 <873216071@qq.com> writes: > > > * gnu/packages/image.scm (libicns): fix riscv64 cross-build. > > Hello, this message is already in the commit message title, So I think > there is no need to repeat it here. Also look in the guix commit log, > I think it should be 'gnu: libicns: Fix cross-compilation for riscv64'. > > > > + (arguments (if (target-riscv64?) > > + (list #:phases > > + #~(modify-phases %standard-phases > > + (add-after 'unpack 'update-config-scripts > > + (lambda* (#:key native-inputs inputs #:allow-other-keys) > > + (for-each (lambda (file) > > + (install-file > > + (search-input-file > > + (or native-inputs inputs) > > + (string-append "/bin/" file)) ".")) > > + '("config.guess" "config.sub"))))) ) > > + '())) > > + (native-inputs > > + (if (target-riscv64?) > > + (list config) > > + '())) > > This updates 'config.guess' and 'config.sub' in a package to fix > cross-compilation for riscv64 seems like a common practice (eg: also in > your patches #62433, #62544). How about make a procedure for it to > save some typing? It could be: > > ``` > (define (autotools-config-updated-package p) > "Return package P with @command{config.guess} and > @command{config.sub} updated by the @code{config} package" > (package (inherit p) > ...)) > ``` > > Which could go into (guix transformations). I would certainly like something like this. I suppose it could be made more general by using find-file to find all occurrences of config.guess and config.sub and replacing those. In the meantime I've pushed this patch after replacing (target-riscv64?) with (and (target-riscv64?) (%current-target-system)).
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 0da990e63a..81cdcd778e 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -549,6 +549,22 @@ (define-public libicns (base32 "1hjm8lwap7bjyyxsyi94fh5817xzqhk4kb5y0b7mb6675xw10prk")))) (build-system gnu-build-system) + (arguments (if (target-riscv64?) + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'update-config-scripts + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (for-each (lambda (file) + (install-file + (search-input-file + (or native-inputs inputs) + (string-append "/bin/" file)) ".")) + '("config.guess" "config.sub"))))) ) + '())) + (native-inputs + (if (target-riscv64?) + (list config) + '())) (inputs (list libpng jasper)) (home-page "https://icns.sourceforge.io/")