From patchwork Sat Oct 28 22:46:45 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Tobias Geerinckx-Rice X-Patchwork-Id: 55490 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 931AB27BBEA; Sun, 29 Oct 2023 00:14:54 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 7686527BBE9 for ; Sun, 29 Oct 2023 00:14:50 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qwsVl-0002lK-0l; Sat, 28 Oct 2023 19:14:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qwsVi-0002l4-QJ for guix-patches@gnu.org; Sat, 28 Oct 2023 19:14:31 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qwsVi-00033K-H8 for guix-patches@gnu.org; Sat, 28 Oct 2023 19:14:30 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qwsWE-0001Yf-Bx for guix-patches@gnu.org; Sat, 28 Oct 2023 19:15:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#66694] [PATCH] gnu: Add ani-cli References: <20231023051055.1470319-1-jaeme@runbox.com> In-Reply-To: <20231023051055.1470319-1-jaeme@runbox.com> Resent-From: Tobias Geerinckx-Rice Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 28 Oct 2023 23:15:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66694 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66694@debbugs.gnu.org Received: via spool by 66694-submit@debbugs.gnu.org id=B66694.16985348545915 (code B ref 66694); Sat, 28 Oct 2023 23:15:02 +0000 Received: (at 66694) by debbugs.gnu.org; 28 Oct 2023 23:14:14 +0000 Received: from localhost ([127.0.0.1]:39898 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qwsVR-0001XK-SI for submit@debbugs.gnu.org; Sat, 28 Oct 2023 19:14:14 -0400 Received: from tobias.gr ([80.241.217.52]:57052) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qwsVO-0001X8-0J for 66694@debbugs.gnu.org; Sat, 28 Oct 2023 19:14:13 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; s=2018; bh=g+KLwxErWpd56 kTJAC1ETGwJ6uB7sBpt1ddxpJVE5zs=; h=date:subject:to:from; d=tobias.gr; b=VeNLVapFNZzxTuxEsMwhkOj6gt4gm2k3tuZi+YJ9D5vwOdhZeCtDYSIDBScsb0YHTva4 0tDxWvtGcaqGXXpepNPxGyTZtmi7xldUJjcVuzaQetCxgBFJvORHFSC3NyYBnBSw4szHWX c+/eBj+WHBLGBkOhq/PxHcI9zjTtydpNS1/Z4lb+jpsTN7EpADLXWPi7C+Ky31nPc1+53T cJXR0uKOsbbYF5DD0bVvd+wPM/WV035XpXCNAIeRODsji3dAvRk8jhXVBVfqVTEKWo1eE6 Nud5A2He04mQ6pMOU2+OHmDWY/kl1lzp3ez/NJtofHxLVCSSwnjdN/aB//DRwpBg== Received: by submission.tobias.gr (OpenSMTPD) with ESMTPSA id d1aab8be (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO) for <66694@debbugs.gnu.org>; Sat, 28 Oct 2023 23:13:33 +0000 (UTC) Date: Sun, 29 Oct 2023 00:46:45 +0200 BIMI-Selector: v=BIMI1; s=default; Message-ID: <878r7me3xe.fsf@nckx> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Tobias Geerinckx-Rice X-ACL-Warn: , Tobias Geerinckx-Rice via Guix-patches X-Patchwork-Original-From: Tobias Geerinckx-Rice via Guix-patches via From: Tobias Geerinckx-Rice Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches Hi Jaeme, Thanks for submitting this package! I've attached my revision below. We don't sign off on our own patches in Guix. Our Signed-off-by does not have the same DCO meaning as it does for, e.g., Linux. Ours is merely a stamp of approval by a committer. +(define-public ani-cli + (package + (name "ani-cli") + (version "4.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pystardust/ani-cli") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ni9pzjb5qh87iz7c8252bx79qadr1qx6jnkqvvjcqrchh7q473a")))) + (build-system copy-build-system) So… uhm. Apparently the copy-build-system doesn't acknowledge the existence of cross compilation, like, at all? This is a bug in Guix, not you, but here I switched to the gnu-build-system to avoid it. + (wrap-program (string-append #$output "/bin/ani-cli") + `("PATH" ":" prefix + ,(map bin + (list "aria2c" + "curl" + "ffmpeg" + "fzf" + "grep" + "mpv" + "sed" + "uname" + "yt-dlp"))))))))) I added "tput" to this list. While the script appears to be usable without it, it spits out ugly errors and might misbehave. + (home-page "https://github.com/pystardust/ani-cli") + (synopsis "CLI to browse and watch anime") + (description + "ani-cli is a command-line interface (CLI) to browse and watch anime. It +provides an easy way to stream shows using allanime as a source. There are +different features such as episode browsing, history tracking, streaming at +multiple resolutions and much more depending on what programs the user has +installed.") I took the liberty of rewriting this a bit, including my previous @uref suggestion. + (inputs (list aria2 + coreutils + curl + ffmpeg + fzf + mpv + yt-dlp)) Besides ncurses for tput, I added grep and sed for the wrapper. This will matter when the package cross-builds: you don't want the script calling the build-time ‘native’ grep at run time. I also added bash-minimal at ‘guix lint’'s suggestion. We conventionally put fields in this order: source build-system arguments native-inputs inputs propagated-inputs home-page synopsis description license This is not a hard rule and you'll find variants, but I moved the inputs to their conventional location above the Metadata Zone. + (license license:gpl3))) As noted in #guix, I changed this to GPL3+ due to the ‘or (at your option) any later version’ wording. Here's a random Deep Guix Thing that I'm too tired to explain further: because this script invokes curl, and to avoid propagating curl, I added a copy of one of our curl package's native-search-paths. This makes the script work inside a --pure guix shell, as long as you include nss-certs. I do wonder: just how legal is this script, and the one Web site to which it's tightly bound? Kind regards, T G-R From e35b26790407b8019bee2f824f03f31c173e3507 Mon Sep 17 00:00:00 2001 Message-ID: From: jaeme Date: Thu, 26 Oct 2023 19:48:51 -0400 Subject: [PATCH] gnu: Add ani-cli. * gnu/packages/video.scm (ani-cli): New variable. Signed-off-by: Tobias Geerinckx-Rice Change-Id: I21ea258f164285dea0d46379dff120b105803dd0 --- gnu/packages/video.scm | 75 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index b4dd7c27ae..cdce376d3e 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -66,6 +66,7 @@ ;;; Copyright © 2023 Ott Joon ;;; Copyright © 2023 Dominik Delgado Steuter ;;; Copyright © 2023 Saku Laesvuori +;;; Copyright © 2023 Jaeme Sifat ;;; ;;; This file is part of GNU Guix. ;;; @@ -116,6 +117,7 @@ (define-module (gnu packages video) #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages bison) + #:use-module (gnu packages bittorrent) #:use-module (gnu packages boost) #:use-module (gnu packages cdrom) #:use-module (gnu packages check) @@ -194,6 +196,7 @@ (define-module (gnu packages video) #:use-module (gnu packages sqlite) #:use-module (gnu packages ssh) #:use-module (gnu packages swig) + #:use-module (gnu packages terminals) #:use-module (gnu packages texinfo) #:use-module (gnu packages textutils) #:use-module (gnu packages tls) @@ -209,6 +212,78 @@ (define-module (gnu packages video) #:use-module (gnu packages xml) #:use-module (gnu packages xorg)) +(define-public ani-cli + (package + (name "ani-cli") + (version "4.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pystardust/ani-cli") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ni9pzjb5qh87iz7c8252bx79qadr1qx6jnkqvvjcqrchh7q473a")))) + (build-system gnu-build-system) + (arguments + (list + #:tests? #f ;no test suite + #:phases + #~(modify-phases %standard-phases + (delete 'configure) ;nothing to configure + (delete 'build) ;nothing to build + (replace 'install + (lambda _ + (install-file "ani-cli" (string-append #$output "/bin")) + (install-file "ani-cli.1" + (string-append #$output "/share/man/man1")))) + (add-after 'install 'wrap + (lambda* (#:key inputs #:allow-other-keys) + (define (bin command) + (dirname (search-input-file + inputs (string-append "bin/" command)))) + (wrap-program (string-append #$output "/bin/ani-cli") + `("PATH" ":" prefix + ,(map bin (list "aria2c" + "curl" + "ffmpeg" + "fzf" + "grep" + "mpv" + "sed" + "tput" + "uname" + "yt-dlp"))))))))) + (inputs (list aria2 + bash-minimal + coreutils + curl + ffmpeg + fzf + grep + mpv + ncurses + sed + yt-dlp)) + (native-search-paths + ;; This was copied from the curl package. + (list (search-path-specification + (variable "CURL_CA_BUNDLE") + (file-type 'regular) + (separator #f) ;single entry + (files '("etc/ssl/certs/ca-certificates.crt"))))) + (home-page "https://github.com/pystardust/ani-cli") + (synopsis "Browse and watch anime from the command line") + (description + "ani-cli is a @acronym{CLI, command-line interface} to browse and watch +anime by streaming videos from @uref{https://allanime.to,All Anime}. + +There are different features such as episode browsing, history tracking, +streaming at multiple resolutions, and much more, depending on what programs the +user has installed.") + (license license:gpl3+))) + (define-public transcode (package (name "transcode") base-commit: 4dfbc536689b07e56aead3dd864b8af54613d091 prerequisite-patch-id: 0f2ea4144d953a8626c7a6aaede0a6797ec9c5f9 prerequisite-patch-id: 658b58a6e368317e83f8b511bebd9b3ae0b7b6f8 prerequisite-patch-id: 95d6d324d080671cb1ac94ff17e73109f54b7977 prerequisite-patch-id: 7e6e4ab87b52996e9bb6cd8595889f21ba87e9fe prerequisite-patch-id: 6f86f2a54f77c0e8841b6f22953c2f748e358107 prerequisite-patch-id: 7c88071ffd6af8c9de9a44ef2e745e3b111d28e7 prerequisite-patch-id: dacf336396c4f629906e4689dc2868d437179a37 prerequisite-patch-id: 35641348fcba881313d08cb85da3722ba0891264 prerequisite-patch-id: ea98f949fde81f63a309e36405b87463dc07ac50 prerequisite-patch-id: a299994eb9a52db942a5cc3a038b8bc34529c799 prerequisite-patch-id: 9ffc6d3a9be37af59ec29bfce0543cf8371edacb prerequisite-patch-id: c489fbc8af7d431f9372d0b8bc9e4c609703680e prerequisite-patch-id: 471c932817cc1044fd03f56e1a1f84e4ce4029a9 prerequisite-patch-id: 88f3a5981ea62ce654a48c258df09315f24ba73e prerequisite-patch-id: 62b7b8d8b26d642f524d45e910f7685a57345d76 prerequisite-patch-id: 6ad7cb518d3f48614c97e7ef851289a8f4375306 prerequisite-patch-id: 3fec7d86bd725207d19e77b38cba7f989af68ea3 prerequisite-patch-id: 3bd20d51aa3a07f86722c5894b85f58b96e1e798 prerequisite-patch-id: 1011132081c09cd02295c999c9af44d1191bc4b2 prerequisite-patch-id: 83ffbbea6cae29ccd11395332446c2a8eb88fd6c prerequisite-patch-id: 760df26aee26e14249c412f32630ae6e71a3fa3e prerequisite-patch-id: b89039b55bef0639c3679b1a5ba13b7a5593af5b prerequisite-patch-id: 24fc8fdb82bb9287ed944673e2f922587bc49503 prerequisite-patch-id: 077e45c8081930192499bfa5c7391d882b1ad401 prerequisite-patch-id: f31368d6b77f811e4b1fba489492ac4d6cde0948 prerequisite-patch-id: fc4e5787813af14bc812bc61a18acd684bd319af prerequisite-patch-id: 08f122a2c9dec498a089d665280f37191f96a1ba prerequisite-patch-id: 6da0dcc6295b755538d7cb2ae4d7f290c3d14e98 prerequisite-patch-id: 7220d8204293754caa4db9ebe3c788ee336d8889 prerequisite-patch-id: 6462f9da097dee40814cf546412b47552f3911a7 prerequisite-patch-id: 9ba212fb95cb7eb4badf51ca677cf5109c2ed881 prerequisite-patch-id: 5ac9fa96627b4d3593429f55b391e66ccf8f14e2 prerequisite-patch-id: a43431df227168b9d0dbb627277ff668fc04c759 prerequisite-patch-id: d72ec36511b6a610072e24e051bbe859af3490fe -- 2.41.0