Subject: Re: [bug#74702] [PATCH 4/4] gnu: Add komikku-servers.

From: Liliana Marie Prikler <[email-masked]>
Date: Tue, 10 Dec 2024 20:54:04 +0100

Am Montag, dem 09.12.2024 um 09:37 +0900 schrieb Maxim Cournoyer:
> Hello,
> 
> Liliana Marie Prikler <[email-masked]> writes:
> 
> > * gnu/packages/gnome.scm (komikku-servers): New variable.
> > ---
> >  gnu/packages/gnome.scm | 36 ++++++++++++++++++++++++++++++++++++
> >  1 file changed, 36 insertions(+)
> > 
> > diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
> > index ae0e1f4783..3c89ab4054 100644
> > --- a/gnu/packages/gnome.scm
> > +++ b/gnu/packages/gnome.scm
> > @@ -233,6 +233,7 @@ (define-module (gnu packages gnome)
> >    #:use-module (gnu artwork)
> >    #:use-module (guix build-system cargo)
> >    #:use-module (guix build-system cmake)
> > +  #:use-module (guix build-system copy)
> >    #:use-module (guix build-system glib-or-gtk)
> >    #:use-module (guix build-system gnu)
> >    #:use-module (guix build-system meson)
> > @@ -13647,6 +13648,41 @@ (define-public komikku
> >                                  (variable "KOMIKKU_SERVERS_PATH")
> >                                  (files
> > '("lib/komikku/servers")))))))
> >  
> > +(define-public komikku-servers
> > +  (package
> > +    (name "komikku-servers")
> > +    (version "1.59.0")                  ; latest version that
> > works with 1.57
> 
> Per our referenced Scheme coding style [0] in (info '(guix)
> Formatting Code'), the space between ';' and the comment for inline
> comments can be omitted (see the '** Comments' section).
> 
> [0]  https://mumble.net/~campbell/scheme/style.txt
I read this 'can' as optional and very much prefer my space :)

> > +    (source
> > +     (origin
> > +       (method git-fetch)
> > +       (uri (git-reference
> > +             (url "https://codeberg.org/valos/Komikku/")
> > +             (commit (string-append "v" version))))
> > +       (file-name (git-file-name name version))
> > +       (sha256
> > +        (base32
> > +        
> > "0sfqmqcpdl3bsbs0wxl4jwvd7wpgigkvvasy1niz6qm2vnp35gzq"))))
> > +    (build-system copy-build-system)
> > +    (arguments
> > +     (list
> > +      #:install-plan
> > +      #~'(("komikku/servers" "lib/komikku/servers"))
> > +      #:modules '((guix build copy-build-system)
> > +                  (guix build utils)
> > +                  (ice-9 ftw))
> > +      #:phases
> > +      #~(modify-phases %standard-phases
> > +          (add-after 'unpack 'delete-conflicting-files
> > +            (lambda _
> > +              (with-directory-excursion "komikku/servers"
> > +                (for-each delete-file
> > +                          (scandir "."
> > +                                   (lambda (f) (string-suffix?
> > ".py" f))))))))))
> 
> Shouldn't these Python files be byte-compiled?  You could perhaps use
> the compile-bytecode phase from the pyproject-build-system to
> accomplish that.
I can't use it verbatim, since the install directory is different¹, but
I can copy it's logic, sure.  Will do so for v2.

Cheers

¹ Komikku uses a custom module loader I once wrote that was upstreamed
some time ago, which means we can control the search path freely.  I
chose a directory that does not rely on Python to avoid any potential
conflict here.