>From f1d5416c9d7a8a5ba5ecb4d380d06ee066b62a29 Mon Sep 17 00:00:00 2001 From: Lprndn Date: Thu, 24 Jan 2019 13:29:21 +0100 Subject: [PATCH] gnu: Add arcan. * gnu/packages/arcan.scm New module. * gnu/packages/arcan.scm (arcan): New variable. --- gnu/packages/arcan.scm | 130 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 gnu/packages/arcan.scm diff --git a/gnu/packages/arcan.scm b/gnu/packages/arcan.scm new file mode 100644 index 000000000..910464dec --- /dev/null +++ b/gnu/packages/arcan.scm @@ -0,0 +1,130 @@ +(define-module (gnu packages arcan) + #:use-module (guix build-system cmake) + #: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 compression) + #:use-module (gnu packages databases) + #:use-module (gnu packages fontutils) + #: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 lua) + #:use-module (gnu packages ocr) + #:use-module (gnu packages pcre) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages ruby) + #:use-module (gnu packages video) + #:use-module (gnu packages xdisorg)) + +(define-public arcan + (package + (name "arcan") + (version "0.5.5.2") ;A few commits ahead, really. To fix some bugs. + (source (origin + (method git-fetch) + (file-name (git-file-name name version)) + (uri (git-reference + (url "https://github.com/letoram/arcan.git") + (commit "b4dd1fbd1938492ff4b269189d3c8524be7450a9"))) + (sha256 + (base32 + "1pd0avlzc2rig1hd37zbhc7r2s6fjzdhshfg9l9cfzibl7caclyw")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags '("-DVIDEO_PLATFORM=egl-dri" "-DBUILTIN_LUA=off" + "-DSTATIC_OPENAL=off""-DENABLE_LWA=on" + "-DSTATIC_SQLITE3=off" "-DSTATIC_FREETYPE=off" + "-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") + (string-append (assoc-ref inputs "libdrm") + "/include/libdrm"))) + (substitute* "src/platform/cmake/modules/FindAPR.cmake" + (("/usr/local/apr/include/apr-1") + (string-append (assoc-ref inputs "apr") + "/include/apr-1"))) + #t)) + (add-after 'unpack 'prepare-static-openal ; For building arcan_lwa + (lambda* (#:key inputs #:allow-other-keys) + (let ((arcan-openal (assoc-ref inputs "arcan-openal"))) + (mkdir-p "external/openal") + (symlink arcan-openal "external/git/openal")) + #t)) + (add-after 'prepare-static-openal 'generate-man + (lambda _ + (with-directory-excursion "doc" + (invoke "ruby" "docgen.rb" "mangen")) + #t)) + (add-before 'configure 'chdir + (lambda _ + (chdir "src") + #t)) + (add-after 'install 'wrap-program + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (wrap-program (string-append out "/bin/arcan") + `("ARCAN_RESOURCEPATH" ":" suffix + (,(string-append out "/share/arcan/resources"))) + `("ARCAN_STATEBASEPATH" ":" = + ("$HOME/.arcan/resources/savestates")) + `("ARCAN_STATEPATH" ":" = + ("$HOME/.arcan/resources/savestates")) + `("ARCAN_BINPATH" ":" = + (,(string-append out "/bin/arcan_frameserver"))) + `("ARCAN_SCRIPTPATH" ":" suffix + (,(string-append out "/share/arcan/scripts"))))) + #t))) + #:tests? #f)) + (native-search-paths + (list (search-path-specification + (variable "ARCAN_APPLBASEPATH") + (separator #f) + (files '("share/arcan/appl"))))) + (inputs + `(("apr" ,apr) + ("ffmpeg" ,ffmpeg) + ("freetype" ,freetype) + ("glib" ,glib) + ("glu" ,glu) + ("harfbuzz" ,harfbuzz) + ("libdrm" ,libdrm) + ("libusb" ,libusb) + ("libxkbcommon" ,libxkbcommon) + ("lua" ,luajit) + ("lzip" ,lzip) + ("openal" ,openal) + ("pcre" ,pcre) + ("sqlite" ,sqlite) + ("tesseract-ocr" ,tesseract-ocr) + ("leptonica" ,leptonica) + ("vlc" ,vlc) + ("arcan-openal" ,(origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/letoram/openal.git") + (commit "1c7302c580964fee9ee9e1d89ff56d24f934bdef"))) + (sha256 + (base32 + "0dcxcnqjkyyqdr2yk84mprvkncy5g172kfs6vc4zrkklsbkr8yi2")))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("ruby" ,ruby))) ; For documentation and testing + (home-page "https://arcan-fe.com") + (synopsis "Combined display server, multimedia framework and game engine (egl-dri)") + (description "Arcan is a powerful development framework for creating virtually +anything from user interfaces for specialized embedded applications +all the way to full-blown desktop environments") + (license (list license:gpl2+ + license:lgpl2.0 + license:bsd-3)))) -- 2.19.2