#1061644 octave-dev: The package should include an ld.so.conf fragment pointing to the shared libraries

Package:
octave-dev
Source:
octave-dev
Description:
development files for the GNU Octave language
Submitter:
Antony Donovan
Date:
2024-01-29 13:12:04 UTC
Severity:
normal
Tags:
#1061644#5
Date:
2024-01-27 20:52:04 UTC
From:
To:
Dear Maintainer,

I installed octave-dev and after building a standalone executable with
mkoctfile it failed to run.

I realized that what was needed was an ld.so.conf fragment containing
the directory where the shared libraries were located.

I created that fragment, with the contents
/usr/lib/x86_64-linux-gnu/octave/7.3.0, named it octave-dev.conf,
put that file in /etc/ld.so.conf.d, and ran ldconfig.

This fixed the issue of running the standalone octave executable.

#1061644#10
Date:
2024-01-28 21:18:59 UTC
From:
To:
* Antony Donovan <and@mit.edu> [2024-01-27 15:52]:

Thank you for your bug report.

Could you please provide us with a complete example that reproduces
the bug?

Best,

Rafael Laboissière

#1061644#19
Date:
2024-01-28 21:18:59 UTC
From:
To:
* Antony Donovan <and@mit.edu> [2024-01-27 15:52]:

Thank you for your bug report.

Could you please provide us with a complete example that reproduces
the bug?

Best,

Rafael Laboissière

#1061644#24
Date:
2024-01-28 21:32:30 UTC
From:
To:
Le dimanche 28 janvier 2024 à 22:18 +0100, Rafael Laboissière a écrit :

I suppose that the issue appears with option --link-stand-alone of
mkoctfile.

I’m not sure that modifying the dynamic linker configuration for the
whole system, as suggested by Antony, is the right thing to do,
especially for a feature that is seldom used (mkoctfile is primarily
used for building .oct and .mex files, not standalone executable).
Octave libraries are private on purpose.

Another solution is simply to set the rpath in the created ELF
executable.

I think we should ask upstream about the intended use of the --link-
stand-alone option, and about the proper way of dealing with dynamic
loading of private Octave libraries in that case.

#1061644#29
Date:
2024-01-28 21:44:18 UTC
From:
To:
Without the octave-dev.conf fragment in place, compile the attached file using

 $ ​mkoctfile --link-stand-alone embedded.cc -o embedded

when I run created executable I see

$ ./embedded
./embedded: error while loading shared libraries: liboctinterp.so.10: cannot open shared object file: No such file or directory

After putting octave-dev.conf in /etc/ld.so.conf.d and running ldconfig I see

$ ./embedded
Available Octave Graphics Toolkits:
fltk
gnuplot

Please let me know if you have any other questions or need anything else from me.

Thanks,
Antony


Thank you for your bug report.

Could you please provide us with a complete example that reproduces
the bug?

Best,

Rafael Laboissière

#1061644#34
Date:
2024-01-28 21:44:18 UTC
From:
To:
Without the octave-dev.conf fragment in place, compile the attached file using

 $ ​mkoctfile --link-stand-alone embedded.cc -o embedded

when I run created executable I see

$ ./embedded
./embedded: error while loading shared libraries: liboctinterp.so.10: cannot open shared object file: No such file or directory

After putting octave-dev.conf in /etc/ld.so.conf.d and running ldconfig I see

$ ./embedded
Available Octave Graphics Toolkits:
fltk
gnuplot

Please let me know if you have any other questions or need anything else from me.

Thanks,
Antony


Thank you for your bug report.

Could you please provide us with a complete example that reproduces
the bug?

Best,

Rafael Laboissière

#1061644#39
Date:
2024-01-29 13:09:18 UTC
From:
To:
* Antony N. Donovan <and@mit.edu> [2024-01-28 21:44]:

Thank you for the example. I can reproduce the issue and I am hereby
tagging this bug report accordingly.

Best,

Rafael