Replace straw-viewer with pipe-viewer.

DoneSubmitted by Raghav Gururajan.
Details
2 participants
  • Maxime Devos
  • Raghav Gururajan
Owner
unassigned
Severity
normal
R
R
Raghav Gururajan wrote on 24 Jun 2021 16:44
(address . guix-patches@gnu.org)(address . me@tobias.gr)
19c1e406-f0cf-dc28-1053-d17f40c618a7@raghavgururajan.name
Hello Guix!

Upstream has deprecated straw-viewer in favour of pipe-viewer.

This patch-series packages pipe-viewer and replaces straw-viewer.

Currently, the pipe-viewer is functional with referenced programs being
in the same profile, although I patched the source to use absolute path
to the referenced programs. I am looking for help with fixing execution
of the referenced programs. Referenced programs include ffmpeg, mpv,
wget, xdg-open and youtube-dl.

Regards,
RG.
Attachment: OpenPGP_signature
R
R
Raghav Gururajan wrote on 24 Jun 2021 16:45
[PATCH v1 02/16] gnu: perl-glib: Propagate glib.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210624144556.9671-2-rg@raghavgururajan.name
Dependants of perl-glib also require glib for its typelibs and schemas.

* gnu/packages/glib.scm (perl-glib)[inputs]: Move glib to ...
[propagated-inputs]: ... here.
---
gnu/packages/glib.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (15 lines)
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 206222b578..f2dbddbde6 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -877,7 +877,7 @@ useful for C++.")
     (native-inputs
      `(("perl-extutils-depends" ,perl-extutils-depends)
        ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
-    (inputs
+    (propagated-inputs
      `(("glib" ,glib)))
     (home-page "https://metacpan.org/release/Glib")
     (synopsis "Perl wrappers for the GLib utility and Object libraries")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 24 Jun 2021 16:45
[PATCH v1 01/16] gnu: Add perl-exporter.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210624144556.9671-1-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-exporter): New variable.
---
gnu/packages/perl.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index d449abc78c..84d1ad9634 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -4204,6 +4204,31 @@ command, which can be used as a minimal Perl read-eval-print loop (REPL).")
 in your modules in a \"Java-esque\" manner.")
     (license (package-license perl))))
 
+(define-public perl-exporter
+  (package
+    (name "perl-exporter")
+    (version "5.74")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/T/TO/TODDR/"
+                           "Exporter-" version ".tar.gz"))
+       (sha256
+        (base32 "1f25k5iaygiizlrkbbl6wxd647pwfmynykxalq6r9bbkysg8inza"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-pod" ,perl-test-pod)))
+    (propagated-inputs
+     `(("perl-carp" ,perl-carp)))
+    (home-page "https://metacpan.org/dist/Exporter")
+    (synopsis "Default import method for modules")
+    (description "Exporter implements an import method which allows a module to
+export functions and variables to its users' namespaces.  Many modules use
+Exporter rather than implementing their own import method because Exporter
+provides a highly flexible interface, with an implementation optimised for the
+common case.")
+    (license (package-license perl))))
+
 (define-public perl-exporter-lite
   (package
     (name "perl-exporter-lite")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 24 Jun 2021 16:45
[PATCH v1 03/16] gnu: perl-cairo: Propagate cairo.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210624144556.9671-3-rg@raghavgururajan.name
Dependants of perl-cairo also require cairo for its typelibs and schemas.

* gnu/packages/gtk.scm (perl-cairo)[inputs]: Move cairo to ...
[propagated-inputs]: ... here.
---
gnu/packages/gtk.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (15 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 138fa7c314..99a4128286 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1586,7 +1586,7 @@ write GNOME applications.")
     (native-inputs
      `(("perl-extutils-depends" ,perl-extutils-depends)
        ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
-    (inputs
+    (propagated-inputs
      `(("cairo" ,cairo)))
     (home-page "https://metacpan.org/release/Cairo")
     (synopsis "Perl interface to the cairo 2d vector graphics library")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 24 Jun 2021 16:45
[PATCH v1 04/16] gnu: Add perl-cairo-gobject.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210624144556.9671-4-rg@raghavgururajan.name
* gnu/packages/gtk.scm (perl-cairo-gobject): New variable.
---
gnu/packages/gtk.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 99a4128286..bc30905444 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -80,6 +80,7 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages perl-check)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages python)
@@ -1595,6 +1596,30 @@ cairo.  It supports multiple output targets, including PNG, PDF and SVG.  Cairo
 produces identical output on all those targets.")
     (license license:lgpl2.1+)))
 
+(define-public perl-cairo-gobject
+  (package
+    (name "perl-cairo-gobject")
+    (version "1.005")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/"
+                           "Cairo-GObject-" version ".tar.gz"))
+       (sha256
+        (base32 "0l2wcz77ndmbgvxx34gdm919a3dxh9fixqr47p50n78ysx2692cd"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-extutils-depends" ,perl-extutils-depends)
+       ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
+    (propagated-inputs
+     `(("perl-cairo" ,perl-cairo)
+       ("perl-glib" ,perl-glib)))
+    (home-page "https://metacpan.org/dist/Cairo-GObject")
+    (synopsis "Integrate Cairo into the Glib type system")
+    (description "Cairo::GObject registers Cairo's types with Glib's type systems,
+so that they can be used normally in signals and properties.")
+    (license license:lgpl2.1+)))
+
 (define-public perl-gtk2
   (package
     (name "perl-gtk2")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 24 Jun 2021 16:45
[PATCH v1 05/16] gnu: Add perl-glib-object-introspection.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210624144556.9671-5-rg@raghavgururajan.name
* gnu/packages/glib.scm (perl-glib-object-introspection): New variable.
---
gnu/packages/glib.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index f2dbddbde6..91ef45099c 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -888,6 +888,32 @@ these libraries are used as the foundation for many of the libraries that make
 up the Gnome environment, and are used in many unrelated projects.")
     (license license:lgpl2.1+)))
 
+(define-public perl-glib-object-introspection
+  (package
+    (name "perl-glib-object-introspection")
+    (version "0.049")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/"
+                           "Glib-Object-Introspection-" version ".tar.gz"))
+       (sha256
+        (base32 "0mxg6pz8qfyipw0ypr54alij0c4adzg94f62702b2a6hkp5jhij6"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-extutils-depends" ,perl-extutils-depends)
+       ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
+    (propagated-inputs
+     `(("gobject-introspection" ,gobject-introspection)
+       ("perl-cairo-gobject" ,perl-cairo-gobject)
+       ("perl-glib" ,perl-glib)))
+    (home-page "https://metacpan.org/dist/Glib-Object-Introspection")
+    (synopsis "Dynamically create Perl language bindings")
+    (description "Glib::Object::Introspection uses the gobject-introspection and
+libffi projects to dynamically create Perl bindings for a wide variety of
+libraries.  Examples include gtk+, webkit, libsoup and many more.")
+    (license license:lgpl2.1+)))
+
 (define telepathy-glib
   (package
     (name "telepathy-glib")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 24 Jun 2021 16:45
[PATCH v1 06/16] gnu: Add perl-gtk3.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210624144556.9671-6-rg@raghavgururajan.name
* gnu/packages/gtk.scm (perl-gtk3): New variable.
---
gnu/packages/gtk.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)

Toggle diff (55 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index bc30905444..d92b9aa3e4 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1657,6 +1657,48 @@ object-oriented way, freeing you from the casting and memory management in C,
 yet remaining very close in spirit to original API.")
     (license license:lgpl2.1+)))
 
+(define-public perl-gtk3
+  (package
+    (name "perl-gtk3")
+    (version "0.038")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/Gtk3-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "1k3sfcvxxx7ir7ail7w1lkmr4np0k3criljzw5wir63lmbr4pp3h"))))
+    (build-system perl-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; Tests require a running X server.
+             (system "Xvfb :1 +extension GLX &")
+             (setenv "DISPLAY" ":1"))))))
+    (native-inputs
+     `(("adwaita-icon-theme" ,adwaita-icon-theme)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("perl-extutils-depends" ,perl-extutils-depends)
+       ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)
+       ("perl-test-simple" ,perl-test-simple)
+       ("xorg-server" ,xorg-server-for-tests)))
+    (propagated-inputs
+     `(("gtk+" ,gtk+)
+       ("perl-cairo-gobject" ,perl-cairo-gobject)
+       ("perl-carp" ,perl-carp)
+       ("perl-exporter" ,perl-exporter)
+       ("perl-glib-object-introspection" ,perl-glib-object-introspection)))
+    (home-page "https://metacpan.org/dist/Gtk3")
+    (synopsis "Perl interface to the 3.x series of the gtk+ toolkit")
+    (description "Perl bindings to the 3.x series of the gtk+ toolkit.
+This module allows you to write graphical user interfaces in a Perlish and
+object-oriented way, freeing you from the casting and memory management in C,
+yet remaining very close in spirit to original API.")
+    (license license:lgpl2.1+)))
+
 (define-public perl-pango
   (package
     (name "perl-pango")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 24 Jun 2021 16:45
[PATCH v1 07/16] gnu: Add perl-text-tabs+wrap.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210624144556.9671-7-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-text-tabs+wrap): New variable.
---
gnu/packages/perl.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 84d1ad9634..dd24b10180 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -10331,6 +10331,24 @@ algorism to indicate multiplication by 1000.")
     (description "Text::Table renders plaintext tables.")
     (license license:x11)))
 
+(define-public perl-text-tabs+wrap
+  (package
+    (name "perl-text-tabs+wrap")
+    (version "2013.0523")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/M/MU/MUIR/modules/"
+                           "Text-Tabs+Wrap-" version ".tar.gz"))
+       (sha256
+        (base32 "0pv5dympvrba6lslklwzb4glpazl5farn2b2530vjdxpzxphbjxr"))))
+    (build-system perl-build-system)
+    (home-page "https://metacpan.org/dist/Text-Tabs+Wrap")
+    (synopsis "Text::Tabs and Text::Wrap Modules")
+    (description "Text::Tabs will add or remove tabs from a document.
+Text::Wrap will reformat lines into paragraphs.")
+    (license (package-license perl))))
+
 (define-public perl-text-template
   (package
     (name "perl-text-template")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 24 Jun 2021 16:45
[PATCH v1 08/16] gnu: Add perl-text-parsewords.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210624144556.9671-8-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-text-parsewords): New variable.
---
gnu/packages/perl.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index dd24b10180..97a7e14a69 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -10250,6 +10250,24 @@ template engine, for when you need speed rather than complex features,
 yet need more features than simple variable substitution.")
     (license (package-license perl))))
 
+(define-public perl-text-parsewords
+  (package
+    (name "perl-text-parsewords")
+    (version "3.30")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/C/CH/CHORNY/"
+                           "Text-ParseWords-" version ".tar.gz"))
+       (sha256
+        (base32 "1s7mmznk4chdvfi2jl2h6gawfaqq24bdasy6b1z9jhyxg60j7q45"))))
+    (build-system perl-build-system)
+    (home-page "https://metacpan.org/dist/Text-ParseWords")
+    (synopsis "Parse text into an array of tokens or array of arrays")
+    (description "Text::ParseWords module is used to parse text into an array of
+tokens or array of arrays.")
+    (license (package-license perl))))
+
 (define-public perl-text-patch
   (package
     (name "perl-text-patch")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 24 Jun 2021 16:45
[PATCH v1 09/16] gnu: Add perl-term-ansicolor.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210624144556.9671-9-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-term-ansicolor): New variable.
---
gnu/packages/perl.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 97a7e14a69..dc681865ac 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -9836,6 +9836,30 @@ situations, where you may need to upgrade to the full feature set in the
 future, or if you want the retain the familiarity of TT-style templates.")
     (license license:perl-license)))
 
+(define-public perl-term-ansicolor
+  (package
+    (name "perl-term-ansicolor")
+    (version "5.01")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/R/RR/RRA/"
+                           "Term-ANSIColor-" version ".tar.gz"))
+       (sha256
+        (base32 "0zgj329kfrwcyqn491v04x65yjydwfc4845a71f8hypdrj3vv0b2"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-warn" ,perl-test-warn)))
+    (home-page "https://metacpan.org/dist/Term-ANSIColor")
+    (synopsis "Interface to the ANSI terminal escape sequences for color")
+    (description "Term::ANSIColor provides constants and simple functions for
+setting ANSI text attributes, most notably colors.  It can be used to set the
+current text attributes or to apply a set of attributes to a string and reset
+the current text attributes at the end of that string.  Eight-color,
+sixteen-color, 256-color, and true color (24-bit color) escape sequences are all
+supported.")
+    (license (package-license perl))))
+
 (define-public perl-term-encoding
   (package
     (name "perl-term-encoding")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 24 Jun 2021 16:45
[PATCH v1 10/16] gnu: Add perl-test-portability-files.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210624144556.9671-10-rg@raghavgururajan.name
* gnu/packages/perl-check.scm (perl-test-portability-files): New variable.
---
gnu/packages/perl-check.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/perl-check.scm b/gnu/packages/perl-check.scm
index a761ebffcf..87f233a3aa 100644
--- a/gnu/packages/perl-check.scm
+++ b/gnu/packages/perl-check.scm
@@ -1157,6 +1157,31 @@ Pod::Simple to do the heavy lifting.")
 checks for pod coverage of all appropriate files.")
     (license artistic2.0)))
 
+(define-public perl-test-portability-files
+  (package
+    (name "perl-test-portability-files")
+    (version "0.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/A/AB/ABRAXXA/"
+                           "Test-Portability-Files-" version ".tar.gz"))
+       (sha256
+        (base32 "05hs80gljkd6mhb8zvilyk3pjqxp5samgnymam5v9h9d94rb9r08"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-simple" ,perl-test-simple)))
+    (propagated-inputs
+     `(("perl-pathtools" ,perl-pathtools)))
+    (home-page "https://metacpan.org/dist/Test-Portability-Files")
+    (synopsis "Check file names portability")
+    (description "Test::Portability::Files module is used to check the
+portability across operating systems of the names of the files present in the
+distribution of a module.  The tests use the advices given in 'Files and
+Filesystems' in perlport.  The author of a distribution can select which tests
+to execute.")
+    (license perl-license)))
+
 (define-public perl-test-requires
   (package
     (name "perl-test-requires")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 24 Jun 2021 16:45
[PATCH v1 11/16] gnu: Add perl-xsloader.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210624144556.9671-11-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-xsloader): New variable.
---
gnu/packages/perl.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index dc681865ac..2b668f93bf 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -11173,6 +11173,30 @@ attribute names.")
     ;; modification, are permitted under any circumstances.  No warranty.
     (license license:public-domain)))
 
+(define-public perl-xsloader
+  (package
+    (name "perl-xsloader")
+    (version "0.24")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/S/SA/SAPER/"
+                           "XSLoader-" version ".tar.gz"))
+       (sha256
+        (base32 "0pyqr12jsqagna75fm2gijfzw06wy1hrh5chn9hwnmcfddda66g8"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-distribution" ,perl-test-distribution)
+       ("perl-text-pod" ,perl-test-pod)
+       ("perl-test-pod-coverage" ,perl-test-pod-coverage)
+       ("perl-test-portability-files" ,perl-test-portability-files)))
+    (home-page "https://metacpan.org/dist/XSLoader")
+    (synopsis "Dynamically load C libraries into Perl code")
+    (description "XSLoader module defines a standard simplified interface to the
+dynamic linking mechanisms available on many platforms.  Its primary purpose is
+to implement cheap automatic dynamic loading of Perl modules.")
+    (license (package-license perl))))
+
 (define-public perl-xs-object-magic
   (package
     (name "perl-xs-object-magic")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 24 Jun 2021 16:45
[PATCH v1 12/16] gnu: Add perl-storable.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210624144556.9671-12-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-storable): New variable.
---
gnu/packages/perl.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 2b668f93bf..add00a1032 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -9205,6 +9205,27 @@ which it is called.")
 implementation of @dfn{Principal Component Analysis} (PCA).")
     (license license:perl-license)))
 
+(define-public perl-storable
+  (package
+    (name "perl-storable")
+    (version "3.15")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/X/XS/XSAWYERX/"
+                           "Storable-" version ".tar.gz"))
+       (sha256
+        (base32 "1nkln4fm4962b5jk1dp6lf635nnrj5a5pg1a5xmchvrfrc3asggw"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-xsloader" ,perl-xsloader)))
+    (home-page "https://metacpan.org/dist/Storable")
+    (synopsis "Persistence for Perl data structures")
+    (description "Storable brings persistence to your Perl data structures
+containing SCALAR, ARRAY, HASH or REF objects, i.e. anything that can be
+conveniently stored to disk and retrieved at a later time.")
+    (license (package-license perl))))
+
 (define-public perl-stream-buffered
   (package
     (name "perl-stream-buffered")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 24 Jun 2021 16:45
[PATCH v1 13/16] gnu: Add perl-encode.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210624144556.9671-13-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-encode): New variable.
---
gnu/packages/perl.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index add00a1032..90bbf8c72c 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -3986,6 +3986,28 @@ very platform-dependent, so correct use of these functions requires
 the programmer to be mindfulof the space of platform variations.")
     (license license:perl-license)))
 
+(define-public perl-encode
+  (package
+    (name "perl-encode")
+    (version "3.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/D/DA/DANKOGAI/"
+                           "Encode-" version ".tar.gz"))
+       (sha256
+        (base32 "1a8rwcrxxhq81jcdvdwns05c65jwr5r6bxvby6vdcr3ny5m91my2"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-exporter" ,perl-exporter)
+       ("perl-storable" ,perl-storable)
+       ("perl-parent" ,perl-parent)))
+    (home-page "https://metacpan.org/dist/Encode")
+    (synopsis "Character encodings in Perl")
+    (description "Encode module provides the interface between Perl strings and
+the rest of the system.  Perl strings are sequences of characters.")
+    (license (package-license perl))))
+
 (define-public perl-encode-detect
   (package
     (name "perl-encode-detect")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 24 Jun 2021 16:45
[PATCH v1 14/16] gnu: Add perl-mime-base64.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210624144556.9671-14-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-mime-base64): New variable.
---
gnu/packages/perl.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 90bbf8c72c..a51e9e31f6 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -6410,6 +6410,31 @@ follows LRU semantics, that is, the last n results, where n is specified as
 the argument to the CACHESIZE parameter, will be cached.")
     (license (package-license perl))))
 
