GNU bug report logs -
#57984
[PATCH] gnu: Update zynaddsubfx to 3.0.6
Previous Next
To reply to this bug, email your comments to 57984 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
guix-patches <at> gnu.org
:
bug#57984
; Package
guix-patches
.
(Wed, 21 Sep 2022 17:22:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Sughosha <Sughosha <at> proton.me>
:
New bug report received and forwarded. Copy sent to
guix-patches <at> gnu.org
.
(Wed, 21 Sep 2022 17:22:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Empty Message
[Message part 2 (text/html, inline)]
[0001-gnu-Update-zynaddsubfx-to-3.0.6.patch (text/x-patch, attachment)]
Information forwarded
to
guix-patches <at> gnu.org
:
bug#57984
; Package
guix-patches
.
(Wed, 21 Sep 2022 17:30:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 57984 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Sorry, one small typos in the commit message.
[Message part 2 (text/html, inline)]
[0001-gnu-Update-zynaddsubfx-to-3.0.6.patch (text/x-patch, attachment)]
Information forwarded
to
guix-patches <at> gnu.org
:
bug#57984
; Package
guix-patches
.
(Wed, 28 Sep 2022 17:22:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 57984 <at> debbugs.gnu.org (full text, mbox):
Hello,
Sughosha <Sughosha <at> proton.me> writes:
> Sorry, one small typos in the commit message.
> From 77f364a304e4510baafe86f5a641bdf84952bf06 Mon Sep 17 00:00:00 2001
> From: Sughosha <sughosha <at> proton.me>
> Date: Wed, 21 Sep 2022 19:15:47 +0200
> Subject: [PATCH] gnu: Update zynaddsubfx to 3.0.6
>
> * gnu/packages/music.scm (mruby-zest): New variable.
>
> * gnu/packages/music.scm (zynaddsubfx): Update to 3.0.6.
>
> Upgrade to Zyn-Fusion with new UI called zest.
> ---
> gnu/packages/music.scm | 96 ++++++++++++++++++++++++++++++++++++++----
> 1 file changed, 88 insertions(+), 8 deletions(-)
>
> diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
> index 66b4beae0c..c9081bfb69 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)
> @@ -2989,10 +2990,69 @@ (define-public vmpk
> instrument or MIDI file player.")
> (license license:gpl3+)))
>
> +(define 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)
> + (recursive? #t)))
Recursive git clones are typically synonymous with bundled libraries or
other undesired, hence it needs to be explained in a comment. If there
are bundled libraries, they should be packaged separately ideally, or if
that's too much work to do, at least a TODO should be added mentioning
which bundled libraries are currently used.
> + (file-name (git-file-name name version))
> + (sha256
> + (base32
> + "0dz4zv1km9805lji2q2qqdd8s8hgfd723dxdzcivbhm612szm1mc"))))
> + (build-system gnu-build-system)
> + (arguments
Please use gexps for new packages, e.g. (arguments (list #:make-flags
#~(list "CC=gcc" ...) ...))
> + `(#:tests? #f
Disabling the tests warrants a comment, which can be as simple as the ";no
test suite" inline comment.
> + #:make-flags `("CC=gcc" "CONFIG_SHELL=bash")
> + #:phases (modify-phases %standard-phases
> + ;; no configure rule available
Please use complete sentences for standalone comments, e.g. "There is no
configure script."
> + (delete 'configure)
> + ;; no install rule available
Ditto.
> + (replace 'install
> + (lambda* (#:key outputs #:allow-other-keys)
> + (let* ((out (string-append (assoc-ref outputs "out")
> + "/opt/zest")))
After this is turned into a gexp, you can use #$output to refer to the
main output directly.
> + (install-file "zest" out)
> + (install-file "libzest.so" out)
> + (install-file "mruby/bin/mruby" out)
> + (install-file "deps/nanovg/example/entypo.ttf"
> + (string-append out "/font"))
> + (install-file "deps/nanovg/example/Roboto-Bold.ttf"
> + (string-append out "/font"))
> + (install-file "deps/nanovg/example/Roboto-Light.ttf"
> + (string-append out "/font"))
> + (install-file "deps/nanovg/example/Roboto-Regular.ttf"
> + (string-append out "/font"))
Can't it use the fonts provided by the system? Packages shouldn't
include any font, ideally, as they're heavy and should be
user-configurable.
> + (copy-recursively "src/mruby-zest/qml"
> + (string-append out "/qml"))
> + (copy-recursively "src/mruby-zest/example"
> + (string-append out "/qml"))
> + (invoke "touch"
> + (string-append out "/qml/MainWindow.qml"))
Why is this empty file needed? A comment would be useful.
> + (copy-recursively "src/osc-bridge/schema"
> + (string-append out "/schema"))
> + (copy-file "completions/zyn-fusion"
> + (string-append out "/completions"))
> + (wrap-program (string-append out "/zest")
> + `("LD_LIBRARY_PATH" =
> + (,out)))))))))
> + (native-inputs (list ruby libuv pkg-config))
> + (inputs (list libx11 mesa bash-minimal))
Please order dependencies lexicographically.
> + (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")
> - (version "3.0.5")
> + (version (package-version mruby-zest))
> (source (origin
> (method url-fetch)
> (uri (string-append
> @@ -3000,10 +3060,11 @@ (define-public zynaddsubfx
> version "/zynaddsubfx-" version ".tar.bz2"))
> (sha256
> (base32
> - "0qwzg14h043rmyf9jqdylxhyfy4sl0vsr0gjql51wjhid0i34ivl"))))
> + "1bkirvcg0lz1i7ypnz3dyh218yhrqpnijxs8n3wlgwbcixvn1lfb"))))
> (build-system cmake-build-system)
> (arguments
> - `(#:phases
> + `(#:configure-flags `("-DGuiModule=zest")
> + #:phases
> (modify-phases %standard-phases
> ;; Move SSE compiler optimization flags from generic target to
> ;; athlon64 and core2 targets, because otherwise the build would fail
> @@ -3014,20 +3075,39 @@ (define-public zynaddsubfx
> (("-msse -msse2 -mfpmath=sse") "")
> (("-march=(athlon64|core2)" flag)
> (string-append flag " -msse -msse2 -mfpmath=sse")))
> - #t)))))
> + #t))
Trailing #t are no longer needed; remove them.
> + (add-after 'install 'link-zest
> + (lambda* (#:key inputs outputs #:allow-other-keys)
> + (let ((zestdir (string-append (assoc-ref inputs
> + "mruby-zest")
> + "/opt/zest"))
> + (bindir (string-append (assoc-ref outputs "out")
> + "/bin"))
> + (libdir (string-append (assoc-ref outputs "out")
> + "/lib")))
> + (symlink (string-append zestdir "/libzest.so")
> + (string-append libdir "/libzest.so"))
> + (symlink (string-append zestdir "/zest")
> + (string-append bindir "/zyn-fusion"))
> + (symlink (string-append zestdir "/font")
> + (string-append libdir "/font"))
> + (symlink (string-append zestdir "/qml")
> + (string-append libdir "/qml"))
> + (symlink (string-append zestdir "/schema")
> + (string-append libdir "/schema"))))))))
> (inputs
> (list liblo
> - ntk
> + mruby-zest
> mesa
> alsa-lib
> jack-1
> - fftw
> + fftwf
> minixml
> libxpm
> zlib))
> (native-inputs
> - (list pkg-config))
> - (home-page "http://zynaddsubfx.sf.net/")
> + (list pkg-config ruby doxygen))
Please mind the ordering.
> + (home-page "https://zynaddsubfx.sourceforge.io/")
> (synopsis "Software synthesizer")
> (description
> "ZynAddSubFX is a feature heavy realtime software synthesizer. It offers
Could you send a v2 with the requested changes? You can do so with 'git
send-email -v2 --to=57984 <at> debbugs.gnu.org -1' from the checkout which
has this v2 as last commit.
Thank you!
Maxim
Information forwarded
to
guix-patches <at> gnu.org
:
bug#57984
; Package
guix-patches
.
(Wed, 28 Sep 2022 20:31:02 GMT)
Full text and
rfc822 format available.
Message #14 received at 57984 <at> debbugs.gnu.org (full text, mbox):
Hi,
Sughosha <Sughosha <at> proton.me> writes:
> Empty Message
> From 77f364a304e4510baafe86f5a641bdf84952bf06 Mon Sep 17 00:00:00 2001
> From: Sughosha <sughosha <at> proton.me>
> Date: Wed, 21 Sep 2022 19:15:47 +0200
> Subject: [PATCH] gnu: Update zynaddsubfx to 3.0.6
>
> gnu/packages/music.scm (mruby-zest): New variable.
>
> * gnu/packages/music.scm (zynaddsubfx): Update to 3.0.6.
Also, please separate your commits; each package should go to their
individual commit.
Lastly, I see there exists a previous effort to package mruby-zest, with
similar outstanding comments as I made here; see: #40440
(https://issues.guix.gnu.org/40440). These comments should also be
taken into consideration.
Thanks,
Maxim
Information forwarded
to
guix-patches <at> gnu.org
:
bug#57984
; Package
guix-patches
.
(Wed, 28 Sep 2022 22:07:02 GMT)
Full text and
rfc822 format available.
Message #17 received at 57984 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
See comments by Maxim, and ...
> "CC=gcc"
When cross-compilation, you need to TARGET-gcc such that it is compiled
for the right architecture. This is done automatically by
(string-append "CC=" #$(cc-for-target)), which should have plenty of
examples in the source code.
Greetings,
Maxime.
[OpenPGP_0x49E3EE22191725EE.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]
Information forwarded
to
guix-patches <at> gnu.org
:
bug#57984
; Package
guix-patches
.
(Sat, 15 Oct 2022 13:38:02 GMT)
Full text and
rfc822 format available.
Message #20 received at 57984 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Thank you Maxim and Maxime for your detailed review. I considered all of the changes you pointed out, and here are the attatchments of the new patch files. Regarding recursive clone, I packages the runtime dependencies seperately but I left the mruby gems, since they seem to be needed just as source (without needing to be compiled) as they are to be configured by mruby for mruby-zest. I am also not familier with mruby or ruby.
Thanks,
Sughosha
[0001-gnu-Add-nanovg.patch (text/x-patch, attachment)]
[0002-gnu-Add-font-entypo.patch (text/x-patch, attachment)]
[0003-gnu-Add-mruby-zest.patch (text/x-patch, attachment)]
[0004-gnu-zynaddsubfx-Update-to-3.0.6-and-switch-to-zyn-fusion.patch (text/x-patch, attachment)]
Information forwarded
to
guix-patches <at> gnu.org
:
bug#57984
; Package
guix-patches
.
(Sat, 15 Oct 2022 14:14:02 GMT)
Full text and
rfc822 format available.
Message #23 received at 57984 <at> debbugs.gnu.org (full text, mbox):
Oops, sorry for messing with the patches. I was switching branches and messed somewhere. Here are the proper patches.
Thank you.
Sughosha
Information forwarded
to
guix-patches <at> gnu.org
:
bug#57984
; Package
guix-patches
.
(Sat, 15 Oct 2022 14:15:01 GMT)
Full text and
rfc822 format available.
Message #26 received at 57984 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Empty Message
[0002-gnu-Add-font-entypo.patch (text/x-patch, attachment)]
[0001-gnu-Add-nanovg.patch (text/x-patch, attachment)]
[0003-gnu-Add-mruby-zest.patch (text/x-patch, attachment)]
[0004-gnu-zynaddsubfx-Update-to-3.0.6-and-switch-to-zyn-fu.patch (text/x-patch, attachment)]
Information forwarded
to
guix-patches <at> gnu.org
:
bug#57984
; Package
guix-patches
.
(Mon, 24 Oct 2022 17:03:01 GMT)
Full text and
rfc822 format available.
Message #29 received at 57984 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On 15-10-2022 16:14, Sughosha wrote:
> [...]
/me looks at revised patches now
[OpenPGP_0x49E3EE22191725EE.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]
Information forwarded
to
guix-patches <at> gnu.org
:
bug#57984
; Package
guix-patches
.
(Mon, 24 Oct 2022 19:04:01 GMT)
Full text and
rfc822 format available.
Message #32 received at 57984 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On 24-10-2022 19:02, Maxime Devos wrote:
>
> On 15-10-2022 16:14, Sughosha wrote:
>> [...]
>
> /me looks at revised patches now
Now at the third patch
[OpenPGP_0x49E3EE22191725EE.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]
Information forwarded
to
guix-patches <at> gnu.org
:
bug#57984
; Package
guix-patches
.
(Tue, 25 Oct 2022 13:37:02 GMT)
Full text and
rfc822 format available.
Message #35 received at 57984 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Now at patch 4.
[OpenPGP_0x49E3EE22191725EE.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]
Information forwarded
to
guix-patches <at> gnu.org
:
bug#57984
; Package
guix-patches
.
(Wed, 26 Oct 2022 12:05:02 GMT)
Full text and
rfc822 format available.
Message #38 received at 57984 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
> Regarding recursive clone, I packages the runtime dependencies
> seperately but I left the mruby gems, since they seem to be needed
> just as source (without needing to be compiled) as they are to be
> configured by mruby for mruby-zest. [...]
Bundling things that aren't compiled is still bundling. Also, now both
mruby-zest and zynaddsubfx bundle rtosc, which is worse than a package
bundling a dependent that isn't used anywhere else.
I've looked at the latest patches and did some changes (see attached
patches), though the bundling still remains.
In nanovg, I changed the 'revision' to 0 -- its just a monotonically
increasing number for each package update, it's not a 'how many commits
have there been', see (guix)Version Numbers.
I also changed "ar" to #$(ar-for-target) -- using the 'wrong' ar
sometimes works, but not always, e.g. IIRC it failed when
cross-compiling from some 64-bit arch to a 32-bit ach?
Upstream appears to use 'premake4' as a build system, so I adjusted the
package definition accordingly.
I set the 'file-name' field for to be more informative.
---
I corrected the revision in font-entypo as with nanovg.
I expanded the description a little, and added a TODO
on building the font from source (it seems to have been
neglected for font packages because of node dependencies).
The license combination seemed a bit odd to me so I added
some more text there.
---
mruby-zest:
I changed 'TODO: package mruby gems separately' to 'TODO: unbundle mruby
gems' as that seems easier to search for. Some things were actually
packaged, so I removed those from 'deps' in a snippet. It turned out
that the Makefile tried to build mruby, so I patched that out.
As mruby isn't included anymore, you could give removing some of the
bundled mruby gems a try, especially given that they aren't actually
installed.
I removed '#:tests? #false' because a test suite exists -- the makefile
has a 'test' and 'rtest' target. I choose the 'rtest' target (because
'test' is for testing mruby, not mruby-zest). It turned out the test
suite requires 'ruby-ruby-prof' so I added that as a native-input.
You have done #$some-input in the 'install' phase -- package
transformation don't know to adjust those, so I replaced it with a
search-input-file equivalent.
Putting the fonts in the output of mruby-zest doesn't lookk quite right
to me, so I instead moved things to a post-unpack phase and used
'substitute*' instead of 'symlink'.
I noticed that pcre was bundled (deps/mruby-regexp-pcre/pcre'), so I
removed that.
By looking at
<https://github.com/archlinux/svntogit-community/tree/packages/zynaddsubfx/trunk>,
I noticed it looks for libzest.so in /opt/zyn-fusion/libzest.so, which
is incorrect in Guix (and other distros too).
I removed the wrapping because:
* no reason was listed for wrapping
* presumably the incorrect reference was the thing that
LD_LIBRARY_PATH was a work-around for, but that reference has now
been corrected.
* LD_LIBRARY_PATH is leaky and hence to be avoided
(if zest spawns a subprocess, then that subprocess would get
LD_LIBRARY_PATH too)
As a bonus, this allowed removing 'bash-minimal' from the inputs.
From
<https://github.com/archlinux/svntogit-community/blob/packages/zynaddsubfx/trunk/zynaddsubfx-mruby-zest-build-3.0.6-system_wide_location.patch>,
I noticed that apparently some references to schema/test.json and
MainWindow.qml were incorrect. These are now patched.
I simplified the unbundling substitutions a little.
For example, it turned out that build_config.rb did not need any
substitutions somehow.
The makefile uses pkg-config instead of TARGET-pkg-config, which is
incorrect when cross-compiling, so I patched that.
On the fonts: I noticed that the fonts don't become part of the closure
(with "guix gc --references"). As such, maybe the source files that
use the fonts are actually unused. I propose to give installing the
examples that use the fonts a try, or alternatively explicitly choose
to not install the (font-using) examples.
---
I changed the version of zynaddsubfx from (package-version mruby-zest)
to "3.0.6", otherwise the package would break after a mruby-zest update.
I re-added the comment of 'remove-sse-flags-from-generic-target' that
was removed.
I changed #$mruby-zest to a search-input-file equivalent, for the same
reason as with previous patches.
You forgot to mention the home page, so I adjusted the commit message.
You are fixing a file name, not a path, so I adjusted the new phase name.
By removing the 'ntk' input, zynaddsubfx now has one less interface,
so I re-added it, with a comment.
It appeared that doxygen documentation wasn't actually build
(there is no .html in the output, and the configuraiton script
complained about some missing component), so I removed the new doxygen
(native-)input.
bash completions weren't installed in the new version even though they
were in the previous version, so I made some changes to support that.
I adjusted the substitution of libzest.so to substitute all cases,
in case somehow the first dlopen fails.
I compared the diff between old and new source code, there doesn't
appear to be anything 'suspicious' though its just a cursory look
and it would be easy to hide things:
guix shell diffoscope -- diffoscope
/gnu/store/9j09zj472211nrrs5jmyxdsq2lpfd36q-zynaddsubfx-3.0.5.tar.bz2
/gnu/store/xyjiq3nmk372ap4vq7sl7n7f9rc5xshs-zynaddsubfx-3.0.6.tar.bz2
[0001-gnu-Add-nanovg.patch (text/x-patch, attachment)]
[0002-gnu-Add-font-entypo.patch (text/x-patch, attachment)]
[0003-gnu-Add-mruby-zest.patch (text/x-patch, attachment)]
[0004-gnu-zynaddsubfx-Update-to-3.0.6.patch (text/x-patch, attachment)]
[OpenPGP_0x49E3EE22191725EE.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]
Information forwarded
to
guix-patches <at> gnu.org
:
bug#57984
; Package
guix-patches
.
(Thu, 27 Oct 2022 13:19:01 GMT)
Full text and
rfc822 format available.
Message #41 received at 57984 <at> debbugs.gnu.org (full text, mbox):
Hi Maxime,
Impressive work. Are there outstanding things worthy of being fixed in
your opinion, or do you think this version is ready to be merged and we
can iterate improvements on top in time? To my cursory look, I'd think
it looks in a good enough shape, but I thought I'd ask before merging.
--
Thanks,
Maxim
Information forwarded
to
guix-patches <at> gnu.org
:
bug#57984
; Package
guix-patches
.
(Thu, 27 Oct 2022 15:13:02 GMT)
Full text and
rfc822 format available.
Message #44 received at 57984 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On 27-10-2022 15:18, Maxim Cournoyer wrote:
> Hi Maxime,
>
> Impressive work. Are there outstanding things worthy of being fixed in
> your opinion, or do you think this version is ready to be merged and we
> can iterate improvements on top in time? To my cursory look, I'd think
> it looks in a good enough shape, but I thought I'd ask before merging.
My primary concern is that while it builds, I haven't tested whether
zynaddsubfx still works after my modifications. There are two secondary
concerns:
(*) The bundling. Both zynaddsubfx and the new mruby-zest bundle rtosc.
Having multiple versions of the same library in the same program is
known to potentially cause trouble, see e.g.
<https://issues.guix.gnu.org/47115>.
The other bundling could be considered as 'can iterate improvements on
top over time' I suppose.
(*) The fonts don't appear to be actually used (at least in the current
configuration), so as you appear to prefer no font inputs, that seems
feasible to me:
> On the fonts: I noticed that the fonts don't become part of the closure
> (with "guix gc --references"). As such, maybe the source files that
> use the fonts are actually unused. I propose to give installing the
> examples that use the fonts a try, or alternatively explicitly choose
> to not install the (font-using) examples.
(Alternatively, maybe I messed up the substitutions)
Greetings,
Maxime.
[OpenPGP_0x49E3EE22191725EE.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]
Information forwarded
to
guix-patches <at> gnu.org
:
bug#57984
; Package
guix-patches
.
(Wed, 03 May 2023 23:16:01 GMT)
Full text and
rfc822 format available.
Message #47 received at 57984 <at> debbugs.gnu.org (full text, mbox):
I opened a new issue #63254 with the new patches to add mruby-zest,
unbundle nanovg and rtosc and then patch the source files:
https://issues.guix.gnu.org/63254
Sughosha
Merged 57984 63254.
Request was from
Sughosha <sughosha <at> disroot.org>
to
control <at> debbugs.gnu.org
.
(Wed, 01 Nov 2023 07:00:01 GMT)
Full text and
rfc822 format available.
This bug report was last modified 1 year and 227 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.