Subject: [bug#51534] [PATCH v2] gnu: Add smplayer.

From: Liliana Marie Prikler <[email-masked]>
Date: Sun, 28 Nov 2021 10:17:45 +0100

Hi,

Am Montag, den 01.11.2021, 02:04 +0100 schrieb Attila Lendvai:
> * gnu/packages/video.scm (smplayer): New variable.
> ---
> 
> i forgot to double check the licence, it's gpl2+, not gpl3+.
> otherwise, it's the same as the previous patch.
> 
>  gnu/packages/video.scm | 60
> ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 60 insertions(+)
> 
> diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
> index 245007f294..2915f85352 100644
> --- a/gnu/packages/video.scm
> +++ b/gnu/packages/video.scm
> @@ -2092,6 +2092,66 @@ (define-public mplayer
>  SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
>      (license license:gpl2)))
>  
> +(define-public smplayer
> +  (package
> +    (name "smplayer")
> +    (version "21.10.0")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append
> +                    "mirror://sourceforge/smplayer/SMPlayer/"
> version
> +                    "/smplayer-" version ".tar.bz2"))
> +              (sha256
> +               (base32
> +                "12nvcl0cfix1xay9hfi7856vg4lpv8y5b0a22212bsjbvl5g22r
> c"))))
> +    (build-system gnu-build-system)
> +    (native-inputs
> +     `(("qttools" ,qttools)))
> +    (inputs
> +     `(("qtbase" ,qtbase-5)
> +       ("zlib" ,zlib)
> +       ("mplayer" ,mplayer)))
> +    (arguments
> +     `(#:modules (,@%gnu-build-system-modules
> +                  (srfi srfi-26))
> +       #:tests? #false             ; no tests
> +       #:make-flags (list (string-append "PREFIX=" (assoc-ref
> %outputs "out"))
> +                          (string-append "CC=" ,(cc-for-target))
> +                          ;; A KLUDGE to turn off invoking lrelease
> on the
> +                          ;; project for now, because it fails
> consistently
> +                          ;; with "WARNING: Could not find qmake
> spec
> +                          ;; 'default'". See below.
> +                          "LRELEASE=true")
> +       #:phases
> +       (modify-phases %standard-phases
> +         (delete 'configure)
> +         ;; Due to the above, we must run lrelease separately on
> each .ts file
> +         ;; (as opposed to running `lrelease-pro smplayer.pro` for
> the entire
> +         ;; project, as the Makefile does normally without the above
> kludge).
> +         (add-after 'build 'compile-ts-files
> +           (lambda _
> +             (for-each (cut invoke "lrelease" <>)
You might want to spell out that cut to avoid needing SRFI 26.  If you
do want to use SRFI 26 I'm pretty sure that cute is the more efficient
variant here.
> +                       (find-files "./" "\\.ts$")))))))
> +    (home-page "https://www.smplayer.info")
> +    (synopsis "Complete front-end for MPlayer, a media player")
> +    (description "SMPlayer is a free media player for Windows and
> Linux
> +with built-in codecs that can play virtually all video and audio
> formats.
> +It doesn't need any external codecs.  Just install SMPlayer and
> you'll be
> +able to play all formats without the hassle to find and install
> codec packs.
> +
> +One of the most interesting features of SMPlayer: it remembers the
> +settings of all files you play.  So you start to watch a movie but
> you have
> +to leave... don't worry, when you open that movie again it will be
> resumed
> +at the same point you left it, and with the same settings: audio
> track,
> +subtitles, volume...
> +
> +SMPlayer is a graphical user interface (GUI) for the award-winning
> +MPlayer, which is capable of playing almost all known video and
> audio
> +formats.  But apart from providing access for the most common and
> useful
> +options of MPlayer, SMPlayer adds other interesting features like
> the
> +possibility to play Youtube videos or download subtitles.")
Descriptions are for describing, not for advertising.  Please cut it
down to the meaningful bits.
> +    (license license:gpl2+)))
> +
I haven't built or ran the package, but from my lexical analysis I did
infer it was a more or less standard Qt thing.  I'm not sure if you
need to wrap some Qt-specific variables here similar to how it's done
in qt-build-system.  Otherwise LGTM.

Cheers