+(define-public perl-mime-base64
+  (package
+    (name "perl-mime-base64")
+    (version "3.16")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/C/CA/CAPOEIRAB/"
+                           "MIME-Base64-" version ".tar.gz"))
+       (sha256
+        (base32 "05v04kjaz2ya0zaj4m64gzxpfv4vgxhw5n5h12z373gbg9pkvxvp"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-exporter" ,perl-exporter)
+       ("perl-xsloader" ,perl-xsloader)))
+    (home-page "https://metacpan.org/dist/MIME-Base64")
+    (synopsis "Encoding and decoding of base64 strings")
+    (description "MIME::Base64 module provides functions to encode and decode
+strings into and from the base64 encoding specified in RFC 2045 - MIME
+(Multipurpose Internet Mail Extensions).  The base64 encoding is designed to
+represent arbitrary sequences of octets in a form that need not be humanly
+readable.  A 65-character subset ([A-Za-z0-9+/=]) of US-ASCII is used, enabling
+6 bits to be represented per printable character.")
+    (license (package-license perl))))
+
 (define-public perl-mime-charset
   (package
     (name "perl-mime-charset")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 24 Jun 2021 16:45
[PATCH v1 15/16] gnu: Add pipe-viewer.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210624144556.9671-15-rg@raghavgururajan.name
* gnu/packages/video.scm (pipe-viewer): New variable.
---
gnu/packages/video.scm | 112 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 112 insertions(+)

Toggle diff (132 lines)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index fbc468eab7..1bc2027a92 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -178,6 +178,7 @@
   #:use-module (gnu packages vulkan)
   #:use-module (gnu packages web)
   #:use-module (gnu packages webkit)
+  #:use-module (gnu packages wget)
   #:use-module (gnu packages wxwidgets)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xiph)
@@ -1020,6 +1021,117 @@ H.264 (MPEG-4 AVC) video streams.")
 (@command{mkvmerge}).")
     (license license:gpl2)))
 
+(define-public pipe-viewer
+  (package
+    (name "pipe-viewer")
+    (version "0.1.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/trizen/pipe-viewer")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1d2gfkd3nc0c4ah67250lqskkd85wpljrikw8a378ni398ngaq14"))))
+    (build-system perl-build-system)
+    (arguments
+     `(#:imported-modules
+       ((guix build copy-build-system)
+        ,@%perl-build-system-modules)
+       #:modules
+       (((guix build copy-build-system)
+         #:prefix copy:)
+        (guix build perl-build-system)
+        (guix build utils)
+        (srfi srfi-26))
+       #:module-build-flags
+       (list
+        "--gtk3")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-source
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* (find-files "." "(.*viewer$|\\.pm$)")
+               (("'ffmpeg'")
+                (format #f "'~a/bin/ffmpeg'"
+                        (assoc-ref inputs "ffmpeg")))
+               (("'mpv'")
+                (format #f "'~a/bin/mpv'"
+                        (assoc-ref inputs "mpv")))
+               (("'wget'")
+                (format #f "'~a/bin/wget'"
+                        (assoc-ref inputs "wget")))
+               (("'xdg-open'")
+                (format #f "'~a/bin/xdg-open'"
+                        (assoc-ref inputs "xdg-utils")))
+               (("'youtube-dl'")
+                (format #f "'~a/bin/youtube-dl'"
+                        (assoc-ref inputs "youtube-dl"))))))
+         (add-after 'install 'install-xdg
+           (lambda args
+             (apply (assoc-ref copy:%standard-phases 'install)
+                    #:install-plan
+                    '(("share/icons" "share/pixmaps")
+                      ("share" "share/applications"
+                       #:include-regexp ("\\.desktop$")))
+                    args)))
+         (add-after 'install-xdg 'wrap-programs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin-dir (string-append out "/bin/"))
+                    (site-dir (string-append out "/lib/perl5/site_perl/"))
+                    (perl-lib (getenv "PERL5LIB"))
+                    (gi-typelib (getenv "GI_TYPELIB_PATH")))
+               (for-each
+                (cut wrap-program <>
+                     `("PERL5LIB" ":" prefix (,perl-lib ,site-dir))
+                     `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib)))
+                (find-files bin-dir))))))))
+    (native-inputs
+     `(("module-build" ,perl-module-build)
+       ("test-pod" ,perl-test-pod)
+       ("test-simple" ,perl-test-simple)))
+    (inputs
+     `(("data-dump" ,perl-data-dump)
+       ("digest-md5" ,perl-digest-md5)
+       ("encode" ,perl-encode)
+       ("ffmpeg" ,ffmpeg)
+       ("file-path" ,perl-file-path)
+       ("file-sharedir" ,perl-file-sharedir)
+       ("getopt-long" ,perl-getopt-long)
+       ("gtk3" ,perl-gtk3)
+       ("http-message" ,perl-http-message)
+       ("json" ,perl-json)
+       ("json-xs" ,perl-json-xs)
+       ("libwww" ,perl-libwww)
+       ("lwp-protocol-https" ,perl-lwp-protocol-https)
+       ("lwp-useragent-cached" ,perl-lwp-useragent-cached)
+       ("memoize" ,perl-memoize)
+       ("mime-base64" ,perl-mime-base64)
+       ("mpv" ,mpv)
+       ("pathtools" ,perl-pathtools)
+       ("scalar-list-utils" ,perl-scalar-list-utils)
+       ("storable" ,perl-storable)
+       ("term-ansicolor" ,perl-term-ansicolor)
+       ("term-readline-gnu" ,perl-term-readline-gnu)
+       ("text-parsewords" ,perl-text-parsewords)
+       ("text-tabs+wrap" ,perl-text-tabs+wrap)
+       ("unicode-linebreak" ,perl-unicode-linebreak)
+       ("uri-escape" ,perl-uri-escape)
+       ("wget" ,wget)
+       ("xdg-utils" ,xdg-utils)
+       ("youtube-dl" ,youtube-dl)))
+    (propagated-inputs
+     `(("dconf" ,dconf)))
+    (home-page "https://github.com/trizen/pipe-viewer")
+    (synopsis "CLI+GUI YouTube Client")
+    (description "Pipe-Viewer is a lightweight application for searching and
+playing videos from YouTube.  It parses the YouTube website directly and relies
+on the Invidious instances only as a fallback method.")
+    (license license:artistic2.0)))
+
 (define-public straw-viewer
   (package
     (name "straw-viewer")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 24 Jun 2021 16:45
[PATCH v1 16/16] gnu: straw-viewer: Deprecate package.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210624144556.9671-16-rg@raghavgururajan.name
Upstream has replaced straw-viewer with pipe-viewer.

* gnu/packages/video.scm (straw-viewer): Deprecate in favour of pipe-viewer.
---
gnu/packages/video.scm | 83 +-----------------------------------------
1 file changed, 1 insertion(+), 82 deletions(-)

Toggle diff (96 lines)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 1bc2027a92..d7ca637ddf 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1133,88 +1133,7 @@ on the Invidious instances only as a fallback method.")
     (license license:artistic2.0)))
 
 (define-public straw-viewer
-  (package
-    (name "straw-viewer")
-    (version "0.1.3")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/trizen/straw-viewer")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "1n21byn7hqykpm94jmmnir1fwsskq6dp9wgj0bd2qf0qx5nq33cl"))))
-    (build-system perl-build-system)
-    (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-pod" ,perl-test-pod)))
-    (inputs
-     `(("perl-data-dump" ,perl-data-dump)
-       ("perl-json" ,perl-json)
-       ("perl-libwww" ,perl-libwww)
-       ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
-       ("perl-lwp-useragent-cached" ,perl-lwp-useragent-cached)
-       ("perl-mozilla-ca" ,perl-mozilla-ca)
-       ("perl-term-readline-gnu" ,perl-term-readline-gnu)
-       ("perl-unicode-linebreak" ,perl-unicode-linebreak)
-       ("xdg-utils" ,xdg-utils)))
-    ;; Required only when building the graphical interface (--gtk).
-    ;;("perl-file-sharedir" ,perl-file-sharedir)
-    
-    ;; Some videos play without youtube-dl, but others silently fail to.
-    (propagated-inputs
-     `(("youtube-dl" ,youtube-dl)))
-    (arguments
-     `(#:modules ((guix build perl-build-system)
-                  (guix build utils)
-                  (srfi srfi-26))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'refer-to-inputs
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "lib/WWW/StrawViewer.pm"
-               (("'youtube-dl'")
-                (format #f "'~a/bin/youtube-dl'"
-                        (assoc-ref inputs "youtube-dl"))))
-             (substitute* "bin/gtk-straw-viewer"
-               (("'xdg-open'")
-                (format #f "'~a/bin/xdg-open'"
-                        (assoc-ref inputs "xdg-utils"))))
-             #t))
-         ;; (add-after 'install 'install-desktop
-         ;;   (lambda* (#:key outputs #:allow-other-keys)
-         ;;     (let* ((out (assoc-ref outputs "out"))
-         ;;            (sharedir (string-append out "/share")))
-         ;;       (install-file "share/gtk-straw-viewer.desktop"
-         ;;                     (string-append sharedir "/applications"))
-         ;;       (install-file "share/icons/gtk-straw-viewer.png"
-         ;;                     (string-append sharedir "/pixmaps"))
-         ;;       #t)))
-         (add-after 'install 'wrap-program
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (bin-dir (string-append out "/bin/"))
-                    (site-dir (string-append out "/lib/perl5/site_perl/"))
-                    (lib-path (getenv "PERL5LIB")))
-               (for-each (cut wrap-program <>
-                              `("PERL5LIB" ":" prefix (,lib-path ,site-dir)))
-                         (find-files bin-dir))
-               #t))))))
-    (synopsis
-     "Light-weight application for searching and streaming videos from YouTube")
-    (description
-     "Straw-viewer searches for YouTube videos using @uref{https://invidio.us/,
-invidio.us} and plays them locally in a native media player like @command{vlc}
-or @command{mpv}.
-
-You can search for videos, playlists, and/or channels.  The videos are streamed
-directly to the player at the best chosen resolution and with closed captions if
-available.")
-    ;; XXX Add #:module-build-flags '("--gtk") dependencies and this sentence.
-    ;; Both a command-line and a graphical interface are available.
-    (home-page "https://github.com/trizen/youtube-viewer")
-    (license license:perl-license)))
+  (deprecated-package "straw-viewer" pipe-viewer))
 
 (define-public x265
   (package
-- 
2.32.0
R
R
Raghav Gururajan wrote on 25 Jun 2021 21:52
[PATCH v2 03/16] gnu: perl-cairo: Propagate cairo.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210625195259.18741-3-rg@raghavgururajan.name
Dependants of perl-cairo also require cairo for its typelibs and schemas.

* gnu/packages/gtk.scm (perl-cairo)[inputs]: Move cairo to ...
[propagated-inputs]: ... here.
---
gnu/packages/gtk.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (15 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 138fa7c314..99a4128286 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1586,7 +1586,7 @@ write GNOME applications.")
     (native-inputs
      `(("perl-extutils-depends" ,perl-extutils-depends)
        ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
-    (inputs
+    (propagated-inputs
      `(("cairo" ,cairo)))
     (home-page "https://metacpan.org/release/Cairo")
     (synopsis "Perl interface to the cairo 2d vector graphics library")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 25 Jun 2021 21:52
[PATCH v2 02/16] gnu: perl-glib: Propagate glib.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210625195259.18741-2-rg@raghavgururajan.name
Dependants of perl-glib also require glib for its typelibs and schemas.

* gnu/packages/glib.scm (perl-glib)[inputs]: Move glib to ...
[propagated-inputs]: ... here.
---
gnu/packages/glib.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (15 lines)
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 206222b578..f2dbddbde6 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -877,7 +877,7 @@ useful for C++.")
     (native-inputs
      `(("perl-extutils-depends" ,perl-extutils-depends)
        ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
-    (inputs
+    (propagated-inputs
      `(("glib" ,glib)))
     (home-page "https://metacpan.org/release/Glib")
     (synopsis "Perl wrappers for the GLib utility and Object libraries")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 25 Jun 2021 21:52
[PATCH v2 05/16] gnu: Add perl-glib-object-introspection.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210625195259.18741-5-rg@raghavgururajan.name
* gnu/packages/glib.scm (perl-glib-object-introspection): New variable.
---
gnu/packages/glib.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index f2dbddbde6..91ef45099c 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -888,6 +888,32 @@ these libraries are used as the foundation for many of the libraries that make
 up the Gnome environment, and are used in many unrelated projects.")
     (license license:lgpl2.1+)))
 
+(define-public perl-glib-object-introspection
+  (package
+    (name "perl-glib-object-introspection")
+    (version "0.049")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/"
+                           "Glib-Object-Introspection-" version ".tar.gz"))
+       (sha256
+        (base32 "0mxg6pz8qfyipw0ypr54alij0c4adzg94f62702b2a6hkp5jhij6"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-extutils-depends" ,perl-extutils-depends)
+       ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
+    (propagated-inputs
+     `(("gobject-introspection" ,gobject-introspection)
+       ("perl-cairo-gobject" ,perl-cairo-gobject)
+       ("perl-glib" ,perl-glib)))
+    (home-page "https://metacpan.org/dist/Glib-Object-Introspection")
+    (synopsis "Dynamically create Perl language bindings")
+    (description "Glib::Object::Introspection uses the gobject-introspection and
+libffi projects to dynamically create Perl bindings for a wide variety of
+libraries.  Examples include gtk+, webkit, libsoup and many more.")
+    (license license:lgpl2.1+)))
+
 (define telepathy-glib
   (package
     (name "telepathy-glib")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 25 Jun 2021 21:52
[PATCH v2 04/16] gnu: Add perl-cairo-gobject.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210625195259.18741-4-rg@raghavgururajan.name
* gnu/packages/gtk.scm (perl-cairo-gobject): New variable.
---
gnu/packages/gtk.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 99a4128286..bc30905444 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -80,6 +80,7 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages perl-check)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages python)
@@ -1595,6 +1596,30 @@ cairo.  It supports multiple output targets, including PNG, PDF and SVG.  Cairo
 produces identical output on all those targets.")
     (license license:lgpl2.1+)))
 
+(define-public perl-cairo-gobject
+  (package
+    (name "perl-cairo-gobject")
+    (version "1.005")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/"
+                           "Cairo-GObject-" version ".tar.gz"))
+       (sha256
+        (base32 "0l2wcz77ndmbgvxx34gdm919a3dxh9fixqr47p50n78ysx2692cd"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-extutils-depends" ,perl-extutils-depends)
+       ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
+    (propagated-inputs
+     `(("perl-cairo" ,perl-cairo)
+       ("perl-glib" ,perl-glib)))
+    (home-page "https://metacpan.org/dist/Cairo-GObject")
+    (synopsis "Integrate Cairo into the Glib type system")
+    (description "Cairo::GObject registers Cairo's types with Glib's type systems,
+so that they can be used normally in signals and properties.")
+    (license license:lgpl2.1+)))
+
 (define-public perl-gtk2
   (package
     (name "perl-gtk2")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 25 Jun 2021 21:52
[PATCH v2 06/16] gnu: Add perl-gtk3.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210625195259.18741-6-rg@raghavgururajan.name
* gnu/packages/gtk.scm (perl-gtk3): New variable.
---
gnu/packages/gtk.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)

Toggle diff (55 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index bc30905444..d92b9aa3e4 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1657,6 +1657,48 @@ object-oriented way, freeing you from the casting and memory management in C,
 yet remaining very close in spirit to original API.")
     (license license:lgpl2.1+)))
 
+(define-public perl-gtk3
+  (package
+    (name "perl-gtk3")
+    (version "0.038")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/Gtk3-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "1k3sfcvxxx7ir7ail7w1lkmr4np0k3criljzw5wir63lmbr4pp3h"))))
+    (build-system perl-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; Tests require a running X server.
+             (system "Xvfb :1 +extension GLX &")
+             (setenv "DISPLAY" ":1"))))))
+    (native-inputs
+     `(("adwaita-icon-theme" ,adwaita-icon-theme)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("perl-extutils-depends" ,perl-extutils-depends)
+       ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)
+       ("perl-test-simple" ,perl-test-simple)
+       ("xorg-server" ,xorg-server-for-tests)))
+    (propagated-inputs
+     `(("gtk+" ,gtk+)
+       ("perl-cairo-gobject" ,perl-cairo-gobject)
+       ("perl-carp" ,perl-carp)
+       ("perl-exporter" ,perl-exporter)
+       ("perl-glib-object-introspection" ,perl-glib-object-introspection)))
+    (home-page "https://metacpan.org/dist/Gtk3")
+    (synopsis "Perl interface to the 3.x series of the gtk+ toolkit")
+    (description "Perl bindings to the 3.x series of the gtk+ toolkit.
+This module allows you to write graphical user interfaces in a Perlish and
+object-oriented way, freeing you from the casting and memory management in C,
+yet remaining very close in spirit to original API.")
+    (license license:lgpl2.1+)))
+
 (define-public perl-pango
   (package
     (name "perl-pango")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 25 Jun 2021 21:52
[PATCH v2 07/16] gnu: Add perl-text-tabs+wrap.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210625195259.18741-7-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-text-tabs+wrap): New variable.
---
gnu/packages/perl.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 84d1ad9634..dd24b10180 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -10331,6 +10331,24 @@ algorism to indicate multiplication by 1000.")
     (description "Text::Table renders plaintext tables.")
     (license license:x11)))
 
