Ticket #63501: multimedia;fluidsynth.org

File multimedia;fluidsynth.org, 5.2 KB (added by kakuhen, 21 months ago)

Testing builds of denemo, lmms, and gstreamer1-gst-plugins-bad with fluidsynth 2.2.8 installed.

Line 
1#+TITLE: Fluidsynth Notes
2#+AUTHOR: kakuhen
3#+LANGUAGE: en
4
5* Introduction
6This document outlines an update to fluidsynth version 2.2.8 and its effects on
7dependent ports.
8
9Version 2.2.8 compiles successfully, without pathces needed, on Mac OS X 10.15.7
10using Xcode 12.4. This release introduces breaking API and ABI changes, so we
11will test dependents on this same platform.
12
13* denemo
14
15** Compiling in source and trace mode
16On my personal machine, I have gtk3 installed with +quartz. This prevents
17=gnome-desktop= from being built. With that said, building other ports, such as
18=gspell= also needed gtk3 with the +x11 variant, so I caved in and installed
19that. ... Then I saw texlive as dependencies and decided to allow binary
20archives.
21
22** Compiling in trace mode, allowing binary archives
23Compilation of everything succeeded, many ports such as =lilypond= and
24=portmidi= had to be built from source, a good sign. Moreover, the compilation
25of =denemo= was succesful.
26
27A basic test of the binary seems to suggest it is working, albeit with some
28issues unrelated to fluidsynth. For instance, attempting to pread from
29=/proc/self/exe= is almost certainly a bug. This is likely FreeBSD code being
30shared with Darwin code; upstream should know that =/proc= does not exist on
31Darwin and it is further /optional/ on FreeBSD, so it is unsafe to assume a
32procfs is mounted in FreeBSD anyway.
33
34#+begin_example
35Denemo - MESSAGE : Audio driver is 'portaudio'
36Denemo - MESSAGE : Initializing Fluidsynth
37Denemo - MESSAGE : The default fluidsynth soundfont has been loaded
38Denemo - MESSAGE : Initializing Rubberband
39Denemo - MESSAGE : Initializing PortAudio backend
40Denemo - MESSAGE : Opening output device 'Core Audio: 外部ヘッドフォン'
41Denemo - MESSAGE : MIDI driver is 'portmidi'
42Denemo - MESSAGE : Initializing PortMidi backend
43Denemo - WARNING : No MIDI input device, and no default device
44Denemo - MESSAGE : Destroying PortMidi backend
45Denemo - WARNING : Initializing MIDI backend 'portmidi' failed, falling back to dummy
46Denemo - MESSAGE : Initializing dummy MIDI backend
47/proc/self/exe: No such file or directory
48(last message repeated 614 times)
49Denemo - MESSAGE : Denemo version 2.6.0
50Denemo - MESSAGE : Loaded keymap /opt/local/share/denemo/actions/Default.commands
51#+end_example
52
53** Conclusion
54Build succeeds and binary seemed functional when testing. The software is
55compatible with fluidsynth 2.2.8.
56
57* lmms
58
59** Compiling in source and trace mode
60Build fails due to =aqua/fltk= configuration failing. It looks like the problem
61has to do with patching a Makefile and not including autoconf as a dependency.
62#+begin_example
63--->  Fetching distfiles for fltk
64--->  fltk-1.3.8.tar.gz does not exist in /opt/local/var/macports/distfiles/fltk
65--->  Attempting to fetch fltk-1.3.8.tar.gz from https://distfiles.macports.org/fltk
66  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
67                                 Dload  Upload   Total   Spent    Left  Speed
68100 5044k  100 5044k    0     0   529k      0  0:00:09  0:00:09 --:--:--  695k
69--->  Verifying checksums for fltk
70--->  Checksumming fltk-1.3.8.tar.gz
71--->  Extracting fltk
72--->  Extracting fltk-1.3.8.tar.gz
73Executing:  cd "/opt/local/var/macports/build/_Users_kakuhen_Developer_macports-ports_aqua_fltk/fltk/work" && /usr/bin/gzip -dc '/opt/local/var/macports/distfiles/fltk/fltk-1.3.8.tar.gz' | /usr/bin/tar -xf -
74Warning: The following existing file was hidden from the build system by trace mode:
75  /private/var/select/sh
76--->  Patching Makefile: s|/Applications|/Applications/MacPorts/fltk|g
77--->  Patching Makefile: s|/Applications|/Applications/MacPorts/fltk|g
78--->  Patching makeinclude.in: /^\.SILENT:$/d
79Makefile:17: makeinclude: No such file or directory
80autoconf
81make: autoconf: No such file or directory
82make: *** [configure] Error 1
83Command failed: CC=/usr/bin/clang make config.sub
84Exit code: 2
85Warning: The following existing files were hidden from the build system by trace mode:
86  /opt/local/bin/autoconf
87  /private/var/select/sh
88The following file would have been hidden from the build system by trace mode if it existed:
89  /usr/gnu/include
90Error: Failed to patch fltk: command execution failed
91#+end_example
92
93** Compiling in trace mode, allowing binary archives
94Seems to fail at around 72% of the way compiling on my machine.
95#+begin_example
96/opt/local/var/macports/build/.../lmms/work/lmms-1.1.3/plugins/LadspaEffect/calf/src/modules_limit.cpp:543:27: error: no matching function for call to 'min'
97            buffer[pos] = std::min(*params[param_limit] / std::max(fabs(sum_left), fabs(sum_right)), 1.0);
98                          ^~~~~~~~
99#+end_example
100This is the exact same problem as reported in [[https://trac.macports.org/ticket/58009][#58009]].
101
102** Conclusion
103Build fails, but not due to fluidsynth. The software is likely compatible with
104fluidsynth 2.2.8.
105
106* gstreamer1-gst-plugins-bad
107
108** Compiling in source and trace mode
109Compilation fails due to compilation of =graphics/grapehene= configuration
110failing.
111#+begin_example
112meson.build:1:0: ERROR: Unknown options: "benchmarks"
113#+end_example
114
115** Compiling in trace mode, allowing binary archives
116=graphics/graphene= installation proceeds normally and
117=gstreamer1-gst-plugins-bad= succesfully builds.
118
119** Conclusion
120Build succeeds, the software is compatible with fluidsynth 2.2.8.