Subject: Re: [PATCH] gnu: yt-dlp: Update to 2022.07.18, use gexps and new style inputs.

From: Liliana Marie Prikler <[email-masked]>
Date: Fri, 05 Aug 2022 10:01:42 +0200

Am Freitag, dem 05.08.2022 um 01:30 -0400 schrieb kiasoc5:
> * gnu/packages/video.scm (yt-dlp): Update to 2022.07.18.
-- Split --
> [arguments]: Use gexps.
> [inputs]: Use new style.
> [native-inputs]: Likewise.
For the second patch, use "gnu: yt-dlp: Use new package style." as
title.

> ---
>  gnu/packages/video.scm | 70 ++++++++++++++++++++----------------------
>  1 file changed, 34 insertions(+), 36 deletions(-)
> 
> diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
> index 04049fd9c8..8cd6d03688 100644
> --- a/gnu/packages/video.scm
> +++ b/gnu/packages/video.scm
> @@ -2474,7 +2474,7 @@ (define-public youtube-dl
>  (define-public yt-dlp
>    (package/inherit youtube-dl
>      (name "yt-dlp")
> -    (version "2022.06.22.1")
> +    (version "2022.07.18")
>      (source (origin
>                (method url-fetch)
>                (uri (string-append "https://github.com/yt-dlp/yt-dlp/"
> @@ -2482,7 +2482,7 @@ (define-public yt-dlp
>                                    version "/yt-dlp.tar.gz"))
>                (sha256
>                 (base32
> -               
> "1nr6g3dhvjc10jzhyvgjrrxqhsgi3hiw8bswp8bi6bscimd9vhps"))
> +               
> "1wmzfqhysx1mqdba4ikvm6nbahasihi4xgqwqad20y3vs701slyj"))
>                (snippet
>                 '(begin
>                    ;; Delete the pre-generated files, except for the
> man page
Haven't checked the hash, but on the premise that it's good, LGTM.

-- Split --
> @@ -2497,40 +2497,38 @@ (define-public yt-dlp
>       (substitute-keyword-arguments (package-arguments youtube-dl)
>         ((#:tests? _) #t)
>         ((#:phases phases)
> -        `(modify-phases ,phases
> -           ;; See the comment for the corresponding phase in
> youtube-dl.
> -           (replace 'default-to-the-ffmpeg-input
> -             (lambda _
> -               (substitute* "yt_dlp/postprocessor/ffmpeg.py"
> -                 (("\\.get_param\\('ffmpeg_location'\\)" match)
> -                  (format #f "~a or '~a'" match (which
> "ffmpeg"))))))
> -           (replace 'build-generated-files
> -             (lambda _
> -               ;; Avoid the yt-dlp.1 target, which requires pandoc.
> -               (invoke "make" "PYTHON=python" "yt-dlp"
> "completions")))
> -           (replace 'fix-the-data-directories
> -             (lambda* (#:key outputs #:allow-other-keys)
> -               (let ((prefix (assoc-ref outputs "out")))
> -                 (substitute* "setup.py"
> -                   (("'etc/")
> -                    (string-append "'" prefix "/etc/"))
> -                   (("'share/")
> -                    (string-append "'" prefix "/share/"))))))
> -           (delete 'install-completion)
> -           (replace 'check
> -             (lambda* (#:key tests? #:allow-other-keys)
> -               (when tests?
> -                 (invoke "pytest" "-k" "not download"))))))))
> -    (inputs
> -     `(("python-brotli" ,python-brotli)
> -       ("python-certifi" ,python-certifi)
> -       ("python-mutagen" ,python-mutagen)
> -       ("python-pycryptodomex" ,python-pycryptodomex)
> -       ("python-websockets" ,python-websockets)
> -       ,@(package-inputs youtube-dl)))
> -    (native-inputs
> -     `(("python-pytest" ,python-pytest)
> -       ,@(package-native-inputs youtube-dl)))
> +         #~(modify-phases #$phases
> +            ;; See the comment for the corresponding phase in
> youtube-dl.
> +            (replace 'default-to-the-ffmpeg-input
> +              (lambda _
> +                (substitute* "yt_dlp/postprocessor/ffmpeg.py"
> +                  (("\\.get_param\\('ffmpeg_location'\\)" match)
> +                   (format #f "~a or '~a'" match (which
> "ffmpeg"))))))
> +            (replace 'build-generated-files
> +              (lambda _
> +                ;; Avoid the yt-dlp.1 target, which requires pandoc.
> +                (invoke "make" "PYTHON=python" "yt-dlp"
> "completions")))
> +            (replace 'fix-the-data-directories
> +              (lambda* (#:key outputs #:allow-other-keys)
> +                (let ((prefix (assoc-ref outputs "out")))
> +                  (substitute* "setup.py"
> +                    (("'etc/")
> +                     (string-append "'" prefix "/etc/"))
> +                    (("'share/")
> +                     (string-append "'" prefix "/share/"))))))
> +            (delete 'install-completion)
> +            (replace 'check
> +              (lambda* (#:key tests? #:allow-other-keys)
> +                (when tests?
> +                  (invoke "pytest" "-k" "not download"))))))))
The indentation here seems a little off.  Did you TAB in Emacs?
> +    (inputs (modify-inputs (package-inputs youtube-dl)
> +              (append python-brotli
> +                      python-certifi
> +                      python-mutagen
> +                      python-pycryptodomex
> +                      python-websockets)))
> +    (native-inputs (modify-inputs (package-native-inputs youtube-dl)
> +                     (append python-pytest)))
LGTM.

Cheers