< Back to IRCAM Forum

Sdif2txt for Linux?

Hello again,

does it exist sdif2txt for Linux ?
I can find it only for Mac OSX…

Thank’s.
FV

I compiled from some source archive sdiftotext v. 3.8.6 (2004) with no error, but running sdiftotext -i file.sdif -o sdif.txt returns this error:

lt-sdiftotext: SdifFRead.c:524: SdifFReadPadding: Assertion `Padding <= _SdifStringLen' failed.
Abandon (core dumped)

The sdif was generated by last supervp (Linux: -Amask -OS1)
More recent sources available ?

thank’s.

Hi Fred,

sdif is distributed as source code, the source code compiles on macos and linux without problem.

I don’t now where you did find source code from 2004. The source code is available here

https://sourceforge.net/projects/sdif/files/

Note that the packaged files are not up to date (still last release was in 2013 not 2004).
For an up to date version you need to do checkout of the source code with a subversion client.

Best
Axel

Hi Axel,

I svn the source code and compiled from trunk/SDIF…
on my box ubuntu22.04 : Linux frog 5.15.0-54-generic #60-Ubuntu SMP Mon Nov 14 13:48:30 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

then:
./autoconf & ./configure & make & make install)

then, with the new binary which is a ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, I got :

sdiftotext -v
sdiftotext: error while loading shared libraries: libsdif-3.11.7.so: cannot open shared object file: No such file or directory

and:

file /usr/local/lib/libsdif-3.11.7.so
/usr/local/lib/libsdif-3.11.7.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked

any idea ?

Hello Fred,

in fact, we don’t use the autoconf/configure combo anymore. We do everything with cmake, and we also never compile sdif alone, we always compile EASDIF with the cmake build tools and that one compiles (and installs) the sdif libs/executables as well.

So it is difficult for me to say without further investigation what your problem might be.
But my guess would be that your system is not set up to find libraries in /usr/local/lib.
Today’s build systems mostly rely on storing the rpath in the executable. Rpath can be used to define an executable dependent library search path.

Given the automake.configure stuff has not been touched since quite a while, it might well be that there is no rpath set, in which case you need to set the search path manually via environment variables.
You can extend the default library search path by means of setting the LD_LIBRARY_PATH environment variable. So if I would be you I would try to set

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
sdiftotext -v

before running the executables. If that works you can store that into your .bashrc file (or whatever init file your default shell uses) to have this available without manual intervention.

Best
Axel

Hi Axel,
bravo, you got it ! I now remember this old trivial point :wink:
Bests
Fred