+(define-public perl-text-tabs+wrap
+  (package
+    (name "perl-text-tabs+wrap")
+    (version "2013.0523")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/M/MU/MUIR/modules/"
+                           "Text-Tabs+Wrap-" version ".tar.gz"))
+       (sha256
+        (base32 "0pv5dympvrba6lslklwzb4glpazl5farn2b2530vjdxpzxphbjxr"))))
+    (build-system perl-build-system)
+    (home-page "https://metacpan.org/dist/Text-Tabs+Wrap")
+    (synopsis "Text::Tabs and Text::Wrap Modules")
+    (description "Text::Tabs will add or remove tabs from a document.
+Text::Wrap will reformat lines into paragraphs.")
+    (license (package-license perl))))
+
 (define-public perl-text-template
   (package
     (name "perl-text-template")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 25 Jun 2021 21:52
[PATCH v2 01/16] gnu: Add perl-exporter.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210625195259.18741-1-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-exporter): New variable.
---
gnu/packages/perl.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index d449abc78c..84d1ad9634 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -4204,6 +4204,31 @@ command, which can be used as a minimal Perl read-eval-print loop (REPL).")
 in your modules in a \"Java-esque\" manner.")
     (license (package-license perl))))
 
+(define-public perl-exporter
+  (package
+    (name "perl-exporter")
+    (version "5.74")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/T/TO/TODDR/"
+                           "Exporter-" version ".tar.gz"))
+       (sha256
+        (base32 "1f25k5iaygiizlrkbbl6wxd647pwfmynykxalq6r9bbkysg8inza"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-pod" ,perl-test-pod)))
+    (propagated-inputs
+     `(("perl-carp" ,perl-carp)))
+    (home-page "https://metacpan.org/dist/Exporter")
+    (synopsis "Default import method for modules")
+    (description "Exporter implements an import method which allows a module to
+export functions and variables to its users' namespaces.  Many modules use
+Exporter rather than implementing their own import method because Exporter
+provides a highly flexible interface, with an implementation optimised for the
+common case.")
+    (license (package-license perl))))
+
 (define-public perl-exporter-lite
   (package
     (name "perl-exporter-lite")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 25 Jun 2021 21:52
[PATCH v2 08/16] gnu: Add perl-text-parsewords.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210625195259.18741-8-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-text-parsewords): New variable.
---
gnu/packages/perl.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index dd24b10180..97a7e14a69 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -10250,6 +10250,24 @@ template engine, for when you need speed rather than complex features,
 yet need more features than simple variable substitution.")
     (license (package-license perl))))
 
+(define-public perl-text-parsewords
+  (package
+    (name "perl-text-parsewords")
+    (version "3.30")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/C/CH/CHORNY/"
+                           "Text-ParseWords-" version ".tar.gz"))
+       (sha256
+        (base32 "1s7mmznk4chdvfi2jl2h6gawfaqq24bdasy6b1z9jhyxg60j7q45"))))
+    (build-system perl-build-system)
+    (home-page "https://metacpan.org/dist/Text-ParseWords")
+    (synopsis "Parse text into an array of tokens or array of arrays")
+    (description "Text::ParseWords module is used to parse text into an array of
+tokens or array of arrays.")
+    (license (package-license perl))))
+
 (define-public perl-text-patch
   (package
     (name "perl-text-patch")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 25 Jun 2021 21:52
[PATCH v2 09/16] gnu: Add perl-term-ansicolor.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210625195259.18741-9-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-term-ansicolor): New variable.
---
gnu/packages/perl.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 97a7e14a69..dc681865ac 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -9836,6 +9836,30 @@ situations, where you may need to upgrade to the full feature set in the
 future, or if you want the retain the familiarity of TT-style templates.")
     (license license:perl-license)))
 
+(define-public perl-term-ansicolor
+  (package
+    (name "perl-term-ansicolor")
+    (version "5.01")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/R/RR/RRA/"
+                           "Term-ANSIColor-" version ".tar.gz"))
+       (sha256
+        (base32 "0zgj329kfrwcyqn491v04x65yjydwfc4845a71f8hypdrj3vv0b2"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-warn" ,perl-test-warn)))
+    (home-page "https://metacpan.org/dist/Term-ANSIColor")
+    (synopsis "Interface to the ANSI terminal escape sequences for color")
+    (description "Term::ANSIColor provides constants and simple functions for
+setting ANSI text attributes, most notably colors.  It can be used to set the
+current text attributes or to apply a set of attributes to a string and reset
+the current text attributes at the end of that string.  Eight-color,
+sixteen-color, 256-color, and true color (24-bit color) escape sequences are all
+supported.")
+    (license (package-license perl))))
+
 (define-public perl-term-encoding
   (package
     (name "perl-term-encoding")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 25 Jun 2021 21:52
[PATCH v2 10/16] gnu: Add perl-test-portability-files.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210625195259.18741-10-rg@raghavgururajan.name
* gnu/packages/perl-check.scm (perl-test-portability-files): New variable.
---
gnu/packages/perl-check.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/perl-check.scm b/gnu/packages/perl-check.scm
index a761ebffcf..87f233a3aa 100644
--- a/gnu/packages/perl-check.scm
+++ b/gnu/packages/perl-check.scm
@@ -1157,6 +1157,31 @@ Pod::Simple to do the heavy lifting.")
 checks for pod coverage of all appropriate files.")
     (license artistic2.0)))
 
+(define-public perl-test-portability-files
+  (package
+    (name "perl-test-portability-files")
+    (version "0.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/A/AB/ABRAXXA/"
+                           "Test-Portability-Files-" version ".tar.gz"))
+       (sha256
+        (base32 "05hs80gljkd6mhb8zvilyk3pjqxp5samgnymam5v9h9d94rb9r08"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-simple" ,perl-test-simple)))
+    (propagated-inputs
+     `(("perl-pathtools" ,perl-pathtools)))
+    (home-page "https://metacpan.org/dist/Test-Portability-Files")
+    (synopsis "Check file names portability")
+    (description "Test::Portability::Files module is used to check the
+portability across operating systems of the names of the files present in the
+distribution of a module.  The tests use the advices given in 'Files and
+Filesystems' in perlport.  The author of a distribution can select which tests
+to execute.")
+    (license perl-license)))
+
 (define-public perl-test-requires
   (package
     (name "perl-test-requires")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 25 Jun 2021 21:52
[PATCH v2 11/16] gnu: Add perl-xsloader.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210625195259.18741-11-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-xsloader): New variable.
---
gnu/packages/perl.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index dc681865ac..2b668f93bf 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -11173,6 +11173,30 @@ attribute names.")
     ;; modification, are permitted under any circumstances.  No warranty.
     (license license:public-domain)))
 
+(define-public perl-xsloader
+  (package
+    (name "perl-xsloader")
+    (version "0.24")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/S/SA/SAPER/"
+                           "XSLoader-" version ".tar.gz"))
+       (sha256
+        (base32 "0pyqr12jsqagna75fm2gijfzw06wy1hrh5chn9hwnmcfddda66g8"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-distribution" ,perl-test-distribution)
+       ("perl-text-pod" ,perl-test-pod)
+       ("perl-test-pod-coverage" ,perl-test-pod-coverage)
+       ("perl-test-portability-files" ,perl-test-portability-files)))
+    (home-page "https://metacpan.org/dist/XSLoader")
+    (synopsis "Dynamically load C libraries into Perl code")
+    (description "XSLoader module defines a standard simplified interface to the
+dynamic linking mechanisms available on many platforms.  Its primary purpose is
+to implement cheap automatic dynamic loading of Perl modules.")
+    (license (package-license perl))))
+
 (define-public perl-xs-object-magic
   (package
     (name "perl-xs-object-magic")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 25 Jun 2021 21:52
[PATCH v2 12/16] gnu: Add perl-storable.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210625195259.18741-12-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-storable): New variable.
---
gnu/packages/perl.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 2b668f93bf..add00a1032 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -9205,6 +9205,27 @@ which it is called.")
 implementation of @dfn{Principal Component Analysis} (PCA).")
     (license license:perl-license)))
 
+(define-public perl-storable
+  (package
+    (name "perl-storable")
+    (version "3.15")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/X/XS/XSAWYERX/"
+                           "Storable-" version ".tar.gz"))
+       (sha256
+        (base32 "1nkln4fm4962b5jk1dp6lf635nnrj5a5pg1a5xmchvrfrc3asggw"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-xsloader" ,perl-xsloader)))
+    (home-page "https://metacpan.org/dist/Storable")
+    (synopsis "Persistence for Perl data structures")
+    (description "Storable brings persistence to your Perl data structures
+containing SCALAR, ARRAY, HASH or REF objects, i.e. anything that can be
+conveniently stored to disk and retrieved at a later time.")
+    (license (package-license perl))))
+
 (define-public perl-stream-buffered
   (package
     (name "perl-stream-buffered")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 25 Jun 2021 21:52
[PATCH v2 13/16] gnu: Add perl-encode.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210625195259.18741-13-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-encode): New variable.
---
gnu/packages/perl.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index add00a1032..90bbf8c72c 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -3986,6 +3986,28 @@ very platform-dependent, so correct use of these functions requires
 the programmer to be mindfulof the space of platform variations.")
     (license license:perl-license)))
 
+(define-public perl-encode
+  (package
+    (name "perl-encode")
+    (version "3.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/D/DA/DANKOGAI/"
+                           "Encode-" version ".tar.gz"))
+       (sha256
+        (base32 "1a8rwcrxxhq81jcdvdwns05c65jwr5r6bxvby6vdcr3ny5m91my2"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-exporter" ,perl-exporter)
+       ("perl-storable" ,perl-storable)
+       ("perl-parent" ,perl-parent)))
+    (home-page "https://metacpan.org/dist/Encode")
+    (synopsis "Character encodings in Perl")
+    (description "Encode module provides the interface between Perl strings and
+the rest of the system.  Perl strings are sequences of characters.")
+    (license (package-license perl))))
+
 (define-public perl-encode-detect
   (package
     (name "perl-encode-detect")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 25 Jun 2021 21:52
[PATCH v2 14/16] gnu: Add perl-mime-base64.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210625195259.18741-14-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-mime-base64): New variable.
---
gnu/packages/perl.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 90bbf8c72c..a51e9e31f6 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -6410,6 +6410,31 @@ follows LRU semantics, that is, the last n results, where n is specified as
 the argument to the CACHESIZE parameter, will be cached.")
     (license (package-license perl))))
 
+(define-public perl-mime-base64
+  (package
+    (name "perl-mime-base64")
+    (version "3.16")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/C/CA/CAPOEIRAB/"
+                           "MIME-Base64-" version ".tar.gz"))
+       (sha256
+        (base32 "05v04kjaz2ya0zaj4m64gzxpfv4vgxhw5n5h12z373gbg9pkvxvp"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-exporter" ,perl-exporter)
+       ("perl-xsloader" ,perl-xsloader)))
+    (home-page "https://metacpan.org/dist/MIME-Base64")
+    (synopsis "Encoding and decoding of base64 strings")
+    (description "MIME::Base64 module provides functions to encode and decode
+strings into and from the base64 encoding specified in RFC 2045 - MIME
+(Multipurpose Internet Mail Extensions).  The base64 encoding is designed to
+represent arbitrary sequences of octets in a form that need not be humanly
+readable.  A 65-character subset ([A-Za-z0-9+/=]) of US-ASCII is used, enabling
+6 bits to be represented per printable character.")
+    (license (package-license perl))))
+
 (define-public perl-mime-charset
   (package
     (name "perl-mime-charset")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 25 Jun 2021 21:52
[PATCH v2 15/16] gnu: Add pipe-viewer.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210625195259.18741-15-rg@raghavgururajan.name
* gnu/packages/video.scm (pipe-viewer): New variable.
---
gnu/packages/video.scm | 127 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 127 insertions(+)

Toggle diff (147 lines)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index fbc468eab7..b5e57286e6 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -178,6 +178,7 @@
   #:use-module (gnu packages vulkan)
   #:use-module (gnu packages web)
   #:use-module (gnu packages webkit)
+  #:use-module (gnu packages wget)
   #:use-module (gnu packages wxwidgets)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xiph)
@@ -1020,6 +1021,132 @@ H.264 (MPEG-4 AVC) video streams.")
 (@command{mkvmerge}).")
     (license license:gpl2)))
 
