From 5fe2faa09f06f9a0231907522291926e93036509 Mon Sep 17 00:00:00 2001 From: Sughosha Date: Sat, 15 Oct 2022 15:56:23 +0200 Subject: [PATCH 3/4] gnu: Add mruby-zest * gnu/packages/music.scm (mruby-zest): New variable. --- gnu/packages/music.scm | 104 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 42d853fc8c..1ae54033c0 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -167,6 +167,7 @@ (define-module (gnu packages music) #:use-module (gnu packages rdf) #:use-module (gnu packages readline) #:use-module (gnu packages rsync) + #:use-module (gnu packages ruby) #:use-module (gnu packages sdl) #:use-module (gnu packages serialization) #:use-module (gnu packages sphinx) @@ -3026,6 +3027,109 @@ (define-public nanovg OpenGL. It has lean API modeled after HTML5 canvas API.") (license license:zlib)))) +(define-public mruby-zest + (package + (name "mruby-zest") + (version "3.0.6") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mruby-zest/mruby-zest-build") + (commit version) + ;; TODO: package mruby gems seperately. + (recursive? #t))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0dz4zv1km9805lji2q2qqdd8s8hgfd723dxdzcivbhm612szm1mc")))) + (build-system gnu-build-system) + (arguments + (list #:tests? #f ;no test suite + #:make-flags #~(list (string-append "CC=" + #$(cc-for-target)) + "CONFIG_SHELL=bash") + #:phases #~(modify-phases %standard-phases + (delete 'configure) ;no configure script + (add-after 'unpack 'use-installed-libs + (lambda _ + (substitute* "Makefile" + (("cd deps/nanovg") + "#cd deps/nanovg") + (("\\$\\(AR\\) rc deps/libnanovg\\.a") + "#\\$\\(AR\\) rc deps/libnanovg\\.a") + (("cd deps/mruby-file-stat") + "#cd deps/mruby-file-stat") + (("\\./deps/libnanovg\\.a") + "-lnanovg")) + (substitute* "build_config.rb" + (("#\\{`pwd`\\.strip\\}/\\.\\./deps/libnanovg\\.a") + (string-append #$nanovg "/lib/libnanovg\\.a"))))) + (add-after 'unpack 'disable-unused-deps + (lambda _ + (substitute* "build_config.rb" + (("conf\\.gem 'deps/mruby-file-stat'") + "#")) + (substitute* "deps/mruby-dir-glob/mrbgem.rake" + (("spec\\.add_dependency 'mruby-file-stat'") + "#")))) + (replace 'install + (lambda _ + (let* ((lib (string-append #$output + "/lib/zyn-fusion")) + (font (string-append lib "/font")) + (qml (string-append lib "/qml")) + (roboto (string-append #$font-google-roboto + "/share/fonts/truetype")) + (bin (string-append #$output "/bin"))) + ;; Hardcoded to use these font in this path. + (mkdir-p (string-append lib "/font")) + (symlink (string-append #$font-entypo + "/share/fonts/truetype" + "/entypo.ttf") + (string-append font "/entypo.ttf")) + (symlink (string-append roboto + "/Roboto-Bold.ttf") + (string-append font "/Roboto-Bold.ttf")) + (symlink (string-append roboto + "/Roboto-Light.ttf") + (string-append font "/Roboto-Light.ttf")) + (symlink (string-append roboto + "/Roboto-Regular.ttf") + (string-append font + "/Roboto-Regular.ttf")) + (copy-recursively "src/mruby-zest/qml" qml) + (copy-recursively "src/mruby-zest/example" qml) + (install-file "src/osc-bridge/schema/test.json" + (string-append lib "/schema")) + (install-file "libzest.so" lib) + ;; zynaddsubfx requires this name. + (rename-file "zest" "zyn-fusion") + (install-file "zyn-fusion" bin) + (install-file "completions/zyn-fusion" + (string-append #$output + "/share/bash-completion/completions"))))) + (add-after 'install 'wrap + (lambda _ + (wrap-program (string-append #$output + "/bin/zyn-fusion") + `("LD_LIBRARY_PATH" ":" prefix + (,(string-append #$output + "/lib/zyn-fusion"))))))))) + (native-inputs (list mruby pkg-config ruby)) + (inputs (list font-entypo + font-google-roboto + bash-minimal + libuv + libx11 + mesa + nanovg)) + (home-page "https://github.com/mruby-zest/mruby-zest-build") + (synopsis "Widget classes for the mruby-zest framework") + (description + "This repository contains all of the widgets needed to create the +@code{zyn-fusion} user interface for ZynAddSubFX.") + (license license:lgpl2.1))) + (define-public zynaddsubfx (package (name "zynaddsubfx") -- 2.38.0