Subject: [bug#56087] [PATCH] gnu: suckless: add farbfeld and propagate input to sent

From: Gabriel Wicki <[email-masked]>
Date: Tue, 21 Jun 2022 02:50:47 +0200

Hi Maxime

Thanks for your quick reply!  Here is the revised patchset.  I've added
a patch to use `guix style`'s output.

Greetings,
gabriel

>From 15e88ce3cb4ab51d6fe9ad9ae3ab15a435fb4db8 Mon Sep 17 00:00:00 2001
From: Gabriel Wicki <[email-masked]>
Date: Sat, 18 Jun 2022 17:00:16 +0200
Subject: [PATCH 1/3] gnu: Add farbfeld.

* gnu/packages/suckless.scm (farbfeld): New variable.
[use-modules]: Add (gnu packages imagemagick)
---
 gnu/packages/suckless.scm | 41 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm
index 5aa37657b9..895fc4161b 100644
--- a/gnu/packages/suckless.scm
+++ b/gnu/packages/suckless.scm
@@ -39,6 +39,7 @@ (define-module (gnu packages suckless)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages libbsd)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages mpd)
@@ -1084,3 +1085,43 @@ (define-public sfeed
 various other formats.  There are also some programs and scripts included to
 import and export OPML and to fetch, filter, merge and order feed items.")
     (license license:isc)))
+
+(define-public farbfeld
+  (let ((commit "ab5e3dfc9cdb476218538c6687df9f44826d8f11") (revision "0"))
+    (package
+      (name "farbfeld")
+      (version (git-version "4" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "git://git.suckless.org/farbfeld")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0pkmkvv5ggpzqwqdchd19442x8gh152xy5z1z13ipfznhspsf870"))))
+      (build-system gnu-build-system)
+      (inputs (list libpng libjpeg-turbo imagemagick))
+      (arguments
+       (list #:tests?
+             #f ;no check target
+             #:make-flags
+             #~(list (string-append "PREFIX="
+                                    #$output)
+                     (string-append "CC="
+                                    #$(cc-for-target)))
+             #:phases
+             #~(modify-phases %standard-phases
+                 (add-before 'configure 'patch-2ff
+                   (lambda* (#:key inputs outputs #:allow-other-keys)
+                     (substitute* "2ff"
+                       (("png2ff") (string-append #$output "/bin/png2ff"))
+                       (("jpg2ff") (string-append #$output "/bin/jpg2ff"))
+                       (("convert") (search-input-file inputs "/bin/convert")))))
+                 (delete 'configure))))
+      (synopsis "Image format and conversion tools")
+      (description
+       "farbfeld is a lossless image format which is easy to parse,
+pipe and compress.")
+      (home-page "https://git.suckless.org/farbfeld/")
+      (license license:isc))))
-- 
2.34.0

>From 1c5a9ff89bc4525b9e1a07b6b96b017ad58a81fe Mon Sep 17 00:00:00 2001
From: Gabriel Wicki <[email-masked]>
Date: Sat, 18 Jun 2022 17:04:12 +0200
Subject: [PATCH 2/3] gnu: sent: Add farbfeld to propagated-inputs.

* gnu/packages/suckless.scm (sent)[propagated-inputs]: Add it.
[phases]{patch-farbfeld}: New phase.
[inputs]: Add farbfeld.
[home-page]: Add trailing slash to fix linter warning.
---
 gnu/packages/suckless.scm | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm
index 895fc4161b..837977d51b 100644
--- a/gnu/packages/suckless.scm
+++ b/gnu/packages/suckless.scm
@@ -520,7 +520,11 @@ (define-public sent
     (build-system gnu-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
-                  (delete 'configure))  ; no configuration
+                  (delete 'configure)  ; no configuration
+                  (add-before 'build 'patch-farbfeld
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      (substitute* "config.def.h"
+                        (("2ff") (search-input-file inputs "/bin/2ff"))))))
        #:tests? #f                      ; no test suite
        #:make-flags
        (let ((pkg-config (lambda (flag)
@@ -534,7 +538,8 @@ (define-public sent
     (native-inputs
      (list pkg-config))
     (inputs
-     `(("libpng" ,libpng)
+     `(("farbfeld" ,farbfeld)
+       ("libpng" ,libpng)
        ("libx11" ,libx11)
        ("libxft" ,libxft)
        ("fontconfig" ,fontconfig)))
@@ -544,7 +549,7 @@ (define-public sent
 Especially for presentations using the Takahashi method this is very nice and
 allows you to write down the presentation for a quick lightning talk within a
 few minutes.")
-    (home-page "https://tools.suckless.org/sent")
+    (home-page "https://tools.suckless.org/sent/")
     (license license:x11)))
 
 (define-public wmname
-- 
2.34.0

>From 6fb7a48822e51625de8ca1026260faac80adbe17 Mon Sep 17 00:00:00 2001
From: Gabriel Wicki <[email-masked]>
Date: Tue, 21 Jun 2022 02:38:40 +0200
Subject: [PATCH 3/3] gnu: sent: Apply guix style

* gnu/packages/suckless.scm (sent): Apply `guix style`.
---
 gnu/packages/suckless.scm | 35 ++++++++++++++++++-----------------
 1 file changed, 18 insertions(+), 17 deletions(-)

diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm
index 837977d51b..ac3ee7df10 100644
--- a/gnu/packages/suckless.scm
+++ b/gnu/packages/suckless.scm
@@ -520,31 +520,32 @@ (define-public sent
     (build-system gnu-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
-                  (delete 'configure)  ; no configuration
+                  (delete 'configure) ;no configuration
                   (add-before 'build 'patch-farbfeld
                     (lambda* (#:key inputs #:allow-other-keys)
                       (substitute* "config.def.h"
                         (("2ff") (search-input-file inputs "/bin/2ff"))))))
-       #:tests? #f                      ; no test suite
+       #:tests?
+       #f ;no test suite
        #:make-flags
        (let ((pkg-config (lambda (flag)
-                           (string-append
-                            "$(shell pkg-config " flag " "
-                            "xft fontconfig x11 libpng)"))))
-         (list (string-append "CC=" ,(cc-for-target))
+                           (string-append "$(shell pkg-config " flag " "
+                                          "xft fontconfig x11 libpng)"))))
+         (list (string-append "CC="
+                              ,(cc-for-target))
                (string-append "PREFIX=" %output)
-               (string-append "INCS=-I. " (pkg-config "--cflags"))
-               (string-append "LIBS=" (pkg-config "--libs") " -lm")))))
-    (native-inputs
-     (list pkg-config))
-    (inputs
-     `(("farbfeld" ,farbfeld)
-       ("libpng" ,libpng)
-       ("libx11" ,libx11)
-       ("libxft" ,libxft)
-       ("fontconfig" ,fontconfig)))
+               (string-append "INCS=-I. "
+                              (pkg-config "--cflags"))
+               (string-append "LIBS="
+                              (pkg-config "--libs") " -lm")))))
+    (native-inputs (list pkg-config))
+    (inputs `(("farbfeld" ,farbfeld) ("libpng" ,libpng)
+              ("libx11" ,libx11)
+              ("libxft" ,libxft)
+              ("fontconfig" ,fontconfig)))
     (synopsis "Plain-text presentation tool")
-    (description "Sent uses plain-text files and PNG images to create slideshow
+    (description
+     "Sent uses plain-text files and PNG images to create slideshow
 presentations.  Each paragraph represents a slide in the presentation.
 Especially for presentations using the Takahashi method this is very nice and
 allows you to write down the presentation for a quick lightning talk within a
-- 
2.34.0