+(define-public pipe-viewer
+  (package
+    (name "pipe-viewer")
+    (version "0.1.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/trizen/pipe-viewer")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1d2gfkd3nc0c4ah67250lqskkd85wpljrikw8a378ni398ngaq14"))))
+    (build-system perl-build-system)
+    (arguments
+     `(#:imported-modules
+       ((guix build copy-build-system)
+        ,@%perl-build-system-modules)
+       #:modules
+       (((guix build copy-build-system)
+         #:prefix copy:)
+        (guix build perl-build-system)
+        (guix build utils)
+        (srfi srfi-26))
+       #:module-build-flags
+       (list
+        "--gtk3")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-source
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* (find-files "." "(.*viewer$|\\.pm$)")
+               (("'ffmpeg'")
+                (format #f "'~a/bin/ffmpeg'"
+                        (assoc-ref inputs "ffmpeg")))
+               (("\"ffmpeg\"")
+                (format #f "\"~a/bin/ffmpeg\""
+                        (assoc-ref inputs "ffmpeg")))
+               (("'mpv'")
+                (format #f "'~a/bin/mpv'"
+                        (assoc-ref inputs "mpv")))
+               (("\"mpv\"")
+                (format #f "\"~a/bin/mpv\""
+                        (assoc-ref inputs "mpv")))
+               (("'wget'")
+                (format #f "'~a/bin/wget'"
+                        (assoc-ref inputs "wget")))
+               (("\"wget\"")
+                (format #f "\"~a/bin/wget\""
+                        (assoc-ref inputs "wget")))
+               (("'xdg-open'")
+                (format #f "'~a/bin/xdg-open'"
+                        (assoc-ref inputs "xdg-utils")))
+               (("\"xdg-open\"")
+                (format #f "\"~a/bin/xdg-open\""
+                        (assoc-ref inputs "xdg-utils")))
+               (("'youtube-dl'")
+                (format #f "'~a/bin/youtube-dl'"
+                        (assoc-ref inputs "youtube-dl")))
+               (("\"youtube-dl\"")
+                (format #f "\"~a/bin/youtube-dl\""
+                        (assoc-ref inputs "youtube-dl"))))))
+         (add-after 'install 'install-xdg
+           (lambda args
+             (apply (assoc-ref copy:%standard-phases 'install)
+                    #:install-plan
+                    '(("share/icons" "share/pixmaps")
+                      ("share" "share/applications"
+                       #:include-regexp ("\\.desktop$")))
+                    args)))
+         (add-after 'install-xdg 'wrap-programs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin-dir (string-append out "/bin/"))
+                    (site-dir (string-append out "/lib/perl5/site_perl/"))
+                    (perl-lib (getenv "PERL5LIB"))
+                    (gi-typelib (getenv "GI_TYPELIB_PATH")))
+               (for-each
+                (cut wrap-program <>
+                     `("PERL5LIB" ":" prefix (,perl-lib ,site-dir))
+                     `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib)))
+                (find-files bin-dir))))))))
+    (native-inputs
+     `(("module-build" ,perl-module-build)
+       ("test-pod" ,perl-test-pod)
+       ("test-simple" ,perl-test-simple)))
+    (inputs
+     `(("data-dump" ,perl-data-dump)
+       ("digest-md5" ,perl-digest-md5)
+       ("encode" ,perl-encode)
+       ("ffmpeg" ,ffmpeg)
+       ("file-path" ,perl-file-path)
+       ("file-sharedir" ,perl-file-sharedir)
+       ("getopt-long" ,perl-getopt-long)
+       ("gtk3" ,perl-gtk3)
+       ("http-message" ,perl-http-message)
+       ("json" ,perl-json)
+       ("json-xs" ,perl-json-xs)
+       ("libwww" ,perl-libwww)
+       ("lwp-protocol-https" ,perl-lwp-protocol-https)
+       ("lwp-useragent-cached" ,perl-lwp-useragent-cached)
+       ("memoize" ,perl-memoize)
+       ("mime-base64" ,perl-mime-base64)
+       ("mpv" ,mpv)
+       ("pathtools" ,perl-pathtools)
+       ("scalar-list-utils" ,perl-scalar-list-utils)
+       ("storable" ,perl-storable)
+       ("term-ansicolor" ,perl-term-ansicolor)
+       ("term-readline-gnu" ,perl-term-readline-gnu)
+       ("text-parsewords" ,perl-text-parsewords)
+       ("text-tabs+wrap" ,perl-text-tabs+wrap)
+       ("unicode-linebreak" ,perl-unicode-linebreak)
+       ("uri-escape" ,perl-uri-escape)
+       ("wget" ,wget)
+       ("xdg-utils" ,xdg-utils)
+       ("youtube-dl" ,youtube-dl)))
+    (propagated-inputs
+     `(("dconf" ,dconf)))
+    (home-page "https://github.com/trizen/pipe-viewer")
+    (synopsis "CLI+GUI YouTube Client")
+    (description "Pipe-Viewer is a lightweight application for searching and
+playing videos from YouTube.  It parses the YouTube website directly and relies
+on the Invidious instances only as a fallback method.")
+    (license license:artistic2.0)))
+
 (define-public straw-viewer
   (package
     (name "straw-viewer")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 25 Jun 2021 21:52
[PATCH v2 16/16] gnu: straw-viewer: Deprecate package.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210625195259.18741-16-rg@raghavgururajan.name
Upstream has replaced straw-viewer with pipe-viewer.

* gnu/packages/video.scm (straw-viewer): Deprecate in favour of pipe-viewer.
---
gnu/packages/video.scm | 83 +-----------------------------------------
1 file changed, 1 insertion(+), 82 deletions(-)

Toggle diff (96 lines)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index b5e57286e6..2551d8e9d9 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1148,88 +1148,7 @@ on the Invidious instances only as a fallback method.")
     (license license:artistic2.0)))
 
 (define-public straw-viewer
-  (package
-    (name "straw-viewer")
-    (version "0.1.3")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/trizen/straw-viewer")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "1n21byn7hqykpm94jmmnir1fwsskq6dp9wgj0bd2qf0qx5nq33cl"))))
-    (build-system perl-build-system)
-    (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-pod" ,perl-test-pod)))
-    (inputs
-     `(("perl-data-dump" ,perl-data-dump)
-       ("perl-json" ,perl-json)
-       ("perl-libwww" ,perl-libwww)
-       ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
-       ("perl-lwp-useragent-cached" ,perl-lwp-useragent-cached)
-       ("perl-mozilla-ca" ,perl-mozilla-ca)
-       ("perl-term-readline-gnu" ,perl-term-readline-gnu)
-       ("perl-unicode-linebreak" ,perl-unicode-linebreak)
-       ("xdg-utils" ,xdg-utils)))
-    ;; Required only when building the graphical interface (--gtk).
-    ;;("perl-file-sharedir" ,perl-file-sharedir)
-    
-    ;; Some videos play without youtube-dl, but others silently fail to.
-    (propagated-inputs
-     `(("youtube-dl" ,youtube-dl)))
-    (arguments
-     `(#:modules ((guix build perl-build-system)
-                  (guix build utils)
-                  (srfi srfi-26))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'refer-to-inputs
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "lib/WWW/StrawViewer.pm"
-               (("'youtube-dl'")
-                (format #f "'~a/bin/youtube-dl'"
-                        (assoc-ref inputs "youtube-dl"))))
-             (substitute* "bin/gtk-straw-viewer"
-               (("'xdg-open'")
-                (format #f "'~a/bin/xdg-open'"
-                        (assoc-ref inputs "xdg-utils"))))
-             #t))
-         ;; (add-after 'install 'install-desktop
-         ;;   (lambda* (#:key outputs #:allow-other-keys)
-         ;;     (let* ((out (assoc-ref outputs "out"))
-         ;;            (sharedir (string-append out "/share")))
-         ;;       (install-file "share/gtk-straw-viewer.desktop"
-         ;;                     (string-append sharedir "/applications"))
-         ;;       (install-file "share/icons/gtk-straw-viewer.png"
-         ;;                     (string-append sharedir "/pixmaps"))
-         ;;       #t)))
-         (add-after 'install 'wrap-program
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (bin-dir (string-append out "/bin/"))
-                    (site-dir (string-append out "/lib/perl5/site_perl/"))
-                    (lib-path (getenv "PERL5LIB")))
-               (for-each (cut wrap-program <>
-                              `("PERL5LIB" ":" prefix (,lib-path ,site-dir)))
-                         (find-files bin-dir))
-               #t))))))
-    (synopsis
-     "Light-weight application for searching and streaming videos from YouTube")
-    (description
-     "Straw-viewer searches for YouTube videos using @uref{https://invidio.us/,
-invidio.us} and plays them locally in a native media player like @command{vlc}
-or @command{mpv}.
-
-You can search for videos, playlists, and/or channels.  The videos are streamed
-directly to the player at the best chosen resolution and with closed captions if
-available.")
-    ;; XXX Add #:module-build-flags '("--gtk") dependencies and this sentence.
-    ;; Both a command-line and a graphical interface are available.
-    (home-page "https://github.com/trizen/youtube-viewer")
-    (license license:perl-license)))
+  (deprecated-package "straw-viewer" pipe-viewer))
 
 (define-public x265
   (package
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:17
[PATCH v3 02/16] gnu: perl-glib: Propagate glib.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630031753.14653-2-rg@raghavgururajan.name
Dependants of perl-glib also require glib for its typelibs and schemas.

* gnu/packages/glib.scm (perl-glib)[inputs]: Move glib to ...
[propagated-inputs]: ... here.
---
gnu/packages/glib.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (15 lines)
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 206222b578..f2dbddbde6 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -877,7 +877,7 @@ useful for C++.")
     (native-inputs
      `(("perl-extutils-depends" ,perl-extutils-depends)
        ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
-    (inputs
+    (propagated-inputs
      `(("glib" ,glib)))
     (home-page "https://metacpan.org/release/Glib")
     (synopsis "Perl wrappers for the GLib utility and Object libraries")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:17
[PATCH v3 04/16] gnu: Add perl-cairo-gobject.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630031753.14653-4-rg@raghavgururajan.name
* gnu/packages/gtk.scm (perl-cairo-gobject): New variable.
---
gnu/packages/gtk.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 99a4128286..bc30905444 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -80,6 +80,7 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages perl-check)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages python)
@@ -1595,6 +1596,30 @@ cairo.  It supports multiple output targets, including PNG, PDF and SVG.  Cairo
 produces identical output on all those targets.")
     (license license:lgpl2.1+)))
 
+(define-public perl-cairo-gobject
+  (package
+    (name "perl-cairo-gobject")
+    (version "1.005")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/"
+                           "Cairo-GObject-" version ".tar.gz"))
+       (sha256
+        (base32 "0l2wcz77ndmbgvxx34gdm919a3dxh9fixqr47p50n78ysx2692cd"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-extutils-depends" ,perl-extutils-depends)
+       ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
+    (propagated-inputs
+     `(("perl-cairo" ,perl-cairo)
+       ("perl-glib" ,perl-glib)))
+    (home-page "https://metacpan.org/dist/Cairo-GObject")
+    (synopsis "Integrate Cairo into the Glib type system")
+    (description "Cairo::GObject registers Cairo's types with Glib's type systems,
+so that they can be used normally in signals and properties.")
+    (license license:lgpl2.1+)))
+
 (define-public perl-gtk2
   (package
     (name "perl-gtk2")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:17
[PATCH v3 01/16] gnu: Add perl-exporter.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630031753.14653-1-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-exporter): New variable.
---
gnu/packages/perl.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index d449abc78c..84d1ad9634 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -4204,6 +4204,31 @@ command, which can be used as a minimal Perl read-eval-print loop (REPL).")
 in your modules in a \"Java-esque\" manner.")
     (license (package-license perl))))
 
+(define-public perl-exporter
+  (package
+    (name "perl-exporter")
+    (version "5.74")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/T/TO/TODDR/"
+                           "Exporter-" version ".tar.gz"))
+       (sha256
+        (base32 "1f25k5iaygiizlrkbbl6wxd647pwfmynykxalq6r9bbkysg8inza"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-pod" ,perl-test-pod)))
+    (propagated-inputs
+     `(("perl-carp" ,perl-carp)))
+    (home-page "https://metacpan.org/dist/Exporter")
+    (synopsis "Default import method for modules")
+    (description "Exporter implements an import method which allows a module to
+export functions and variables to its users' namespaces.  Many modules use
+Exporter rather than implementing their own import method because Exporter
+provides a highly flexible interface, with an implementation optimised for the
+common case.")
+    (license (package-license perl))))
+
 (define-public perl-exporter-lite
   (package
     (name "perl-exporter-lite")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:17
[PATCH v3 03/16] gnu: perl-cairo: Propagate cairo.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630031753.14653-3-rg@raghavgururajan.name
Dependants of perl-cairo also require cairo for its typelibs and schemas.

* gnu/packages/gtk.scm (perl-cairo)[inputs]: Move cairo to ...
[propagated-inputs]: ... here.
---
gnu/packages/gtk.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (15 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 138fa7c314..99a4128286 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1586,7 +1586,7 @@ write GNOME applications.")
     (native-inputs
      `(("perl-extutils-depends" ,perl-extutils-depends)
        ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
-    (inputs
+    (propagated-inputs
      `(("cairo" ,cairo)))
     (home-page "https://metacpan.org/release/Cairo")
     (synopsis "Perl interface to the cairo 2d vector graphics library")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:17
[PATCH v3 05/16] gnu: Add perl-glib-object-introspection.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630031753.14653-5-rg@raghavgururajan.name
* gnu/packages/glib.scm (perl-glib-object-introspection): New variable.
---
gnu/packages/glib.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index f2dbddbde6..91ef45099c 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -888,6 +888,32 @@ these libraries are used as the foundation for many of the libraries that make
 up the Gnome environment, and are used in many unrelated projects.")
     (license license:lgpl2.1+)))
 
+(define-public perl-glib-object-introspection
+  (package
+    (name "perl-glib-object-introspection")
+    (version "0.049")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/"
+                           "Glib-Object-Introspection-" version ".tar.gz"))
+       (sha256
+        (base32 "0mxg6pz8qfyipw0ypr54alij0c4adzg94f62702b2a6hkp5jhij6"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-extutils-depends" ,perl-extutils-depends)
+       ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
+    (propagated-inputs
+     `(("gobject-introspection" ,gobject-introspection)
+       ("perl-cairo-gobject" ,perl-cairo-gobject)
+       ("perl-glib" ,perl-glib)))
+    (home-page "https://metacpan.org/dist/Glib-Object-Introspection")
+    (synopsis "Dynamically create Perl language bindings")
+    (description "Glib::Object::Introspection uses the gobject-introspection and
+libffi projects to dynamically create Perl bindings for a wide variety of
+libraries.  Examples include gtk+, webkit, libsoup and many more.")
+    (license license:lgpl2.1+)))
+
 (define telepathy-glib
   (package
     (name "telepathy-glib")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:17
[PATCH v3 06/16] gnu: Add perl-gtk3.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630031753.14653-6-rg@raghavgururajan.name
* gnu/packages/gtk.scm (perl-gtk3): New variable.
---
gnu/packages/gtk.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)

Toggle diff (55 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index bc30905444..d92b9aa3e4 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1657,6 +1657,48 @@ object-oriented way, freeing you from the casting and memory management in C,
 yet remaining very close in spirit to original API.")
     (license license:lgpl2.1+)))
 
+(define-public perl-gtk3
+  (package
+    (name "perl-gtk3")
+    (version "0.038")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/Gtk3-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "1k3sfcvxxx7ir7ail7w1lkmr4np0k3criljzw5wir63lmbr4pp3h"))))
+    (build-system perl-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; Tests require a running X server.
+             (system "Xvfb :1 +extension GLX &")
+             (setenv "DISPLAY" ":1"))))))
+    (native-inputs
+     `(("adwaita-icon-theme" ,adwaita-icon-theme)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("perl-extutils-depends" ,perl-extutils-depends)
+       ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)
+       ("perl-test-simple" ,perl-test-simple)
+       ("xorg-server" ,xorg-server-for-tests)))
+    (propagated-inputs
+     `(("gtk+" ,gtk+)
+       ("perl-cairo-gobject" ,perl-cairo-gobject)
+       ("perl-carp" ,perl-carp)
+       ("perl-exporter" ,perl-exporter)
+       ("perl-glib-object-introspection" ,perl-glib-object-introspection)))
+    (home-page "https://metacpan.org/dist/Gtk3")
+    (synopsis "Perl interface to the 3.x series of the gtk+ toolkit")
+    (description "Perl bindings to the 3.x series of the gtk+ toolkit.
+This module allows you to write graphical user interfaces in a Perlish and
+object-oriented way, freeing you from the casting and memory management in C,
+yet remaining very close in spirit to original API.")
+    (license license:lgpl2.1+)))
+
 (define-public perl-pango
   (package
     (name "perl-pango")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:17
[PATCH v3 07/16] gnu: Add perl-text-tabs+wrap.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630031753.14653-7-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-text-tabs+wrap): New variable.
---
gnu/packages/perl.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 84d1ad9634..dd24b10180 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -10331,6 +10331,24 @@ algorism to indicate multiplication by 1000.")
     (description "Text::Table renders plaintext tables.")
     (license license:x11)))
 
+(define-public perl-text-tabs+wrap
+  (package
+    (name "perl-text-tabs+wrap")
+    (version "2013.0523")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/M/MU/MUIR/modules/"
+                           "Text-Tabs+Wrap-" version ".tar.gz"))
+       (sha256
+        (base32 "0pv5dympvrba6lslklwzb4glpazl5farn2b2530vjdxpzxphbjxr"))))
+    (build-system perl-build-system)
+    (home-page "https://metacpan.org/dist/Text-Tabs+Wrap")
+    (synopsis "Text::Tabs and Text::Wrap Modules")
+    (description "Text::Tabs will add or remove tabs from a document.
+Text::Wrap will reformat lines into paragraphs.")
+    (license (package-license perl))))
+
 (define-public perl-text-template
   (package
     (name "perl-text-template")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:17
[PATCH v3 08/16] gnu: Add perl-text-parsewords.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630031753.14653-8-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-text-parsewords): New variable.
---
gnu/packages/perl.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index dd24b10180..97a7e14a69 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -10250,6 +10250,24 @@ template engine, for when you need speed rather than complex features,
 yet need more features than simple variable substitution.")
     (license (package-license perl))))
 
+(define-public perl-text-parsewords
+  (package
+    (name "perl-text-parsewords")
+    (version "3.30")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/C/CH/CHORNY/"
+                           "Text-ParseWords-" version ".tar.gz"))
+       (sha256
+        (base32 "1s7mmznk4chdvfi2jl2h6gawfaqq24bdasy6b1z9jhyxg60j7q45"))))
+    (build-system perl-build-system)
+    (home-page "https://metacpan.org/dist/Text-ParseWords")
+    (synopsis "Parse text into an array of tokens or array of arrays")
+    (description "Text::ParseWords module is used to parse text into an array of
+tokens or array of arrays.")
+    (license (package-license perl))))
+
 (define-public perl-text-patch
   (package
     (name "perl-text-patch")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:17
[PATCH v3 09/16] gnu: Add perl-term-ansicolor.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630031753.14653-9-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-term-ansicolor): New variable.
---
gnu/packages/perl.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 97a7e14a69..dc681865ac 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -9836,6 +9836,30 @@ situations, where you may need to upgrade to the full feature set in the
 future, or if you want the retain the familiarity of TT-style templates.")
     (license license:perl-license)))
 
+(define-public perl-term-ansicolor
+  (package
+    (name "perl-term-ansicolor")
+    (version "5.01")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/R/RR/RRA/"
+                           "Term-ANSIColor-" version ".tar.gz"))
+       (sha256
+        (base32 "0zgj329kfrwcyqn491v04x65yjydwfc4845a71f8hypdrj3vv0b2"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-warn" ,perl-test-warn)))
+    (home-page "https://metacpan.org/dist/Term-ANSIColor")
+    (synopsis "Interface to the ANSI terminal escape sequences for color")
+    (description "Term::ANSIColor provides constants and simple functions for
+setting ANSI text attributes, most notably colors.  It can be used to set the
+current text attributes or to apply a set of attributes to a string and reset
+the current text attributes at the end of that string.  Eight-color,
+sixteen-color, 256-color, and true color (24-bit color) escape sequences are all
+supported.")
+    (license (package-license perl))))
+
 (define-public perl-term-encoding
   (package
     (name "perl-term-encoding")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:17
[PATCH v3 10/16] gnu: Add perl-test-portability-files.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630031753.14653-10-rg@raghavgururajan.name
* gnu/packages/perl-check.scm (perl-test-portability-files): New variable.
---
gnu/packages/perl-check.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/perl-check.scm b/gnu/packages/perl-check.scm
index a761ebffcf..87f233a3aa 100644
--- a/gnu/packages/perl-check.scm
+++ b/gnu/packages/perl-check.scm
@@ -1157,6 +1157,31 @@ Pod::Simple to do the heavy lifting.")
 checks for pod coverage of all appropriate files.")
     (license artistic2.0)))
 
+(define-public perl-test-portability-files
+  (package
+    (name "perl-test-portability-files")
+    (version "0.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/A/AB/ABRAXXA/"
+                           "Test-Portability-Files-" version ".tar.gz"))
+       (sha256
+        (base32 "05hs80gljkd6mhb8zvilyk3pjqxp5samgnymam5v9h9d94rb9r08"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-simple" ,perl-test-simple)))
+    (propagated-inputs
+     `(("perl-pathtools" ,perl-pathtools)))
+    (home-page "https://metacpan.org/dist/Test-Portability-Files")
+    (synopsis "Check file names portability")
+    (description "Test::Portability::Files module is used to check the
+portability across operating systems of the names of the files present in the
+distribution of a module.  The tests use the advices given in 'Files and
+Filesystems' in perlport.  The author of a distribution can select which tests
+to execute.")
+    (license perl-license)))
+
 (define-public perl-test-requires
   (package
     (name "perl-test-requires")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:17
[PATCH v3 11/16] gnu: Add perl-xsloader.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630031753.14653-11-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-xsloader): New variable.
---
gnu/packages/perl.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index dc681865ac..2b668f93bf 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -11173,6 +11173,30 @@ attribute names.")
     ;; modification, are permitted under any circumstances.  No warranty.
     (license license:public-domain)))
 
+(define-public perl-xsloader
+  (package
+    (name "perl-xsloader")
+    (version "0.24")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/S/SA/SAPER/"
+                           "XSLoader-" version ".tar.gz"))
+       (sha256
+        (base32 "0pyqr12jsqagna75fm2gijfzw06wy1hrh5chn9hwnmcfddda66g8"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-distribution" ,perl-test-distribution)
+       ("perl-text-pod" ,perl-test-pod)
+       ("perl-test-pod-coverage" ,perl-test-pod-coverage)
+       ("perl-test-portability-files" ,perl-test-portability-files)))
+    (home-page "https://metacpan.org/dist/XSLoader")
+    (synopsis "Dynamically load C libraries into Perl code")
+    (description "XSLoader module defines a standard simplified interface to the
+dynamic linking mechanisms available on many platforms.  Its primary purpose is
+to implement cheap automatic dynamic loading of Perl modules.")
+    (license (package-license perl))))
+
 (define-public perl-xs-object-magic
   (package
     (name "perl-xs-object-magic")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:17
[PATCH v3 12/16] gnu: Add perl-storable.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630031753.14653-12-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-storable): New variable.
---
gnu/packages/perl.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 2b668f93bf..add00a1032 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -9205,6 +9205,27 @@ which it is called.")
 implementation of @dfn{Principal Component Analysis} (PCA).")
     (license license:perl-license)))
 
