I'm attempting to build minidnla-1.2.0 on Solaris 11.3 on a SunFire X4540 (amd64 architecture). I'm compiling with gcc-4.9.4. I have installed all required dependencies in both 32-bit and 64-bit versions. However, when I try to configure minidlna, either 32-bit or 64-bit, configure fails at:
checking for exif_data_new_from_file in -lexif... yes
checking for id3_file_open in -lid3tag... no
checking for id3_file_open in -lid3tag... no
configure: error: Could not find libid3tag
libexif and libid3tag are right next to each other in the same directory. I have no rational idea of why this configuration test should be failing.
Has anyone successfully built minidlna on Solaris 11.3 and have any tips for resolving this configuration failure?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Sorry for the long delay here, got busy and didn't have a chance to get back to it.
All of the above look exactly as they should. I traced the problem to this:
configure:9512: result: yes
configure:9530: checking for id3_file_open in -lid3tag
configure:9555: gcc -o conftest -march=native -mfpmath=sse -pipe -I/opt/ffmpeg/include -L/opt/ffmpeg/lib conftest.c -lid3tag >&5
Undefined first referenced
symbol in file
id3_compat_lookup /usr/lib/libid3tag.so
id3_frametype_lookup /usr/lib/libid3tag.so
id3_frametype_obsolete /usr/lib/libid3tag.so
id3_frametype_text /usr/lib/libid3tag.so
id3_frametype_url /usr/lib/libid3tag.so
id3_compat_fixup /usr/lib/libid3tag.so
id3_frametype_experimental /usr/lib/libid3tag.so
id3_frametype_unknown /usr/lib/libid3tag.so
ld: fatal: symbol referencing errors
collect2: error: ld returned 1 exit status
I suspect the root problem here is that the Solaris 11 id3lib package is built with different options than minidlna needs. The solution was to remove the id3lib package and compile libid3tag myself.
monitor.c: In function 'monitor_insert_directory':
monitor.c:536:12: error: 'struct dirent' has no member named 'd_type'
switch( e->d_type )
^
monitor.c:538:9: error: 'DT_DIR' undeclared (first use in this function)
case DT_DIR:
^
monitor.c:538:9: note: each undeclared identifier is reported only once for each function it appears in
monitor.c:539:9: error: 'DT_REG' undeclared (first use in this function)
case DT_REG:
^
monitor.c:540:9: error: 'DT_LNK' undeclared (first use in this function)
case DT_LNK:
^
monitor.c:541:9: error: 'DT_UNKNOWN' undeclared (first use in this function)
case DT_UNKNOWN:
^
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The only fields in the dirent structure that are mandated by POSIX.1 are: d_name[], of unspecified size, with at most NAME_MAX characters preceding the terminating null byte; and (as an XSI extension) d_ino. The other fields are unstandardized, and not present on all systems;
FYI, the version you are trying to build is newer than the version used (1.1.4) at sysdef.xyz. Did you follow the notes/guide on that webpage?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'm attempting to build minidnla-1.2.0 on Solaris 11.3 on a SunFire X4540 (amd64 architecture). I'm compiling with gcc-4.9.4. I have installed all required dependencies in both 32-bit and 64-bit versions. However, when I try to configure minidlna, either 32-bit or 64-bit, configure fails at:
checking for exif_data_new_from_file in -lexif... yes
checking for id3_file_open in -lid3tag... no
checking for id3_file_open in -lid3tag... no
configure: error: Could not find libid3tag
libexif and libid3tag are right next to each other in the same directory. I have no rational idea of why this configuration test should be failing.
Has anyone successfully built minidlna on Solaris 11.3 and have any tips for resolving this configuration failure?
Just some basic checks. Did it find the id3 headers? Ex:
What's in your header (Use your include path)? Ex:
How about your object file (Use your lib path)? Ex:
Sorry for the long delay here, got busy and didn't have a chance to get back to it.
All of the above look exactly as they should. I traced the problem to this:
configure:9512: result: yes
configure:9530: checking for id3_file_open in -lid3tag
configure:9555: gcc -o conftest -march=native -mfpmath=sse -pipe -I/opt/ffmpeg/include -L/opt/ffmpeg/lib conftest.c -lid3tag >&5
Undefined first referenced
symbol in file
id3_compat_lookup /usr/lib/libid3tag.so
id3_frametype_lookup /usr/lib/libid3tag.so
id3_frametype_obsolete /usr/lib/libid3tag.so
id3_frametype_text /usr/lib/libid3tag.so
id3_frametype_url /usr/lib/libid3tag.so
id3_compat_fixup /usr/lib/libid3tag.so
id3_frametype_experimental /usr/lib/libid3tag.so
id3_frametype_unknown /usr/lib/libid3tag.so
ld: fatal: symbol referencing errors
collect2: error: ld returned 1 exit status
I suspect the root problem here is that the Solaris 11 id3lib package is built with different options than minidlna needs. The solution was to remove the id3lib package and compile libid3tag myself.
This page is also helpful: http://sysdef.xyz/post/2014-10-22-solaris-upnp-linn-minidlna
However, this still only got me to this point:
Sorry, I'm not familiar with Solaris. I don't think minidlna is 100% POSIX compatible.
According to https://linux.die.net/man/3/readdir:
FYI, the version you are trying to build is newer than the version used (1.1.4) at sysdef.xyz. Did you follow the notes/guide on that webpage?