Subject: Re: icecast on NetBSD-cobalt?
To: Brian <bmcewen@comcast.net>
From: Christopher Schultz <christopher.d.schultz@comcast.net>
List: port-cobalt
Date: 01/30/2004 08:42:26
Brian,

> Ices 0.3 would be my preferred install, but it breaks at "make" with an 
> undefined reference:
> -------
> gcc -g -O2 -Wall -I/usr/pkg/include -o ices ices.o log.o setup.o 
> stream.o util.o mp3.o cue.o metadata.o id3.o signals.o ices_config.o 
> -Wl,-E -Wl,-R/usr/pkg/lib 
> -Wl,-R/usr/pkg/lib/perl5/5.6.1/mipsel-netbsd/CORE -Wl,-R/usr/pkg/lib  
> playlist/libplaylist.a -L/usr/pkg/lib /usr/pkg/lib/libshout.so -lm 
> /usr/pkg/lib/libvorbis.so -lm /usr/pkg/lib/libogg.so 
> /usr/pkg/lib/libpthread.so /usr/pkg/lib/libxml2.so -liconv -lm -lz -lm 
> /usr/pkg/lib/perl5/5.6.1/mipsel-netbsd/auto/DynaLoader/DynaLoader.a 
> -L/usr/pkg/lib/perl5/5.6.1/mipsel-netbsd/CORE -lperl -lm -lcrypt 
> -Wl,--rpath -Wl,/usr/pkg/lib -Wl,--rpath -Wl,/usr/pkg/lib
> util.o: In function `ices_util_is_regular_file':
> /tmp/download/ices-0.3/src/util.c:196: undefined reference to `S_ISLNK'
> *** Error code 1
> 
> Stop.

The reference is to S_ISLNK which looks suspiciously like a parameter 
bit to a fileio C-lib call...

$ grep -l S_ISLNK `find /usr/include -name "*.h"`
/usr/include/sys/stat.h

So, it looks like stat.h hasn't been included by that file. Of course, I 
did this search on my Linux box, so it might be somewhere else on your 
install.

Anyhow, I snooped the file and found this information, here:

#define __S_ISTYPE(mode, mask)  (((mode) & __S_IFMT) == (mask))

.
.
.

# define S_ISLNK(mode)   __S_ISTYPE((mode), __S_IFLNK)
.
.

#ifdef  __USE_BSD
# ifndef __S_IFLNK
#  define S_ISLNK(mode)  0
# endif
# ifdef __S_IFSOCK
#  define S_ISSOCK(mode) __S_ISTYPE((mode), __S_IFSOCK)
# endif
#endif

So, you might have to hack it a little bit to get it working on BSD. Did 
'configure' detect your system properly? OR do they not use configure on 
that project...

-chris


> --------
> 
> And ices2.0, no matter what I have tried to help it find the right 
> libraries, keeps telling me I don't have Ogg Vorbis 1.0 installed; even 
> though I've used pkgsrc to install libogg, libvorbis, ogg-tools, and 
> vorbis-tools, all of which are 1.1.  (1.1 should work).  Everything 
> listed as needed for ices, is compiled and present.
> 
> either
> 
> ./configure
> 
> or
> 
> ./configure --with-ogg=/usr/pkg/lib/ --with-vorbis=/usr/pkg/lib/
> --------
> checking for pkg-config... /usr/pkg/bin/pkg-config
> checking shout/shout.h usability... yes
> checking shout/shout.h presence... yes
> checking for shout/shout.h... yes
> checking for shout_new... yes
> checking for ogg_sync_init in libogg... configure: error: must have Ogg 
> Vorbis v1.0 installed!
> Qube:/tmp/download/ices-2.0-Beta4#
> --------
> 
> config.log shows
> 
> ----------
> configure:20427: checking for ogg_sync_init in libogg
> configure:20459: gcc -o conftest -g -O2 -I/usr/local/include   
> -L/usr/local/lib conftest.c  -logg >&5
> ld: cannot find -logg
> configure:20462: $? = 1
> configure: failed program was:
> | #line 20435 "configure"
> | /* confdefs.h.  */
> |
> -----------
> 
> Doing a locate for "ogg" or "vorbis" turns up many libraries in 
> /usr/pkg/lib/  but I indeed don't see a "logg" anywhere, or a place to 
> get one.
> 
> Of the two errors, I'd most like to fix the one with ices 0.3.  I really 
> don't want to use ogg format files; I've sworn never to rip into my CD 
> collection again, once was enough.
> 
> Thanks for any advice!
> 
> Brian
> 
>