+(define-public perl-storable
+  (package
+    (name "perl-storable")
+    (version "3.15")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/X/XS/XSAWYERX/"
+                           "Storable-" version ".tar.gz"))
+       (sha256
+        (base32 "1nkln4fm4962b5jk1dp6lf635nnrj5a5pg1a5xmchvrfrc3asggw"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-xsloader" ,perl-xsloader)))
+    (home-page "https://metacpan.org/dist/Storable")
+    (synopsis "Persistence for Perl data structures")
+    (description "Storable brings persistence to your Perl data structures
+containing SCALAR, ARRAY, HASH or REF objects, i.e. anything that can be
+conveniently stored to disk and retrieved at a later time.")
+    (license (package-license perl))))
+
 (define-public perl-stream-buffered
   (package
     (name "perl-stream-buffered")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:17
[PATCH v3 13/16] gnu: Add perl-encode.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630031753.14653-13-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-encode): New variable.
---
gnu/packages/perl.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index add00a1032..90bbf8c72c 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -3986,6 +3986,28 @@ very platform-dependent, so correct use of these functions requires
 the programmer to be mindfulof the space of platform variations.")
     (license license:perl-license)))
 
+(define-public perl-encode
+  (package
+    (name "perl-encode")
+    (version "3.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/D/DA/DANKOGAI/"
+                           "Encode-" version ".tar.gz"))
+       (sha256
+        (base32 "1a8rwcrxxhq81jcdvdwns05c65jwr5r6bxvby6vdcr3ny5m91my2"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-exporter" ,perl-exporter)
+       ("perl-storable" ,perl-storable)
+       ("perl-parent" ,perl-parent)))
+    (home-page "https://metacpan.org/dist/Encode")
+    (synopsis "Character encodings in Perl")
+    (description "Encode module provides the interface between Perl strings and
+the rest of the system.  Perl strings are sequences of characters.")
+    (license (package-license perl))))
+
 (define-public perl-encode-detect
   (package
     (name "perl-encode-detect")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:17
[PATCH v3 14/16] gnu: Add perl-mime-base64.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630031753.14653-14-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-mime-base64): New variable.
---
gnu/packages/perl.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 90bbf8c72c..a51e9e31f6 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -6410,6 +6410,31 @@ follows LRU semantics, that is, the last n results, where n is specified as
 the argument to the CACHESIZE parameter, will be cached.")
     (license (package-license perl))))
 
+(define-public perl-mime-base64
+  (package
+    (name "perl-mime-base64")
+    (version "3.16")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/C/CA/CAPOEIRAB/"
+                           "MIME-Base64-" version ".tar.gz"))
+       (sha256
+        (base32 "05v04kjaz2ya0zaj4m64gzxpfv4vgxhw5n5h12z373gbg9pkvxvp"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-exporter" ,perl-exporter)
+       ("perl-xsloader" ,perl-xsloader)))
+    (home-page "https://metacpan.org/dist/MIME-Base64")
+    (synopsis "Encoding and decoding of base64 strings")
+    (description "MIME::Base64 module provides functions to encode and decode
+strings into and from the base64 encoding specified in RFC 2045 - MIME
+(Multipurpose Internet Mail Extensions).  The base64 encoding is designed to
+represent arbitrary sequences of octets in a form that need not be humanly
+readable.  A 65-character subset ([A-Za-z0-9+/=]) of US-ASCII is used, enabling
+6 bits to be represented per printable character.")
+    (license (package-license perl))))
+
 (define-public perl-mime-charset
   (package
     (name "perl-mime-charset")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:17
[PATCH v3 15/16] gnu: Add pipe-viewer.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630031753.14653-15-rg@raghavgururajan.name
* gnu/packages/video.scm (pipe-viewer): New variable.
---
gnu/packages/video.scm | 108 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 108 insertions(+)

Toggle diff (128 lines)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index fbc468eab7..599d984b1b 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -178,6 +178,7 @@
   #:use-module (gnu packages vulkan)
   #:use-module (gnu packages web)
   #:use-module (gnu packages webkit)
+  #:use-module (gnu packages wget)
   #:use-module (gnu packages wxwidgets)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xiph)
@@ -1020,6 +1021,113 @@ H.264 (MPEG-4 AVC) video streams.")
 (@command{mkvmerge}).")
     (license license:gpl2)))
 
+(define-public pipe-viewer
+  (package
+    (name "pipe-viewer")
+    (version "0.1.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/trizen/pipe-viewer")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1d2gfkd3nc0c4ah67250lqskkd85wpljrikw8a378ni398ngaq14"))))
+    (build-system perl-build-system)
+    (arguments
+     `(#:imported-modules
+       ((guix build copy-build-system)
+        ,@%perl-build-system-modules)
+       #:modules
+       (((guix build copy-build-system)
+         #:prefix copy:)
+        (guix build perl-build-system)
+        (guix build utils)
+        (srfi srfi-26))
+       #:module-build-flags
+       (list
+        "--gtk3")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-source
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* (find-files "." ".*-viewer$")
+               (("'ffmpeg'")
+                (format #f "'~a/bin/ffmpeg'"
+                        (assoc-ref inputs "ffmpeg")))
+               (("'wget'")
+                (format #f "'~a/bin/wget'"
+                        (assoc-ref inputs "wget")))
+               (("'xdg-open'")
+                (format #f "'~a/bin/xdg-open'"
+                        (assoc-ref inputs "xdg-utils")))
+               (("'youtube-dl'")
+                (format #f "'~a/bin/youtube-dl'"
+                        (assoc-ref inputs "youtube-dl"))))))
+         (add-after 'install 'install-xdg
+           (lambda args
+             (apply (assoc-ref copy:%standard-phases 'install)
+                    #:install-plan
+                    '(("share/icons" "share/pixmaps")
+                      ("share" "share/applications"
+                       #:include-regexp ("\\.desktop$")))
+                    args)))
+         (add-after 'install-xdg 'wrap-programs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin-dir (string-append out "/bin/"))
+                    (site-dir (string-append out "/lib/perl5/site_perl/"))
+                    (perl-lib (getenv "PERL5LIB"))
+                    (gi-typelib (getenv "GI_TYPELIB_PATH")))
+               (for-each
+                (cut wrap-program <>
+                     `("PERL5LIB" ":" prefix (,perl-lib ,site-dir))
+                     `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib)))
+                (find-files bin-dir))))))))
+    (native-inputs
+     `(("module-build" ,perl-module-build)
+       ("test-pod" ,perl-test-pod)
+       ("test-simple" ,perl-test-simple)))
+    (inputs
+     `(("perl-data-dump" ,perl-data-dump)
+       ("perl-digest-md5" ,perl-digest-md5)
+       ("perl-encode" ,perl-encode)
+       ("ffmpeg" ,ffmpeg)
+       ("perl-file-path" ,perl-file-path)
+       ("perl-file-sharedir" ,perl-file-sharedir)
+       ("perl-getopt-long" ,perl-getopt-long)
+       ("gtk3" ,perl-gtk3)
+       ("perl-http-message" ,perl-http-message)
+       ("perl-json" ,perl-json)
+       ("perl-json-xs" ,perl-json-xs)
+       ("perl-libwww" ,perl-libwww)
+       ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
+       ("perl-lwp-useragent-cached" ,perl-lwp-useragent-cached)
+       ("perl-memoize" ,perl-memoize)
+       ("perl-mime-base64" ,perl-mime-base64)
+       ("perl-pathtools" ,perl-pathtools)
+       ("perl-scalar-list-utils" ,perl-scalar-list-utils)
+       ("perl-storable" ,perl-storable)
+       ("perl-term-ansicolor" ,perl-term-ansicolor)
+       ("perl-term-readline-gnu" ,perl-term-readline-gnu)
+       ("perl-text-parsewords" ,perl-text-parsewords)
+       ("perl-text-tabs+wrap" ,perl-text-tabs+wrap)
+       ("perl-unicode-linebreak" ,perl-unicode-linebreak)
+       ("perl-uri-escape" ,perl-uri-escape)
+       ("wget" ,wget)
+       ("xdg-utils" ,xdg-utils)
+       ("youtube-dl" ,youtube-dl)))
+    (propagated-inputs
+     `(("dconf" ,dconf)))
+    (home-page "https://github.com/trizen/pipe-viewer")
+    (synopsis "CLI+GUI YouTube Client")
+    (description "Pipe-Viewer is a lightweight application for searching and
+playing videos from YouTube.  It parses the YouTube website directly and relies
+on the Invidious instances only as a fallback method.")
+    (license license:artistic2.0)))
+
 (define-public straw-viewer
   (package
     (name "straw-viewer")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:17
[PATCH v3 16/16] gnu: straw-viewer: Deprecate package.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630031753.14653-16-rg@raghavgururajan.name
Upstream has replaced straw-viewer with pipe-viewer.

* gnu/packages/video.scm (straw-viewer): Deprecate in favour of pipe-viewer.
---
gnu/packages/video.scm | 83 +-----------------------------------------
1 file changed, 1 insertion(+), 82 deletions(-)

Toggle diff (96 lines)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 599d984b1b..04114c5739 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1129,88 +1129,7 @@ on the Invidious instances only as a fallback method.")
     (license license:artistic2.0)))
 
 (define-public straw-viewer
-  (package
-    (name "straw-viewer")
-    (version "0.1.3")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/trizen/straw-viewer")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "1n21byn7hqykpm94jmmnir1fwsskq6dp9wgj0bd2qf0qx5nq33cl"))))
-    (build-system perl-build-system)
-    (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-pod" ,perl-test-pod)))
-    (inputs
-     `(("perl-data-dump" ,perl-data-dump)
-       ("perl-json" ,perl-json)
-       ("perl-libwww" ,perl-libwww)
-       ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
-       ("perl-lwp-useragent-cached" ,perl-lwp-useragent-cached)
-       ("perl-mozilla-ca" ,perl-mozilla-ca)
-       ("perl-term-readline-gnu" ,perl-term-readline-gnu)
-       ("perl-unicode-linebreak" ,perl-unicode-linebreak)
-       ("xdg-utils" ,xdg-utils)))
-    ;; Required only when building the graphical interface (--gtk).
-    ;;("perl-file-sharedir" ,perl-file-sharedir)
-    
-    ;; Some videos play without youtube-dl, but others silently fail to.
-    (propagated-inputs
-     `(("youtube-dl" ,youtube-dl)))
-    (arguments
-     `(#:modules ((guix build perl-build-system)
-                  (guix build utils)
-                  (srfi srfi-26))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'refer-to-inputs
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "lib/WWW/StrawViewer.pm"
-               (("'youtube-dl'")
-                (format #f "'~a/bin/youtube-dl'"
-                        (assoc-ref inputs "youtube-dl"))))
-             (substitute* "bin/gtk-straw-viewer"
-               (("'xdg-open'")
-                (format #f "'~a/bin/xdg-open'"
-                        (assoc-ref inputs "xdg-utils"))))
-             #t))
-         ;; (add-after 'install 'install-desktop
-         ;;   (lambda* (#:key outputs #:allow-other-keys)
-         ;;     (let* ((out (assoc-ref outputs "out"))
-         ;;            (sharedir (string-append out "/share")))
-         ;;       (install-file "share/gtk-straw-viewer.desktop"
-         ;;                     (string-append sharedir "/applications"))
-         ;;       (install-file "share/icons/gtk-straw-viewer.png"
-         ;;                     (string-append sharedir "/pixmaps"))
-         ;;       #t)))
-         (add-after 'install 'wrap-program
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (bin-dir (string-append out "/bin/"))
-                    (site-dir (string-append out "/lib/perl5/site_perl/"))
-                    (lib-path (getenv "PERL5LIB")))
-               (for-each (cut wrap-program <>
-                              `("PERL5LIB" ":" prefix (,lib-path ,site-dir)))
-                         (find-files bin-dir))
-               #t))))))
-    (synopsis
-     "Light-weight application for searching and streaming videos from YouTube")
-    (description
-     "Straw-viewer searches for YouTube videos using @uref{https://invidio.us/,
-invidio.us} and plays them locally in a native media player like @command{vlc}
-or @command{mpv}.
-
-You can search for videos, playlists, and/or channels.  The videos are streamed
-directly to the player at the best chosen resolution and with closed captions if
-available.")
-    ;; XXX Add #:module-build-flags '("--gtk") dependencies and this sentence.
-    ;; Both a command-line and a graphical interface are available.
-    (home-page "https://github.com/trizen/youtube-viewer")
-    (license license:perl-license)))
+  (deprecated-package "straw-viewer" pipe-viewer))
 
 (define-public x265
   (package
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:35
[PATCH v4 01/16] gnu: Add perl-exporter.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630033538.15059-1-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-exporter): New variable.
---
gnu/packages/perl.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index d449abc78c..84d1ad9634 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -4204,6 +4204,31 @@ command, which can be used as a minimal Perl read-eval-print loop (REPL).")
 in your modules in a \"Java-esque\" manner.")
     (license (package-license perl))))
 
