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

From: [email-masked]
Date: Wed, 09 Dec 2020 15:53:44 +0900

Christopher Baines <[email-masked]> wrote:
> 
> 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.

Thanks for the sanity check.

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

Oh cool. I have run across several packages that `inherit` from their parents
without modifying the description, so just kind of blindly followed suit.
Actually, checking package sources however, it looks like inheriting packages
*do* update synopses and descriptions.

> 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.

Very nice. It required a tad bit of munging, but was very helpful.

> Would you be able to send an updated patch?

Attached!

Note that I opted to `string-append` to lemonbar's synopsis and description.
This doesn't seem to be common, but does it make sense here?

From 321caf9ba721e0c41dda64298093f1aea1b95b63 Mon Sep 17 00:00:00 2001
From: "B. Wilson" <[email-masked]>
Date: Sun, 22 Nov 2020 14:23:48 +0900
Subject: [PATCH] gnu: Add lemonbar-xft.
To: [email-masked]

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

diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 361cecf26f..08b3653c32 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,44 @@ 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
+        (substitute-keyword-arguments (package-arguments lemonbar)
+          ((#:make-flags make-flags)
+           `(append ,make-flags
+              (list (string-append "CFLAGS="
+                      (string-join
+                        (list (string-append
+                                "-I" (assoc-ref %build-inputs "freetype")
+                                     "/include/freetype2")
+                              (string-append
+                                "-D" "VERSION="
+                                     (format #f "'~s'" ,version))))))))))
+      (synopsis (string-append (package-synopsis lemonbar)
+                               "-- with fontconfig support"))
+      (description (string-append (package-description lemonbar)
+                                  "  This is a fork of the @code{lemonbar}
+package that adds fontconfig support, for easier unicode usage.")))))
+
 (define-public xclickroot
   (let ((commit "309fd17174dba4149b5ea66654c6fd02cfcf7c9a")
         (revision "1"))
-- 
2.29.2