Hi, <p>Finally, I succeeded in compiling Icecast2 under OpenBSD. It neither worked for me on OBSD 3.0 nor my old 2.8, but the new 3.1 appears to come with more icecast-friendly (p)threads. OpenBSD 3.1 isn't officially released, yet, but installing a current snapshot and getting the sources via CVS (module OPENBSD_3_1_BASE, patient people also can already upgrade from scratch only with the sources) worked for me. Compiling libshout failed because src/mp3.c included <stdint.h> which appears to be missing on OBSD3.1. Using a friend's stdint.h and seeing it fail again showed that machine/types.h equals stdint.h here. `ln -s /usr/include/machine/types.h /usr/include/stdint.h` fixed that. I have no clue why stdint.h wasn't there in the first place - either this is a bug in my snapshot or it's some competing GNU vs BSD philosophies or something. The final linking of icecast2 failed with "ld: -lpthread: no match". Making it use -pthread instead fixed it. This problem could be avoided by autogen.sh/configure checking this, just like it does for the ogg/vorbis libraries. Happy Ogg streaming through OpenBSD servers! :) Some comments about ices2: It is currently impossible to compile it under *BSD, at least afaik. src/im_sun.c includes stropts.h, which doesn't come with OpenBSD. After feeding one .h file after another from a linux box, it finally wanted gnu/stubs.h. There will never be GNU stuff in *BSD, so that must be solved differently. I found that it needs it at least in line 211 while doing `ioctl(s->fd, I_FLUSH, FLUSHR);' which means that at least I_FLUSH and FLUSHR need to be defined seperately (or maybe you know what the *BSD equivalent to stropts.h is?). I didn't get any further information out of my experiments, so there might be more problems waiting. <p><p>Moritz --- >8 ---- List archives: http://www.xiph.org/archives/ icecast project homepage: http://www.icecast.org/ To unsubscribe from this list, send a message to 'icecast-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
Moritz Grimm
2004-Aug-06 14:22 UTC
[icecast] Compiling ices2 under OBSD3.1 (was: Compiling icecast2 under OpenBSD 3.1)
Michael Smith wrote:> >It is currently impossible to compile it under *BSD, at least afaik. > >src/im_sun.c includes stropts.h, which doesn't come with OpenBSD. After > >feeding one .h file after another from a linux box, it finally wanted > >gnu/stubs.h. There will never be GNU stuff in *BSD, so that must be > >solved differently. > Why on earth are you trying to compile im_sun.c on a non-solaris machine?The only reason why I was doing so is because autogen.sh/configure decided to do so. ;P I also read in im_sun.c what this file was all about and couldn't see why I need it, but apparently I always compiled it so far during my experiments under Linux, too...? It *SHOULD* compile on every GNU/Linux system, no matter whether Solaris or not. I'm still learning *BSD, so I might get a lot of stuff wrong here either. But I *do* have /dev/audio as the default throw-stuff-at-me-and-i'll-play-it-device, and it might be that OBSD uses a modified SUN driver on all platforms...? So, compiling the solaris thingie might make sense after all ...> magically screwed there? Anyway, just don't compile that file at all -What's the elegant method to do this? So far, when I poked at code that didn't work, I screwed around in the Makefiles manually until it eventually works (or doesn't). That's more like random guessing .. ;)> means solaris only). im_oss.c serves the same purpose for OSS audio, which > is probably what openbsd uses (this is needed if you want to do liveI haven't seen OSS on any OpenBSD so far, I have the choice between aRts, ESD or the Sun Audio driver. Those are for the outputs at least, I don't know about the other way, since I never tried that yet. I have no /dev/dsp, which means that there really is no OSS, I suppose. Oh ... I just noticed even more weirdnesses. I now can offer your two coredumps in ogg123. Unfortunately, I don't have the time at the moment to dig any deeper, but I will hand in anything you and others might need later, either on IRC or via mail. <p><p>Moritz --- >8 ---- List archives: http://www.xiph.org/archives/ icecast project homepage: http://www.icecast.org/ To unsubscribe from this list, send a message to 'icecast-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
> >Some comments about ices2: > >It is currently impossible to compile it under *BSD, at least afaik. >src/im_sun.c includes stropts.h, which doesn't come with OpenBSD. After >feeding one .h file after another from a linux box, it finally wanted >gnu/stubs.h. There will never be GNU stuff in *BSD, so that must be >solved differently.Why on earth are you trying to compile im_sun.c on a non-solaris machine? That file is Sun audio device support. Is the autoconf/automake magic magically screwed there? Anyway, just don't compile that file at all - it's used only on machines with sun audio devices (which as far as I know means solaris only). im_oss.c serves the same purpose for OSS audio, which is probably what openbsd uses (this is needed if you want to do live audio encoding/streaming, from line-in or something like that) Michael <p>--- >8 ---- List archives: http://www.xiph.org/archives/ icecast project homepage: http://www.icecast.org/ To unsubscribe from this list, send a message to 'icecast-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
> Finally, I succeeded in compiling Icecast2 under OpenBSD. It neither > worked for me on OBSD 3.0 nor my old 2.8, but the new 3.1 appears to > come with more icecast-friendly (p)threads.Good to know :)> Compiling libshout failed because src/mp3.c included <stdint.h> which > appears to be missing on OBSD3.1. Using a friend's stdint.h and seeing > it fail again showed that machine/types.h equals stdint.h here. `ln -s > /usr/include/machine/types.h /usr/include/stdint.h` fixed that. I have > no clue why stdint.h wasn't there in the first place - either this is a > bug in my snapshot or it's some competing GNU vs BSD philosophies or > something.tdint.h is C99. It's not a question of bsd vs. gnu.> The final linking of icecast2 failed with "ld: -lpthread: no match". > Making it use -pthread instead fixed it. This problem could be avoided > by autogen.sh/configure checking this, just like it does for the > ogg/vorbis libraries. Happy Ogg streaming through OpenBSD servers! :)This will get fixed before the first release. jack. --- >8 ---- List archives: http://www.xiph.org/archives/ icecast project homepage: http://www.icecast.org/ To unsubscribe from this list, send a message to 'icecast-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
On Thursday, April 25, 2002, at 02:48 am, Jack Moffitt wrote:>> Compiling libshout failed because src/mp3.c included <stdint.h> which >> appears to be missing on OBSD3.1. Using a friend's stdint.h and seeing >> it fail again showed that machine/types.h equals stdint.h here. `ln -s >> /usr/include/machine/types.h /usr/include/stdint.h` fixed that. I have >> no clue why stdint.h wasn't there in the first place - either this is a >> bug in my snapshot or it's some competing GNU vs BSD philosophies or >> something. > > stdint.h is C99. It's not a question of bsd vs. gnu.autoconf seems to cope wih this by the following test during ./configure : #include <sys/types.h> #ifdef HAVE_STDINT_H # include <stdint.h> #elif defined (HAVE_INTTYPES_H) # include <inttypes.h> #endif I originally thought stdint.h was a linux/gnu ism, and added it to the bug list. http://bugs.xiph.org/show_bug.cgi?id=185 Nick <p>--- >8 ---- List archives: http://www.xiph.org/archives/ icecast project homepage: http://www.icecast.org/ To unsubscribe from this list, send a message to 'icecast-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.