Subject: Re: [bug#44789] gnu: Add lemonbar-xft.

From: Christopher Baines <[email-masked]>
Date: Sat, 28 Nov 2020 16:46:09 +0000

elaexuotee--- via Guix-patches via <[email-masked]> writes:

> This adds a fork of the `lemonbar' package that supports fontconfig.

I don't know anything about lemonbar, but this sounds OK in principle.

gnu/packages/wm.scm(lemonbar-xft): New variable.
---
 gnu/packages/wm.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 361cecf26f..7d9b591545 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -37,6 +37,7 @@ 
 ;;; Copyright © 2020 Marcin Karpezo <[email-masked]>
 ;;; Copyright © 2020 EuAndreh <[email-masked]>
 ;;; Copyright © 2020 Michael Rohleder <[email-masked]>
+;;; Copyright © 2020 B. Wilson <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1931,6 +1932,40 @@  formatting, RandR and Xinerama support and EWMH compliance without
 wasting your precious memory.")
       (license license:x11))))
 
+(define-public lemonbar-xft
+  ;; Upstream v2.0 tag is several years behind HEAD
+  (let ((commit "481e12363e2a0fe0ddd2176a8e003392be90ed02"))
+    (package
+      (inherit lemonbar)
+      (name "lemonbar-xft")
+      (version (string-append "2.0." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/drscream/lemonbar-xft")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0588g37h18lv50h7w8vfbwhvc3iajh7sdr53848spaif99nh3mh4"))))
+      (inputs `(("freetype" ,freetype)
+                ("libxft" ,libxft)
+                ("libx11" ,libx11)
+                ,@(package-inputs lemonbar)))
+      (arguments
+       `(#:tests? #f                    ;no test suite
+         #:make-flags
+         (list
+          (string-append "CC=" ,(cc-for-target))
+          (string-append "PREFIX=" %output)
+          (string-append "CFLAGS="
+                         (string-join
+                          (list (string-append "-I" (assoc-ref %build-inputs "freetype")
+                                               "/include/freetype2")
+                                (string-append "-D" "VERSION="
+                                               (format #f "'~s'" ,version))))))
+         #:phases (modify-phases %standard-phases (delete 'configure)))))))

So, it would be nice to change the description (and maybe synopsis) to
set out how this package is different from lemonbar.

Also, regarding the arguments above, I think you can reduce the
duplication with the lemonbar package by doing something like:

  (arguments
   (substitute-keyword-arguments (package-arguments lemonbar)
     ((#:make-flags make-flags)
      (append make-flags
              (string-append
               "CFLAGS="
               (string-join
                (list (string-append "-I" (assoc-ref %build-inputs "freetype")
                                     "/include/freetype2")
                      (string-append "-D" "VERSION="
                                     (format #f "'~s'" ,version)))))))))

I've only just written this in this email, so I'm not sure if it works,
but I think it's close.

Would you be able to send an updated patch?

Thanks,

Chris