Put in earplugs
This commit is contained in:
parent
e448625fd8
commit
43bc72cc66
1 changed files with 50 additions and 170 deletions
|
@ -16,19 +16,6 @@
|
||||||
;;; You should have received a copy of the GNU General Public License
|
;;; You should have received a copy of the GNU General Public License
|
||||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
;; add option for cli only version -> -D SC_QT=OFF
|
|
||||||
|
|
||||||
;; maybe as variant?
|
|
||||||
;; https://guix.gnu.org/manual/en/html_node/Defining-Package-Variants.html
|
|
||||||
|
|
||||||
;; or multiple outputs ->
|
|
||||||
;; https://guix.gnu.org/manual/en/html_node/Packages-with-Multiple-Outputs.html
|
|
||||||
|
|
||||||
;; non GUI version of standard build can be modified via env
|
|
||||||
;; % export QT_QPA_PLATFORM=offscreen
|
|
||||||
;; % sclang
|
|
||||||
|
|
||||||
(define-module (zzkt packages supercollider)
|
(define-module (zzkt packages supercollider)
|
||||||
#:use-module (ice-9 regex)
|
#:use-module (ice-9 regex)
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
|
@ -55,6 +42,56 @@
|
||||||
#:use-module (guix build-system cmake)
|
#:use-module (guix build-system cmake)
|
||||||
#:use-module (guix build-system trivial))
|
#:use-module (guix build-system trivial))
|
||||||
|
|
||||||
|
;; modified sc3 package without Qt interface
|
||||||
|
|
||||||
|
(define-public supercollider-cli
|
||||||
|
(package
|
||||||
|
(inherit supercollider)
|
||||||
|
(name "supercollider-cli")
|
||||||
|
(synopsis "Synthesis engine and programming language (CLI version without Qt GUI)")
|
||||||
|
(inputs (modify-inputs
|
||||||
|
(package-inputs supercollider)
|
||||||
|
(delete "qtbase-5"
|
||||||
|
"qtdeclarative-5"
|
||||||
|
"qtsvg-5"
|
||||||
|
"qtwebchannel-5"
|
||||||
|
"qtwebsockets-5")))
|
||||||
|
;; use slightly modified build options
|
||||||
|
(arguments
|
||||||
|
(list
|
||||||
|
#:configure-flags
|
||||||
|
#~(list "-DSYSTEM_BOOST=ON"
|
||||||
|
"-DSYSTEM_YAMLCPP=ON"
|
||||||
|
"-DFORTIFY=ON"
|
||||||
|
"-DLIBSCSYNTH=ON"
|
||||||
|
"-DSC_EL=OFF"
|
||||||
|
"-DSC_QT=OFF" ;; CLI only. buiild without Qt and IDE
|
||||||
|
"-DCMAKE_BUILD_TYPE=Release")
|
||||||
|
#:phases
|
||||||
|
#~(modify-phases %standard-phases
|
||||||
|
;; HOME must be defined otherwise supercollider throws a "ERROR:
|
||||||
|
;; Primitive '_FileMkDir' failed." error when generating the doc.
|
||||||
|
;; The graphical tests also hang without it.
|
||||||
|
(add-after 'unpack 'set-home-directory
|
||||||
|
(lambda _
|
||||||
|
(setenv "HOME" (getcwd))))
|
||||||
|
(add-after 'unpack 'patch-scclass-dir
|
||||||
|
(lambda _
|
||||||
|
(let* ((scclass-dir
|
||||||
|
(string-append #$output
|
||||||
|
"/share/SuperCollider/SCClassLibrary")))
|
||||||
|
(substitute* "lang/LangSource/SC_LanguageConfig.cpp"
|
||||||
|
(((string-append
|
||||||
|
"SC_Filesystem::instance\\(\\)\\.getDirectory"
|
||||||
|
"\\(DirName::Resource\\) / CLASS_LIB_DIR_NAME"))
|
||||||
|
(string-append "Path(\"" scclass-dir "\")"))))))
|
||||||
|
(add-after 'patch-scclass-dir 'fix-struct-SOUNDFILE-tag
|
||||||
|
(lambda _
|
||||||
|
(display (getcwd)) (newline)
|
||||||
|
(substitute* "include/plugin_interface/SC_SndBuf.h"
|
||||||
|
(("SNDFILE_tag")
|
||||||
|
"sf_private_tag")))))))))
|
||||||
|
|
||||||
|
|
||||||
;; via https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/audio.scm
|
;; via https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/audio.scm
|
||||||
|
|
||||||
|
@ -178,160 +215,3 @@ user must be allowed to access the realtime features of the kernel. Search
|
||||||
for \"realtime\" in the index of the Guix manual to learn how to achieve this
|
for \"realtime\" in the index of the Guix manual to learn how to achieve this
|
||||||
using Guix System.")
|
using Guix System.")
|
||||||
(license license:gpl2+)))
|
(license license:gpl2+)))
|
||||||
|
|
||||||
;; variants
|
|
||||||
|
|
||||||
(define-public supercollider-cli
|
|
||||||
(package
|
|
||||||
(inherit supercollider)
|
|
||||||
(name "supercollider-cli")
|
|
||||||
|
|
||||||
;; remove qt inputs
|
|
||||||
(inputs (modify-inputs
|
|
||||||
(package-inputs supercollider)
|
|
||||||
(delete "qtbase-5"
|
|
||||||
"qtdeclarative-5"
|
|
||||||
"qtsvg-5"
|
|
||||||
"qtwebchannel-5"
|
|
||||||
"qtwebsockets-5")))
|
|
||||||
;; use slightly modified build options
|
|
||||||
(arguments
|
|
||||||
(list
|
|
||||||
#:configure-flags
|
|
||||||
#~(list "-DSYSTEM_BOOST=ON"
|
|
||||||
"-DSYSTEM_YAMLCPP=ON"
|
|
||||||
;; CLI only. buiild without Qt and IDE
|
|
||||||
"-DSC_QT=OFF"
|
|
||||||
"-DCMAKE_BUILD_TYPE=Release"
|
|
||||||
"-DFORTIFY=ON"
|
|
||||||
"-DLIBSCSYNTH=ON"
|
|
||||||
"-DSC_EL=OFF")
|
|
||||||
#:phases
|
|
||||||
#~(modify-phases %standard-phases
|
|
||||||
;; HOME must be defined otherwise supercollider throws a "ERROR:
|
|
||||||
;; Primitive '_FileMkDir' failed." error when generating the doc.
|
|
||||||
;; The graphical tests also hang without it.
|
|
||||||
(add-after 'unpack 'set-home-directory
|
|
||||||
(lambda _
|
|
||||||
(setenv "HOME" (getcwd))))
|
|
||||||
(add-after 'unpack 'patch-scclass-dir
|
|
||||||
(lambda _
|
|
||||||
(let* ((scclass-dir
|
|
||||||
(string-append #$output
|
|
||||||
"/share/SuperCollider/SCClassLibrary")))
|
|
||||||
(substitute* "lang/LangSource/SC_LanguageConfig.cpp"
|
|
||||||
(((string-append
|
|
||||||
"SC_Filesystem::instance\\(\\)\\.getDirectory"
|
|
||||||
"\\(DirName::Resource\\) / CLASS_LIB_DIR_NAME"))
|
|
||||||
(string-append "Path(\"" scclass-dir "\")"))))))
|
|
||||||
(add-after 'patch-scclass-dir 'fix-struct-SOUNDFILE-tag
|
|
||||||
(lambda _
|
|
||||||
(display (getcwd)) (newline)
|
|
||||||
(substitute* "include/plugin_interface/SC_SndBuf.h"
|
|
||||||
(("SNDFILE_tag")
|
|
||||||
"sf_private_tag")))))))
|
|
||||||
(synopsis "Synthesis engine and programming language. CLI version without Qt GUI")))
|
|
||||||
|
|
||||||
;; non-inherted variant
|
|
||||||
|
|
||||||
(define-public supercollider-cli-2
|
|
||||||
(package
|
|
||||||
(name "supercollider-cli-2")
|
|
||||||
(version "3.13.0")
|
|
||||||
(source
|
|
||||||
(origin
|
|
||||||
(method git-fetch)
|
|
||||||
(uri (git-reference
|
|
||||||
(url "https://github.com/supercollider/supercollider")
|
|
||||||
(commit (string-append "Version-" version))
|
|
||||||
(recursive? #t)))
|
|
||||||
(file-name (git-file-name name version))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"1dkpnaly4m2j41ypy7xj5m2yhbl4ykw3vbnam345z4dk6qhyj9b1"))
|
|
||||||
(modules '((guix build utils)
|
|
||||||
(ice-9 ftw)))
|
|
||||||
(snippet
|
|
||||||
;; The build system doesn't allow us to unbundle the following
|
|
||||||
;; libraries. hidapi is also heavily patched and upstream not
|
|
||||||
;; actively maintained.
|
|
||||||
#~(let ((keep-dirs '("nova-simd" "nova-tt" "hidapi"
|
|
||||||
"TLSF-2.4.6" "oscpack_1_1_0" "." "..")))
|
|
||||||
(with-directory-excursion "./external_libraries"
|
|
||||||
(for-each
|
|
||||||
delete-file-recursively
|
|
||||||
(scandir "."
|
|
||||||
(lambda (x)
|
|
||||||
(and (eq? (stat:type (stat x)) 'directory)
|
|
||||||
(not (member (basename x) keep-dirs)))))))
|
|
||||||
;; To find the Guix provided ableton-link library.
|
|
||||||
(substitute* "lang/CMakeLists.txt"
|
|
||||||
(("include\\(\\.\\./external_libraries/link/\
|
|
||||||
AbletonLinkConfig\\.cmake\\)")
|
|
||||||
"find_package(AbletonLink NAMES AbletonLink ableton-link \
|
|
||||||
link REQUIRED)"))))))
|
|
||||||
(build-system cmake-build-system)
|
|
||||||
(outputs
|
|
||||||
'("out"))
|
|
||||||
(arguments
|
|
||||||
(list
|
|
||||||
#:configure-flags
|
|
||||||
#~(list "-DSYSTEM_BOOST=ON"
|
|
||||||
"-DSYSTEM_YAMLCPP=ON"
|
|
||||||
;; CLI only. buiild without Qt and IDE
|
|
||||||
"-DSC_QT=OFF"
|
|
||||||
"-DCMAKE_BUILD_TYPE=Release"
|
|
||||||
"-DFORTIFY=ON"
|
|
||||||
"-DLIBSCSYNTH=ON"
|
|
||||||
"-DSC_EL=OFF")
|
|
||||||
#:phases
|
|
||||||
#~(modify-phases %standard-phases
|
|
||||||
;; HOME must be defined otherwise supercollider throws a "ERROR:
|
|
||||||
;; Primitive '_FileMkDir' failed." error when generating the doc.
|
|
||||||
;; The graphical tests also hang without it.
|
|
||||||
(add-after 'unpack 'set-home-directory
|
|
||||||
(lambda _
|
|
||||||
(setenv "HOME" (getcwd))))
|
|
||||||
(add-after 'unpack 'patch-scclass-dir
|
|
||||||
(lambda _
|
|
||||||
(let* ((scclass-dir
|
|
||||||
(string-append #$output
|
|
||||||
"/share/SuperCollider/SCClassLibrary")))
|
|
||||||
(substitute* "lang/LangSource/SC_LanguageConfig.cpp"
|
|
||||||
(((string-append
|
|
||||||
"SC_Filesystem::instance\\(\\)\\.getDirectory"
|
|
||||||
"\\(DirName::Resource\\) / CLASS_LIB_DIR_NAME"))
|
|
||||||
(string-append "Path(\"" scclass-dir "\")"))))))
|
|
||||||
(add-after 'patch-scclass-dir 'fix-struct-SOUNDFILE-tag
|
|
||||||
(lambda _
|
|
||||||
(display (getcwd)) (newline)
|
|
||||||
(substitute* "include/plugin_interface/SC_SndBuf.h"
|
|
||||||
(("SNDFILE_tag")
|
|
||||||
"sf_private_tag")))))))
|
|
||||||
(native-inputs
|
|
||||||
(list ableton-link pkg-config))
|
|
||||||
(inputs (list jack-1
|
|
||||||
libsndfile
|
|
||||||
fftw
|
|
||||||
libxt
|
|
||||||
readline ;readline support for sclang's CLI
|
|
||||||
alsa-lib ;for sclang's MIDI interface
|
|
||||||
eudev ;for user interactions with devices
|
|
||||||
avahi ;zeroconf service discovery support
|
|
||||||
icu4c
|
|
||||||
boost
|
|
||||||
boost-sync
|
|
||||||
yaml-cpp
|
|
||||||
python-wrapper ;there were warnings in the build process
|
|
||||||
ruby)) ;there were warnings in the build process
|
|
||||||
(home-page "https://github.com/supercollider/supercollider")
|
|
||||||
(synopsis "Synthesis engine and programming language. CLI version without Qt GUI")
|
|
||||||
(description "SuperCollider is a synthesis engine (@code{scsynth} or
|
|
||||||
@code{supernova}) and programming language (@code{sclang}). It can be used
|
|
||||||
for experimenting with sound synthesis and algorithmic composition.
|
|
||||||
|
|
||||||
SuperCollider requires jackd to be installed in your user profile and your
|
|
||||||
user must be allowed to access the realtime features of the kernel. Search
|
|
||||||
for \"realtime\" in the index of the Guix manual to learn how to achieve this
|
|
||||||
using Guix System.")
|
|
||||||
(license license:gpl2+)))
|
|
||||||
|
|
Loading…
Reference in a new issue