+(define-public perl-exporter
+  (package
+    (name "perl-exporter")
+    (version "5.74")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/T/TO/TODDR/"
+                           "Exporter-" version ".tar.gz"))
+       (sha256
+        (base32 "1f25k5iaygiizlrkbbl6wxd647pwfmynykxalq6r9bbkysg8inza"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-pod" ,perl-test-pod)))
+    (propagated-inputs
+     `(("perl-carp" ,perl-carp)))
+    (home-page "https://metacpan.org/dist/Exporter")
+    (synopsis "Default import method for modules")
+    (description "Exporter implements an import method which allows a module to
+export functions and variables to its users' namespaces.  Many modules use
+Exporter rather than implementing their own import method because Exporter
+provides a highly flexible interface, with an implementation optimised for the
+common case.")
+    (license (package-license perl))))
+
 (define-public perl-exporter-lite
   (package
     (name "perl-exporter-lite")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:35
[PATCH v4 02/16] gnu: perl-glib: Propagate glib.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630033538.15059-2-rg@raghavgururajan.name
Dependants of perl-glib also require glib for its typelibs and schemas.

* gnu/packages/glib.scm (perl-glib)[inputs]: Move glib to ...
[propagated-inputs]: ... here.
---
gnu/packages/glib.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (15 lines)
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 206222b578..f2dbddbde6 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -877,7 +877,7 @@ useful for C++.")
     (native-inputs
      `(("perl-extutils-depends" ,perl-extutils-depends)
        ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
-    (inputs
+    (propagated-inputs
      `(("glib" ,glib)))
     (home-page "https://metacpan.org/release/Glib")
     (synopsis "Perl wrappers for the GLib utility and Object libraries")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:35
[PATCH v4 03/16] gnu: perl-cairo: Propagate cairo.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630033538.15059-3-rg@raghavgururajan.name
Dependants of perl-cairo also require cairo for its typelibs and schemas.

* gnu/packages/gtk.scm (perl-cairo)[inputs]: Move cairo to ...
[propagated-inputs]: ... here.
---
gnu/packages/gtk.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (15 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 138fa7c314..99a4128286 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1586,7 +1586,7 @@ write GNOME applications.")
     (native-inputs
      `(("perl-extutils-depends" ,perl-extutils-depends)
        ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
-    (inputs
+    (propagated-inputs
      `(("cairo" ,cairo)))
     (home-page "https://metacpan.org/release/Cairo")
     (synopsis "Perl interface to the cairo 2d vector graphics library")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:35
[PATCH v4 04/16] gnu: Add perl-cairo-gobject.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630033538.15059-4-rg@raghavgururajan.name
* gnu/packages/gtk.scm (perl-cairo-gobject): New variable.
---
gnu/packages/gtk.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 99a4128286..bc30905444 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -80,6 +80,7 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages perl-check)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages python)
@@ -1595,6 +1596,30 @@ cairo.  It supports multiple output targets, including PNG, PDF and SVG.  Cairo
 produces identical output on all those targets.")
     (license license:lgpl2.1+)))
 
+(define-public perl-cairo-gobject
+  (package
+    (name "perl-cairo-gobject")
+    (version "1.005")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/"
+                           "Cairo-GObject-" version ".tar.gz"))
+       (sha256
+        (base32 "0l2wcz77ndmbgvxx34gdm919a3dxh9fixqr47p50n78ysx2692cd"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-extutils-depends" ,perl-extutils-depends)
+       ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
+    (propagated-inputs
+     `(("perl-cairo" ,perl-cairo)
+       ("perl-glib" ,perl-glib)))
+    (home-page "https://metacpan.org/dist/Cairo-GObject")
+    (synopsis "Integrate Cairo into the Glib type system")
+    (description "Cairo::GObject registers Cairo's types with Glib's type systems,
+so that they can be used normally in signals and properties.")
+    (license license:lgpl2.1+)))
+
 (define-public perl-gtk2
   (package
     (name "perl-gtk2")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:35
[PATCH v4 05/16] gnu: Add perl-glib-object-introspection.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630033538.15059-5-rg@raghavgururajan.name
* gnu/packages/glib.scm (perl-glib-object-introspection): New variable.
---
gnu/packages/glib.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index f2dbddbde6..91ef45099c 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -888,6 +888,32 @@ these libraries are used as the foundation for many of the libraries that make
 up the Gnome environment, and are used in many unrelated projects.")
     (license license:lgpl2.1+)))
 
+(define-public perl-glib-object-introspection
+  (package
+    (name "perl-glib-object-introspection")
+    (version "0.049")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/"
+                           "Glib-Object-Introspection-" version ".tar.gz"))
+       (sha256
+        (base32 "0mxg6pz8qfyipw0ypr54alij0c4adzg94f62702b2a6hkp5jhij6"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-extutils-depends" ,perl-extutils-depends)
+       ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
+    (propagated-inputs
+     `(("gobject-introspection" ,gobject-introspection)
+       ("perl-cairo-gobject" ,perl-cairo-gobject)
+       ("perl-glib" ,perl-glib)))
+    (home-page "https://metacpan.org/dist/Glib-Object-Introspection")
+    (synopsis "Dynamically create Perl language bindings")
+    (description "Glib::Object::Introspection uses the gobject-introspection and
+libffi projects to dynamically create Perl bindings for a wide variety of
+libraries.  Examples include gtk+, webkit, libsoup and many more.")
+    (license license:lgpl2.1+)))
+
 (define telepathy-glib
   (package
     (name "telepathy-glib")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:35
[PATCH v4 06/16] gnu: Add perl-gtk3.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630033538.15059-6-rg@raghavgururajan.name
* gnu/packages/gtk.scm (perl-gtk3): New variable.
---
gnu/packages/gtk.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)

Toggle diff (55 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index bc30905444..d92b9aa3e4 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1657,6 +1657,48 @@ object-oriented way, freeing you from the casting and memory management in C,
 yet remaining very close in spirit to original API.")
     (license license:lgpl2.1+)))
 
+(define-public perl-gtk3
+  (package
+    (name "perl-gtk3")
+    (version "0.038")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/Gtk3-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "1k3sfcvxxx7ir7ail7w1lkmr4np0k3criljzw5wir63lmbr4pp3h"))))
+    (build-system perl-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; Tests require a running X server.
+             (system "Xvfb :1 +extension GLX &")
+             (setenv "DISPLAY" ":1"))))))
+    (native-inputs
+     `(("adwaita-icon-theme" ,adwaita-icon-theme)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("perl-extutils-depends" ,perl-extutils-depends)
+       ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)
+       ("perl-test-simple" ,perl-test-simple)
+       ("xorg-server" ,xorg-server-for-tests)))
+    (propagated-inputs
+     `(("gtk+" ,gtk+)
+       ("perl-cairo-gobject" ,perl-cairo-gobject)
+       ("perl-carp" ,perl-carp)
+       ("perl-exporter" ,perl-exporter)
+       ("perl-glib-object-introspection" ,perl-glib-object-introspection)))
+    (home-page "https://metacpan.org/dist/Gtk3")
+    (synopsis "Perl interface to the 3.x series of the gtk+ toolkit")
+    (description "Perl bindings to the 3.x series of the gtk+ toolkit.
+This module allows you to write graphical user interfaces in a Perlish and
+object-oriented way, freeing you from the casting and memory management in C,
+yet remaining very close in spirit to original API.")
+    (license license:lgpl2.1+)))
+
 (define-public perl-pango
   (package
     (name "perl-pango")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:35
[PATCH v4 07/16] gnu: Add perl-text-tabs+wrap.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630033538.15059-7-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-text-tabs+wrap): New variable.
---
gnu/packages/perl.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 84d1ad9634..dd24b10180 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -10331,6 +10331,24 @@ algorism to indicate multiplication by 1000.")
     (description "Text::Table renders plaintext tables.")
     (license license:x11)))
 
+(define-public perl-text-tabs+wrap
+  (package
+    (name "perl-text-tabs+wrap")
+    (version "2013.0523")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/M/MU/MUIR/modules/"
+                           "Text-Tabs+Wrap-" version ".tar.gz"))
+       (sha256
+        (base32 "0pv5dympvrba6lslklwzb4glpazl5farn2b2530vjdxpzxphbjxr"))))
+    (build-system perl-build-system)
+    (home-page "https://metacpan.org/dist/Text-Tabs+Wrap")
+    (synopsis "Text::Tabs and Text::Wrap Modules")
+    (description "Text::Tabs will add or remove tabs from a document.
+Text::Wrap will reformat lines into paragraphs.")
+    (license (package-license perl))))
+
 (define-public perl-text-template
   (package
     (name "perl-text-template")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:35
[PATCH v4 08/16] gnu: Add perl-text-parsewords.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630033538.15059-8-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-text-parsewords): New variable.
---
gnu/packages/perl.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index dd24b10180..97a7e14a69 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -10250,6 +10250,24 @@ template engine, for when you need speed rather than complex features,
 yet need more features than simple variable substitution.")
     (license (package-license perl))))
 
+(define-public perl-text-parsewords
+  (package
+    (name "perl-text-parsewords")
+    (version "3.30")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/C/CH/CHORNY/"
+                           "Text-ParseWords-" version ".tar.gz"))
+       (sha256
+        (base32 "1s7mmznk4chdvfi2jl2h6gawfaqq24bdasy6b1z9jhyxg60j7q45"))))
+    (build-system perl-build-system)
+    (home-page "https://metacpan.org/dist/Text-ParseWords")
+    (synopsis "Parse text into an array of tokens or array of arrays")
+    (description "Text::ParseWords module is used to parse text into an array of
+tokens or array of arrays.")
+    (license (package-license perl))))
+
 (define-public perl-text-patch
   (package
     (name "perl-text-patch")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:35
[PATCH v4 09/16] gnu: Add perl-term-ansicolor.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630033538.15059-9-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-term-ansicolor): New variable.
---
gnu/packages/perl.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 97a7e14a69..dc681865ac 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -9836,6 +9836,30 @@ situations, where you may need to upgrade to the full feature set in the
 future, or if you want the retain the familiarity of TT-style templates.")
     (license license:perl-license)))
 
+(define-public perl-term-ansicolor
+  (package
+    (name "perl-term-ansicolor")
+    (version "5.01")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/R/RR/RRA/"
+                           "Term-ANSIColor-" version ".tar.gz"))
+       (sha256
+        (base32 "0zgj329kfrwcyqn491v04x65yjydwfc4845a71f8hypdrj3vv0b2"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-warn" ,perl-test-warn)))
+    (home-page "https://metacpan.org/dist/Term-ANSIColor")
+    (synopsis "Interface to the ANSI terminal escape sequences for color")
+    (description "Term::ANSIColor provides constants and simple functions for
+setting ANSI text attributes, most notably colors.  It can be used to set the
+current text attributes or to apply a set of attributes to a string and reset
+the current text attributes at the end of that string.  Eight-color,
+sixteen-color, 256-color, and true color (24-bit color) escape sequences are all
+supported.")
+    (license (package-license perl))))
+
 (define-public perl-term-encoding
   (package
     (name "perl-term-encoding")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:35
[PATCH v4 10/16] gnu: Add perl-test-portability-files.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630033538.15059-10-rg@raghavgururajan.name
* gnu/packages/perl-check.scm (perl-test-portability-files): New variable.
---
gnu/packages/perl-check.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/perl-check.scm b/gnu/packages/perl-check.scm
index a761ebffcf..87f233a3aa 100644
--- a/gnu/packages/perl-check.scm
+++ b/gnu/packages/perl-check.scm
@@ -1157,6 +1157,31 @@ Pod::Simple to do the heavy lifting.")
 checks for pod coverage of all appropriate files.")
     (license artistic2.0)))
 
+(define-public perl-test-portability-files
+  (package
+    (name "perl-test-portability-files")
+    (version "0.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/A/AB/ABRAXXA/"
+                           "Test-Portability-Files-" version ".tar.gz"))
+       (sha256
+        (base32 "05hs80gljkd6mhb8zvilyk3pjqxp5samgnymam5v9h9d94rb9r08"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-simple" ,perl-test-simple)))
+    (propagated-inputs
+     `(("perl-pathtools" ,perl-pathtools)))
+    (home-page "https://metacpan.org/dist/Test-Portability-Files")
+    (synopsis "Check file names portability")
+    (description "Test::Portability::Files module is used to check the
+portability across operating systems of the names of the files present in the
+distribution of a module.  The tests use the advices given in 'Files and
+Filesystems' in perlport.  The author of a distribution can select which tests
+to execute.")
+    (license perl-license)))
+
 (define-public perl-test-requires
   (package
     (name "perl-test-requires")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:35
[PATCH v4 11/16] gnu: Add perl-xsloader.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630033538.15059-11-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-xsloader): New variable.
---
gnu/packages/perl.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index dc681865ac..2b668f93bf 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -11173,6 +11173,30 @@ attribute names.")
     ;; modification, are permitted under any circumstances.  No warranty.
     (license license:public-domain)))
 
+(define-public perl-xsloader
+  (package
+    (name "perl-xsloader")
+    (version "0.24")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/S/SA/SAPER/"
+                           "XSLoader-" version ".tar.gz"))
+       (sha256
+        (base32 "0pyqr12jsqagna75fm2gijfzw06wy1hrh5chn9hwnmcfddda66g8"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-distribution" ,perl-test-distribution)
+       ("perl-text-pod" ,perl-test-pod)
+       ("perl-test-pod-coverage" ,perl-test-pod-coverage)
+       ("perl-test-portability-files" ,perl-test-portability-files)))
+    (home-page "https://metacpan.org/dist/XSLoader")
+    (synopsis "Dynamically load C libraries into Perl code")
+    (description "XSLoader module defines a standard simplified interface to the
+dynamic linking mechanisms available on many platforms.  Its primary purpose is
+to implement cheap automatic dynamic loading of Perl modules.")
+    (license (package-license perl))))
+
 (define-public perl-xs-object-magic
   (package
     (name "perl-xs-object-magic")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:35
[PATCH v4 13/16] gnu: Add perl-encode.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630033538.15059-13-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-encode): New variable.
---
gnu/packages/perl.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index add00a1032..90bbf8c72c 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -3986,6 +3986,28 @@ very platform-dependent, so correct use of these functions requires
 the programmer to be mindfulof the space of platform variations.")
     (license license:perl-license)))
 
+(define-public perl-encode
+  (package
+    (name "perl-encode")
+    (version "3.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/D/DA/DANKOGAI/"
+                           "Encode-" version ".tar.gz"))
+       (sha256
+        (base32 "1a8rwcrxxhq81jcdvdwns05c65jwr5r6bxvby6vdcr3ny5m91my2"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-exporter" ,perl-exporter)
+       ("perl-storable" ,perl-storable)
+       ("perl-parent" ,perl-parent)))
+    (home-page "https://metacpan.org/dist/Encode")
+    (synopsis "Character encodings in Perl")
+    (description "Encode module provides the interface between Perl strings and
+the rest of the system.  Perl strings are sequences of characters.")
+    (license (package-license perl))))
+
 (define-public perl-encode-detect
   (package
     (name "perl-encode-detect")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:35
[PATCH v4 12/16] gnu: Add perl-storable.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630033538.15059-12-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-storable): New variable.
---
gnu/packages/perl.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 2b668f93bf..add00a1032 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -9205,6 +9205,27 @@ which it is called.")
 implementation of @dfn{Principal Component Analysis} (PCA).")
     (license license:perl-license)))
 
+(define-public perl-storable
+  (package
+    (name "perl-storable")
+    (version "3.15")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/X/XS/XSAWYERX/"
+                           "Storable-" version ".tar.gz"))
+       (sha256
+        (base32 "1nkln4fm4962b5jk1dp6lf635nnrj5a5pg1a5xmchvrfrc3asggw"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-xsloader" ,perl-xsloader)))
+    (home-page "https://metacpan.org/dist/Storable")
+    (synopsis "Persistence for Perl data structures")
+    (description "Storable brings persistence to your Perl data structures
+containing SCALAR, ARRAY, HASH or REF objects, i.e. anything that can be
+conveniently stored to disk and retrieved at a later time.")
+    (license (package-license perl))))
+
 (define-public perl-stream-buffered
   (package
     (name "perl-stream-buffered")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:35
[PATCH v4 14/16] gnu: Add perl-mime-base64.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630033538.15059-14-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-mime-base64): New variable.
---
gnu/packages/perl.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 90bbf8c72c..a51e9e31f6 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -6410,6 +6410,31 @@ follows LRU semantics, that is, the last n results, where n is specified as
 the argument to the CACHESIZE parameter, will be cached.")
     (license (package-license perl))))
 
+(define-public perl-mime-base64
+  (package
+    (name "perl-mime-base64")
+    (version "3.16")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/C/CA/CAPOEIRAB/"
+                           "MIME-Base64-" version ".tar.gz"))
+       (sha256
+        (base32 "05v04kjaz2ya0zaj4m64gzxpfv4vgxhw5n5h12z373gbg9pkvxvp"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-exporter" ,perl-exporter)
+       ("perl-xsloader" ,perl-xsloader)))
+    (home-page "https://metacpan.org/dist/MIME-Base64")
+    (synopsis "Encoding and decoding of base64 strings")
+    (description "MIME::Base64 module provides functions to encode and decode
+strings into and from the base64 encoding specified in RFC 2045 - MIME
+(Multipurpose Internet Mail Extensions).  The base64 encoding is designed to
+represent arbitrary sequences of octets in a form that need not be humanly
+readable.  A 65-character subset ([A-Za-z0-9+/=]) of US-ASCII is used, enabling
+6 bits to be represented per printable character.")
+    (license (package-license perl))))
+
 (define-public perl-mime-charset
   (package
     (name "perl-mime-charset")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:35
[PATCH v4 15/16] gnu: Add pipe-viewer.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630033538.15059-15-rg@raghavgururajan.name
* gnu/packages/video.scm (pipe-viewer): New variable.
---
gnu/packages/video.scm | 108 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 108 insertions(+)

Toggle diff (128 lines)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index fbc468eab7..84cf26251a 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -178,6 +178,7 @@
   #:use-module (gnu packages vulkan)
   #:use-module (gnu packages web)
   #:use-module (gnu packages webkit)
+  #:use-module (gnu packages wget)
   #:use-module (gnu packages wxwidgets)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xiph)
@@ -1020,6 +1021,113 @@ H.264 (MPEG-4 AVC) video streams.")
 (@command{mkvmerge}).")
     (license license:gpl2)))
 
+(define-public pipe-viewer
+  (package
+    (name "pipe-viewer")
+    (version "0.1.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/trizen/pipe-viewer")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1d2gfkd3nc0c4ah67250lqskkd85wpljrikw8a378ni398ngaq14"))))
+    (build-system perl-build-system)
+    (arguments
+     `(#:imported-modules
+       ((guix build copy-build-system)
+        ,@%perl-build-system-modules)
+       #:modules
+       (((guix build copy-build-system)
+         #:prefix copy:)
+        (guix build perl-build-system)
+        (guix build utils)
+        (srfi srfi-26))
+       #:module-build-flags
+       (list
+        "--gtk3")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-source
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* (find-files "." ".*-viewer$")
+               (("'ffmpeg'")
+                (format #f "'~a/bin/ffmpeg'"
+                        (assoc-ref inputs "ffmpeg")))
+               (("'wget'")
+                (format #f "'~a/bin/wget'"
+                        (assoc-ref inputs "wget")))
+               (("'xdg-open'")
+                (format #f "'~a/bin/xdg-open'"
+                        (assoc-ref inputs "xdg-utils")))
+               (("'youtube-dl'")
+                (format #f "'~a/bin/youtube-dl'"
+                        (assoc-ref inputs "youtube-dl"))))))
+         (add-after 'install 'install-xdg
+           (lambda args
+             (apply (assoc-ref copy:%standard-phases 'install)
+                    #:install-plan
+                    '(("share/icons" "share/pixmaps")
+                      ("share" "share/applications"
+                       #:include-regexp ("\\.desktop$")))
+                    args)))
+         (add-after 'install-xdg 'wrap-programs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin-dir (string-append out "/bin/"))
+                    (site-dir (string-append out "/lib/perl5/site_perl/"))
+                    (perl-lib (getenv "PERL5LIB"))
+                    (gi-typelib (getenv "GI_TYPELIB_PATH")))
+               (for-each
+                (cut wrap-program <>
+                     `("PERL5LIB" ":" prefix (,perl-lib ,site-dir))
+                     `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib)))
+                (find-files bin-dir))))))))
+    (native-inputs
+     `(("perl-module-build" ,perl-module-build)
+       ("perl-test-pod" ,perl-test-pod)
+       ("perl-test-simple" ,perl-test-simple)))
+    (inputs
+     `(("perl-data-dump" ,perl-data-dump)
+       ("perl-digest-md5" ,perl-digest-md5)
+       ("perl-encode" ,perl-encode)
+       ("ffmpeg" ,ffmpeg)
+       ("perl-file-path" ,perl-file-path)
+       ("perl-file-sharedir" ,perl-file-sharedir)
+       ("perl-getopt-long" ,perl-getopt-long)
+       ("perl-gtk3" ,perl-gtk3)
+       ("perl-http-message" ,perl-http-message)
+       ("perl-json" ,perl-json)
+       ("perl-json-xs" ,perl-json-xs)
+       ("perl-libwww" ,perl-libwww)
+       ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
+       ("perl-lwp-useragent-cached" ,perl-lwp-useragent-cached)
+       ("perl-memoize" ,perl-memoize)
+       ("perl-mime-base64" ,perl-mime-base64)
+       ("perl-pathtools" ,perl-pathtools)
+       ("perl-scalar-list-utils" ,perl-scalar-list-utils)
+       ("perl-storable" ,perl-storable)
+       ("perl-term-ansicolor" ,perl-term-ansicolor)
+       ("perl-term-readline-gnu" ,perl-term-readline-gnu)
+       ("perl-text-parsewords" ,perl-text-parsewords)
+       ("perl-text-tabs+wrap" ,perl-text-tabs+wrap)
+       ("perl-unicode-linebreak" ,perl-unicode-linebreak)
+       ("perl-uri-escape" ,perl-uri-escape)
+       ("wget" ,wget)
+       ("xdg-utils" ,xdg-utils)
+       ("youtube-dl" ,youtube-dl)))
+    (propagated-inputs
+     `(("dconf" ,dconf)))
+    (home-page "https://github.com/trizen/pipe-viewer")
+    (synopsis "CLI+GUI YouTube Client")
+    (description "Pipe-Viewer is a lightweight application for searching and
+playing videos from YouTube.  It parses the YouTube website directly and relies
+on the Invidious instances only as a fallback method.")
+    (license license:artistic2.0)))
+
 (define-public straw-viewer
   (package
     (name "straw-viewer")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 30 Jun 2021 05:35
[PATCH v4 16/16] gnu: straw-viewer: Deprecate package.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210630033538.15059-16-rg@raghavgururajan.name
Upstream has replaced straw-viewer with pipe-viewer.

* gnu/packages/video.scm (straw-viewer): Deprecate in favour of pipe-viewer.
---
gnu/packages/video.scm | 83 +-----------------------------------------
1 file changed, 1 insertion(+), 82 deletions(-)

Toggle diff (96 lines)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 84cf26251a..b7bc6a184e 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1129,88 +1129,7 @@ on the Invidious instances only as a fallback method.")
     (license license:artistic2.0)))
 
 (define-public straw-viewer
-  (package
-    (name "straw-viewer")
-    (version "0.1.3")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/trizen/straw-viewer")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "1n21byn7hqykpm94jmmnir1fwsskq6dp9wgj0bd2qf0qx5nq33cl"))))
-    (build-system perl-build-system)
-    (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-pod" ,perl-test-pod)))
-    (inputs
-     `(("perl-data-dump" ,perl-data-dump)
-       ("perl-json" ,perl-json)
-       ("perl-libwww" ,perl-libwww)
-       ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
-       ("perl-lwp-useragent-cached" ,perl-lwp-useragent-cached)
-       ("perl-mozilla-ca" ,perl-mozilla-ca)
-       ("perl-term-readline-gnu" ,perl-term-readline-gnu)
-       ("perl-unicode-linebreak" ,perl-unicode-linebreak)
-       ("xdg-utils" ,xdg-utils)))
-    ;; Required only when building the graphical interface (--gtk).
-    ;;("perl-file-sharedir" ,perl-file-sharedir)
-    
-    ;; Some videos play without youtube-dl, but others silently fail to.
-    (propagated-inputs
-     `(("youtube-dl" ,youtube-dl)))
-    (arguments
-     `(#:modules ((guix build perl-build-system)
-                  (guix build utils)
-                  (srfi srfi-26))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'refer-to-inputs
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "lib/WWW/StrawViewer.pm"
-               (("'youtube-dl'")
-                (format #f "'~a/bin/youtube-dl'"
-                        (assoc-ref inputs "youtube-dl"))))
-             (substitute* "bin/gtk-straw-viewer"
-               (("'xdg-open'")
-                (format #f "'~a/bin/xdg-open'"
-                        (assoc-ref inputs "xdg-utils"))))
-             #t))
-         ;; (add-after 'install 'install-desktop
-         ;;   (lambda* (#:key outputs #:allow-other-keys)
-         ;;     (let* ((out (assoc-ref outputs "out"))
-         ;;            (sharedir (string-append out "/share")))
-         ;;       (install-file "share/gtk-straw-viewer.desktop"
-         ;;                     (string-append sharedir "/applications"))
-         ;;       (install-file "share/icons/gtk-straw-viewer.png"
-         ;;                     (string-append sharedir "/pixmaps"))
-         ;;       #t)))
-         (add-after 'install 'wrap-program
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (bin-dir (string-append out "/bin/"))
-                    (site-dir (string-append out "/lib/perl5/site_perl/"))
-                    (lib-path (getenv "PERL5LIB")))
-               (for-each (cut wrap-program <>
-                              `("PERL5LIB" ":" prefix (,lib-path ,site-dir)))
-                         (find-files bin-dir))
-               #t))))))
-    (synopsis
-     "Light-weight application for searching and streaming videos from YouTube")
-    (description
-     "Straw-viewer searches for YouTube videos using @uref{https://invidio.us/,
-invidio.us} and plays them locally in a native media player like @command{vlc}
-or @command{mpv}.
-
-You can search for videos, playlists, and/or channels.  The videos are streamed
-directly to the player at the best chosen resolution and with closed captions if
-available.")
-    ;; XXX Add #:module-build-flags '("--gtk") dependencies and this sentence.
-    ;; Both a command-line and a graphical interface are available.
-    (home-page "https://github.com/trizen/youtube-viewer")
-    (license license:perl-license)))
+  (deprecated-package "straw-viewer" pipe-viewer))
 
 (define-public x265
   (package
-- 
2.32.0
R
R
Raghav Gururajan wrote on 4 Jul 2021 03:03
[PATCH v5 02/16] gnu: perl-glib: Propagate glib.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210704010320.5458-2-rg@raghavgururajan.name
Dependants of perl-glib also require glib for its typelibs and schemas.

* gnu/packages/glib.scm (perl-glib)[inputs]: Move glib to ...
[propagated-inputs]: ... here.
---
gnu/packages/glib.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (15 lines)
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 206222b578..f2dbddbde6 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -877,7 +877,7 @@ useful for C++.")
     (native-inputs
      `(("perl-extutils-depends" ,perl-extutils-depends)
        ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
-    (inputs
+    (propagated-inputs
      `(("glib" ,glib)))
     (home-page "https://metacpan.org/release/Glib")
     (synopsis "Perl wrappers for the GLib utility and Object libraries")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 4 Jul 2021 03:03
[PATCH v5 04/16] gnu: Add perl-cairo-gobject.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210704010320.5458-4-rg@raghavgururajan.name
* gnu/packages/gtk.scm (perl-cairo-gobject): New variable.
---
gnu/packages/gtk.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 99a4128286..bc30905444 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -80,6 +80,7 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages perl-check)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages python)
@@ -1595,6 +1596,30 @@ cairo.  It supports multiple output targets, including PNG, PDF and SVG.  Cairo
 produces identical output on all those targets.")
     (license license:lgpl2.1+)))
 
