Subject: Re: [bug#44768] [PATCH v3 2/2] gnu: Add lightspark.

From: Christopher Baines <[email-masked]>
Date: Sat, 28 Nov 2020 16:15:01 +0000

Vinicius Monego <[email-masked]> writes:

> * gnu/packages/animation.scm (lightspark): New variable.
> ---
> Rebased on the previous commit

Thanks for the patch, the main thing I noticed with this is that there's
some bundled code, at least I spotted pugixml included in the lightspark
code, and Guix already has a package for pugixml.

If possible, lightspark should be built with pugixml from Guix.

>  gnu/packages/animation.scm | 64 ++++++++++++++++++++++++++++++++++++++
>  1 file changed, 64 insertions(+)
>
> diff --git a/gnu/packages/animation.scm b/gnu/packages/animation.scm
> index 102b0f47f7..9b94c1d214 100644
> --- a/gnu/packages/animation.scm
> +++ b/gnu/packages/animation.scm
> @@ -25,9 +25,11 @@
>    #:use-module (guix git-download)
>    #:use-module (guix utils)
>    #:use-module ((guix licenses) #:prefix license:)
> +  #:use-module (guix build-system cmake)
>    #:use-module (guix build-system gnu)
>    #:use-module (gnu packages)
>    #:use-module (gnu packages algebra)
> +  #:use-module (gnu packages assembly)
>    #:use-module (gnu packages autotools)
>    #:use-module (gnu packages boost)
>    #:use-module (gnu packages compression)
> @@ -43,6 +45,8 @@
>    #:use-module (gnu packages image)
>    #:use-module (gnu packages imagemagick)
>    #:use-module (gnu packages jemalloc)
> +  #:use-module (gnu packages networking)
> +  #:use-module (gnu packages pcre)
>    #:use-module (gnu packages perl)
>    #:use-module (gnu packages pkg-config)
>    #:use-module (gnu packages pulseaudio)
> @@ -397,3 +401,63 @@ audio or video backends, ensuring good performance.")
>        (home-page "https://www.gnu.org/software/gnash/")
>        (license license:gpl3+))))
>  
> +(define-public lightspark
> +  (package
> +    (name "lightspark")
> +    (version "0.8.3")
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://github.com/lightspark/lightspark")
> +             (commit version)))
> +       (file-name (git-file-name name version))
> +       (sha256
> +        (base32 "0rgqqppnv4n3kv623sgr1zpc2fdsnrqzfiqgk4clcmfl5ipklg6f"))))
> +    (build-system cmake-build-system)
> +    (arguments
> +     `(#:tests? #f ;requires Adobe Flex SDK, see README.tests
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-after 'unpack 'relative-etc-dir
> +           ;; Write default config file to ./etc instead of /etc.
> +           (lambda _
> +             (substitute* "CMakeLists.txt" (("\\/etc") "etc"))
> +             #t))
> +         (replace 'check
> +           (lambda* (#:key tests? #:allow-other-keys)
> +             (if tests?
> +                 (begin
> +                   (invoke "./tests"))
> +                 #t))))))

I'd normally write this as:

  (when tests?
    (invoke "./tests"))
  #t

> +    (native-inputs
> +     `(("gettext" ,gettext-minimal)
> +       ("glib:bin" ,glib "bin")
> +       ("nasm" ,nasm)
> +       ("perl" ,perl)
> +       ("pkg-config" ,pkg-config)
> +       ("python" ,python-wrapper)))
> +    (inputs
> +     `(("cairo" ,cairo)
> +       ("curl" ,curl)
> +       ("ffmpeg" ,ffmpeg)
> +       ("freeglut" ,freeglut)
> +       ("glew" ,glew)
> +       ("glibmm" ,glibmm)
> +       ("gnash" ,gnash)
> +       ("libjpeg" ,libjpeg-turbo)
> +       ("openssl" ,openssl)
> +       ("pango" ,pango)
> +       ("pcre2" ,pcre2)
> +       ("rtmpdump" ,rtmpdump)
> +       ("sdl2" ,sdl2)
> +       ("sdl2-mixer" ,sdl2-mixer)
> +       ("zlib" ,zlib)))
> +    (home-page "https://lightspark.github.io/")
> +    (synopsis "Flash player implementation")
> +    (description
> +     "Lightspark is a Flash player implementation for playing files in the SWF
> +format.  Lightspark can run as a web browser plugin or as a standalone
> +application.  Lightspark supports SWF files written on all versions of the
> +ActionScript language.")
> +    (license license:lgpl3+)))