diff mbox series

[bug#63801] gnu: Add yle-dl

Message ID 20230530092254.16603-1-saku@laesvuori.fi
State New
Headers show
Series [bug#63801] gnu: Add yle-dl | expand

Commit Message

Saku Laesvuori May 30, 2023, 9:22 a.m. UTC
* gnu/packages/video.scm (yle-dl): New variable.
* gnu/packages/video.scm: Import (gnu packages python-build).
---
 gnu/packages/video.scm | 52 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)


base-commit: 3807876af4b53babdbc2f1d730e4763ff651f316

Comments

Nicolas Goaziou July 1, 2023, 11:22 a.m. UTC | #1
Hello,

Saku Laesvuori via Guix-patches via <guix-patches@gnu.org> writes:

> * gnu/packages/video.scm (yle-dl): New variable.

Applied with the changes below. Thank you.

> * gnu/packages/video.scm: Import (gnu packages python-build).

This information is not necessary in the commit message.

> +(define-public yle-dl
> + (package

Indentation is off. You may want to run "guix style" command prior to
sending a patch (I don't, but I'm opinionated about indentation)

> +  (name "yle-dl")
> +  (version "20221231")
> +  (source (origin
> +           ;; PyPI release doesn't include tests
> +           (method git-fetch)
> +           (uri
> +            (git-reference
> +             (url "https://github.com/aajanki/yle-dl.git")

We usually remove ".git" suffix from URL.

> +             (commit "c2a4d2f3926056496f520e289334d345889b51c4")))

We don't use raw hash commits there. The project tags its releases, so
it should be:

  (commit version)

> +        (add-after 'wrap 'wrap-path
> +          (lambda _
> +            (wrap-program (string-append #$output "/bin/yle-dl")
> +                          `("PATH" = (,(string-append #$ffmpeg "/bin")
> +                                      ,(string-append #$wget "/bin"))))))

"#$ffmpeg" and "#$wget" would prevent package transformations. You
should prefer, e.g.,

  (string-append #$(this-package-input "ffmpeg") "/bin")

Regards,
diff mbox series

Patch

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index ab19c2dd8c..a41fa59552 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -65,6 +65,7 @@ 
 ;;; Copyright © 2022 Andy Tai <atai@atai.org>
 ;;; Copyright © 2023 Ott Joon <oj@vern.cc>
 ;;; Copyright © 2023 Dominik Delgado Steuter <dds@disroot.org>
+;;; Copyright © 2023 Saku Laesvuori <saku@laesvuori.fi>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -179,6 +180,7 @@  (define-module (gnu packages video)
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
@@ -2468,6 +2470,56 @@  (define-public orf-dl
 to download videos from Austria's national television broadcaster.")
       (license license:gpl2+))))
 
+(define-public yle-dl
+ (package
+  (name "yle-dl")
+  (version "20221231")
+  (source (origin
+           ;; PyPI release doesn't include tests
+           (method git-fetch)
+           (uri
+            (git-reference
+             (url "https://github.com/aajanki/yle-dl.git")
+             (commit "c2a4d2f3926056496f520e289334d345889b51c4")))
+           (sha256
+            (base32
+             "08pw6x2rc2mv3yrd7qwf2lx9c87ypn0900dfy9nh42b4hyx2jwc6"))))
+  (build-system pyproject-build-system)
+  (propagated-inputs
+   (list
+    python-attrs
+    python-configargparse
+    python-lxml
+    python-requests
+    python-xattr))
+  (inputs
+   (list
+    ffmpeg-5
+    wget))
+  (native-inputs
+   (list
+    python-flit-core
+    python-pytest
+    python-pytest-runner))
+  (arguments
+   (list
+    #:phases
+    #~(modify-phases %standard-phases
+        (add-after 'wrap 'wrap-path
+          (lambda _
+            (wrap-program (string-append #$output "/bin/yle-dl")
+                          `("PATH" = (,(string-append #$ffmpeg "/bin")
+                                      ,(string-append #$wget "/bin"))))))
+        ;; Integration tests require internet access
+        (add-before 'check 'remove-integration-tests
+          (lambda _
+            (delete-file-recursively "tests/integration"))))))
+  (home-page "https://aajanki.github.io/yle-dl/")
+  (synopsis "Download videos from Yle servers")
+  (description "Yle-dl is a command line program for downloading media files from
+the video streaming services of the Finnish national broadcasting company Yle.")
+  (license license:gpl3+)))
+
 (define-public youtube-dl
   (package
     (name "youtube-dl")