[bug#54529,v2] Added orca-lang package
Commit Message
---
Added the alsa-plugins package (out and pulseaudio outputs) as
propogated inputs because MIDI output depends on being able to use
libasound_module_conf_pulse.so.
gnu/packages/music.scm | 62 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 62 insertions(+)
Comments
Christopher Rodriguez schreef op di 22-03-2022 om 22:30 [-0400]:
> + (lambda* (#:key inputs outputs #:allow-other-keys)
> + (setenv "CC" "gcc")
This is broken when cross-compiling, try 'cc-for-target'.
Additionally, 'outputs' and 'inputs' are unused here.
Greetings,
Maxime.
Christopher Rodriguez schreef op di 22-03-2022 om 22:30 [-0400]:
> + `(#:tests?
> + #f
Why?
Christopher Rodriguez schreef op di 22-03-2022 om 22:30 [-0400]:
> + (delete 'configure)
> + (delete 'check)
> + (delete 'patch-shebangs)
> + (delete 'validate-documentation-location)
> + (delete 'delete-info-dir-file)
> + (delete 'patch-dot-desktop-files)
> + (delete 'reset-gzip-timestamps)
Why are these phases deleted?
Christopher Rodriguez schreef op di 22-03-2022 om 22:30 [-0400]:
> + (inputs `(("ncurses" ,ncurses)
> + ("portmidi" ,portmidi)))
Preferably use the new inputs style: (inputs (list ncurses portmidi)).
Christopher Rodriguez schreef op di 22-03-2022 om 22:30 [-0400]:
> + (propagated-inputs `(("alsa-plugins" ,alsa-plugins)
> + ("alsa-plugins:pulseaudio" ,alsa-plugins "pulseaudio")))
Why are these propagated?
Christopher Rodriguez schreef op di 22-03-2022 om 22:30 [-0400]:
> + (synopsis "Musical Esoteric Programming Language")
Why the capital letters? And why mention ‘Esoteric’ in the synopsis and
description? Also, it is not actually a programming language, it is
more an implementation of a language for producing music.
Greetings,
Maxime.
Christopher Rodriguez schreef op di 22-03-2022 om 22:30 [-0400]:
> *bang*
This is not texinfo markup.
Christopher Rodriguez schreef op di 22-03-2022 om 22:30 [-0400]:
> +(define-public orca-lang
Personally I'd go with "orca-music".
Christopher Rodriguez schreef op di 22-03-2022 om 22:30 [-0400]:
> + (let ((commit "5ba56ca67baae3db140f8b7a2b2fc46bbac5602f")
> + (revision "5"))
Where does this revision come from? This is the first version of orca
in Guix.
Christopher Rodriguez schreef op di 22-03-2022 om 22:30 [-0400]:
> + (version (git-version "git" revision commit))
"git" is not a version numberr, I suggest "0" instead.
Also, why is a ‘random’ git commit used instead of an upstream version?
Greetings,
Maxime.
Christopher Rodriguez schreef op di 22-03-2022 om 22:30 [-0400]:
> + (dest-exa
> + (string-append dest-lib "/examples"))
I don't think that abbreviations are necessary here, these's enough
space here.
Christopher Rodriguez schreef op di 22-03-2022 om 22:30 [-0400]:
> + (replace 'install
> + (lambda* (#:key outputs #:allow-other-keys)
Spacing went wrong here, try running "./pre-inst-env guix style" on the
package.
Christopher Rodriguez schreef op di 22-03-2022 om 22:30 [-0400]:
> + (license license:agpl3))))
Is it agpl3-only or agpl3+?
Christopher Rodriguez schreef op di 22-03-2022 om 22:30 [-0400]:
> + (dest-lib
> + (string-append out "/share"))
This seems rather confusing naming. Libraries are put in [...]/lib,
not [...]/share. Alsso, I think you could drop the 'dest-' prefix
here.
Christopher Rodriguez schreef op di 22-03-2022 om 22:30 [-0400]:
> + #t))))))
Phases do not need to return #f anymore.
Christopher Rodriguez schreef op di 22-03-2022 om 22:30 [-0400]:
> + (inputs `(("ncurses" ,ncurses)
If you do this, you'll have to add the native-search-paths of ncurses
to orca-lang, because of <https://issues.guix.gnu.org/issue/22138>.
Greetings,
Maxime.
@@ -6879,3 +6879,65 @@ (define-public musikcube
streaming audio server.")
(home-page "https://musikcube.com/")
(license license:bsd-3)))
+(define-public orca-lang
+ (let ((commit "5ba56ca67baae3db140f8b7a2b2fc46bbac5602f")
+ (revision "5"))
+ (package
+ (name "orca-lang")
+ (version (git-version "git" 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
+ `(#:tests?
+ #f
+ #:phases
+ (modify-phases
+ %standard-phases
+ (delete 'configure)
+ (delete 'check)
+ (delete 'patch-shebangs)
+ (delete 'validate-documentation-location)
+ (delete 'delete-info-dir-file)
+ (delete 'patch-dot-desktop-files)
+ (delete 'reset-gzip-timestamps)
+ (replace 'build
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (setenv "CC" "gcc")
+ (invoke "make" "release")))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out
+ (assoc-ref outputs "out"))
+ (dest-bin
+ (string-append out "/bin"))
+ (dest-lib
+ (string-append out "/share"))
+ (dest-exa
+ (string-append dest-lib "/examples"))
+ (dest-doc
+ (string-append dest-lib "/doc")))
+ (install-file "./build/orca" dest-bin)
+ (copy-recursively "./examples" dest-exa)
+ (install-file "./README.md" dest-doc)
+ #t))))))
+ (inputs `(("ncurses" ,ncurses)
+ ("portmidi" ,portmidi)))
+ (native-inputs `(("pkg-config" ,pkg-config)))
+ (propagated-inputs `(("alsa-plugins" ,alsa-plugins)
+ ("alsa-plugins:pulseaudio" ,alsa-plugins "pulseaudio")))
+ (synopsis "Musical Esoteric Programming Language")
+ (description
+ "Orca is an esoteric programming language and live editor designed to
+quickly create procedural sequencers. Every letter of the alphabet is an
+operation, lowercase letters execute on *bang*, and uppercase letters execute
+each frame.")
+ (home-page "https://100r.co/site/orca.html")
+ (license license:agpl3))))