Message ID | b19763fb-6671-4410-77c8-aa6989a55805@gmail.com |
---|---|
State | New |
Headers | show |
Series | [bug#54599] gnu: libdaemon: fix build for riscv64 | expand |
Actually, this fixex cross compiling using --target=riscv64-linux-gnu, on real hardware it works without the patch.
Hello, Thanks for this patch! Just a few comments: fesoj000 <fesoj000@gmail.com> writes: > * gnu/packages/libdaemon.scm: (native-inputs): Add check for riscv64 to > include config > * gnu/packages/libdaemon.scm: (arguments): Add check for riscv64 to add > update-config.sub build step In the changelog, the name of the package goes in the parentheses, and the package attribute being changed in square brackets. For example: * gnu/packages/libdaemon.scm (libdaemon)[native-inputs]: Add check for riscv64 to include config. Also the sentences should have a period at the end. > --- > gnu/packages/libdaemon.scm | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/gnu/packages/libdaemon.scm b/gnu/packages/libdaemon.scm > index 9dc851e823..e91b651e5a 100644 > --- a/gnu/packages/libdaemon.scm > +++ b/gnu/packages/libdaemon.scm > @@ -49,7 +49,8 @@ (define-public libdaemon > (file-name (string-append name "-" version ".tar.gz")))) > (build-system gnu-build-system) > (native-inputs > - (if (and=> (%current-target-system) target-aarch64?) > + (if (or (target-aarch64?) > + (target-riscv64?)) > `(("config" ,config)) ; for config.sub > '())) > (arguments > @@ -66,7 +67,8 @@ (define-public libdaemon > ;; Hurd's console client. > "--localstatedir=/var")) > '()) > - ,@(if (and=> (%current-target-system) target-aarch64?) > + ,@(if (or (target-aarch64?) > + (target-riscv64?)) > `(#:phases > (modify-phases %standard-phases > (add-before 'configure 'update-config.sub Before the patch, ‘native-inputs’ and ‘arguments’ were only changed when cross-compiling on aarch64. After your patch, they are changed even for native builds. Functionally, it's not a problem but this changes the package's derivation. Since the package has many dependents, it causes a lot of other packages to be rebuilt: popigai: guix refresh --list-dependent libdaemon Building the following 1496 packages would ensure 3175 dependent packages are rebuilt: … Because of this, the patch can't be applied on the master branch. It would have to go to core-updates. So for the master branch, you need to keep the property of only making changes to ‘native-inputs’ and ‘arguments’ when cross-compiling. But I also suggest sending an additional patch for the core-updates branch which unconditionally updates config.sub, regardless of the architecture and regardless of whether it's a native compilation or a cross one. This way, the next time Guix is ported to a new architecture we won't need to update this package again.
diff --git a/gnu/packages/libdaemon.scm b/gnu/packages/libdaemon.scm index 9dc851e823..e91b651e5a 100644 --- a/gnu/packages/libdaemon.scm +++ b/gnu/packages/libdaemon.scm @@ -49,7 +49,8 @@ (define-public libdaemon (file-name (string-append name "-" version ".tar.gz")))) (build-system gnu-build-system) (native-inputs - (if (and=> (%current-target-system) target-aarch64?) + (if (or (target-aarch64?) + (target-riscv64?)) `(("config" ,config)) ; for config.sub '())) (arguments @@ -66,7 +67,8 @@ (define-public libdaemon ;; Hurd's console client. "--localstatedir=/var")) '()) - ,@(if (and=> (%current-target-system) target-aarch64?) + ,@(if (or (target-aarch64?) + (target-riscv64?)) `(#:phases (modify-phases %standard-phases (add-before 'configure 'update-config.sub