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

From: Maxim Cournoyer <[email-masked]>
Date: Tue, 05 Sep 2023 10:54:43 -0400

Hi,

aurtzy <[email-masked]> writes:

> * gnu/packages/networking.scm (syncplay): New variable.
> ---
>  gnu/packages/networking.scm | 52 +++++++++++++++++++++++++++++++++++++
>  1 file changed, 52 insertions(+)
>
> diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
> index 488d015107..10eb19e980 100644
> --- a/gnu/packages/networking.scm
> +++ b/gnu/packages/networking.scm
> @@ -60,6 +60,7 @@
>  ;;; Copyright © 2023 Bruno Victal <[email-masked]>
>  ;;; Copyright © 2023 Yovan Naumovski <[email-masked]>
>  ;;; Copyright © 2023 Zheng Junjie <[email-masked]>
> +;;; Copyright © 2023 aurtzy <[email-masked]>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -4644,3 +4645,54 @@ (define-public dropwatch
>  recording packets that are dropped by the kernel.  It provides the commands
>  @command{dropwatch} and @command{dwdump}.")
>      (license license:gpl2+)))
> +
> +(define-public syncplay
> +  (package
> +    (name "syncplay")
> +    (version "1.7.0")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://github.com/Syncplay/syncplay.git")
> +                    (commit (string-append "v" version))))
> +              (file-name (git-file-name name version))
> +              (sha256
> +               (base32
> +                "061kpnb48lad8rr8v58xac33mwpbrixfbhn7d0xa63zpxg43bvsd"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     (list #:imported-modules `(,@%gnu-build-system-modules (guix build
> +                                                                  qt-utils)
> +                                (guix build utils))
> +           #:modules '((guix build gnu-build-system)
> +                       (guix build qt-utils)
> +                       (guix build utils))
> +           #:make-flags #~`("DESTDIR=" ,(string-append "PREFIX="
> +                                                       (assoc-ref %outputs
> +                                                                  "out")))
> +           #:phases #~(modify-phases %standard-phases
> +                        (delete 'configure)
> +                        (delete 'build)
> +                        (delete 'check)
> +                        (add-after 'install 'wrap-qt
> +                          (lambda* (#:key inputs #:allow-other-keys)
> +                            (wrap-qt-program "syncplay"
> +                                             #:output #$output
> +                                             #:inputs inputs))))))
> +    (inputs (list bash-minimal qtwayland-5))

Is it compatible with Qt 6?  To try it, replace qtwayland-5 with
qtwayland, and specify a #:qtbase qtbase argument.

> +    (propagated-inputs (list python
> +                             python-service-identity
> +                             python-twisted
> +                             python-pyside-2
> +                             python-certifi
> +                             python-idna))

These should be inputs, not propagated-inputs, unless it can be used as
a library?  Also, please sort the inputs alphabetically.

> +    (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)))

The rest LGTM.  Could you please send a v2?

-- 
Thanks,
Maxim