Subject: [bug#64387] [PATCH v2 1/6] gnu: arcan: Update to 0.6.2.1.

From: Ahmad Draidi <[email-masked]>
Date: Thu, 10 Aug 2023 22:16:33 +0400

* gnu/packages/arcan.scm (arcan): Update to 0.6.2.1.
[use-modules]: Remove no longer used package imports and add ones for
new dependencies. Add '(guix gexp)' for snippet.
[source]: Use version instead of commit, and add snippet to remove some
bundled packages.
[arguments]: Remove 'fix-cmake-paths' phase since it's no longer needed.
[inputs]: Remove apr, glib, glu, lzip, pcre.  Add bash-minimal, espeak,
gumbo-parser, jbig2dec, libjpeg-turbo, libseccomp, libvnc, mupdf, openjpeg,
sdl2, wayland, wayland-protocols, xcb-util, xcb-util-wm, zlib. Replace
ffmpeg-4 with ffmpeg. Change luajit label to fix lint. Update vendored
openal to 0.6.2. Sort inputs by name.
[description]: Change description to closely match upstream for accuracy.
[license]: Add new and missing licenses.
---
 gnu/packages/arcan.scm | 77 +++++++++++++++++++++++++-----------------
 1 file changed, 46 insertions(+), 31 deletions(-)

diff --git a/gnu/packages/arcan.scm b/gnu/packages/arcan.scm
index 7483777ff0..f4eecb3364 100644
--- a/gnu/packages/arcan.scm
+++ b/gnu/packages/arcan.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2019 L  p R n  d n <[email-masked]>
 ;;; Copyright © 2021 Guillaume Le Vaillant <[email-masked]>
+;;; Copyright © 2023 Ahmad Draidi <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,50 +21,58 @@
 (define-module (gnu packages arcan)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (guix gexp)
   #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix utils)
-  #:use-module (gnu packages apr)
   #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gl)
-  #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages ocr)
-  #:use-module (gnu packages pcre)
+  #:use-module (gnu packages pdf)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages ruby)
   #:use-module (gnu packages sdl)
+  #:use-module (gnu packages speech)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages video)
+  #:use-module (gnu packages vnc)
+  #:use-module (gnu packages web)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
   #:use-module (srfi srfi-1))
 
 (define-public arcan
-  (let ((commit "b4dd1fbd1938492ff4b269189d3c8524be7450a9")
-        (revision "1"))
     (package
       (name "arcan")
-      (version (git-version "0.5.5.2" revision commit))
+      (version "0.6.2.1")
       (source (origin
                 (method git-fetch)
                 (file-name (git-file-name name version))
                 (uri (git-reference
                       (url "https://github.com/letoram/arcan")
-                      (commit commit)))
+                      (commit version)))
                 (sha256
-                 (base32 "1pd0avlzc2rig1hd37zbhc7r2s6fjzdhshfg9l9cfzibl7caclyw"))))
+                 (base32 "14wwb7mgq8ab39dfprps7hzdz7a37r3cl8dc5q6m1r8n5daxyzgc"))
+                (modules '((guix build utils)))
+                (snippet
+                 ;; Remove some bundled packages
+                 #~(begin
+                     (delete-file-recursively "external/git")
+                     (delete-file-recursively "external/lua")
+                     (delete-file-recursively "external/sqlite")))))
       (build-system cmake-build-system)
       (arguments
        `(#:configure-flags '("-DCMAKE_C_FLAGS=-fcommon"
@@ -73,15 +82,6 @@ (define-public arcan
                              "-DSHMIF_TUI_ACCEL=on")
          #:phases
          (modify-phases %standard-phases
-           (add-after 'unpack 'fix-cmake-paths
-             (lambda* (#:key inputs #:allow-other-keys)
-               (substitute* "src/platform/cmake/modules/FindGBMKMS.cmake"
-                 (("/usr/local/include/libdrm")
-                  (search-input-directory inputs "include/libdrm")))
-               (substitute* "src/platform/cmake/modules/FindAPR.cmake"
-                 (("/usr/local/apr/include/apr-1")
-                  (search-input-directory inputs "include/apr-1")))
-               #t))
            ;; Normally, it tries to fetch patched openal with git
            ;; but copying files manually in the right place seems to work too.
            (add-after 'unpack 'prepare-static-openal
@@ -122,34 +122,44 @@ (define-public arcan
               (separator #f)
               (files '("share/arcan/scripts")))))
       (inputs
-       `(("apr" ,apr)
-         ("ffmpeg" ,ffmpeg-4)
+       `(("bash-minimal" ,bash-minimal)
+         ("espeak" ,espeak)
+         ("ffmpeg" ,ffmpeg)
          ("freetype" ,freetype)
-         ("glib" ,glib)
-         ("glu" ,glu)
+         ("gumbo-parser" ,gumbo-parser)
          ("harfbuzz" ,harfbuzz)
+         ("jbig2dec" ,jbig2dec)
+         ("leptonica" ,leptonica)
          ("libdrm" ,libdrm)
+         ("libjpeg-turbo" ,libjpeg-turbo)
+         ("libseccomp" ,libseccomp)
          ("libusb" ,libusb)
+         ("libvnc" ,libvnc)
          ("libxkbcommon" ,libxkbcommon)
-         ("lua" ,luajit)
-         ("lzip" ,lzip)
+         ("luajit" ,luajit)
+         ("mupdf" ,mupdf)
          ("openal" ,openal)
-         ("pcre" ,pcre)
+         ("openjpeg" ,openjpeg)
+         ("sdl2" ,sdl2)
          ("sqlite" ,sqlite)
          ("tesseract-ocr" ,tesseract-ocr)
-         ("leptonica" ,leptonica)
          ("vlc" ,vlc)
+         ("wayland" ,wayland)
+         ("wayland-protocols" ,wayland-protocols)
+         ("xcb-util" ,xcb-util)
+         ("xcb-util-wm" ,xcb-util-wm)
+         ("zlib" ,zlib)
          ;;  To build arcan_lwa, we need a patched version of openal.
          ;; https://github.com/letoram/arcan/wiki/packaging
          ("arcan-openal" ,(origin
                             (method git-fetch)
-                            (file-name "arcan-openal-0.5.4")
+                            (file-name "arcan-openal-0.6.2")
                             (uri (git-reference
                                   (url "https://github.com/letoram/openal")
-                                  (commit "1c7302c580964fee9ee9e1d89ff56d24f934bdef")))
+                                  (commit "0.6.2")))
                             (sha256
                              (base32
-                              "0dcxcnqjkyyqdr2yk84mprvkncy5g172kfs6vc4zrkklsbkr8yi2"))))))
+                              "0vg3fda47q2dk1n43ijcc64q39z044pa8h6scmfyi22g6r6bfw2z"))))))
       (native-inputs
        (list pkg-config ruby))               ; For documentation and testing
       (home-page "https://arcan-fe.com")
@@ -157,13 +167,18 @@ (define-public arcan
       (description "Arcan is a development framework for creating virtually
 anything from user interfaces for specialized embedded applications
 all the way to full-blown desktop environments.  At its heart lies a multimedia
-engine programmable using Lua.")
+engine with a Lua scripting interface.")
       ;; https://github.com/letoram/arcan/blob/master/COPYING
-      (license (list license:gpl2+
+      (license (list license:asl2.0
+                     license:bsd-3
+                     license:cc-by3.0
+                     license:expat
+                     license:gpl2+
                      license:lgpl2.0
                      license:lgpl2.0+
                      license:public-domain
-                     license:bsd-3)))))
+                     license:silofl1.1
+                     license:zlib))))
 
 (define-public arcan-sdl
   (package
-- 
2.41.0