+(define-public perl-cairo-gobject
+  (package
+    (name "perl-cairo-gobject")
+    (version "1.005")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/"
+                           "Cairo-GObject-" version ".tar.gz"))
+       (sha256
+        (base32 "0l2wcz77ndmbgvxx34gdm919a3dxh9fixqr47p50n78ysx2692cd"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-extutils-depends" ,perl-extutils-depends)
+       ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
+    (propagated-inputs
+     `(("perl-cairo" ,perl-cairo)
+       ("perl-glib" ,perl-glib)))
+    (home-page "https://metacpan.org/dist/Cairo-GObject")
+    (synopsis "Integrate Cairo into the Glib type system")
+    (description "Cairo::GObject registers Cairo's types with Glib's type systems,
+so that they can be used normally in signals and properties.")
+    (license license:lgpl2.1+)))
+
 (define-public perl-gtk2
   (package
     (name "perl-gtk2")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 4 Jul 2021 03:03
[PATCH v5 01/16] gnu: Add perl-exporter.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210704010320.5458-1-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-exporter): New variable.
---
gnu/packages/perl.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (46 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index d449abc78c..dac290a182 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -30,6 +30,7 @@
 ;;; Copyright © 2020 Malte Frank Gerdes <malte.f.gerdes@gmail.com>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
+;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -4204,6 +4205,31 @@ command, which can be used as a minimal Perl read-eval-print loop (REPL).")
 in your modules in a \"Java-esque\" manner.")
     (license (package-license perl))))
 
+(define-public perl-exporter
+  (package
+    (name "perl-exporter")
+    (version "5.74")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/T/TO/TODDR/"
+                           "Exporter-" version ".tar.gz"))
+       (sha256
+        (base32 "1f25k5iaygiizlrkbbl6wxd647pwfmynykxalq6r9bbkysg8inza"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-pod" ,perl-test-pod)))
+    (propagated-inputs
+     `(("perl-carp" ,perl-carp)))
+    (home-page "https://metacpan.org/dist/Exporter")
+    (synopsis "Default import method for modules")
+    (description "Exporter implements an import method which allows a module to
+export functions and variables to its users' namespaces.  Many modules use
+Exporter rather than implementing their own import method because Exporter
+provides a highly flexible interface, with an implementation optimised for the
+common case.")
+    (license (package-license perl))))
+
 (define-public perl-exporter-lite
   (package
     (name "perl-exporter-lite")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 4 Jul 2021 03:03
[PATCH v5 05/16] gnu: Add perl-glib-object-introspection.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210704010320.5458-5-rg@raghavgururajan.name
* gnu/packages/glib.scm (perl-glib-object-introspection): New variable.
---
gnu/packages/glib.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index f2dbddbde6..91ef45099c 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -888,6 +888,32 @@ these libraries are used as the foundation for many of the libraries that make
 up the Gnome environment, and are used in many unrelated projects.")
     (license license:lgpl2.1+)))
 
+(define-public perl-glib-object-introspection
+  (package
+    (name "perl-glib-object-introspection")
+    (version "0.049")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/"
+                           "Glib-Object-Introspection-" version ".tar.gz"))
+       (sha256
+        (base32 "0mxg6pz8qfyipw0ypr54alij0c4adzg94f62702b2a6hkp5jhij6"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-extutils-depends" ,perl-extutils-depends)
+       ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
+    (propagated-inputs
+     `(("gobject-introspection" ,gobject-introspection)
+       ("perl-cairo-gobject" ,perl-cairo-gobject)
+       ("perl-glib" ,perl-glib)))
+    (home-page "https://metacpan.org/dist/Glib-Object-Introspection")
+    (synopsis "Dynamically create Perl language bindings")
+    (description "Glib::Object::Introspection uses the gobject-introspection and
+libffi projects to dynamically create Perl bindings for a wide variety of
+libraries.  Examples include gtk+, webkit, libsoup and many more.")
+    (license license:lgpl2.1+)))
+
 (define telepathy-glib
   (package
     (name "telepathy-glib")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 4 Jul 2021 03:03
[PATCH v5 03/16] gnu: perl-cairo: Propagate cairo.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210704010320.5458-3-rg@raghavgururajan.name
Dependants of perl-cairo also require cairo for its typelibs and schemas.

* gnu/packages/gtk.scm (perl-cairo)[inputs]: Move cairo to ...
[propagated-inputs]: ... here.
---
gnu/packages/gtk.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (15 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 138fa7c314..99a4128286 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1586,7 +1586,7 @@ write GNOME applications.")
     (native-inputs
      `(("perl-extutils-depends" ,perl-extutils-depends)
        ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
-    (inputs
+    (propagated-inputs
      `(("cairo" ,cairo)))
     (home-page "https://metacpan.org/release/Cairo")
     (synopsis "Perl interface to the cairo 2d vector graphics library")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 4 Jul 2021 03:03
[PATCH v5 06/16] gnu: Add perl-gtk3.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210704010320.5458-6-rg@raghavgururajan.name
* gnu/packages/gtk.scm (perl-gtk3): New variable.
---
gnu/packages/gtk.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)

Toggle diff (55 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index bc30905444..d92b9aa3e4 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1657,6 +1657,48 @@ object-oriented way, freeing you from the casting and memory management in C,
 yet remaining very close in spirit to original API.")
     (license license:lgpl2.1+)))
 
+(define-public perl-gtk3
+  (package
+    (name "perl-gtk3")
+    (version "0.038")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/Gtk3-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "1k3sfcvxxx7ir7ail7w1lkmr4np0k3criljzw5wir63lmbr4pp3h"))))
+    (build-system perl-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; Tests require a running X server.
+             (system "Xvfb :1 +extension GLX &")
+             (setenv "DISPLAY" ":1"))))))
+    (native-inputs
+     `(("adwaita-icon-theme" ,adwaita-icon-theme)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("perl-extutils-depends" ,perl-extutils-depends)
+       ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)
+       ("perl-test-simple" ,perl-test-simple)
+       ("xorg-server" ,xorg-server-for-tests)))
+    (propagated-inputs
+     `(("gtk+" ,gtk+)
+       ("perl-cairo-gobject" ,perl-cairo-gobject)
+       ("perl-carp" ,perl-carp)
+       ("perl-exporter" ,perl-exporter)
+       ("perl-glib-object-introspection" ,perl-glib-object-introspection)))
+    (home-page "https://metacpan.org/dist/Gtk3")
+    (synopsis "Perl interface to the 3.x series of the gtk+ toolkit")
+    (description "Perl bindings to the 3.x series of the gtk+ toolkit.
+This module allows you to write graphical user interfaces in a Perlish and
+object-oriented way, freeing you from the casting and memory management in C,
+yet remaining very close in spirit to original API.")
+    (license license:lgpl2.1+)))
+
 (define-public perl-pango
   (package
     (name "perl-pango")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 4 Jul 2021 03:03
[PATCH v5 07/16] gnu: Add perl-text-tabs+wrap.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210704010320.5458-7-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-text-tabs+wrap): New variable.
---
gnu/packages/perl.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index dac290a182..5f443bcc1b 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -10332,6 +10332,24 @@ algorism to indicate multiplication by 1000.")
     (description "Text::Table renders plaintext tables.")
     (license license:x11)))
 
+(define-public perl-text-tabs+wrap
+  (package
+    (name "perl-text-tabs+wrap")
+    (version "2013.0523")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/M/MU/MUIR/modules/"
+                           "Text-Tabs+Wrap-" version ".tar.gz"))
+       (sha256
+        (base32 "0pv5dympvrba6lslklwzb4glpazl5farn2b2530vjdxpzxphbjxr"))))
+    (build-system perl-build-system)
+    (home-page "https://metacpan.org/dist/Text-Tabs+Wrap")
+    (synopsis "Text::Tabs and Text::Wrap Modules")
+    (description "Text::Tabs will add or remove tabs from a document.
+Text::Wrap will reformat lines into paragraphs.")
+    (license (package-license perl))))
+
 (define-public perl-text-template
   (package
     (name "perl-text-template")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 4 Jul 2021 03:03
[PATCH v5 08/16] gnu: Add perl-text-parsewords.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210704010320.5458-8-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-text-parsewords): New variable.
---
gnu/packages/perl.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 5f443bcc1b..91f077c6a4 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -10251,6 +10251,24 @@ template engine, for when you need speed rather than complex features,
 yet need more features than simple variable substitution.")
     (license (package-license perl))))
 
+(define-public perl-text-parsewords
+  (package
+    (name "perl-text-parsewords")
+    (version "3.30")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/C/CH/CHORNY/"
+                           "Text-ParseWords-" version ".tar.gz"))
+       (sha256
+        (base32 "1s7mmznk4chdvfi2jl2h6gawfaqq24bdasy6b1z9jhyxg60j7q45"))))
+    (build-system perl-build-system)
+    (home-page "https://metacpan.org/dist/Text-ParseWords")
+    (synopsis "Parse text into an array of tokens or array of arrays")
+    (description "Text::ParseWords module is used to parse text into an array of
+tokens or array of arrays.")
+    (license (package-license perl))))
+
 (define-public perl-text-patch
   (package
     (name "perl-text-patch")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 4 Jul 2021 03:03
[PATCH v5 09/16] gnu: Add perl-term-ansicolor.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210704010320.5458-9-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-term-ansicolor): New variable.
---
gnu/packages/perl.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 91f077c6a4..c4d13e6ea3 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -9837,6 +9837,30 @@ situations, where you may need to upgrade to the full feature set in the
 future, or if you want the retain the familiarity of TT-style templates.")
     (license license:perl-license)))
 
+(define-public perl-term-ansicolor
+  (package
+    (name "perl-term-ansicolor")
+    (version "5.01")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/R/RR/RRA/"
+                           "Term-ANSIColor-" version ".tar.gz"))
+       (sha256
+        (base32 "0zgj329kfrwcyqn491v04x65yjydwfc4845a71f8hypdrj3vv0b2"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-warn" ,perl-test-warn)))
+    (home-page "https://metacpan.org/dist/Term-ANSIColor")
+    (synopsis "Interface to the ANSI terminal escape sequences for color")
+    (description "Term::ANSIColor provides constants and simple functions for
+setting ANSI text attributes, most notably colors.  It can be used to set the
+current text attributes or to apply a set of attributes to a string and reset
+the current text attributes at the end of that string.  Eight-color,
+sixteen-color, 256-color, and true color (24-bit color) escape sequences are all
+supported.")
+    (license (package-license perl))))
+
 (define-public perl-term-encoding
   (package
     (name "perl-term-encoding")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 4 Jul 2021 03:03
[PATCH v5 10/16] gnu: Add perl-test-portability-files.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210704010320.5458-10-rg@raghavgururajan.name
* gnu/packages/perl-check.scm (perl-test-portability-files): New variable.
---
gnu/packages/perl-check.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/perl-check.scm b/gnu/packages/perl-check.scm
index a761ebffcf..87f233a3aa 100644
--- a/gnu/packages/perl-check.scm
+++ b/gnu/packages/perl-check.scm
@@ -1157,6 +1157,31 @@ Pod::Simple to do the heavy lifting.")
 checks for pod coverage of all appropriate files.")
     (license artistic2.0)))
 
+(define-public perl-test-portability-files
+  (package
+    (name "perl-test-portability-files")
+    (version "0.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/A/AB/ABRAXXA/"
+                           "Test-Portability-Files-" version ".tar.gz"))
+       (sha256
+        (base32 "05hs80gljkd6mhb8zvilyk3pjqxp5samgnymam5v9h9d94rb9r08"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-simple" ,perl-test-simple)))
+    (propagated-inputs
+     `(("perl-pathtools" ,perl-pathtools)))
+    (home-page "https://metacpan.org/dist/Test-Portability-Files")
+    (synopsis "Check file names portability")
+    (description "Test::Portability::Files module is used to check the
+portability across operating systems of the names of the files present in the
+distribution of a module.  The tests use the advices given in 'Files and
+Filesystems' in perlport.  The author of a distribution can select which tests
+to execute.")
+    (license perl-license)))
+
 (define-public perl-test-requires
   (package
     (name "perl-test-requires")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 4 Jul 2021 03:03
[PATCH v5 11/16] gnu: Add perl-xsloader.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210704010320.5458-11-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-xsloader): New variable.
---
gnu/packages/perl.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index c4d13e6ea3..eaf4a183ad 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -11174,6 +11174,30 @@ attribute names.")
     ;; modification, are permitted under any circumstances.  No warranty.
     (license license:public-domain)))
 
+(define-public perl-xsloader
+  (package
+    (name "perl-xsloader")
+    (version "0.24")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/S/SA/SAPER/"
+                           "XSLoader-" version ".tar.gz"))
+       (sha256
+        (base32 "0pyqr12jsqagna75fm2gijfzw06wy1hrh5chn9hwnmcfddda66g8"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-distribution" ,perl-test-distribution)
+       ("perl-text-pod" ,perl-test-pod)
+       ("perl-test-pod-coverage" ,perl-test-pod-coverage)
+       ("perl-test-portability-files" ,perl-test-portability-files)))
+    (home-page "https://metacpan.org/dist/XSLoader")
+    (synopsis "Dynamically load C libraries into Perl code")
+    (description "XSLoader module defines a standard simplified interface to the
+dynamic linking mechanisms available on many platforms.  Its primary purpose is
+to implement cheap automatic dynamic loading of Perl modules.")
+    (license (package-license perl))))
+
 (define-public perl-xs-object-magic
   (package
     (name "perl-xs-object-magic")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 4 Jul 2021 03:03
[PATCH v5 12/16] gnu: Add perl-storable.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210704010320.5458-12-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-storable): New variable.
---
gnu/packages/perl.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index eaf4a183ad..b9a8e4cc79 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -9206,6 +9206,27 @@ which it is called.")
 implementation of @dfn{Principal Component Analysis} (PCA).")
     (license license:perl-license)))
 
+(define-public perl-storable
+  (package
+    (name "perl-storable")
+    (version "3.15")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/X/XS/XSAWYERX/"
+                           "Storable-" version ".tar.gz"))
+       (sha256
+        (base32 "1nkln4fm4962b5jk1dp6lf635nnrj5a5pg1a5xmchvrfrc3asggw"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-xsloader" ,perl-xsloader)))
+    (home-page "https://metacpan.org/dist/Storable")
+    (synopsis "Persistence for Perl data structures")
+    (description "Storable brings persistence to your Perl data structures
+containing SCALAR, ARRAY, HASH or REF objects, i.e. anything that can be
+conveniently stored to disk and retrieved at a later time.")
+    (license (package-license perl))))
+
 (define-public perl-stream-buffered
   (package
     (name "perl-stream-buffered")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 4 Jul 2021 03:03
[PATCH v5 13/16] gnu: Add perl-encode.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210704010320.5458-13-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-encode): New variable.
---
gnu/packages/perl.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index b9a8e4cc79..e6de06c99d 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -3987,6 +3987,28 @@ very platform-dependent, so correct use of these functions requires
 the programmer to be mindfulof the space of platform variations.")
     (license license:perl-license)))
 
+(define-public perl-encode
+  (package
+    (name "perl-encode")
+    (version "3.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/D/DA/DANKOGAI/"
+                           "Encode-" version ".tar.gz"))
+       (sha256
+        (base32 "1a8rwcrxxhq81jcdvdwns05c65jwr5r6bxvby6vdcr3ny5m91my2"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-exporter" ,perl-exporter)
+       ("perl-storable" ,perl-storable)
+       ("perl-parent" ,perl-parent)))
+    (home-page "https://metacpan.org/dist/Encode")
+    (synopsis "Character encodings in Perl")
+    (description "Encode module provides the interface between Perl strings and
+the rest of the system.  Perl strings are sequences of characters.")
+    (license (package-license perl))))
+
 (define-public perl-encode-detect
   (package
     (name "perl-encode-detect")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 4 Jul 2021 03:03
[PATCH v5 14/16] gnu: Add perl-mime-base64.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210704010320.5458-14-rg@raghavgururajan.name
* gnu/packages/perl.scm (perl-mime-base64): New variable.
---
gnu/packages/perl.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index e6de06c99d..db10c44a20 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -6411,6 +6411,31 @@ follows LRU semantics, that is, the last n results, where n is specified as
 the argument to the CACHESIZE parameter, will be cached.")
     (license (package-license perl))))
 
+(define-public perl-mime-base64
+  (package
+    (name "perl-mime-base64")
+    (version "3.16")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/C/CA/CAPOEIRAB/"
+                           "MIME-Base64-" version ".tar.gz"))
+       (sha256
+        (base32 "05v04kjaz2ya0zaj4m64gzxpfv4vgxhw5n5h12z373gbg9pkvxvp"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-exporter" ,perl-exporter)
+       ("perl-xsloader" ,perl-xsloader)))
+    (home-page "https://metacpan.org/dist/MIME-Base64")
+    (synopsis "Encoding and decoding of base64 strings")
+    (description "MIME::Base64 module provides functions to encode and decode
+strings into and from the base64 encoding specified in RFC 2045 - MIME
+(Multipurpose Internet Mail Extensions).  The base64 encoding is designed to
+represent arbitrary sequences of octets in a form that need not be humanly
+readable.  A 65-character subset ([A-Za-z0-9+/=]) of US-ASCII is used, enabling
+6 bits to be represented per printable character.")
+    (license (package-license perl))))
+
 (define-public perl-mime-charset
   (package
     (name "perl-mime-charset")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 4 Jul 2021 03:03
[PATCH v5 15/16] gnu: Add pipe-viewer.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210704010320.5458-15-rg@raghavgururajan.name
* gnu/packages/video.scm (pipe-viewer): New variable.
---
gnu/packages/video.scm | 109 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 109 insertions(+)

Toggle diff (136 lines)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 74c8d3b253..f2c4335079 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -52,6 +52,7 @@
 ;;; Copyright © 2021 David Wilson <david@daviwil.com>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -179,6 +180,7 @@
   #:use-module (gnu packages vulkan)
   #:use-module (gnu packages web)
   #:use-module (gnu packages webkit)
+  #:use-module (gnu packages wget)
   #:use-module (gnu packages wxwidgets)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xiph)
@@ -1021,6 +1023,113 @@ H.264 (MPEG-4 AVC) video streams.")
 (@command{mkvmerge}).")
     (license license:gpl2)))
 
