Subject: Re: [bug#65031] [PATCH v3] gnu: Add syncplay.

From: Maxim Cournoyer <[email-masked]>
Date: Tue, 09 Jul 2024 22:46:50 -0400

Hello!

aurtzy <[email-masked]> writes:

> * gnu/packages/video.scm (syncplay): New variable.
>
> Change-Id: I72cdfa3db2b4b7ef6c3ef0b8585d138c272046a7
> ---
>
> Hi Maxim,
>
> Just got around to looking at this package again with a new patch as things
> have changed since my last reply (and I didn't cc you before, oops..).
>
> In addition to addressing your initial review, notable changes from v2
> include:
>
> - Update to current latest version of Syncplay (1.7.3).
> - Patch is no longer needed.
> - This patch puts syncplay in (gnu packages video) instead of the previous
>   (gnu packages networking) since the latter seemed more concerned with
>   system-level networking.  Does this make sense?

It does make sense :-).  This sounds good.

[...]

> gnu/packages/video.scm | 54 ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 54 insertions(+)
>
> diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
> index 411ad4c2bf..57a05f3eff 100644
> --- a/gnu/packages/video.scm
> +++ b/gnu/packages/video.scm
> @@ -68,6 +68,7 @@
>  ;;; Copyright © 2023 Saku Laesvuori <[email-masked]>
>  ;;; Copyright © 2023 Jaeme Sifat <[email-masked]>
>  ;;; Copyright © 2023 Zheng Junjie <[email-masked]>
> +;;; Copyright © 2024 aurtzy <[email-masked]>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -6349,3 +6350,56 @@ (define-public svtplay-dl
>  broadcasters including SVT Play, Sveriges Radio, TV4 Play, along with many
>  others.")
>      (license license:expat)))
> +
> +(define-public syncplay
> +  (package
> +    (name "syncplay")
> +    (version "1.7.3")
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://github.com/Syncplay/syncplay")
> +             (commit (string-append "v" version))))
> +       (file-name (git-file-name name version))
> +       (sha256
> +        (base32 "08bgndszja4n2kql2qmzl6qrzawxvcwmywsc69lq0dzjnpdk96la"))))
> +    (build-system python-build-system)
> +    (arguments
> +     (list
> +      #:imported-modules `(,@%python-build-system-modules
> +                           (guix build qt-utils)
> +                           (guix build utils))
> +      #:modules '((guix build python-build-system)
> +                  (guix build qt-utils)
> +                  (guix build utils))
> +      #:phases #~(modify-phases %standard-phases
> +                   (delete 'check)
> +                   (replace 'install
> +                     (lambda _
> +                       (invoke "make" "install" "DESTDIR="
> +                               (string-append "PREFIX="
> +                                              #$output))))
> +                   (add-after 'install 'wrap-qt
> +                     (lambda* (#:key inputs #:allow-other-keys)
> +                       (wrap-qt-program "syncplay"
> +                                        #:output #$output
> +                                        #:inputs inputs
> +                                        #:qt-major-version "6"))))))
> +    (native-inputs (list python-pyside-6))
> +    (inputs (list bash-minimal
> +                  python-certifi
> +                  python-idna
> +                  python-service-identity
> +                  python-twisted
> +                  qtwayland))
> +    (home-page "https://syncplay.pl")
> +    (synopsis "Client/server to synchronize media playback on many computers")
> +    (description
> +     "Syncplay is a solution to synchronize video playback across multiple
> +instances of media players over the Internet.  When one person pauses/unpauses
> +playback or skips to a position in the video, this is replicated across all
> +media players connected to the same server and in the same \"room\" (viewing
> +session).  A built-in text chat for discussing the synced media is also
> +included for convenience.")
> +    (license license:asl2.0)))
>
> base-commit: 78b881722f08325c76096557313a0faee847c66f

This looks well crafted!  Thank you!

Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail>