sonic-pi-net / sonic-pi

Code. Music. Live.
https://sonic-pi.net
Other
10.83k stars 922 forks source link

Feedback on current cmake build on Raspberry Pi4 #2222

Closed rbnpi closed 2 years ago

rbnpi commented 4 years ago

Built SP this morning at commit #b4095 on a Pi4. using new cmake scripts. Comments: osmid not included in unix_prebuild.sh although windows version does handle it, so this has to be installed manually at present. I don't think either cover building erlang beam files which again has to be done manually at present. unix scripts require link in server/native/ruby/bin. This also had to be done manually.

In order to get unix_prebuild.sh to run I had to install gem for aubio (ver 0.3.3) so that qt-doc.rb would run. Then it ran OK. unix_config.sh ran fine as did the cmake --build

Following issues remain for Raspbian build (not specific to the build process). 1 Visibility issues of file load/save dialogs when in darkmode: file names not readable.

  1. Transparency IO tab is present but doesn't do anything on Pi4. (Better to remove it?)

Also I amended the pi_server.erl file so that external OSC would work. (mod to line 69)

New build experience was very positive and streamlined.

ethancrawford commented 4 years ago

Visibility issues of file load/save dialogs when in darkmode: file names not readable.

I've not looked at https://github.com/samaaron/sonic-pi/pull/2161 any further, but hopefully there's a solution that works for the pi 🤞

cmaughan commented 4 years ago

Good to hear you got the CMake stuff running on Raspberry Pi; there was another report it works on linux, but I haven't had chance to try it myself, and I'm not a linux expert. On windows Osmid is compiled and copied into place. There's no reason this won't work for you, but it needs testing; and probably protecting from the rest of the external/cmakelists which builds aubio on windows too. In theory all of those steps could be run and aubio would build correctly as well; but it is up for debate if it is better to install those libraries. On windows at this point you can do win_prebuild/win_config, build and everything works without further steps. It would be good to get to that point elsewhere too. I just don't have time/access to linux/windows at the moment to set it up ;)

rbnpi commented 4 years ago

Good news on the problem with visibility issues of file load/save dialogs when in dark mode on Sonic Pi. The recent upgrade of Raspbian to the version released on 2020-02-05 means that the problem is cured. I've just built 3.2dev #f622e on a Pi4 and file names are now perfectly readable in dark mode.

ethancrawford commented 4 years ago

Is https://github.com/samaaron/sonic-pi/pull/2161 even needed at all then?

rbnpi commented 4 years ago

Not sure if it dealt with other things too, but current state of play is fine on RPi.

rbnpi commented 4 years ago

Oh dear. Just noticed that the RPi visibility of File Dialogs is mucked up again when in dark mode. It is OK a week ago Feb 13th at commit #91a8e9d but not now.Feb I'm on the case to track it down....

rbnpi commented 4 years ago

For the record the problem was commit #dad2f95 which removed styling for QWidget This is needed to style open/save dialogs on RPi but currently mucks up styling on Mac, so Sam wants to leave it at present. Anyone building on RPi can revert local copy.

samaaron commented 4 years ago

I don’t have a pi set up for testing so I won’t be looking for a fix for this. However I am very happy to consider patches as long as they don’t negatively affect things on macOS or windows :-)

rbnpi commented 4 years ago

@samaaron Further comment on the build system. For RPi (and I think for other unix) I have to modify the unix-prebuild.sh script. First I delete the line which removed vendor/ruby-aubio-prerelease On Pi and Ubuntu I install libaubio5 package and the ruby-aubio-prerelease is needed for processing the documentation build. If it is deleted I need to install gem aubio instead for this to work! Secondly I change;

../../server/native/ruby/bin/ruby "${SCRIPT_DIR}/../../server/ruby/bin/i18n-tool.rb" -t

and

../../server/native/ruby/bin/ruby "${SCRIPT_DIR}/../../server/ruby/bin/qt-doc.rb" -o "${SCRIPT_DIR}/utils/ruby_help.h"

by substituting ruby for ../../server/native/ruby/bin/ruby as the pi and ubuntu builds will both use deb package installed ruby and, although the link could be set up in native/ruby/bin to point to these it seems a bit round about to do so,

I use a rpi-prebuild.sh script to do the pi build which has these changes, but hopefully a more unified script can be produced eventually. Probably you don't want to do changes at this stage, but I'm not sure which distro the unix-prebuild.sh script is currently aimed at.

Finally I think that using s script to remove part of the distro like the ruby-aubio-prerelease is not very nice. Once it has gone it is fairly tedious to get it back, if the script is run in error.

cmaughan commented 4 years ago

Deleting the aubio prerelease was in the win-prebuid.bat file for windows. It sounds like it got ported to the linux scripts when it shouldn't. It is only needed on the windows system.

On Sat, Feb 22, 2020 at 9:06 AM Robin Newman notifications@github.com wrote:

@samaaron https://github.com/samaaron Further comment on the build system. For RPi (and I think for other unix) I have to modify the unix-prebuild.sh script. First I delete the line which removed vendor/ruby-aubio-prerelease On Pi and Ubuntu I install libaubio5 package and the ruby-aubio-prerelease is needed for processing the documentation build. If it is deleted I need to install gem aubio instead for this to work! Secondly I change;

../../server/native/ruby/bin/ruby "${SCRIPT_DIR}/../../server/ruby/bin/i18n-tool.rb" -t

and

../../server/native/ruby/bin/ruby "${SCRIPT_DIR}/../../server/ruby/bin/qt-doc.rb" -o "${SCRIPT_DIR}/utils/ruby_help.h"

by substituting ruby for ../../server/native/ruby/bin/ruby as the pi and ubuntu builds will both use deb package installed ruby and, although the link could be set up in native/ruby/bin to point to these it seems a bit round about to do so,

I use a rpi-prebuild.sh script to do the pi build which has these changes, but hopefully a more unified script can be produced eventually. Probably you don't want to do changes at this stage, but I'm not sure which distro the unix-prebuild.sh script is currently aimed at.

Finally I think that using s script to remove part of the distro like the ruby-aubio-prerelease is not very nice. Once it has gone it is fairly tedious to get it back, if the script is run in error.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/samaaron/sonic-pi/issues/2222?email_source=notifications&email_token=AAA5M7YIFZ4IUYHJ5S5GIEDREDTJZA5CNFSM4KPTZM7KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEMU3EZI#issuecomment-589935205, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAA5M74ACEDDSP2NA3VBZP3REDTJZANCNFSM4KPTZM7A .