+(define-public pipe-viewer
+  (package
+    (name "pipe-viewer")
+    (version "0.1.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/trizen/pipe-viewer")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1d2gfkd3nc0c4ah67250lqskkd85wpljrikw8a378ni398ngaq14"))))
+    (build-system perl-build-system)
+    (arguments
+     `(#:imported-modules
+       ((guix build copy-build-system)
+        ,@%perl-build-system-modules)
+       #:modules
+       (((guix build copy-build-system)
+         #:prefix copy:)
+        (guix build perl-build-system)
+        (guix build utils)
+        (srfi srfi-26))
+       #:module-build-flags
+       (list
+        "--gtk3")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-source
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* (find-files "." ".*-viewer$")
+               (("'ffmpeg'")
+                (format #f "'~a/bin/ffmpeg'"
+                        (assoc-ref inputs "ffmpeg")))
+               (("'wget'")
+                (format #f "'~a/bin/wget'"
+                        (assoc-ref inputs "wget")))
+               (("'xdg-open'")
+                (format #f "'~a/bin/xdg-open'"
+                        (assoc-ref inputs "xdg-utils")))
+               (("'youtube-dl'")
+                (format #f "'~a/bin/youtube-dl'"
+                        (assoc-ref inputs "youtube-dl"))))))
+         (add-after 'install 'install-xdg
+           (lambda args
+             (apply (assoc-ref copy:%standard-phases 'install)
+                    #:install-plan
+                    '(("share/icons" "share/pixmaps")
+                      ("share" "share/applications"
+                       #:include-regexp ("\\.desktop$")))
+                    args)))
+         (add-after 'install-xdg 'wrap-programs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin-dir (string-append out "/bin/"))
+                    (site-dir (string-append out "/lib/perl5/site_perl/"))
+                    (perl-lib (getenv "PERL5LIB"))
+                    (gi-typelib (getenv "GI_TYPELIB_PATH")))
+               (for-each
+                (cut wrap-program <>
+                     `("PERL5LIB" ":" prefix (,perl-lib ,site-dir))
+                     `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib)))
+                (find-files bin-dir))))))))
+    (native-inputs
+     `(("perl-module-build" ,perl-module-build)
+       ("perl-test-pod" ,perl-test-pod)
+       ("perl-test-simple" ,perl-test-simple)))
+    (inputs
+     `(("perl-data-dump" ,perl-data-dump)
+       ("perl-digest-md5" ,perl-digest-md5)
+       ("perl-encode" ,perl-encode)
+       ("ffmpeg" ,ffmpeg)
+       ("perl-file-path" ,perl-file-path)
+       ("perl-file-sharedir" ,perl-file-sharedir)
+       ("perl-getopt-long" ,perl-getopt-long)
+       ("perl-gtk3" ,perl-gtk3)
+       ("perl-http-message" ,perl-http-message)
+       ("perl-json" ,perl-json)
+       ("perl-json-xs" ,perl-json-xs)
+       ("perl-libwww" ,perl-libwww)
+       ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
+       ("perl-lwp-useragent-cached" ,perl-lwp-useragent-cached)
+       ("perl-memoize" ,perl-memoize)
+       ("perl-mime-base64" ,perl-mime-base64)
+       ("perl-pathtools" ,perl-pathtools)
+       ("perl-scalar-list-utils" ,perl-scalar-list-utils)
+       ("perl-storable" ,perl-storable)
+       ("perl-term-ansicolor" ,perl-term-ansicolor)
+       ("perl-term-readline-gnu" ,perl-term-readline-gnu)
+       ("perl-text-parsewords" ,perl-text-parsewords)
+       ("perl-text-tabs+wrap" ,perl-text-tabs+wrap)
+       ("perl-unicode-linebreak" ,perl-unicode-linebreak)
+       ("perl-uri-escape" ,perl-uri-escape)
+       ("wget" ,wget)
+       ("xdg-utils" ,xdg-utils)
+       ("youtube-dl" ,youtube-dl)))
+    (propagated-inputs
+     `(("dconf" ,dconf)))
+    (home-page "https://github.com/trizen/pipe-viewer")
+    (synopsis "CLI+GUI YouTube Client")
+    (description "Pipe-Viewer is a lightweight application for searching and
+playing videos from YouTube.  It parses the YouTube website directly and relies
+on the Invidious instances only as a fallback method.")
+    (license license:artistic2.0)))
+
 (define-public straw-viewer
   (package
     (name "straw-viewer")
-- 
2.32.0
R
R
Raghav Gururajan wrote on 4 Jul 2021 03:03
[PATCH v5 16/16] gnu: straw-viewer: Deprecate package.
(address . 49210@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210704010320.5458-16-rg@raghavgururajan.name
Upstream has replaced straw-viewer with pipe-viewer.

* gnu/packages/video.scm (straw-viewer): Deprecate in favour of pipe-viewer.
---
gnu/packages/video.scm | 83 +-----------------------------------------
1 file changed, 1 insertion(+), 82 deletions(-)

Toggle diff (96 lines)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index f2c4335079..c02938db08 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1131,88 +1131,7 @@ on the Invidious instances only as a fallback method.")
     (license license:artistic2.0)))
 
 (define-public straw-viewer
-  (package
-    (name "straw-viewer")
-    (version "0.1.3")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/trizen/straw-viewer")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "1n21byn7hqykpm94jmmnir1fwsskq6dp9wgj0bd2qf0qx5nq33cl"))))
-    (build-system perl-build-system)
-    (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-pod" ,perl-test-pod)))
-    (inputs
-     `(("perl-data-dump" ,perl-data-dump)
-       ("perl-json" ,perl-json)
-       ("perl-libwww" ,perl-libwww)
-       ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
-       ("perl-lwp-useragent-cached" ,perl-lwp-useragent-cached)
-       ("perl-mozilla-ca" ,perl-mozilla-ca)
-       ("perl-term-readline-gnu" ,perl-term-readline-gnu)
-       ("perl-unicode-linebreak" ,perl-unicode-linebreak)
-       ("xdg-utils" ,xdg-utils)))
-    ;; Required only when building the graphical interface (--gtk).
-    ;;("perl-file-sharedir" ,perl-file-sharedir)
-    
-    ;; Some videos play without youtube-dl, but others silently fail to.
-    (propagated-inputs
-     `(("youtube-dl" ,youtube-dl)))
-    (arguments
-     `(#:modules ((guix build perl-build-system)
-                  (guix build utils)
-                  (srfi srfi-26))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'refer-to-inputs
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "lib/WWW/StrawViewer.pm"
-               (("'youtube-dl'")
-                (format #f "'~a/bin/youtube-dl'"
-                        (assoc-ref inputs "youtube-dl"))))
-             (substitute* "bin/gtk-straw-viewer"
-               (("'xdg-open'")
-                (format #f "'~a/bin/xdg-open'"
-                        (assoc-ref inputs "xdg-utils"))))
-             #t))
-         ;; (add-after 'install 'install-desktop
-         ;;   (lambda* (#:key outputs #:allow-other-keys)
-         ;;     (let* ((out (assoc-ref outputs "out"))
-         ;;            (sharedir (string-append out "/share")))
-         ;;       (install-file "share/gtk-straw-viewer.desktop"
-         ;;                     (string-append sharedir "/applications"))
-         ;;       (install-file "share/icons/gtk-straw-viewer.png"
-         ;;                     (string-append sharedir "/pixmaps"))
-         ;;       #t)))
-         (add-after 'install 'wrap-program
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (bin-dir (string-append out "/bin/"))
-                    (site-dir (string-append out "/lib/perl5/site_perl/"))
-                    (lib-path (getenv "PERL5LIB")))
-               (for-each (cut wrap-program <>
-                              `("PERL5LIB" ":" prefix (,lib-path ,site-dir)))
-                         (find-files bin-dir))
-               #t))))))
-    (synopsis
-     "Light-weight application for searching and streaming videos from YouTube")
-    (description
-     "Straw-viewer searches for YouTube videos using @uref{https://invidio.us/,
-invidio.us} and plays them locally in a native media player like @command{vlc}
-or @command{mpv}.
-
-You can search for videos, playlists, and/or channels.  The videos are streamed
-directly to the player at the best chosen resolution and with closed captions if
-available.")
-    ;; XXX Add #:module-build-flags '("--gtk") dependencies and this sentence.
-    ;; Both a command-line and a graphical interface are available.
-    (home-page "https://github.com/trizen/youtube-viewer")
-    (license license:perl-license)))
+  (deprecated-package "straw-viewer" pipe-viewer))
 
 (define-public x265
   (package
-- 
2.32.0
M
M
Maxime Devos wrote on 4 Jul 2021 13:56
Re: Pipe-Viewer Application
(name . Raghav Gururajan)(address . rg@raghavgururajan.name)(address . 49210@debbugs.gnu.org)
832e70ba5230ec204a3d8413761c7cacde016c9f.camel@telenet.be
Raghav Gururajan schreef op za 03-07-2021 om 21:06 [-0400]:
Toggle quote (7 lines)
> Hi Maxime!
>
> Thanks so much for taking time to review other patch-series.
>
> I was wondering if v5 of #49210 looks good to you. Is so, let me know
> and I'll push it. :)

LGTM, but I didn't test it, didn't verify the licenses, didn't check
the source code of the packages ... I only looked at the patches.

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

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYOGh+xccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7r0hAP0abt/l47hnHD2BvRL00/LPIWgj
riEaKOmWU1zhBvlXLAD/V3dz7NcI9TZojT6B7d+Lm6qaW8TfLVz51cc52EGVCQE=
=X+gI
-----END PGP SIGNATURE-----


R
R
Raghav Gururajan wrote on 5 Jul 2021 03:57
(name . Maxime Devos)(address . maximedevos@telenet.be)(address . 49210@debbugs.gnu.org)
31e8e51b-cfb6-a775-b973-719340e7e286@raghavgururajan.name
Hi Maxime!

Toggle quote (3 lines)
> LGTM, but I didn't test it, didn't verify the licenses, didn't check
> the source code of the packages ... I only looked at the patches.

Thanks!

Regards,
RG.
Attachment: OpenPGP_signature
R
R
Raghav Gururajan wrote on 5 Jul 2021 03:58
(no subject)
(address . 49210-done@debbugs.gnu.org)
d1d989f9-3c9c-cb7c-60a7-bdef5f639c17@raghavgururajan.name
Pushed as 8d27e6a7cf..e1fb55ab67.
Attachment: OpenPGP_signature
Closed
?
Your comment

This issue is archived.

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