Subject: Re: [bug#30598] [PATCH 5/5] gnu: Add youtube-viewer.

From: Marius Bakke <[email-masked]>
Date: Mon, 26 Feb 2018 01:58:40 +0100

Alex Vong <[email-masked]> writes:

> From c6106691811adea6d71cf1837d9278f76e14af00 Mon Sep 17 00:00:00 2001
> From: Alex Vong <[email-masked]>
> Date: Sun, 25 Feb 2018 06:52:10 +0800
> Subject: [PATCH 5/5] gnu: Add youtube-viewer.
>
> * gnu/packages/video.scm (youtube-viewer): New public variable.
> ---
>  gnu/packages/video.scm | 40 ++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 40 insertions(+)
>
> diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
> index bf7a3960d..c87f2fbfb 100644
> --- a/gnu/packages/video.scm
> +++ b/gnu/packages/video.scm
> @@ -53,6 +53,7 @@
>    #:use-module (guix build-system gnu)
>    #:use-module (guix build-system glib-or-gtk)
>    #:use-module (guix build-system meson)
> +  #:use-module (guix build-system perl)
>    #:use-module (guix build-system python)
>    #:use-module (guix build-system waf)
>    #:use-module (gnu packages)
> @@ -1311,6 +1312,45 @@ audio, images) from the Web.  It can use either mpv or vlc for playback.")
>      (home-page "https://you-get.org/")
>      (license license:expat)))
>  
> +(define-public youtube-viewer
> +  (package
> +    (name "youtube-viewer")
> +    (version "3.3.3")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append
> +                    "https://github.com/trizen/youtube-viewer/archive/"
> +                    version ".tar.gz"))
> +              (file-name (string-append name "-" version ".tar.gz"))
> +              (sha256
> +               (base32
> +                "1j572his6qmazlmyrbnfq62s9bqml875ay7wy26byy9hfc7m0vgk"))))
> +    (build-system perl-build-system)
> +    (native-inputs
> +     `(("perl-module-build" ,perl-module-build)))
> +    ;;; FIXME: Add optional dependencies once available.

Which dependencies are those? :-)

Also, only two semicolons for normal comments.

> +    (propagated-inputs
> +     `(("perl-data-dump" ,perl-data-dump)
> +       ("perl-file-sharedir" ,perl-file-sharedir)
> +       ("perl-gtk2" ,perl-gtk2)
> +       ("perl-json" ,perl-json)
> +       ("perl-libwww" ,perl-libwww)
> +       ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
> +       ("perl-mozilla-ca" ,perl-mozilla-ca)
> +       ("perl-unicode-linebreak" ,perl-unicode-linebreak)))

I haven't built this yet, but assuming it's a single executable, could
you try to wrap it with the PERL5LIB variable?  That way we don't have
to propagate all of these in end user profiles.

> +    (arguments
> +     `(#:module-build-flags '("--gtk")))
> +    (synopsis
> +     "Lightweight application for searching and streaming videos from YouTube")
> +    (description
> +     "Youtube-viewer searches and plays YouTube videos in a native player.
> +It comes with various search options; it can search for videos, playlists
> +and/or channels.  The videos are streamed directly in a selected video player
> +at the best resolution (customizable) and with closed-captions (if available).
> +Both command-line and GTK2 interface are available.")
> +    (home-page "https://github.com/trizen/youtube-viewer")
> +    (license license:perl-license)))
> +
>  (define-public libbluray
>    (package
>      (name "libbluray")
> -- 
> 2.16.2