[bug#65031,v3] gnu: Add syncplay.

Message ID a99629afbb98a9fb564e1ab682dfa808a9e558e9.1719693041.git.aurtzy@gmail.com
State New
Headers
Series [bug#65031,v3] gnu: Add syncplay. |

Commit Message

aurtzy June 29, 2024, 9:37 p.m. UTC
* 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?

> > Is it compatible with Qt 6?  To try it, replace qtwayland-5 with
> > qtwayland, and specify a #:qtbase qtbase argument.
>
> Looks like it is!  #:qtbase doesn't seem to be supported by gnu-build-system or
> python-build-system (switched to the latter for this v2; elaborated further
> below) and I had to make a few other adjustments to get it working, so I may
> need advice if I've missed anything here.
>
> A patch has been added to fix a Qt 6 issue causing Syncplay to crash.
>
> > These should be inputs, not propagated-inputs, unless it can be used as
> > a library?  Also, please sort the inputs alphabetically.
>
> Fixed; not a library.  It appears I was using an inappropriate build system for
> this package - I originally made them propagated because gnu-build-system wasn't
> doing whatever wrapping python-build-system does to make the inputs available,
> so this v2 uses python-build-system instead now.
>
> Best,
>
> aurtzy

Cheers,

aurtzy

gnu/packages/video.scm | 54 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)


base-commit: 78b881722f08325c76096557313a0faee847c66f
  

Comments

Maxim Cournoyer July 10, 2024, 2:46 a.m. UTC | #1
Hello!

aurtzy <aurtzy@gmail.com> 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 <saku@laesvuori.fi>
>  ;;; Copyright © 2023 Jaeme Sifat <jaeme@runbox.com>
>  ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
> +;;; Copyright © 2024 aurtzy <aurtzy@gmail.com>
>  ;;;
>  ;;; 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>
  
aurtzy Sept. 12, 2024, 2:25 a.m. UTC | #2
Hi Maxim,

Small poke on this issue - is there anything else I can help with to get 
this merged?

Cheers,

aurtzy

 > Hello!
 >
 > aurtzy <aurtzy@gmail.com> 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 <saku@laesvuori.fi>
 > > ;;; Copyright © 2023 Jaeme Sifat <jaeme@runbox.com>
 > > ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
 > > +;;; Copyright © 2024 aurtzy <aurtzy@gmail.com>
 > > ;;;
 > > ;;; 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>
  
Maxim Cournoyer Sept. 13, 2024, 4:08 p.m. UTC | #3
Hello!

aurtzy <aurtzy@gmail.com> writes:

> Hi Maxim,
>
> Small poke on this issue - is there anything else I can help with to
> get this merged?

Sorry for the delay!  I've now merged it.
  

Patch

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 <saku@laesvuori.fi>
 ;;; Copyright © 2023 Jaeme Sifat <jaeme@runbox.com>
 ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2024 aurtzy <aurtzy@gmail.com>
 ;;;
 ;;; 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)))