Message ID | 20220323144547.23041-1-yewscion@gmail.com |
---|---|
State | Accepted |
Headers | show |
Series | [bug#54529,v3] Added orca-lang package | expand |
First: this is awesome. Second... Christopher Rodriguez <yewscion@gmail.com> writes: > Here's the patch. Let me know what else can be improved. > > Particularly, I am worried about the name of the binary. It is > currently installed as `orca`, which is (I believe) the same name > given to the binary for the orca screen reader. > > Should I change this? And if so, how? I think you could probably just add a post-install phase that moves the binary file in its output directory from "orca" to "orca-music"? Why not give it a try anyway? :) > gnu/packages/music.scm | 57 ++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 57 insertions(+) > > diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm > index 9c8203aa80..1240027050 100644 > --- a/gnu/packages/music.scm > +++ b/gnu/packages/music.scm > @@ -6879,3 +6879,60 @@ (define-public musikcube > streaming audio server.") > (home-page "https://musikcube.com/") > (license license:bsd-3))) > +(define-public orca-music > + (let ((commit "5ba56ca67baae3db140f8b7a2b2fc46bbac5602f") (revision "1")) > + (package > + (name "orca-music") > + ;; No upstream version numbers; Using commit instead. > + (version (git-version "0" revision commit)) > + (source (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://git.sr.ht/~rabbits/orca") > + (commit commit))) > + (file-name (git-file-name name version)) > + (sha256 > + (base32 > + "1mnhk68slc6g5y5348vj86pmnz90a385jxvm3463fic79k90gckd")))) > + (build-system gnu-build-system) > + (arguments > + `(#:phases (modify-phases %standard-phases > + (delete 'configure) ;; No autoconf > + (delete 'check) ;; No make check > + (replace 'build > + (lambda* (#:key inputs outputs #:allow-other-keys) > + (setenv "CC" > + ,(cc-for-target)) > + (invoke "make" "release"))) > + (replace 'install > + (lambda* (#:key outputs #:allow-other-keys) > + (let* ((out (assoc-ref outputs "out")) (dest-bin (string-append > + out > + "/bin")) > + (share (string-append out "/share")) > + (dest-examples (string-append share "/examples")) > + (dest-doc (string-append share "/doc"))) > + (install-file "./build/orca" dest-bin) > + (copy-recursively "./examples" dest-examples) > + (install-file "./README.md" dest-doc))))))) > + (inputs (list ncurses portmidi)) > + (native-inputs (list pkg-config)) > + ;; The below are needed as propagated inputs to let orca interact with > + ;; alsa/pulse MIDI. > + (propagated-inputs `(("alsa-plugins" ,alsa-plugins) ("alsa-plugins:pulseaudio" ,alsa-plugins > + "pulseaudio"))) > + (native-search-paths (list > + (search-path-specification > + (variable "TERMINFO_DIRS") > + (files '("share/terminfo"))))) > + (synopsis "musical live-coding environment") > + (description > + "This is the C implementation of the ORCΛ language and terminal > +livecoding environment. It's designed to be power efficient. It can handle > +large files, even if your terminal is small. > + > +Orca is not a synthesizer, but a flexible livecoding environment capable of > +sending MIDI, OSC, and UDP to your audio/visual interfaces like Ableton, > +Renoise, VCV Rack, or SuperCollider.") > + (home-page "https://100r.co/site/orca.html") > + (license license:expat))))
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 9c8203aa80..1240027050 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -6879,3 +6879,60 @@ (define-public musikcube streaming audio server.") (home-page "https://musikcube.com/") (license license:bsd-3))) +(define-public orca-music + (let ((commit "5ba56ca67baae3db140f8b7a2b2fc46bbac5602f") (revision "1")) + (package + (name "orca-music") + ;; No upstream version numbers; Using commit instead. + (version (git-version "0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~rabbits/orca") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1mnhk68slc6g5y5348vj86pmnz90a385jxvm3463fic79k90gckd")))) + (build-system gnu-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (delete 'configure) ;; No autoconf + (delete 'check) ;; No make check + (replace 'build + (lambda* (#:key inputs outputs #:allow-other-keys) + (setenv "CC" + ,(cc-for-target)) + (invoke "make" "release"))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) (dest-bin (string-append + out + "/bin")) + (share (string-append out "/share")) + (dest-examples (string-append share "/examples")) + (dest-doc (string-append share "/doc"))) + (install-file "./build/orca" dest-bin) + (copy-recursively "./examples" dest-examples) + (install-file "./README.md" dest-doc))))))) + (inputs (list ncurses portmidi)) + (native-inputs (list pkg-config)) + ;; The below are needed as propagated inputs to let orca interact with + ;; alsa/pulse MIDI. + (propagated-inputs `(("alsa-plugins" ,alsa-plugins) ("alsa-plugins:pulseaudio" ,alsa-plugins + "pulseaudio"))) + (native-search-paths (list + (search-path-specification + (variable "TERMINFO_DIRS") + (files '("share/terminfo"))))) + (synopsis "musical live-coding environment") + (description + "This is the C implementation of the ORCΛ language and terminal +livecoding environment. It's designed to be power efficient. It can handle +large files, even if your terminal is small. + +Orca is not a synthesizer, but a flexible livecoding environment capable of +sending MIDI, OSC, and UDP to your audio/visual interfaces like Ableton, +Renoise, VCV Rack, or SuperCollider.") + (home-page "https://100r.co/site/orca.html") + (license license:expat))))