diff mbox series

[bug#48224,2/2] gnu: guix: Phases refer to #:system and #:target.

Message ID 20210504133958.11011-2-ludo@gnu.org
State Accepted
Headers show
Series Avoid Bash wrapper in 'guix' package | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

Ludovic Courtès May 4, 2021, 1:39 p.m. UTC
* gnu/packages/package-management.scm (guix)[arguments]: In
'copy-bootstrap-guile' and 'wrap-program' phases, refer to #:system
and #:target instead of unquoting (%current-system)
and (%current-target-system).
---
 gnu/packages/package-management.scm | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

Comments

M May 4, 2021, 7:21 p.m. UTC | #1
> The second patch is stylistic: it avoids missing phases, which I
> find more readable.

I don't see any missing phases. (I read this as ‘The second patch is
stylistic: it avoids making the existence of a phase dependent on
%current-target-system.’)

> -                               (guile  ,@(if (%current-target-system)
> -                                             '((assoc-ref native-inputs "guile"))
> -                                             '((assoc-ref inputs "guile"))))
> +                               (guile  (if target
> +                                           (assoc-ref native-inputs "guile")
> +                                           (assoc-ref inputs "guile")))

Something I tend to do is
  (assoc-ref (or native-inputs inputs) "guile")

Do you have any particular preference?

>                                 (deps   (list gcrypt json sqlite gnutls git
>                                               bs ssh zlib lzlib zstd guile-lib))
> -                               (deps*  ,@(if (%current-target-system)
> -                                             '(deps)
> -                                             '((cons avahi deps))))
> +                               (deps*  (if target deps (cons avahi deps)))

Why not simply
  ;; avahi is #f (not in 'inputs') when cross-compiling.
  ;; Remove it.
  (deps* (delete #f avahi))
?  Then, when guile-avahi becomes cross-compilable at some point, we only
need to adjust 'propagated-inputs' and not anything else.

Also, was this code (deps* ,@(if (%current-target-system) '(deps) ...)) needed in
the first place?  guile2.2-guix inherits its phases from guix, and guile2.2-guix does
not have a guile-zlib or guile-lzlib input.

Greetings,
Maxime.
Ludovic Courtès May 4, 2021, 11:05 p.m. UTC | #2
Hi,

Pushed to ‘master’ with followup commits to address the ‘guile2.2-guix’
issues you mentioned:

  dd3e4fe6e7 gnu: guile2.2-guix: Add missing dependencies.
  2238bd8ddc gnu: guile-lzlib: Add Guile 2.2 variant.
  2a9af22540 gnu: guile-zlib: Add Guile 2.2 variant.
  c3f20a6678 gnu: guix: Phases refer to #:system, #:target, and #:native-inputs.
  e42bfd236e gnu: guix: Avoid Bash wrapper.
  55f7cd701c gnu: guix: Add run-time dependency on Guile-Lib.

I’ll cherry-pick to ‘version-1.3.0’.

‘guile2.2-guix’ fails tests/swh.scm though, because (guix swh) relies on
#:verify-certificate?, which Guile 2.2 didn’t have.  I wonder how
Vagrant addressed that for Debian?

Thanks,
Ludo’.
Vagrant Cascadian May 4, 2021, 11:26 p.m. UTC | #3
On 2021-05-05, Ludovic Courtès wrote:
> Pushed to ‘master’ with followup commits to address the ‘guile2.2-guix’
> issues you mentioned:
>
>   dd3e4fe6e7 gnu: guile2.2-guix: Add missing dependencies.
>   2238bd8ddc gnu: guile-lzlib: Add Guile 2.2 variant.
>   2a9af22540 gnu: guile-zlib: Add Guile 2.2 variant.
>   c3f20a6678 gnu: guix: Phases refer to #:system, #:target, and #:native-inputs.
>   e42bfd236e gnu: guix: Avoid Bash wrapper.
>   55f7cd701c gnu: guix: Add run-time dependency on Guile-Lib.
>
> I’ll cherry-pick to ‘version-1.3.0’.
>
> ‘guile2.2-guix’ fails tests/swh.scm though, because (guix swh) relies on
> #:verify-certificate?, which Guile 2.2 didn’t have.  I wonder how
> Vagrant addressed that for Debian?

Heavy handedly sprinkling (test-skip 1):

  https://salsa.debian.org/debian/guix/-/blob/debian/devel/debian/patches/0029-tests-swh.scm-Disable-tests-the-fail-with-guile-2.2.patch
  https://salsa.debian.org/debian/guix/-/blob/debian/devel/debian/patches/0032-Disable-origin-visit-no-snapshots-test.patch

It would be nice to be able to automatically skip tests using known
guile 3 features when building with guile 2.2; maybe that will require
flagging each test individually or maybe there is a clever way to do
that dynamically?


live well,
  vagrant
Ludovic Courtès May 9, 2021, 9:56 p.m. UTC | #4
Hi,

Vagrant Cascadian <vagrant@reproducible-builds.org> skribis:

>> ‘guile2.2-guix’ fails tests/swh.scm though, because (guix swh) relies on
>> #:verify-certificate?, which Guile 2.2 didn’t have.  I wonder how
>> Vagrant addressed that for Debian?
>
> Heavy handedly sprinkling (test-skip 1):
>
>   https://salsa.debian.org/debian/guix/-/blob/debian/devel/debian/patches/0029-tests-swh.scm-Disable-tests-the-fail-with-guile-2.2.patch
>   https://salsa.debian.org/debian/guix/-/blob/debian/devel/debian/patches/0032-Disable-origin-visit-no-snapshots-test.patch

This patch addresses the problem:

  https://git.savannah.gnu.org/cgit/guix.git/commit/?h=version-1.3.0&id=626e61959089b9c7d1faa5dd6b15f8ed94f551fb

(It’s in 1.3.0rc2.)

HTH!

Ludo’.
Vagrant Cascadian May 13, 2021, 3:45 a.m. UTC | #5
On 2021-05-09, Ludovic Courtès wrote:
> Vagrant Cascadian <vagrant@reproducible-builds.org> skribis:
>>> ‘guile2.2-guix’ fails tests/swh.scm though, because (guix swh) relies on
>>> #:verify-certificate?, which Guile 2.2 didn’t have.  I wonder how
>>> Vagrant addressed that for Debian?
>>
>> Heavy handedly sprinkling (test-skip 1):
>>
>>   https://salsa.debian.org/debian/guix/-/blob/debian/devel/debian/patches/0029-tests-swh.scm-Disable-tests-the-fail-with-guile-2.2.patch
>>   https://salsa.debian.org/debian/guix/-/blob/debian/devel/debian/patches/0032-Disable-origin-visit-no-snapshots-test.patch
>
> This patch addresses the problem:
>
>   https://git.savannah.gnu.org/cgit/guix.git/commit/?h=version-1.3.0&id=626e61959089b9c7d1faa5dd6b15f8ed94f551fb
>
> (It’s in 1.3.0rc2.)

Just tested 1.3.0 with the tests enabled again, and they passed! Thanks!


live well,
  vagrant
diff mbox series

Patch

diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 1a637f9ec8..5c6937adb8 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -261,11 +261,9 @@  $(prefix)/etc/openrc\n")))
                           (intern (assoc-ref inputs "boot-guile") #f)
 
                           ;; On x86_64 some tests need the i686 Guile.
-                          ,@(if (and (not (%current-target-system))
-                                     (string=? (%current-system)
-                                               "x86_64-linux"))
-                                '((intern (assoc-ref inputs "boot-guile/i686") #f))
-                                '())
+                          (when (and (not target)
+                                     (string=? system "x86_64-linux"))
+                            (intern (assoc-ref inputs "boot-guile/i686") #f))
 
                           ;; Copy the bootstrap executables.
                           (for-each (lambda (input)
@@ -299,9 +297,9 @@  $(prefix)/etc/openrc\n")))
                         ;; Make sure the 'guix' command finds GnuTLS,
                         ;; Guile-JSON, and Guile-Git automatically.
                         (let* ((out    (assoc-ref outputs "out"))
-                               (guile  ,@(if (%current-target-system)
-                                             '((assoc-ref native-inputs "guile"))
-                                             '((assoc-ref inputs "guile"))))
+                               (guile  (if target
+                                           (assoc-ref native-inputs "guile")
+                                           (assoc-ref inputs "guile")))
                                (avahi  (assoc-ref inputs "guile-avahi"))
                                (gcrypt (assoc-ref inputs "guile-gcrypt"))
                                (guile-lib   (assoc-ref inputs "guile-lib"))
@@ -318,9 +316,7 @@  $(prefix)/etc/openrc\n")))
                                (locales (assoc-ref inputs "glibc-utf8-locales"))
                                (deps   (list gcrypt json sqlite gnutls git
                                              bs ssh zlib lzlib zstd guile-lib))
-                               (deps*  ,@(if (%current-target-system)
-                                             '(deps)
-                                             '((cons avahi deps))))
+                               (deps*  (if target deps (cons avahi deps)))
                                (effective
                                 (read-line
                                  (open-pipe* OPEN_READ