[PATCH] gnu: suckless: add farbfeld and propagate input to sent

DoneSubmitted by Gabriel Wicki.
Details
3 participants
  • Gabriel Wicki
  • Ludovic Courtès
  • Maxime Devos
Owner
unassigned
Severity
normal
G
G
Gabriel Wicki wrote on 19 Jun 14:23 +0200
(address . guix-patches@gnu.org)
20220619115925.bcrcjpd7yse2n25t@silvi
Hello

Stumbling over the tools in suckless.scm i tried out sent.
Unfortunately just installing sent and giving the example from their
source-repo a try only produced a (somewhat strange) error.

Apparently sent (and probably other suckless tools) rely on suckless'
farbfeld package to handle images and the like, so i packaged it and
propagated the input farbfeld to sent. This fixes the issue; now
presentations with images work.

I hope my patches are fine.

Best regards
Gabriel


From 55a563f53334c3eaac9cbae79fe33936679ab291 Mon Sep 17 00:00:00 2001
From: Gabriel Wicki <gabriel@erlikon.ch>
Date: Sat, 18 Jun 2022 17:00:16 +0200
Subject: [PATCH 1/2] gnu: Add farbfeld.

* gnu/packages/suckless.scm (farbfeld): New variable.
---
gnu/packages/suckless.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm
index 5aa37657b9..fb3af9ad6c 100644
--- a/gnu/packages/suckless.scm
+++ b/gnu/packages/suckless.scm
@@ -1084,3 +1084,35 @@ (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 "ab5e3df") (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))
+      (arguments
+       `(#:make-flags (list "PREFIX="
+                            (string-append "DESTDIR=" %output)
+                            (string-append "CC="
+                                           ,(cc-for-target)))
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure)
+           (delete 'check))))
+      (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
G
G
Gabriel Wicki wrote on 19 Jun 14:36 +0200
Re: bug#56087: Acknowledgement ([PATCH] gnu: suckless: add farbfeld and propagate input to sent)
(address . 56087@debbugs.gnu.org)
20220619123652.xyx3pmkgueqh5pfa@silvi
From d729f8e2b69a9b36436f6c6d7918ffbe524c5aad Mon Sep 17 00:00:00 2001
From: Gabriel Wicki <gabriel@erlikon.ch>
Date: Sat, 18 Jun 2022 17:04:12 +0200
Subject: [PATCH 2/2] gnu: sent: Add farbfeld to propagated-inputs.

* gnu/packages/suckless.scm (sent)[propagated-inputs]: Add it.
---
gnu/packages/suckless.scm | 2 ++
1 file changed, 2 insertions(+)

Toggle diff (15 lines)
diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm
index fb3af9ad6c..d3fdee72e5 100644
--- a/gnu/packages/suckless.scm
+++ b/gnu/packages/suckless.scm
@@ -532,6 +532,8 @@ (define-public sent
                (string-append "LIBS=" (pkg-config "--libs") " -lm")))))
     (native-inputs
      (list pkg-config))
+    (propagated-inputs
+     (list farbfeld))
     (inputs
      `(("libpng" ,libpng)
        ("libx11" ,libx11)
-- 
2.34.0
M
M
Maxime Devos wrote on 19 Jun 15:12 +0200
Re: [bug#56087] Acknowledgement ([PATCH] gnu: suckless: add farbfeld and propagate input to sent)
9d1b5098ed70984ca2f41602454c06f80ad58f50.camel@telenet.be
Gabriel Wicki schreef op zo 19-06-2022 om 14:36 [+0200]:
Toggle quote (3 lines)
> +    (propagated-inputs
> +     (list farbfeld))

Propagation (*) can be avoided by looking in the source code of 'sent'
to see where farbfeld is started and replacing "farbfeld" by
"/gnu/store/.../bin/farbfeld" (using 'substitute*' & search-input-
file).

(*) Propagation is fragile in some uses (e.g. running directly from the
store) and hence not recommended when it can be avoided.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYq8grxccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7unoAP9W0x5kHK/Fo7zL4+/RUggmYV64
WbfpCqstrqaWDDLS/AD+LR0Ujv8rmo5jPYqTXUsX0M1qT+BGBZWNieN+35CqOQM=
=+epT
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 19 Jun 15:17 +0200
Re: [bug#56087] [PATCH] gnu: suckless: add farbfeld and propagate input to sent
66ac65e65fb19a239aedcb132c75343b88083306.camel@telenet.be
Gabriel Wicki schreef op zo 19-06-2022 om 14:23 [+0200]:
Toggle quote (3 lines)
> +       `(#:make-flags (list "PREFIX="
> +                            (string-append "DESTDIR=" %output)

Guix does not do staged installation (that's what DESTDIR is for!), so
don't set DESTDIR, instead set PREFIX to #$output instead of DESTDIR
(the difference matters when the compiled program embeds a reference to
its own installation location). Also, G-exps, because %output isn't
documented IIRC whereas #$output is:

(arguments
(list #:make-flags
#~(list (string-append "PREFIX=" #$output)
(string-append "CC=" #$(cc-for-target)))
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
(delete 'check))))

Also, always add a comment about why tests are skipped (maybe someone
knows how to fix them or the bug they noticed!).

Greetings,
Maxime
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYq8iAhccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7m8bAQD55TPBeyM1lDVOrUHdox3j5p1P
6d5tdVhze0YClqEqKwEA0ciFtNGL8B2tT/5khqrY6fIir0Fv7I201v2/sg8H+wc=
=c0am
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 19 Jun 15:18 +0200
aaee68071cc288257f50fc9e16cfc3ea4f731d07.camel@telenet.be
Gabriel Wicki schreef op zo 19-06-2022 om 14:23 [+0200]:
Toggle quote (2 lines)
> +  (let ((commit "ab5e3df") (revision "0"))

To avoid collisions, don't abbreviate commits.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYq8iPRccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7ncJAQDp0p+IjetHOINUi4xcLOYL0ybk
VcQmi6ZnjrlhcBKvowEA++Nt0n4/Z24LRYtO/kFDQtKiOGQtwpMBlQJA08Pr9QQ=
=FEa1
-----END PGP SIGNATURE-----


G
G
Gabriel Wicki wrote on 21 Jun 02:50 +0200
(name . Maxime Devos)(address . maximedevos@telenet.be)(address . 56087@debbugs.gnu.org)
20220621005047.ajgnk3ob22t37wsc@silvi
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 <gabriel@erlikon.ch>
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(+)

Toggle diff (181 lines)
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 <gabriel@erlikon.ch>
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 <gabriel@erlikon.ch>
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
L
L
Ludovic Courtès wrote on 22 Jun 23:14 +0200
Re: bug#56087: [PATCH] gnu: suckless: add farbfeld and propagate input to sent
(name . Gabriel Wicki)(address . gabriel@erlikon.ch)
87mte41juc.fsf_-_@gnu.org
Hi Gabriel,

Gabriel Wicki <gabriel@erlikon.ch> skribis:

Toggle quote (8 lines)
>>From 15e88ce3cb4ab51d6fe9ad9ae3ab15a435fb4db8 Mon Sep 17 00:00:00 2001
> From: Gabriel Wicki <gabriel@erlikon.ch>
> 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)

[...]

Toggle quote (10 lines)
>>From 1c5a9ff89bc4525b9e1a07b6b96b017ad58a81fe Mon Sep 17 00:00:00 2001
> From: Gabriel Wicki <gabriel@erlikon.ch>
> 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.

[...]

Toggle quote (7 lines)
>>From 6fb7a48822e51625de8ca1026260faac80adbe17 Mon Sep 17 00:00:00 2001
> From: Gabriel Wicki <gabriel@erlikon.ch>
> 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`.

Applied, thank you & thanks Maxime!

I followed up with:

guix style -S inputs sent --input-simplification=always

The effect is to remove input labels.

Ludo’.
Closed
?
Your comment

This issue is archived.

To comment on this conversation send email to 56087@debbugs.gnu.org