Subject: bug#40887: No substitutes for libreoffice / vigra

From: Maxim Cournoyer <[email-masked]>
Date: Tue, 12 Jan 2021 21:32:04 -0500

Hi Leo!

Leo Famulari <[email-masked]> writes:

> On Sun, Jan 10, 2021 at 11:56:23PM -0500, Maxim Cournoyer wrote:
>> While there are currently substitutes available for both vigra and
>> libreoffice, I've raised the max-silent-time timeout value from 1 h to 2
>> h in a25896bb7576c8232acc7a3fd4da0b1cba89569b.  Hopefully that'll help
>> keeping the problem at bay.
>
> Does Cuirass honor this property? In the past, the timeout and
> max-silent-time properties were ignored by Cuirass:
>
> https://lists.gnu.org/archive/html/guix-devel/2020-03/msg00209.html

Thanks for pointing me to that.  I wasn't aware Cuirass didn't honor it,
compared to Hydra.  I grepped the code base and found in (guix ci):

--8<---------------cut here---------------start------------->8---
(define* (package->alist store package system
                         #:optional (package-derivation package-derivation))
  "Convert PACKAGE to an alist suitable for Hydra."
  (parameterize ((%graft? #f))
    (let ((drv (package-derivation store package system
                                   #:graft? #f)))
      `((derivation . ,(derivation-file-name drv))
        (log . ,(log-file store (derivation-file-name drv)))
        (outputs . ,(filter-map (lambda (res)
                                  (match res
                                    ((name . path)
                                     `(,name . ,path))))
                                (derivation->output-paths drv)))
        (nix-name . ,(derivation-name drv))
        (system . ,(derivation-system drv))
        (description . ,(package-synopsis package))
        (long-description . ,(package-description package))

        ;; XXX: Hydra ignores licenses that are not a <license> structure or a
        ;; list thereof.
        (license . ,(let loop ((license (package-license package)))
                      (match license
                        ((? license?)
                         (license-name license))
                        ((lst ...)
                         (map loop license)))))

        (home-page . ,(package-home-page package))
        (maintainers . ("[email-masked]"))
        (max-silent-time . ,(or (assoc-ref (package-properties package)
                                           'max-silent-time)
                                3600))              ;1 hour by default
        (timeout . ,(or (assoc-ref (package-properties package) 'timeout)
                        72000))))))                  ;20 hours by default
--8<---------------cut here---------------end--------------->8---

which led me to believe it was honored.  Perhaps the question of having
Cuirass do per package session should be revisited; it seems useful to
be able to configure this setting per-package rather than globally.

Thank you!

Maxim