void-linux / void-packages

The Void source packages collection
https://voidlinux.org
Other
2.57k stars 2.14k forks source link

Could not plot with GNU/Octave on aarch64 machine #51602

Closed a44881212 closed 2 months ago

a44881212 commented 2 months ago

Is this a new report?

Yes

System Info

Void 6.6.42_1 aarch64

Package(s) Affected

octave-9.2.0_1

Does a report exist for this bug with the project's home (upstream) and/or another distro?

No response

Expected behaviour

For example, when I plot a single point by plot(0,0) in octave-cli (on raspberry pi 5), it should pop-out figure window and returns nothing.

Actual behaviour

For example, when I plot a single point by plot(0,0) in octave-cli (on raspberry pi 5), it returns

"The FLTK graphics toolkit is not actively maintained and has a number of limitations that are unlikely to be fixed. The qt toolkit is recommended instead.", "Insufficient GL support", and "error: unable to plot due to insufficient OpenGL support".

However, The plotting of octave is working correctly in raspberry pi offical OS (octave use qt toolkit). Both vedio driver are "vc4-kms-v3d", so I don't think that hardware is not support. What's wrong with that?

I also found that octave-gui could not launch, the error message is

"octave: GUI features missing or disabled in this build"

I do not know whether plotting problem is related to this (I found "qt" is not exist in octave command available_graphic_toolkits() might related to built without Qt support).

Steps to reproduce

  1. Open octave CLI 2. plot with plot(0,0)
dkwo commented 2 months ago

This may be aarch64 (or crosscompile) specific. Perhaps adding the correct packages to hostmakedepends (maybe even switch to qt6 while you're at it) could fix it. See the excerpt from crosscompile (x86_64 -> aarch64) (not present in the native build):

checking for qcollectiongenerator... no
configure: WARNING: Your installation of Qt version 5 appears incomplete or broken in some way.  Fix that or use --with-qt=VER to use another version.
configure: WARNING: one or more of the Qt utilities moc, uic, rcc, lrelease, qcollectiongenerator, and qhelpgenerator not found; disabling Qt GUI

Btw, in case you're using pure wayland, it may be worth trying turning on xwayland. Doing that, the gui works fine for me on x86_64. Without xwayland, it complains that x11 variable is not set, see https://savannah.gnu.org/bugs/?65251

cc @tornaria

tornaria commented 2 months ago

Mmmm... perhaps we need to add qt5-host-tools to hostmakedepends so the package is properly cross-compiled.

tornaria commented 2 months ago

Something like this (untested):

--- a/srcpkgs/octave/template
+++ b/srcpkgs/octave/template
@@ -88,6 +88,9 @@ if [ -n "$CROSS_BUILD" ];then
        configure_args+=" ax_blas_integer_size=4"
 fi

+hostmakedepends+="
+ $(vopt_if gui qt5-host-tools)"
+
 makedepends+="
  $(vopt_if arpack arpack-ng-devel)
  $(vopt_if audio 'libsndfile-devel portaudio-devel')
tornaria commented 2 months ago

If someone can try #51607 as in: