* [ptxdist] [PATCH 1/5] Add the 'libshout'
2012-04-06 12:45 [ptxdist] [PATCH] Add all tools to create a internet radio station Juergen Beisert
@ 2012-04-06 12:45 ` Juergen Beisert
2012-04-06 12:45 ` [ptxdist] [PATCH 2/5] Add the 'id3lib' Juergen Beisert
` (3 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Juergen Beisert @ 2012-04-06 12:45 UTC (permalink / raw)
To: ptxdist
Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
---
patches/libshout-2.2.2/autogen.sh | 1 +
patches/libshout-2.2.2/fix_buildsystem.diff | 210 +++++++++++++++++++++++++++
patches/libshout-2.2.2/series | 1 +
rules/libshout.in | 34 +++++
rules/libshout.make | 67 +++++++++
5 files changed, 313 insertions(+)
create mode 120000 patches/libshout-2.2.2/autogen.sh
create mode 100644 patches/libshout-2.2.2/fix_buildsystem.diff
create mode 100644 patches/libshout-2.2.2/series
create mode 100644 rules/libshout.in
create mode 100644 rules/libshout.make
diff --git a/patches/libshout-2.2.2/autogen.sh b/patches/libshout-2.2.2/autogen.sh
new file mode 120000
index 0000000..9f8a4cb
--- /dev/null
+++ b/patches/libshout-2.2.2/autogen.sh
@@ -0,0 +1 @@
+../autogen.sh
\ No newline at end of file
diff --git a/patches/libshout-2.2.2/fix_buildsystem.diff b/patches/libshout-2.2.2/fix_buildsystem.diff
new file mode 100644
index 0000000..a1d0e0b
--- /dev/null
+++ b/patches/libshout-2.2.2/fix_buildsystem.diff
@@ -0,0 +1,210 @@
+From: Juergen Beisert <jbe@pengutronix.de>
+Subject: Make external components really optional
+
+Singed-off-by: Juergen Beisert <jbe@pengutronix.de>
+
+---
+ configure.ac | 85 ++++++++++++++++++++++++++++++++++----------------------
+ m4/ogg.m4 | 5 +++
+ m4/vorbis.m4 | 7 ++++
+ src/Makefile.am | 6 +++
+ src/ogg.c | 2 +
+ 5 files changed, 72 insertions(+), 33 deletions(-)
+
+Index: libshout-2.2.2/m4/ogg.m4
+===================================================================
+--- libshout-2.2.2.orig/m4/ogg.m4
++++ libshout-2.2.2/m4/ogg.m4
+@@ -15,6 +15,10 @@ AC_ARG_WITH(ogg,
+ ogg_prefix="$withval",
+ ogg_prefix="$OGG_PREFIX"
+ )
++if test "x$with_ogg" = "xno"
++then
++ AC_MSG_RESULT([OGG support disabled by request])
++else
+ if test "x$ogg_prefix" = "x" -o "x$ogg_prefix" = "xyes"; then
+ if test "x$prefix" = "xNONE"; then
+ ogg_prefix=/usr/local
+@@ -59,6 +63,7 @@ else
+ OGG_LDFLAGS=""
+ ifelse([$2],,,[$2])
+ fi
++fi
+ AC_SUBST(OGG_LIBS)
+ AC_SUBST(OGG_CFLAGS)
+ AC_SUBST(OGG_LDFLAGS)
+Index: libshout-2.2.2/m4/vorbis.m4
+===================================================================
+--- libshout-2.2.2.orig/m4/vorbis.m4
++++ libshout-2.2.2/m4/vorbis.m4
+@@ -21,6 +21,12 @@ AC_ARG_WITH(vorbis,
+ vorbis_prefix="$withval",
+ vorbis_prefix="$VORBIS_PREFIX"
+ )
++
++if test "x$vorbis_prefix" = "xno"
++then
++ AC_MSG_RESULT([Vorbis support disabled by request])
++else
++
+ if test "x$vorbis_prefix" = "x" -o "x$vorbis_prefix" = "xyes"; then
+ if test "x$prefix" = "xNONE"; then
+ vorbis_prefix="/usr/local"
+@@ -83,6 +89,7 @@ else
+ VORBISENC_LIBS=""
+ ifelse([$2], ,, [$2])
+ fi
++fi
+ AC_SUBST(VORBIS_CFLAGS)
+ AC_SUBST(VORBIS_LDFLAGS)
+ AC_SUBST(VORBIS_LIBS)
+Index: libshout-2.2.2/configure.ac
+===================================================================
+--- libshout-2.2.2.orig/configure.ac
++++ libshout-2.2.2/configure.ac
+@@ -111,45 +111,66 @@ then
+ AC_DEFINE([NO_THREAD], 1, [Define if you don't want to use the thread library])
+ fi
+
++AC_ARG_WITH([ogg], AS_HELP_STRING([--with-ogg], [Build with ogg support]))
++if test "x$with_ogg" != xno; then
++PKG_CHECK_MODULES(OGG, ogg,
++ [AC_DEFINE([HAVE_OGG], 1, [Define if you want ogg streams supported])],
++ [AC_MSG_ERROR([requisite ogg library not found])])
++AC_SUBST(OGG_LIBS)
++AC_SUBST(OGG_CFLAGS)
++AM_CONDITIONAL(HAVE_OGG, [true])
+ SHOUT_REQUIRES="ogg"
++else
++AM_CONDITIONAL(HAVE_OGG, [false])
++fi
++
++XIPH_CFLAGS="$XIPH_CFLAGS $OGG_CFLAGS"
++
++AC_ARG_WITH([vorbis], AS_HELP_STRING([--with-vorbis], [Build with vorbis support]))
++if test "x$with_vorbis" != xno; then
++PKG_CHECK_MODULES(VORBIS, vorbis,
++ [AC_DEFINE([HAVE_VORBIS], 1, [Define if you want vorbis streams supported])],
++ [AC_MSG_RESULT([vorbis not found. Disabled])])
++AC_SUBST(VORBIS_LIBS)
++AC_SUBST(VORBIS_CFLAGS)
++AM_CONDITIONAL(HAVE_VORBIS, [true])
++SHOUT_REQUIRES="${SHOUT_REQUIRES}, vorbis"
++else
++AM_CONDITIONAL(HAVE_VORBIS, [false])
++fi
+
+-PKG_CHECK_MODULES(VORBIS, vorbis, [
+- HAVE_VORBIS="yes"
+- SHOUT_REQUIRES="$SHOUT_REQUIRES, vorbis"
+- ], [
+- XIPH_PATH_VORBIS(, [AC_MSG_ERROR([requisite Ogg Vorbis library not found])])
+- ])
+-VORBIS_LIBS="$VORBIS_LDFLAGS $VORBIS_LIBS"
+ XIPH_CFLAGS="$XIPH_CFLAGS $VORBIS_CFLAGS"
+
+-PKG_CHECK_MODULES(THEORA, theora, [
+- HAVE_THEORA="yes"
+- SHOUT_REQUIRES="$SHOUT_REQUIRES, theora"
+- ], [
+- XIPH_PATH_THEORA(, [AC_MSG_WARN([Theora library not found, disabling])])
+- ])
+-XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$THEORA_CFLAGS])
+-XIPH_VAR_PREPEND([XIPH_LIBS],[$THEORA LDFLAGS $THEORA_LIBS])
+-AM_CONDITIONAL([HAVE_THEORA], [test -n "$THEORA_LIBS"])
+-if test -n "$THEORA_LIBS"
+-then
+- AC_DEFINE([HAVE_THEORA], 1, [Define if you want theora streams supported])
++AC_ARG_WITH([theora], AS_HELP_STRING([--with-theora], [Build with theora support]))
++if test "x$with_theora" != xno; then
++PKG_CHECK_MODULES(THEORA, theora,
++ [AC_DEFINE([HAVE_THEORA], 1, [Define if you want theora streams supported])],
++ [AC_MSG_RESULT([theora not found. Disabled])])
++AC_SUBST(THEORA_LIBS)
++AC_SUBST(THEORA_CFLAGS)
++AM_CONDITIONAL(HAVE_THEORA, [true])
++SHOUT_REQUIRES="${SHOUT_REQUIRES}, theora"
++else
++AM_CONDITIONAL(HAVE_THEORA, [false])
+ fi
+
+-PKG_CHECK_MODULES(SPEEX, speex, [
+- HAVE_SPEEX="yes"
+- SHOUT_REQUIRES="$SHOUT_REQUIRES, speex"
+- ], [
+- XIPH_PATH_SPEEX(, [AC_MSG_WARN([Speex library not found, disabling])])
+- ])
+-XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$SPEEX_CFLAGS])
+-XIPH_VAR_PREPEND([XIPH_LIBS],[$SPEEX LDFLAGS $SPEEX_LIBS])
+-AM_CONDITIONAL([HAVE_SPEEX], [test -n "$SPEEX_LIBS"])
+-if test -n "$SPEEX_LIBS"
+-then
+- AC_DEFINE([HAVE_SPEEX], 1, [Define if you want speex streams supported])
++XIPH_CFLAGS="$XIPH_CFLAGS $THEORA_CFLAGS"
++
++AC_ARG_WITH([speex], AS_HELP_STRING([--with-speex], [Build with speex support]))
++if test "x$with_speex" != xno; then
++PKG_CHECK_MODULES(SPEEX, speex,
++ [AC_DEFINE([HAVE_SPEEX], 1, [Define if you want speex streams supported])],
++ [AC_MSG_RESULT([speex not found. Disabled])])
++AC_SUBST(SPEEX_LIBS)
++AC_SUBST(SPEEX_CFLAGS)
++AM_CONDITIONAL(HAVE_SPEEX, [true])
++SHOUT_REQUIRES="${SHOUT_REQUIRES}, speex"
++else
++AM_CONDITIONAL(HAVE_SPEEX, [false])
+ fi
+
++XIPH_CFLAGS="$XIPH_CFLAGS $SPEEX_CFLAGS"
++
+ dnl pkgconfig/shout-config.
+ dnl If pkgconfig is found, use it and disable shout-config, otherwise do the
+ dnl opposite, unless the user overrides.
+@@ -185,7 +206,7 @@ SHOUT_LIBS="-lshout"
+
+ XIPH_CLEAN_CCFLAGS([$SHOUT_CPPFLAGS], [SHOUT_CPPFLAGS])
+ XIPH_CLEAN_CCFLAGS([$SHOUT_CFLAGS], [SHOUT_CFLAGS])
+-XIPH_CLEAN_CCFLAGS([$VORBIS_LIBS $THEORA_LIBS $SPEEX_LIBS $PTHREAD_LIBS $LIBS], [SHOUT_LIBDEPS])
++XIPH_CLEAN_CCFLAGS([$OGG_LIBS $VORBIS_LIBS $THEORA_LIBS $SPEEX_LIBS $PTHREAD_LIBS $LIBS], [SHOUT_LIBDEPS])
+ AC_SUBST(PTHREAD_CPPFLAGS)
+ AC_SUBST(SHOUT_LIBDEPS)
+ AC_SUBST(SHOUT_REQUIRES)
+Index: libshout-2.2.2/src/Makefile.am
+===================================================================
+--- libshout-2.2.2.orig/src/Makefile.am
++++ libshout-2.2.2/src/Makefile.am
+@@ -15,6 +15,10 @@ if HAVE_SPEEX
+ MAYBE_SPEEX = speex.c
+ endif
+
++if HAVE_VORBIS
++ MAYBE_VORBIS = vorbis.c
++endif
++
+ SUBDIRS = avl net timing httpp $(MAYBE_THREAD)
+
+ lib_LTLIBRARIES = libshout.la
+@@ -22,7 +26,7 @@ libshout_la_LDFLAGS = -version-info 5:0:
+
+ EXTRA_DIST = theora.c speex.c
+ noinst_HEADERS = shout_ogg.h shout_private.h util.h
+-libshout_la_SOURCES = shout.c util.c ogg.c vorbis.c mp3.c $(MAYBE_THEORA) $(MAYBE_SPEEX)
++libshout_la_SOURCES = shout.c util.c ogg.c $(MAYBE_VORBIS) mp3.c $(MAYBE_THEORA) $(MAYBE_SPEEX)
+ AM_CFLAGS = @XIPH_CFLAGS@
+
+ libshout_la_LIBADD = net/libicenet.la timing/libicetiming.la avl/libiceavl.la\
+Index: libshout-2.2.2/src/ogg.c
+===================================================================
+--- libshout-2.2.2.orig/src/ogg.c
++++ libshout-2.2.2/src/ogg.c
+@@ -53,7 +53,9 @@ static int send_page(shout_t *self, ogg_
+
+ typedef int (*codec_open_t)(ogg_codec_t *codec, ogg_page *page);
+ static codec_open_t codecs[] = {
++#ifdef HAVE_VORBIS
+ _shout_open_vorbis,
++#endif
+ #ifdef HAVE_THEORA
+ _shout_open_theora,
+ #endif
diff --git a/patches/libshout-2.2.2/series b/patches/libshout-2.2.2/series
new file mode 100644
index 0000000..aaa56f7
--- /dev/null
+++ b/patches/libshout-2.2.2/series
@@ -0,0 +1 @@
+fix_buildsystem.diff
diff --git a/rules/libshout.in b/rules/libshout.in
new file mode 100644
index 0000000..b1dcc54
--- /dev/null
+++ b/rules/libshout.in
@@ -0,0 +1,34 @@
+## SECTION=multimedia_sound
+
+menuconfig LIBSHOUT
+ tristate
+ prompt "libshout "
+ select LIBOGG if ICEGENERATOR_VORBIS
+ select LIBVORBIS if ICEGENERATOR_VORBIS
+ select LIBTHEORA if ICEGENERATOR_THEORA
+ select SPEEX if ICEGENERATOR_SPEEX
+ help
+ Library which can be used to write a source client like 'ices' for
+ the 'icecast' streaming server
+
+if LIBSHOUT
+
+config ICEGENERATOR_VORBIS
+ bool
+ prompt "use VORBIS"
+ help
+ Enable support for VORBIS data format
+
+config ICEGENERATOR_THEORA
+ bool
+ prompt "use THEORA"
+ help
+ Enable support for THEORA data format
+
+config ICEGENERATOR_SPEEX
+ bool
+ prompt "use SPEEX"
+ help
+ Enable support for SPEEX data format
+
+endif
diff --git a/rules/libshout.make b/rules/libshout.make
new file mode 100644
index 0000000..f3d5e7e
--- /dev/null
+++ b/rules/libshout.make
@@ -0,0 +1,67 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2012 by Juergen Beisert <jbe@pengutronix.de>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBSHOUT) += libshout
+
+#
+# Paths and names
+#
+LIBSHOUT_VERSION := 2.2.2
+LIBSHOUT_MD5 := 4f75fc9901c724b712c371c9a1e782d3
+LIBSHOUT := libshout-$(LIBSHOUT_VERSION)
+LIBSHOUT_SUFFIX := tar.gz
+LIBSHOUT_URL := http://downloads.us.xiph.org/releases/libshout/$(LIBSHOUT).$(LIBSHOUT_SUFFIX)
+LIBSHOUT_SOURCE := $(SRCDIR)/$(LIBSHOUT).$(LIBSHOUT_SUFFIX)
+LIBSHOUT_DIR := $(BUILDDIR)/$(LIBSHOUT)
+LIBSHOUT_LICENSE := LGPLv2
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#LIBSHOUT_CONF_ENV := $(CROSS_ENV)
+
+#
+# autoconf
+#
+LIBSHOUT_CONF_TOOL := autoconf
+LIBSHOUT_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --enable-shared \
+ --disable-static \
+ --enable-pkgconfig \
+ --with-ogg \
+ --$(call ptx/wwo, PTXCONF_ICEGENERATOR_VORBIS)-vorbis \
+ --$(call ptx/wwo, PTXCONF_ICEGENERATOR_THEORA)-theora \
+ --$(call ptx/wwo, PTXCONF_ICEGENERATOR_SPEEX)-speex
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libshout.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libshout)
+ @$(call install_fixup, libshout,PRIORITY,optional)
+ @$(call install_fixup, libshout,SECTION,base)
+ @$(call install_fixup, libshout,AUTHOR,"Juergen Beisert <jbe@pengutronix.de>")
+ @$(call install_fixup, libshout,DESCRIPTION,missing)
+
+ @$(call install_lib, libshout, 0, 0, 0644, libshout)
+
+ @$(call install_finish, libshout)
+
+ @$(call touch)
+
+# vim: syntax=make
--
1.7.9.5
--
ptxdist mailing list
ptxdist@pengutronix.de
^ permalink raw reply [flat|nested] 9+ messages in thread
* [ptxdist] [PATCH 2/5] Add the 'id3lib'
2012-04-06 12:45 [ptxdist] [PATCH] Add all tools to create a internet radio station Juergen Beisert
2012-04-06 12:45 ` [ptxdist] [PATCH 1/5] Add the 'libshout' Juergen Beisert
@ 2012-04-06 12:45 ` Juergen Beisert
2012-04-06 12:45 ` [ptxdist] [PATCH 3/5] ICECAST: add an audio streaming server Juergen Beisert
` (2 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Juergen Beisert @ 2012-04-06 12:45 UTC (permalink / raw)
To: ptxdist
Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
---
patches/id3lib-3.8.3/autogen.sh | 1 +
patches/id3lib-3.8.3/fix_configure_for_gcc4.diff | 314 ++++++++++++++++++++++
patches/id3lib-3.8.3/series | 1 +
rules/libid3lib.in | 8 +
rules/libid3lib.make | 63 +++++
5 files changed, 387 insertions(+)
create mode 120000 patches/id3lib-3.8.3/autogen.sh
create mode 100644 patches/id3lib-3.8.3/fix_configure_for_gcc4.diff
create mode 100644 patches/id3lib-3.8.3/series
create mode 100644 rules/libid3lib.in
create mode 100644 rules/libid3lib.make
diff --git a/patches/id3lib-3.8.3/autogen.sh b/patches/id3lib-3.8.3/autogen.sh
new file mode 120000
index 0000000..9f8a4cb
--- /dev/null
+++ b/patches/id3lib-3.8.3/autogen.sh
@@ -0,0 +1 @@
+../autogen.sh
\ No newline at end of file
diff --git a/patches/id3lib-3.8.3/fix_configure_for_gcc4.diff b/patches/id3lib-3.8.3/fix_configure_for_gcc4.diff
new file mode 100644
index 0000000..a911496
--- /dev/null
+++ b/patches/id3lib-3.8.3/fix_configure_for_gcc4.diff
@@ -0,0 +1,314 @@
+Submitted By: Ken Moffat <ken at linuxfromscratch dot org>
+Date: 2008-11-21
+Initial Package Version: 3.8.3
+Upstream Status: unknown
+Origin: fedora
+Description: Allows it to compile with gcc-4.3.
+
+---
+ Makefile.am | 2 +
+ configure.in | 72 +++++++++++++++++++++++--------------------
+ examples/demo_convert.cpp | 2 -
+ examples/demo_copy.cpp | 2 -
+ examples/demo_info.cpp | 2 -
+ examples/demo_tag.cpp | 2 -
+ include/id3/id3lib_strings.h | 1
+ include/id3/writers.h | 2 -
+ src/Makefile.am | 2 +
+ 9 files changed, 50 insertions(+), 37 deletions(-)
+
+Index: id3lib-3.8.3/include/id3/id3lib_strings.h
+===================================================================
+--- id3lib-3.8.3.orig/include/id3/id3lib_strings.h
++++ id3lib-3.8.3/include/id3/id3lib_strings.h
+@@ -29,6 +29,7 @@
+ #ifndef _ID3LIB_STRINGS_H_
+ #define _ID3LIB_STRINGS_H_
+
++#include <cstring>
+ #include <string>
+
+ #if (defined(__GNUC__) && (__GNUC__ >= 3) || (defined(_MSC_VER) && _MSC_VER > 1000))
+Index: id3lib-3.8.3/configure.in
+===================================================================
+--- id3lib-3.8.3.orig/configure.in
++++ id3lib-3.8.3/configure.in
+@@ -12,17 +12,21 @@
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ # require autoconf 2.13
+-AC_PREREQ(2.13)
++AC_PREREQ([2.68])
+
+ # init autoconf (and check for presence fo reconf)
+-AC_INIT(reconf)
++AC_INIT([id3lib], [3.8.3], [])
++AC_CONFIG_SRCDIR([config.h.in])
++AC_CONFIG_HEADERS([config.h])
++AC_CONFIG_SRCDIR([reconf])
++AC_CONFIG_MACRO_DIR([m4])
+
+ ID3LIB_NAME=id3lib
+
+ dnl The following has been adapted from glib (http://www.gtk.org)
+ dnl
+ dnl we need to AC_DIVERT_PUSH/AC_DIVERT_POP these variable definitions so they
+-dnl are available for $ac_help expansion (don't we all *love* autoconf?)
++dnl are available for $ac_help expansion (dont we all *love* autoconf?)
+ #AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
+ ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
+ [AC_DIVERT_PUSH(NOTICE)])
+@@ -83,14 +87,12 @@ ID3LIB_FULLNAME=$ID3LIB_NAME-$ID3LIB_VER
+
+ AC_SUBST(ID3LIB_FULLNAME)
+
+-AM_CONFIG_HEADER(config.h)
+-
+ AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
+
+-AC_ISC_POSIX
++AC_SEARCH_LIBS([strerror],[cposix])
+
+ dnl Initialize libtool
+-AM_PROG_LIBTOOL
++LT_INIT
+
+ dnl Initialize maintainer mode
+ AM_MAINTAINER_MODE
+@@ -123,15 +125,22 @@ dnl for executable extensions
+ AC_EXEEXT
+
+ dnl Checks for libraries.
+-AC_CHECK_LIB(z,uncompress,AC_DEFINE_UNQUOTED(HAVE_ZLIB))#,,
+-# AC_MSG_ERROR([id3lib requires zlib to process compressed frames]))
+
+-AM_CONDITIONAL(ID3_NEEDZLIB, test x$ac_cv_lib_z_uncompress = xno)
++PKG_CHECK_MODULES([ZLIB], [zlib >= 1.2],
++ [
++ AC_DEFINE(HAVE_ZLIB)
++ AM_CONDITIONAL(ID3_NEEDZLIB, false)
++ ],
++ [
++ AM_CONDITIONAL(ID3_NEEDZLIB, true)
++ CONDITIONAL_SUBDIRS="$CONDITIONAL_SUBDIRS zlib"
++ ])
++
+ AM_CONDITIONAL(ID3_NEEDDEBUG, test x$enable_debug = xyes)
+
+ dnl Checks for header files.
+ AC_HEADER_STDC
+-AC_CHECK_HEADERS(zlib.h wchar.h sys/param.h unistd.h )
++AC_CHECK_HEADERS(wchar.h sys/param.h unistd.h )
+
+ dnl check wheter iconv is the part of libc.
+ AC_CHECK_HEADERS( iconv.h, has_iconv=1, has_iconv=0)
+@@ -161,18 +170,17 @@ if test $has_iconv = 1; then
+ fi
+ #we have iconv at this moment, better check which call to use
+ AC_MSG_CHECKING(whether iconv takes const char ** or char **)
+- AC_TRY_COMPILE([#include <iconv.h>],[
++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <iconv.h>]], [[
+ {
+ size_t iconv (iconv_t a, const char ** b, size_t *c, char **d, size_t *e);
+- }],
+- iconv_oldstyle=1, iconv_oldstyle=0)
++ }]])],[iconv_oldstyle=1],[iconv_oldstyle=0])
+ if test $iconv_oldstyle = 1; then
+ AC_MSG_RESULT(const char **)
+- AC_DEFINE(ID3LIB_ICONV_OLDSTYLE)
++ AC_DEFINE([ID3LIB_ICONV_OLDSTYLE], [], [old style])
+ #we'll check out the need of
+ #typecast in the call of iconv_open
+ AC_MSG_CHECKING(whether to typecast in iconv)
+- AC_TRY_COMPILE([#include <iconv.h>],[
++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <iconv.h>]], [[
+ {
+ const char *src = "nothing";
+ char *outbuf;
+@@ -180,11 +188,10 @@ if test $has_iconv = 1; then
+ size_t outsize = 0;
+ iconv_t cd;
+ iconv(cd, &src, &insize, &outbuf, &outsize);
+- }],
+- iconv_cast=0, iconv_cast=1)
++ }]])],[iconv_cast=0],[iconv_cast=1])
+ if test $iconv_cast = 1; then
+ AC_MSG_RESULT(yes)
+- AC_DEFINE(ID3LIB_ICONV_CAST_OK)
++ AC_DEFINE(ID3LIB_ICONV_CAST_OK, [], [cast okay])
+ else
+ AC_MSG_RESULT(no)
+ fi
+@@ -194,7 +201,7 @@ if test $has_iconv = 1; then
+ #we'll check out the need of
+ #typecast in the call of iconv_open
+ AC_MSG_CHECKING(whether to typecast in iconv)
+- AC_TRY_COMPILE([#include <iconv.h>],[
++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <iconv.h>]], [[
+ {
+ char *src = "nothing";
+ char *outbuf;
+@@ -202,11 +209,10 @@ if test $has_iconv = 1; then
+ size_t outsize = 0;
+ iconv_t cd;
+ iconv(cd, &src, &insize, &outbuf, &outsize);
+- }],
+- iconv_cast=0, iconv_cast=1)
++ }]])],[iconv_cast=0],[iconv_cast=1])
+ if test $iconv_cast = 1; then
+ AC_MSG_RESULT(yes)
+- AC_DEFINE(ID3LIB_ICONV_CAST_OK)
++ AC_DEFINE(ID3LIB_ICONV_CAST_OK, [], [cast okay])
+ else
+ AC_MSG_RESULT(no)
+ fi
+@@ -218,8 +224,14 @@ if test "x$ICONV_LIB" != "x"; then
+ fi
+
+ dnl Check for c++ features
++AC_DIAGNOSE([obsolete],[Instead of using `AC_LANG', `AC_DIAGNOSE([obsolete],[Instead of using `AC_LANG', `AC_LANG_SAVE', and `AC_LANG_RESTORE',
++you should use `AC_LANG_PUSH' and `AC_LANG_POP'.])dnl
++AC_LANG_SAVE', and `AC_LANG_POP([])',
++you should use `AC_LANG_PUSH' and `AC_LANG_POP'.])dnl
++AC_DIAGNOSE([obsolete],[Instead of using `AC_LANG', `AC_LANG_SAVE', and `AC_LANG_RESTORE',
++you should use `AC_LANG_PUSH' and `AC_LANG_POP'.])dnl
+ AC_LANG_SAVE
+-AC_LANG_CPLUSPLUS
++AC_LANG([C++])
+ AC_CHECK_HEADERS(libcw/sys.h)
+ AC_CHECK_HEADERS(cctype climits cstdio cstdlib bitset cstring)
+ AC_CHECK_HEADERS(fstream iostream iomanip vector \
+@@ -227,7 +239,6 @@ AC_CHECK_HEADERS(fstream iostream iomani
+ )
+ AC_CHECK_HEADERS( \
+ string \
+- iomanip.h \
+ ,,AC_MSG_ERROR([Missing a vital header file for id3lib])
+ )
+
+@@ -237,7 +248,7 @@ ID3_CXX_PORTABILITY
+
+ ID3_CXX_WARNINGS
+
+-AC_LANG_RESTORE
++AC_LANG_POP([])
+
+ ID3_DEBUG
+ ID3_UNICODE
+@@ -296,15 +307,11 @@ AC_DEFINE_UNQUOTED(_ID3LIB_INTERFACE_AGE
+ AC_DEFINE_UNQUOTED(_ID3LIB_BINARY_AGE, $ID3LIB_BINARY_AGE)
+ AC_DEFINE_UNQUOTED(_ID3_COMPILED_WITH_DEBUGGING, "${enable_debug}")
+
+-CONDITIONAL_SUBDIRS=
+-if test "x$ac_cv_lib_z_uncompress" = "xno"; then
+- CONDITIONAL_SUBDIRS="$CONDITIONAL_SUBDIRS zlib"
+-fi
+ AC_CONFIG_SUBDIRS(zlib)
+
+ CFLAGS="$CFLAGS -Wall"
+
+-AC_OUTPUT( \
++AC_CONFIG_FILES([\
+ Makefile \
+ doc/Makefile \
+ m4/Makefile \
+@@ -316,4 +323,5 @@ AC_OUTPUT( \
+ examples/Makefile \
+ prj/Makefile \
+ libprj/Makefile
+-)
++])
++AC_OUTPUT
+Index: id3lib-3.8.3/include/id3/writers.h
+===================================================================
+--- id3lib-3.8.3.orig/include/id3/writers.h
++++ id3lib-3.8.3/include/id3/writers.h
+@@ -28,9 +28,9 @@
+ #ifndef _ID3LIB_WRITERS_H_
+ #define _ID3LIB_WRITERS_H_
+
++#include <cstring>
+ #include "id3/writer.h"
+ #include "id3/id3lib_streams.h"
+-//#include <string.h>
+
+ class ID3_CPP_EXPORT ID3_OStreamWriter : public ID3_Writer
+ {
+Index: id3lib-3.8.3/examples/demo_info.cpp
+===================================================================
+--- id3lib-3.8.3.orig/examples/demo_info.cpp
++++ id3lib-3.8.3/examples/demo_info.cpp
+@@ -309,7 +309,7 @@ void PrintInformation(const ID3_Tag &myT
+
+ #define DEBUG
+
+-int main( unsigned int argc, char * const argv[])
++int main(int argc, char * const argv[])
+ {
+ ID3D_INIT_DOUT();
+
+Index: id3lib-3.8.3/examples/demo_copy.cpp
+===================================================================
+--- id3lib-3.8.3.orig/examples/demo_copy.cpp
++++ id3lib-3.8.3/examples/demo_copy.cpp
+@@ -81,7 +81,7 @@ void DisplayTags(ostream &os, luint nTag
+ }
+ }
+
+-int main( unsigned int argc, char * const argv[])
++int main(int argc, char * const argv[])
+ {
+ int ulFlag = ID3TT_ID3;
+ ID3D_INIT_DOUT();
+Index: id3lib-3.8.3/examples/demo_convert.cpp
+===================================================================
+--- id3lib-3.8.3.orig/examples/demo_convert.cpp
++++ id3lib-3.8.3/examples/demo_convert.cpp
+@@ -84,7 +84,7 @@ void DisplayTags(ostream &os, luint nTag
+ }
+ }
+
+-int main( unsigned int argc, char * const argv[])
++int main(int argc, char * const argv[])
+ {
+ flags_t ulFlag = ID3TT_ALL;
+ gengetopt_args_info args;
+Index: id3lib-3.8.3/examples/demo_tag.cpp
+===================================================================
+--- id3lib-3.8.3.orig/examples/demo_tag.cpp
++++ id3lib-3.8.3/examples/demo_tag.cpp
+@@ -46,7 +46,7 @@ void DisplayTags(ostream &os, luint nTag
+ os << "v2";
+ }
+
+-int main( unsigned int argc, char * const argv[])
++int main(int argc, char * const argv[])
+ {
+ int ulFlag = ID3TT_ID3;
+ ID3D_INIT_DOUT();
+Index: id3lib-3.8.3/Makefile.am
+===================================================================
+--- id3lib-3.8.3.orig/Makefile.am
++++ id3lib-3.8.3/Makefile.am
+@@ -9,6 +9,8 @@
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
++ACLOCAL_AMFLAGS = -I m4
++
+ # require automake 1.5
+ AUTOMAKE_OPTIONS = 1.5
+
+Index: id3lib-3.8.3/src/Makefile.am
+===================================================================
+--- id3lib-3.8.3.orig/src/Makefile.am
++++ id3lib-3.8.3/src/Makefile.am
+@@ -74,6 +74,8 @@ libid3_la_SOURCES = $(id3lib_sources)
+
+ if ID3_NEEDZLIB
+ LDADD = $(top_builddir)/zlib/src/libz.la
++else
++LDADD = @ZLIB_LIBS@
+ endif
+
+ libid3_la_LDFLAGS = \
diff --git a/patches/id3lib-3.8.3/series b/patches/id3lib-3.8.3/series
new file mode 100644
index 0000000..2c71a8b
--- /dev/null
+++ b/patches/id3lib-3.8.3/series
@@ -0,0 +1 @@
+fix_configure_for_gcc4.diff
diff --git a/rules/libid3lib.in b/rules/libid3lib.in
new file mode 100644
index 0000000..3b7aa4b
--- /dev/null
+++ b/rules/libid3lib.in
@@ -0,0 +1,8 @@
+## SECTION=multimedia_sound
+
+config LIBID3LIB
+ tristate
+ prompt "libid3lib"
+ select ZLIB
+ help
+ ID3 tag reading library
diff --git a/rules/libid3lib.make b/rules/libid3lib.make
new file mode 100644
index 0000000..73d0ca2
--- /dev/null
+++ b/rules/libid3lib.make
@@ -0,0 +1,63 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2012 by Juergen Beisert <jbe@pengutronix.de>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBID3LIB) += libid3lib
+
+#
+# Paths and names
+#
+LIBID3LIB_VERSION := 3.8.3
+LIBID3LIB_MD5 := 19f27ddd2dda4b2d26a559a4f0f402a7
+LIBID3LIB := id3lib-$(LIBID3LIB_VERSION)
+LIBID3LIB_SUFFIX := tar.gz
+LIBID3LIB_URL := $(call ptx/mirror, SF, id3lib/$(LIBID3LIB_VERSION)/$(LIBID3LIB).$(LIBID3LIB_SUFFIX))
+LIBID3LIB_SOURCE := $(SRCDIR)/$(LIBID3LIB).$(LIBID3LIB_SUFFIX)
+LIBID3LIB_DIR := $(BUILDDIR)/$(LIBID3LIB)
+LIBID3LIB_LICENSE := LGPLv2
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+LIBID3LIB_CONF_TOOL := autoconf
+LIBID3LIB_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --enable-shared \
+ --disable-static \
+ --disable-ansi \
+ --enable-cxx-warnings=yes \
+ --enable-debug=no
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libid3lib.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libid3lib)
+ @$(call install_fixup, libid3lib,PRIORITY,optional)
+ @$(call install_fixup, libid3lib,SECTION,base)
+ @$(call install_fixup, libid3lib,AUTHOR,"Juergen Beisert <jbe@pengutronix.de>")
+ @$(call install_fixup, libid3lib,DESCRIPTION,missing)
+
+ @$(call install_lib, libid3lib, 0, 0, 0644, libid3-3.8)
+
+ @$(call install_finish, libid3lib)
+
+ @$(call touch)
+
+# vim: syntax=make
--
1.7.9.5
--
ptxdist mailing list
ptxdist@pengutronix.de
^ permalink raw reply [flat|nested] 9+ messages in thread
* [ptxdist] [PATCH 3/5] ICECAST: add an audio streaming server
2012-04-06 12:45 [ptxdist] [PATCH] Add all tools to create a internet radio station Juergen Beisert
2012-04-06 12:45 ` [ptxdist] [PATCH 1/5] Add the 'libshout' Juergen Beisert
2012-04-06 12:45 ` [ptxdist] [PATCH 2/5] Add the 'id3lib' Juergen Beisert
@ 2012-04-06 12:45 ` Juergen Beisert
2012-04-06 12:45 ` [ptxdist] [PATCH 4/5] Add the 'icegenerator' Juergen Beisert
2012-04-06 12:45 ` [ptxdist] [PATCH 5/5] Add ices Juergen Beisert
4 siblings, 0 replies; 9+ messages in thread
From: Juergen Beisert @ 2012-04-06 12:45 UTC (permalink / raw)
To: ptxdist
Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
---
generic/etc/icecast.xml | 180 ++++++++++++++++++++
generic/etc/init.d/icecast | 41 +++++
patches/icecast-2.3.2/autogen.sh | 1 +
patches/icecast-2.3.2/enabled_silen_rules.diff | 24 +++
patches/icecast-2.3.2/fix_curl_detection.diff | 179 ++++++++++++++++++++
patches/icecast-2.3.2/fix_ogg_detection.diff | 115 +++++++++++++
patches/icecast-2.3.2/fix_openssl_detection.diff | 116 +++++++++++++
patches/icecast-2.3.2/fix_speex_detection.diff | 171 +++++++++++++++++++
patches/icecast-2.3.2/fix_theora_detection.diff | 160 ++++++++++++++++++
patches/icecast-2.3.2/fix_vorbis_detection.diff | 191 ++++++++++++++++++++++
patches/icecast-2.3.2/fix_xml_detection.diff | 102 ++++++++++++
patches/icecast-2.3.2/fix_yp_handling.diff | 60 +++++++
patches/icecast-2.3.2/series | 10 ++
patches/icecast-2.3.2/use_pkg_config.diff | 19 +++
rules/icecast.in | 50 ++++++
rules/icecast.make | 71 ++++++++
16 files changed, 1490 insertions(+)
create mode 100644 generic/etc/icecast.xml
create mode 100644 generic/etc/init.d/icecast
create mode 120000 patches/icecast-2.3.2/autogen.sh
create mode 100644 patches/icecast-2.3.2/enabled_silen_rules.diff
create mode 100644 patches/icecast-2.3.2/fix_curl_detection.diff
create mode 100644 patches/icecast-2.3.2/fix_ogg_detection.diff
create mode 100644 patches/icecast-2.3.2/fix_openssl_detection.diff
create mode 100644 patches/icecast-2.3.2/fix_speex_detection.diff
create mode 100644 patches/icecast-2.3.2/fix_theora_detection.diff
create mode 100644 patches/icecast-2.3.2/fix_vorbis_detection.diff
create mode 100644 patches/icecast-2.3.2/fix_xml_detection.diff
create mode 100644 patches/icecast-2.3.2/fix_yp_handling.diff
create mode 100644 patches/icecast-2.3.2/series
create mode 100644 patches/icecast-2.3.2/use_pkg_config.diff
create mode 100644 rules/icecast.in
create mode 100644 rules/icecast.make
diff --git a/generic/etc/icecast.xml b/generic/etc/icecast.xml
new file mode 100644
index 0000000..3f7f349
--- /dev/null
+++ b/generic/etc/icecast.xml
@@ -0,0 +1,180 @@
+<icecast>
+ <limits>
+ <clients>100</clients>
+ <sources>2</sources>
+ <threadpool>5</threadpool>
+ <queue-size>524288</queue-size>
+ <client-timeout>30</client-timeout>
+ <header-timeout>15</header-timeout>
+ <source-timeout>10</source-timeout>
+ <!-- If enabled, this will provide a burst of data when a client
+ first connects, thereby significantly reducing the startup
+ time for listeners that do substantial buffering. However,
+ it also significantly increases latency between the source
+ client and listening client. For low-latency setups, you
+ might want to disable this. -->
+ <burst-on-connect>1</burst-on-connect>
+ <!-- same as burst-on-connect, but this allows for being more
+ specific on how much to burst. Most people won't need to
+ change from the default 64k. Applies to all mountpoints -->
+ <burst-size>65535</burst-size>
+ </limits>
+
+ <authentication>
+ <!-- Sources log in with username 'source' -->
+ <source-password>hackme</source-password>
+ <!-- Relays log in username 'relay' -->
+ <relay-password>hackme</relay-password>
+
+ <!-- Admin logs in with the username given below -->
+ <admin-user>admin</admin-user>
+ <admin-password>hackme</admin-password>
+ </authentication>
+
+ <!-- set the mountpoint for a shoutcast source to use, the default if not
+ specified is /stream but you can change it here if an alternative is
+ wanted or an extension is required
+ <shoutcast-mount>/live.nsv</shoutcast-mount>
+ -->
+
+ <!-- Uncomment this if you want directory listings -->
+ <!--
+ <directory>
+ <yp-url-timeout>15</yp-url-timeout>
+ <yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
+ </directory>
+ -->
+
+ <!-- This is the hostname other people will use to connect to your server.
+ It affects mainly the urls generated by Icecast for playlists and yp
+ listings. -->
+ <hostname>Aura</hostname>
+
+ <!-- You may have multiple <listener> elements -->
+ <listen-socket>
+ <port>8000</port>
+ <!-- <bind-address>127.0.0.1</bind-address> -->
+<!-- <shoutcast-mount>/jbestream</shoutcast-mount> -->
+ </listen-socket>
+ <!--
+ <listen-socket>
+ <port>8001</port>
+ </listen-socket>
+ -->
+
+ <!--<master-server>127.0.0.1</master-server>-->
+ <!--<master-server-port>8001</master-server-port>-->
+ <!--<master-update-interval>120</master-update-interval>-->
+ <!--<master-password>hackme</master-password>-->
+
+ <!-- setting this makes all relays on-demand unless overridden, this is
+ useful for master relays which do not have <relay> definitions here.
+ The default is 0 -->
+ <!--<relays-on-demand>1</relays-on-demand>-->
+
+ <!--
+ <relay>
+ <server>127.0.0.1</server>
+ <port>8001</port>
+ <mount>/example.ogg</mount>
+ <local-mount>/different.ogg</local-mount>
+ <on-demand>0</on-demand>
+
+ <relay-shoutcast-metadata>0</relay-shoutcast-metadata>
+ </relay>
+ -->
+
+ <!--
+ <mount>
+ <mount-name>/jbe</mount-name>
+ <username>generator</username>
+ <password>hackmemore</password>
+ </mount>
+ -->
+
+ <!-- Only define a <mount> section if you want to use advanced options,
+ like alternative usernames or passwords
+ <mount>
+ <mount-name>/example-complex.ogg</mount-name>
+
+ <username>othersource</username>
+ <password>hackmemore</password>
+
+ <max-listeners>1</max-listeners>
+ <dump-file>/tmp/dump-example1.ogg</dump-file>
+ <burst-size>65536</burst-size>
+ <fallback-mount>/example2.ogg</fallback-mount>
+ <fallback-override>1</fallback-override>
+ <fallback-when-full>1</fallback-when-full>
+ <intro>/example_intro.ogg</intro>
+ <hidden>1</hidden>
+ <no-yp>1</no-yp>
+ <authentication type="htpasswd">
+ <option name="filename" value="myauth"/>
+ <option name="allow_duplicate_users" value="0"/>
+ </authentication>
+ <on-connect>/home/icecast/bin/stream-start</on-connect>
+ <on-disconnect>/home/icecast/bin/stream-stop</on-disconnect>
+ </mount>
+
+ <mount>
+ <mount-name>/auth_example.ogg</mount-name>
+ <authentication type="url">
+ <option name="mount_add" value="http://myauthserver.net/notify_mount.php"/>
+ <option name="mount_remove" value="http://myauthserver.net/notify_mount.php"/>
+ <option name="listener_add" value="http://myauthserver.net/notify_listener.php"/>
+ <option name="listener_remove" value="http://myauthserver.net/notify_listener.php"/>
+ </authentication>
+ </mount>
+
+ -->
+
+ <fileserve>1</fileserve>
+
+ <paths>
+ <!-- basedir is only used if chroot is enabled -->
+ <basedir>/usr/share/icecast</basedir>
+
+ <!-- Note that if <chroot> is turned on below, these paths must both
+ be relative to the new root, not the original root -->
+ <logdir>/var/log/icecast</logdir>
+ <webroot>/usr/share/icecast/web</webroot>
+ <adminroot>/usr/share/icecast/admin</adminroot>
+ <pidfile>/var/run/icecast.pid</pidfile>
+
+ <!-- Aliases: treat requests for 'source' path as being for 'dest' path
+ May be made specific to a port or bound address using the "port"
+ and "bind-address" attributes.
+ -->
+ <!--
+ <alias source="/foo" dest="/bar"/>
+ -->
+ <!-- Aliases: can also be used for simple redirections as well,
+ this example will redirect all requests for http://server:port/ to
+ the status page
+ -->
+ <alias source="/" dest="/status.xsl"/>
+ </paths>
+
+ <logging>
+ <accesslog>access.log</accesslog>
+ <errorlog>error.log</errorlog>
+ <!-- <playlistlog>playlist.log</playlistlog> -->
+ <loglevel>4</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
+ <logsize>10000</logsize> <!-- Max size of a logfile -->
+ <!-- If logarchive is enabled (1), then when logsize is reached
+ the logfile will be moved to [error|access|playlist].log.DATESTAMP,
+ otherwise it will be moved to [error|access|playlist].log.old.
+ Default is non-archive mode (i.e. overwrite)
+ -->
+ <!-- <logarchive>1</logarchive> -->
+ </logging>
+
+ <security>
+ <chroot>0</chroot>
+ <changeowner>
+ <user>nobody</user>
+ <group>nogroup</group>
+ </changeowner>
+ </security>
+</icecast>
diff --git a/generic/etc/init.d/icecast b/generic/etc/init.d/icecast
new file mode 100644
index 0000000..8d3e40f
--- /dev/null
+++ b/generic/etc/init.d/icecast
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+ICECAST_PID=/var/run/icecast.pid
+ICECAST_CONF=/etc/icecast.xml
+ICECAST_LOG=/var/log/icecast
+
+create_dirs() {
+ if [ ! -e ${ICECAST_LOG} ]; then
+ mkdir -p ${ICECAST_LOG}
+ chown nobody.nogroup ${ICECAST_LOG}
+ fi
+}
+
+case "$1" in
+
+ start)
+ if [ -e ${ICECAST_PID} ]; then
+ echo "Icecast is already running"
+ exit 1
+ fi
+
+ create_dirs
+ icecast -c ${ICECAST_CONF} -b
+ ;;
+ stop)
+ if [ ! -e ${ICECAST_PID} ]; then
+ echo "Icecast is not running"
+ exit 1
+ fi
+
+ kill `cat ${ICECAST_PID}`
+ # icecast does not remove its own PID file
+ rm ${ICECAST_PID}
+ ;;
+ *)
+ echo "Usage: $0 {start|stop}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/patches/icecast-2.3.2/autogen.sh b/patches/icecast-2.3.2/autogen.sh
new file mode 120000
index 0000000..9f8a4cb
--- /dev/null
+++ b/patches/icecast-2.3.2/autogen.sh
@@ -0,0 +1 @@
+../autogen.sh
\ No newline at end of file
diff --git a/patches/icecast-2.3.2/enabled_silen_rules.diff b/patches/icecast-2.3.2/enabled_silen_rules.diff
new file mode 100644
index 0000000..da51af0
--- /dev/null
+++ b/patches/icecast-2.3.2/enabled_silen_rules.diff
@@ -0,0 +1,24 @@
+From: Juergen Beisert <jbe@pengutronix.de>
+Subject: Enable silent rules
+Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
+---
+ configure.in | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+Index: icecast-2.3.2/configure.in
+===================================================================
+--- icecast-2.3.2.orig/configure.in
++++ icecast-2.3.2/configure.in
+@@ -5,6 +5,12 @@ AC_CONFIG_SRCDIR(src/main.c)
+ dnl Process this file with autoconf to produce a configure script.
+
+ AM_INIT_AUTOMAKE
++
++# default is more output while building the package
++m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES])
++AM_SILENT_RULES([yes])
++AM_CONDITIONAL(BUILD_SILENTLY, test "x$enable_silent_rules" = xyes)
++
+ AM_CONFIG_HEADER(config.h)
+ AM_MAINTAINER_MODE
+
diff --git a/patches/icecast-2.3.2/fix_curl_detection.diff b/patches/icecast-2.3.2/fix_curl_detection.diff
new file mode 100644
index 0000000..072e27f
--- /dev/null
+++ b/patches/icecast-2.3.2/fix_curl_detection.diff
@@ -0,0 +1,179 @@
+From: Juergen Beisert <jbe@pengutronix.de>
+Subject: Fix libCURL detection
+Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
+---
+ configure.in | 30 +++++++++++----------
+ m4/xiph_curl.m4 | 78 --------------------------------------------------------
+ src/Makefile.am | 10 +++++--
+ 3 files changed, 23 insertions(+), 95 deletions(-)
+
+Index: icecast-2.3.2/m4/xiph_curl.m4
+===================================================================
+--- icecast-2.3.2.orig/m4/xiph_curl.m4
++++ /dev/null
+@@ -1,78 +0,0 @@
+-dnl XIPH_PATH_CURL([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
+-dnl Test for libcurl, and define CURL_CFLAGS and CURL_LIBS
+-dnl
+-dnl $Id: xiph_curl.m4 14776 2008-04-19 01:54:11Z karl $
+-dnl
+-AC_DEFUN([XIPH_PATH_CURL],
+-[dnl
+-dnl Get the cflags and libraries
+-dnl
+-AC_ARG_WITH(curl,
+- AC_HELP_STRING([--with-curl=PFX],[Prefix where libcurl is installed (optional)]),
+- curl_prefix="$withval", curl_prefix="$CURL_PREFIX")
+-
+-if test "x$curl_prefix" = "xno"
+-then
+- AC_MSG_RESULT([libcurl support disabled by request])
+-else
+-
+-AC_ARG_WITH(curl-config,
+- AC_HELP_STRING([--with-curl-config=curl-config],[Use curl-config to find libcurl]),
+- CURL_CONFIG="$withval", [AC_PATH_PROGS(CURL_CONFIG, [curl-config], "")])
+-
+-if test "x$curl_prefix" != "x" -a "x$curl_prefix" != "xyes"; then
+- CURL_LIBS="-L$curl_prefix/lib -lcurl"
+- CURL_CFLAGS="-I$curl_prefix/include"
+-elif test "x$CURL_CONFIG" != "x"; then
+- if ! test -x "$CURL_CONFIG"; then
+- AC_MSG_ERROR([$CURL_CONFIG cannot be executed])
+- fi
+- CURL_LIBS="$($CURL_CONFIG --libs)"
+- CURL_CFLAGS="$($CURL_CONFIG --cflags)"
+-else
+- if test "x$prefix" = "xNONE"; then
+- curl_prefix="/usr/local"
+- else
+- curl_prefix="$prefix"
+- fi
+- CURL_LIBS="-L$curl_prefix/lib -lcurl"
+- CURL_CFLAGS="-I$curl_prefix/include"
+-fi
+-
+-curl_ok="yes"
+-
+-xt_curl_CPPFLAGS="$CPPFLAGS"
+-xt_curl_LIBS="$LIBS"
+-CPPFLAGS="$CPPFLAGS $CURL_CFLAGS"
+-LIBS="$CURL_LIBS $LIBS"
+-dnl
+-dnl Now check if the installed libcurl is sufficiently new.
+-dnl
+-AC_CHECK_HEADERS([curl/curl.h],, curl_ok="no")
+-AC_MSG_CHECKING(for libcurl)
+-if test "$curl_ok" = "yes"
+-then
+- AC_RUN_IFELSE(AC_LANG_SOURCE([
+-#include <curl/curl.h>
+-int main()
+-{
+- return 0;
+-}
+-]),,[curl_ok="no"])
+-fi
+-if test "$curl_ok" = "yes"; then
+- AC_MSG_RESULT(yes)
+- AC_DEFINE(HAVE_CURL, 1, [Define if you have libcurl.])
+- ifelse([$1], , :, [$1])
+-else
+- AC_MSG_RESULT(no)
+- CURL_LIBS=""
+- CURL_CFLAGS=""
+- ifelse([$2], , :, [$2])
+-fi
+-CPPFLAGS="$xt_curl_CPPFLAGS"
+-LIBS="$xt_curl_LIBS"
+-fi
+-AC_SUBST(CURL_CFLAGS)
+-AC_SUBST(CURL_LIBS)
+-])
+Index: icecast-2.3.2/configure.in
+===================================================================
+--- icecast-2.3.2.orig/configure.in
++++ icecast-2.3.2/configure.in
+@@ -128,25 +128,27 @@ XIPH_VAR_APPEND([XIPH_CFLAGS],[$PTHREAD_
+ XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$PTHREAD_CPPFLAGS])
+ XIPH_VAR_PREPEND([XIPH_LIBS],[$PTHREAD_LIBS])
+
+-XIPH_PATH_CURL([
+- AC_CHECK_DECL([CURLOPT_NOSIGNAL],
+- [ AC_DEFINE([HAVE_AUTH_URL], 1, [Define to compile in auth URL support code])
+- AC_CHECK_FUNCS([curl_global_init])
+- ICECAST_OPTIONAL="$ICECAST_OPTIONAL auth_url.o"
+- enable_curl="yes"
+- XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$CURL_CFLAGS])
+- XIPH_VAR_PREPEND([XIPH_LIBS],[$CURL_LIBS])
+- ], [ AC_MSG_NOTICE([Your curl dev files are too old (7.10 or above required)])
+- ], [#include <curl/curl.h>
+- ])
+- ],[ AC_MSG_NOTICE([libcurl not found])
+- ])
++AC_MSG_CHECKING([for libcurl])
++AC_ARG_WITH(curl,
++ AS_HELP_STRING([--with-curl],
++ [Use libcurl @<:@default=no@:>@]),
++ [], [with_curl=no])
++
++if test x$with_curl = xno; then
++ AC_MSG_RESULT([libcurl support disabled by request])
++else
++ AC_MSG_RESULT([${with_curl}])
++ PKG_CHECK_MODULES(CURL, libcurl)
++ AC_DEFINE(HAVE_CURL, 1, [Define if you have libcurl.])
++fi
++AM_CONDITIONAL(BUILD_CURL, [test x$with_curl = xyes])
++
+ dnl -- YP support --
+ AC_ARG_ENABLE([yp],
+ AC_HELP_STRING([--disable-yp],[disable YP directory support]),
+ enable_yp="$enableval",
+ enable_yp="yes")
+-if test "x$enable_yp" = "xyes" -a "x$enable_curl" = xyes
++if test "x$enable_yp" = "xyes" -a x$with_curl = xyes
+ then
+ AC_DEFINE([USE_YP], 1, [Define to compile in YP support code])
+ ICECAST_OPTIONAL="$ICECAST_OPTIONAL yp.o"
+Index: icecast-2.3.2/src/Makefile.am
+===================================================================
+--- icecast-2.3.2.orig/src/Makefile.am
++++ icecast-2.3.2/src/Makefile.am
+@@ -18,8 +18,7 @@ icecast_SOURCES = cfgfile.c main.c loggi
+ xslt.c fserve.c event.c admin.c md5.c \
+ format.c format_ogg.c format_mp3.c format_midi.c format_flac.c \
+ auth.c auth_htpasswd.c format_kate.c format_skeleton.c
+-EXTRA_icecast_SOURCES = yp.c \
+- auth_url.c
++EXTRA_icecast_SOURCES = yp.c
+
+ if BUILD_VORBIS
+ icecast_SOURCES += format_vorbis.c
+@@ -30,6 +29,9 @@ endif
+ if BUILD_SPEEX
+ icecast_SOURCES += format_speex.c
+ endif
++if BUILD_CURL
++icecast_SOURCES += auth_url.c
++endif
+
+ icecast_DEPENDENCIES = @ICECAST_OPTIONAL@ net/libicenet.la thread/libicethread.la \
+ httpp/libicehttpp.la log/libicelog.la avl/libiceavl.la timing/libicetiming.la
+@@ -39,13 +41,15 @@ icecast_LDADD = @XSLT_LIBS@ \
+ @VORBISENC_LIBS@ \
+ @THEORA_LIBS@ \
+ @SPEEX_LIBS@ \
++ @CURL_LIBS@ \
+ $(icecast_DEPENDENCIES) @XIPH_LIBS@ @KATE_LIBS@
+ icecast_CFLAGS = @XSLT_CFLAGS@ \
+ @VORBIS_CFLAGS@ \
+ @VORBISFILE_CFLAGS@ \
+ @VORBISENC_CFLAGS@ \
+ @THEORA_CFLAGS@ \
+- @SPEEX_CFLAGS@
++ @SPEEX_CFLAGS@ \
++ @CURL_CFLAGS@
+
+ AM_CFLAGS = @XIPH_CFLAGS@
+ AM_CPPFLAGS = @XIPH_CPPFLAGS@
diff --git a/patches/icecast-2.3.2/fix_ogg_detection.diff b/patches/icecast-2.3.2/fix_ogg_detection.diff
new file mode 100644
index 0000000..acee80d
--- /dev/null
+++ b/patches/icecast-2.3.2/fix_ogg_detection.diff
@@ -0,0 +1,115 @@
+From: Juergen Beisert <jbe@pengutronix.de>
+Subject: Fix libOGG detection
+Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
+---
+ configure.in | 1
+ m4/ogg.m4 | 65 --------------------------------------------------------
+ src/Makefile.am | 6 +++--
+ 3 files changed, 5 insertions(+), 67 deletions(-)
+
+Index: icecast-2.3.2/m4/ogg.m4
+===================================================================
+--- icecast-2.3.2.orig/m4/ogg.m4
++++ /dev/null
+@@ -1,65 +0,0 @@
+-# Configure paths for libogg
+-# updated by Karl Heyes 10-Jun-2003
+-# Jack Moffitt <jack@icecast.org> 10-21-2000
+-# Shamelessly stolen from Owen Taylor and Manish Singh
+-
+-dnl XIPH_PATH_OGG([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
+-dnl Test for libogg, and define OGG_CFLAGS OGG_LDFLAGS and OGG_LIBS
+-dnl
+-AC_DEFUN([XIPH_PATH_OGG],
+-[dnl
+-AC_ARG_VAR([OGG_PREFIX],[path to ogg installation])
+-AC_ARG_WITH(ogg,
+- [AC_HELP_STRING([--with-ogg=PREFIX],
+- [Prefix where libogg is installed (optional)])],
+- ogg_prefix="$withval",
+- ogg_prefix="$OGG_PREFIX"
+- )
+-if test "x$ogg_prefix" = "x" -o "x$ogg_prefix" = "xyes"; then
+- if test "x$prefix" = "xNONE"; then
+- ogg_prefix=/usr/local
+- else
+- ogg_prefix="$prefix"
+- fi
+-fi
+-
+-XIPH_GCC_WARNING([-I$ogg_prefix/include],,
+- [ OGG_CFLAGS="-I$ogg_prefix/include"
+- OGG_LDFLAGS="-L$ogg_prefix/lib"
+- ])
+-AC_CACHE_CHECK([for libogg], xt_cv_lib_ogg,
+-[dnl
+-OGG_LIBS="-logg"
+-
+-#
+-# check if the installed Ogg is sufficiently new.
+-#
+-ac_save_CFLAGS="$CFLAGS"
+-ac_save_LIBS="$LIBS"
+-ac_save_LDFLAGS="$LDFLAGS"
+-CFLAGS="$CFLAGS $OGG_CFLAGS"
+-LIBS="$LIBS $OGG_LIBS"
+-LDFLAGS="$LDFLAGS $OGG_LDFLAGS"
+-AC_TRY_LINK_FUNC(ogg_sync_init,
+- [ xt_cv_lib_ogg=ok ],
+- [ AC_TRY_LINK([#include <ogg/ogg.h>],,
+- [ xt_cv_lib_ogg="pre v1.0, needs updating" ],
+- [ xt_cv_lib_ogg="not found" ])
+- ])
+-CFLAGS="$ac_save_CFLAGS"
+-LDFLAGS="$ac_save_LDFLAGS"
+-LIBS="$ac_save_LIBS"
+-])
+-if test "x$xt_cv_lib_ogg" = "xok"; then
+- ifelse([$1],,,[$1])
+- AC_DEFINE([HAVE_OGG], [1], [Define if you have libogg installed])
+-else
+- OGG_LIBS=""
+- OGG_CFLAGS=""
+- OGG_LDFLAGS=""
+- ifelse([$2],,,[$2])
+-fi
+-AC_SUBST(OGG_LIBS)
+-AC_SUBST(OGG_CFLAGS)
+-AC_SUBST(OGG_LDFLAGS)
+-])
+Index: icecast-2.3.2/configure.in
+===================================================================
+--- icecast-2.3.2.orig/configure.in
++++ icecast-2.3.2/configure.in
+@@ -59,6 +59,7 @@ dnl -- configure options --
+
+ # always required
+ PKG_CHECK_MODULES(XSLT, libxslt)
++PKG_CHECK_MODULES(OGG, ogg)
+
+ # check for libvorbis
+ AC_MSG_CHECKING([for libvorbis])
+Index: icecast-2.3.2/src/Makefile.am
+===================================================================
+--- icecast-2.3.2.orig/src/Makefile.am
++++ icecast-2.3.2/src/Makefile.am
+@@ -37,7 +37,8 @@ endif
+
+ icecast_DEPENDENCIES = @ICECAST_OPTIONAL@ net/libicenet.la thread/libicethread.la \
+ httpp/libicehttpp.la log/libicelog.la avl/libiceavl.la timing/libicetiming.la
+-icecast_LDADD = @XSLT_LIBS@ \
++icecast_LDADD = @OGG_LIBS@ \
++ @XSLT_LIBS@ \
+ @VORBIS_LIBS@ \
+ @VORBISFILE_LIBS@ \
+ @VORBISENC_LIBS@ \
+@@ -46,7 +47,8 @@ icecast_LDADD = @XSLT_LIBS@ \
+ @CURL_LIBS@ \
+ @OPENSSL_LIBS@ \
+ $(icecast_DEPENDENCIES) @XIPH_LIBS@ @KATE_LIBS@
+-icecast_CFLAGS = @XSLT_CFLAGS@ \
++icecast_CFLAGS = @OGG_CFLAGS@ \
++ @XSLT_CFLAGS@ \
+ @VORBIS_CFLAGS@ \
+ @VORBISFILE_CFLAGS@ \
+ @VORBISENC_CFLAGS@ \
diff --git a/patches/icecast-2.3.2/fix_openssl_detection.diff b/patches/icecast-2.3.2/fix_openssl_detection.diff
new file mode 100644
index 0000000..bd794ee
--- /dev/null
+++ b/patches/icecast-2.3.2/fix_openssl_detection.diff
@@ -0,0 +1,116 @@
+From: Juergen Beisert <jbe@pengutronix.de>
+Subject: Fix libOPENSSL detection
+Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
+---
+ configure.in | 20 +++++++++++++-------
+ m4/xiph_openssl.m4 | 49 -------------------------------------------------
+ src/Makefile.am | 4 +++-
+ 3 files changed, 16 insertions(+), 57 deletions(-)
+
+Index: icecast-2.3.2/m4/xiph_openssl.m4
+===================================================================
+--- icecast-2.3.2.orig/m4/xiph_openssl.m4
++++ /dev/null
+@@ -1,49 +0,0 @@
+-dnl XIPH_PATH_OPENSSL([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
+-dnl Karl Heyes <karl@xiph.org>
+-dnl Test for openssl, and define OPENSSL_CFLAGS and OPENSSL_LIBS
+-dnl
+-AC_DEFUN([XIPH_PATH_OPENSSL],
+-[dnl
+-dnl Get the cflags and libraries
+-dnl
+-AC_ARG_WITH(openssl,
+- AC_HELP_STRING([--with-openssl=PFX],[Prefix where openssl is installed (optional)]),
+- openssl_prefix="$withval", openssl_prefix="")
+-
+-if test "x$openssl_prefix" != "x" -a "x$openssl_prefix" != "xyes"; then
+- OPENSSL_LIBS="-L$openssl_prefix/lib -lssl"
+- OPENSSL_CFLAGS="-I$openssl_prefix/include"
+-else
+- AC_PATH_PROG([PKGCONFIG], [pkg-config], [no])
+- if test "$PKGCONFIG" != "no" && `$PKGCONFIG --exists openssl`; then
+- OPENSSL_CFLAGS=`$PKGCONFIG --cflags openssl`
+- OPENSSL_LIBS=`$PKGCONFIG --libs openssl`
+- else
+- if test "x$prefix" = "xNONE"; then
+- openssl_prefix="/usr/local"
+- else
+- openssl_prefix="$prefix"
+- fi
+- OPENSSL_LIBS="-L$openssl_prefix/lib -lssl"
+- OPENSSL_CFLAGS="-I$openssl_prefix/include"
+- fi
+-fi
+-
+-# Now try linking to openssl
+-xt_save_CFLAGS="$CFLAGS"
+-xt_save_LIBS="$LIBS"
+-CFLAGS="$CFLAGS $OPENSSL_CFLAGS"
+-LIBS="$OPENSSL_LIBS $LIBS"
+-AC_TRY_LINK([#include <openssl/ssl.h>], [void *a = SSL_new], [openssl_ok='yes'])
+-CFLAGS="$xt_save_CFLAGS"
+-LIBS="$xt_save_LIBS"
+-
+-if test "$openssl_ok" = "yes"; then
+- AC_DEFINE(HAVE_OPENSSL, 1, [Define if you have libopenssl.])
+- ifelse([$1], , :, [$1])
+-else
+- OPENSSL_LIBS=""
+- OPENSSL_CFLAGS=""
+- ifelse([$2], , :, [$2])
+-fi
+-])
+Index: icecast-2.3.2/configure.in
+===================================================================
+--- icecast-2.3.2.orig/configure.in
++++ icecast-2.3.2/configure.in
+@@ -156,13 +156,19 @@ fi
+ AC_MSG_RESULT([${enable_yp}])
+ AM_CONDITIONAL(BUILD_YP, [test "x$enable_yp" = xyes])
+
+-XIPH_PATH_OPENSSL([
+- XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$OPENSSL_CFLAGS])
+- XIPH_VAR_APPEND([XIPH_LDFLAGS],[$OPENSSL_LDFLAGS])
+- XIPH_VAR_PREPEND([XIPH_LIBS],[$OPENSSL_LIBS])
+- ],
+- [ AC_MSG_NOTICE([SSL disabled!])
+- ])
++AC_MSG_CHECKING([for libopenssl])
++AC_ARG_WITH(openssl,
++ AS_HELP_STRING([--with-openssl],
++ [Use libopenssl @<:@default=no@:>@]),
++ [], [with_openssl=no])
++
++if test x$with_openssl = xno; then
++ AC_MSG_RESULT([libopenssl support disabled by request])
++else
++ AC_MSG_RESULT([${with_openssl}])
++ PKG_CHECK_MODULES(OPENSSL, libssl)
++ AC_DEFINE(HAVE_OPENSSL, 1, [Define if you have libopenssl.])
++fi
+
+ dnl Make substitutions
+
+Index: icecast-2.3.2/src/Makefile.am
+===================================================================
+--- icecast-2.3.2.orig/src/Makefile.am
++++ icecast-2.3.2/src/Makefile.am
+@@ -44,6 +44,7 @@ icecast_LDADD = @XSLT_LIBS@ \
+ @THEORA_LIBS@ \
+ @SPEEX_LIBS@ \
+ @CURL_LIBS@ \
++ @OPENSSL_LIBS@ \
+ $(icecast_DEPENDENCIES) @XIPH_LIBS@ @KATE_LIBS@
+ icecast_CFLAGS = @XSLT_CFLAGS@ \
+ @VORBIS_CFLAGS@ \
+@@ -51,7 +52,8 @@ icecast_CFLAGS = @XSLT_CFLAGS@ \
+ @VORBISENC_CFLAGS@ \
+ @THEORA_CFLAGS@ \
+ @SPEEX_CFLAGS@ \
+- @CURL_CFLAGS@
++ @CURL_CFLAGS@ \
++ @OPENSSL_CFLAGS@
+
+ AM_CFLAGS = @XIPH_CFLAGS@
+ AM_CPPFLAGS = @XIPH_CPPFLAGS@
diff --git a/patches/icecast-2.3.2/fix_speex_detection.diff b/patches/icecast-2.3.2/fix_speex_detection.diff
new file mode 100644
index 0000000..8eeb2b5
--- /dev/null
+++ b/patches/icecast-2.3.2/fix_speex_detection.diff
@@ -0,0 +1,171 @@
+From: Juergen Beisert <jbe@pengutronix.de>
+Subject: Fix libSPEEX detection
+Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
+---
+ configure.in | 22 +++++++++-----
+ m4/speex.m4 | 84 --------------------------------------------------------
+ src/Makefile.am | 10 ++++--
+ 3 files changed, 21 insertions(+), 95 deletions(-)
+
+Index: icecast-2.3.2/m4/speex.m4
+===================================================================
+--- icecast-2.3.2.orig/m4/speex.m4
++++ /dev/null
+@@ -1,84 +0,0 @@
+-# Configure paths for libspeex
+-# updated by Karl Heyes 02-Feb-2004
+-
+-dnl XIPH_PATH_SPEEX([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
+-dnl Test for libspeex, and define SPEEX_CFLAGS SPEEX_LIBS
+-dnl SPEEX_SPEEXENC_LIBS SPEEX_SPEEXFILE_LIBS SPEEX_LDFLAGS
+-dnl
+-
+-AC_DEFUN([XIPH_PATH_SPEEX],
+-[
+-AC_REQUIRE([XIPH_PATH_OGG])
+-
+-dnl Get the cflags and libraries for speex
+-dnl
+-AC_ARG_VAR([SPEEX],[path to speex installation])
+-AC_ARG_WITH(speex,
+- AC_HELP_STRING([--with-speex=PREFIX],
+- [Prefix where libspeex is installed (optional)]),
+- speex_prefix="$withval",
+- speex_prefix="$SPEEX_PREFIX"
+- )
+-if test "x$with_speex" = "xno"
+-then
+- AC_MSG_RESULT([Speex support disabled by request])
+-else
+- if test "x$speex_prefix" = "x" -o "x$speex_prefix" = "xyes"; then
+- if test "x$prefix" = "xNONE"; then
+- speex_prefix="/usr/local"
+- else
+- speex_prefix="$prefix"
+- fi
+- fi
+-
+- SPEEX_CFLAGS="$OGG_CFLAGS"
+- SPEEX_LDFLAGS="$OGG_LDFLAGS"
+- if test "x$speex_prefix" != "x$ogg_prefix"; then
+- XIPH_GCC_WARNING(-I"$speex_prefix/include",,
+- [SPEEX_CFLAGS="$SPEEX_CFLAGS -I$speex_prefix/include"
+- SPEEX_LDFLAGS="-L$speex_prefix/lib $SPEEX_LDFLAGS"
+- ])
+- fi
+-
+- SPEEX_LIBS="-lspeex"
+-
+- xt_save_LIBS="$LIBS"
+- xt_save_LDFLAGS="$LDFLAGS"
+- LDFLAGS="$LDFLAGS $SPEEX_LDFLAGS"
+- LIBS="$LIBS $SPEEX_LIBS"
+- xt_have_speex="yes"
+- AC_MSG_CHECKING([for libspeex])
+- AC_TRY_LINK_FUNC(ogg_stream_init, [AC_MSG_RESULT([ok])],
+- [LIBS="$LIBS $OGG_LIBS"
+- AC_TRY_LINK_FUNC(ogg_stream_init,
+- [SPEEX_LIBS="$SPEEX_LIBS $OGG_LIBS"],
+- [xt_have_speex="no"])
+- ])
+- if test "x$xt_have_speex" = "xyes"
+- then
+- AC_LINK_IFELSE([AC_LANG_PROGRAM(
+- [#include <speex/speex_header.h>],
+- [void *p = speex_packet_to_header;])],
+- [],
+- [xt_have_speex="no"])
+- fi
+-
+- LIBS="$xt_save_LIBS"
+- LDFLAGS="$xt_save_LDFLAGS"
+-
+- if test "x$xt_have_speex" = "xyes"
+- then
+- AC_MSG_RESULT([ok])
+- AC_DEFINE([HAVE_SPEEX],[1],[Define if Speex support is available])
+- $1
+- else
+- ifelse([$2], , AC_MSG_ERROR([Unable to link to libspeex]), [$2])
+- SPEEX_CFLAGS=""
+- SPEEX_LDFLAGS=""
+- SPEEX_LIBS=""
+- fi
+- AC_SUBST(SPEEX_CFLAGS)
+- AC_SUBST(SPEEX_LDFLAGS)
+- AC_SUBST(SPEEX_LIBS)
+-fi
+-])
+Index: icecast-2.3.2/configure.in
+===================================================================
+--- icecast-2.3.2.orig/configure.in
++++ icecast-2.3.2/configure.in
+@@ -95,14 +95,20 @@ else
+ fi
+ AM_CONDITIONAL(BUILD_THEORA, [test x$with_theora = xyes])
+
+-XIPH_PATH_SPEEX(
+- [ XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$SPEEX_CFLAGS])
+- XIPH_VAR_PREPEND([XIPH_LIBS],[$SPEEX_LIBS])
+- XIPH_VAR_APPEND([XIPH_LDFLAGS],[$SPEEX_LDFLAGS])
+- ICECAST_OPTIONAL="$ICECAST_OPTIONAL format_speex.o"
+- ],
+- [ AC_MSG_WARN([Speex support disabled!])
+- ])
++AC_MSG_CHECKING([for libspeex])
++AC_ARG_WITH(speex,
++ [AS_HELP_STRING([--with-speex],
++ [Use libspeex @<:@default=no@:>@])],
++ [], [with_speex=no])
++
++if test "x$with_speex" = "xno"; then
++ AC_MSG_RESULT([Speex support disabled by request])
++else
++ AC_MSG_RESULT([${with_speex}])
++ PKG_CHECK_MODULES(SPEEX, speex)
++ AC_DEFINE([HAVE_SPEEX],[1],[Define if Speex support is available])
++fi
++AM_CONDITIONAL(BUILD_SPEEX, [test x$with_speex = xyes])
+
+ AC_CHECK_LIB(kate, kate_decode_init,[have_kate=yes],[have_kate=no], -logg)
+ if test "x$have_kate" == "xyes"
+Index: icecast-2.3.2/src/Makefile.am
+===================================================================
+--- icecast-2.3.2.orig/src/Makefile.am
++++ icecast-2.3.2/src/Makefile.am
+@@ -19,8 +19,7 @@ icecast_SOURCES = cfgfile.c main.c loggi
+ format.c format_ogg.c format_mp3.c format_midi.c format_flac.c \
+ auth.c auth_htpasswd.c format_kate.c format_skeleton.c
+ EXTRA_icecast_SOURCES = yp.c \
+- auth_url.c \
+- format_speex.c
++ auth_url.c
+
+ if BUILD_VORBIS
+ icecast_SOURCES += format_vorbis.c
+@@ -28,6 +27,9 @@ endif
+ if BUILD_THEORA
+ icecast_SOURCES += format_theora.c
+ endif
++if BUILD_SPEEX
++icecast_SOURCES += format_speex.c
++endif
+
+ icecast_DEPENDENCIES = @ICECAST_OPTIONAL@ net/libicenet.la thread/libicethread.la \
+ httpp/libicehttpp.la log/libicelog.la avl/libiceavl.la timing/libicetiming.la
+@@ -36,12 +38,14 @@ icecast_LDADD = @XSLT_LIBS@ \
+ @VORBISFILE_LIBS@ \
+ @VORBISENC_LIBS@ \
+ @THEORA_LIBS@ \
++ @SPEEX_LIBS@ \
+ $(icecast_DEPENDENCIES) @XIPH_LIBS@ @KATE_LIBS@
+ icecast_CFLAGS = @XSLT_CFLAGS@ \
+ @VORBIS_CFLAGS@ \
+ @VORBISFILE_CFLAGS@ \
+ @VORBISENC_CFLAGS@ \
+- @THEORA_CFLAGS@
++ @THEORA_CFLAGS@ \
++ @SPEEX_CFLAGS@
+
+ AM_CFLAGS = @XIPH_CFLAGS@
+ AM_CPPFLAGS = @XIPH_CPPFLAGS@
diff --git a/patches/icecast-2.3.2/fix_theora_detection.diff b/patches/icecast-2.3.2/fix_theora_detection.diff
new file mode 100644
index 0000000..809a3f2
--- /dev/null
+++ b/patches/icecast-2.3.2/fix_theora_detection.diff
@@ -0,0 +1,160 @@
+From: Juergen Beisert <jbe@pengutronix.de>
+Subject: Fix libTHEORA detection
+Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
+---
+ configure.in | 23 ++++++++++------
+ m4/theora.m4 | 77 --------------------------------------------------------
+ src/Makefile.am | 9 +++++-
+ 3 files changed, 22 insertions(+), 87 deletions(-)
+
+Index: icecast-2.3.2/m4/theora.m4
+===================================================================
+--- icecast-2.3.2.orig/m4/theora.m4
++++ /dev/null
+@@ -1,77 +0,0 @@
+-# Configure paths for libtheora
+-# Karl Heyes 02-Feb-2004
+-
+-dnl XIPH_PATH_THEORA([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
+-dnl Test for libtheora, and define THEORA_CFLAGS THEORA_LIBS
+-dnl
+-
+-AC_DEFUN([XIPH_PATH_THEORA],
+-[
+-AC_REQUIRE([XIPH_PATH_OGG])
+-
+-dnl Get the cflags and libraries for theora
+-dnl
+-AC_ARG_VAR([THEORA],[path to theora installation])
+-AC_ARG_WITH(theora,
+- AC_HELP_STRING([--with-theora=PREFIX],
+- [Prefix where libtheora is installed (optional)]),
+- theora_prefix="$withval",
+- theora_prefix="$THEORA_PREFIX"
+- )
+-
+-if test "x$with_theora" = "xno"
+-then
+- AC_MSG_RESULT([Theora support disabled by request])
+-else
+- if test "x$theora_prefix" = "x" -o "x$theora_prefix" = "xyes"; then
+- if test "x$prefix" = "xNONE"; then
+- theora_prefix="/usr/local"
+- else
+- theora_prefix="$prefix"
+- fi
+- fi
+-
+- THEORA_CFLAGS="$OGG_CFLAGS"
+- THEORA_LDFLAGS="$OGG_LDFLAGS"
+- if test "x$theora_prefix" != "x$ogg_prefix"; then
+- XIPH_GCC_WARNING(-I"$theora_prefix/include",,
+- [THEORA_CFLAGS="$THEORA_CFLAGS -I$theora_prefix/include"
+- THEORA_LDFLAGS="-L$theora_prefix/lib $THEORA_LDFLAGS"
+- ])
+- fi
+-
+- THEORA_LIBS="-ltheora -logg"
+-
+- ac_save_LIBS="$LIBS"
+- ac_save_LDFLAGS="$LDFLAGS"
+- LDFLAGS="$LDFLAGS $THEORA_LDFLAGS"
+- LIBS="$LIBS $THEORA_LIBS"
+- AC_MSG_CHECKING([for libtheora])
+- AC_TRY_LINK_FUNC(theora_decode_header, [xt_have_theora="yes"],
+- [xt_have_theora="Not found"])
+- if test "x$xt_have_theora" = "xyes"
+- then
+- AC_TRY_LINK_FUNC(theora_packet_isheader, [xt_have_theora="yes"],
+- [xt_have_theora="newer version required"])
+- fi
+-
+- LIBS="$ac_save_LIBS"
+- LDFLAGS="$ac_save_LDFLAGS"
+-
+- if test "x$xt_have_theora" = "xyes"
+- then
+- AC_MSG_RESULT([ok])
+- AC_DEFINE([HAVE_THEORA],[1],[Define if Theora support is available])
+- $1
+- else
+- THEORA_CFLAGS=""
+- THEORA_LDFLAGS=""
+- THEORA_LIBS=""
+- AC_MSG_RESULT([$xt_have_theora])
+- $2
+- fi
+-fi
+-AC_SUBST(THEORA_CFLAGS)
+-AC_SUBST(THEORA_LDFLAGS)
+-AC_SUBST(THEORA_LIBS)
+-])
+Index: icecast-2.3.2/configure.in
+===================================================================
+--- icecast-2.3.2.orig/configure.in
++++ icecast-2.3.2/configure.in
+@@ -79,14 +79,21 @@ else
+ fi
+ AM_CONDITIONAL(BUILD_VORBIS, [test x$with_vorbis = xyes])
+
+-XIPH_PATH_THEORA([
+- XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$THEORA_CFLAGS])
+- XIPH_VAR_APPEND([XIPH_LDFLAGS],[$THEORA_LDFLAGS])
+- XIPH_VAR_PREPEND([XIPH_LIBS],[$THEORA_LIBS])
+- ICECAST_OPTIONAL="$ICECAST_OPTIONAL format_theora.o"
+- ],
+- [ AC_MSG_WARN([Theora disabled!])
+- ])
++AC_MSG_CHECKING([for libtheora])
++AC_ARG_WITH(theora,
++ [AS_HELP_STRING([--with-theora],
++ [Use libtheora @<:@default=no@:>@])],
++ [], [with_theora=no])
++
++if test "x$with_theora" = "xno"; then
++ AC_MSG_RESULT([Theora support disabled by request])
++else
++ AC_MSG_RESULT([${with_theora}])
++ PKG_CHECK_MODULES(THEORA, theora)
++
++ AC_DEFINE([HAVE_THEORA],[1],[Define if Theora support is available])
++fi
++AM_CONDITIONAL(BUILD_THEORA, [test x$with_theora = xyes])
+
+ XIPH_PATH_SPEEX(
+ [ XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$SPEEX_CFLAGS])
+Index: icecast-2.3.2/src/Makefile.am
+===================================================================
+--- icecast-2.3.2.orig/src/Makefile.am
++++ icecast-2.3.2/src/Makefile.am
+@@ -20,11 +20,14 @@ icecast_SOURCES = cfgfile.c main.c loggi
+ auth.c auth_htpasswd.c format_kate.c format_skeleton.c
+ EXTRA_icecast_SOURCES = yp.c \
+ auth_url.c \
+- format_theora.c format_speex.c
++ format_speex.c
+
+ if BUILD_VORBIS
+ icecast_SOURCES += format_vorbis.c
+ endif
++if BUILD_THEORA
++icecast_SOURCES += format_theora.c
++endif
+
+ icecast_DEPENDENCIES = @ICECAST_OPTIONAL@ net/libicenet.la thread/libicethread.la \
+ httpp/libicehttpp.la log/libicelog.la avl/libiceavl.la timing/libicetiming.la
+@@ -32,11 +35,13 @@ icecast_LDADD = @XSLT_LIBS@ \
+ @VORBIS_LIBS@ \
+ @VORBISFILE_LIBS@ \
+ @VORBISENC_LIBS@ \
++ @THEORA_LIBS@ \
+ $(icecast_DEPENDENCIES) @XIPH_LIBS@ @KATE_LIBS@
+ icecast_CFLAGS = @XSLT_CFLAGS@ \
+ @VORBIS_CFLAGS@ \
+ @VORBISFILE_CFLAGS@ \
+- @VORBISENC_CFLAGS@
++ @VORBISENC_CFLAGS@ \
++ @THEORA_CFLAGS@
+
+ AM_CFLAGS = @XIPH_CFLAGS@
+ AM_CPPFLAGS = @XIPH_CPPFLAGS@
diff --git a/patches/icecast-2.3.2/fix_vorbis_detection.diff b/patches/icecast-2.3.2/fix_vorbis_detection.diff
new file mode 100644
index 0000000..4273311
--- /dev/null
+++ b/patches/icecast-2.3.2/fix_vorbis_detection.diff
@@ -0,0 +1,191 @@
+From: Juergen Beisert <jbe@pengutronix.de>
+Subject: Fix libVORBIS detection
+Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
+---
+ configure.in | 26 ++++++++++-----
+ m4/vorbis.m4 | 92 -------------------------------------------------------
+ src/Makefile.am | 17 ++++++++--
+ src/format_ogg.c | 2 +
+ 4 files changed, 34 insertions(+), 103 deletions(-)
+
+Index: icecast-2.3.2/m4/vorbis.m4
+===================================================================
+--- icecast-2.3.2.orig/m4/vorbis.m4
++++ /dev/null
+@@ -1,92 +0,0 @@
+-# Configure paths for libvorbis
+-# Jack Moffitt <jack@icecast.org> 10-21-2000
+-# updated by Karl Heyes 31-Mar-2003
+-# Shamelessly stolen from Owen Taylor and Manish Singh
+-
+-dnl XIPH_PATH_VORBIS([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
+-dnl Test for libvorbis, and define VORBIS_CFLAGS VORBIS_LIBS
+-dnl VORBIS_VORBISENC_LIBS VORBIS_VORBISFILE_LIBS VORBIS_LDFLAGS
+-dnl
+-
+-AC_DEFUN([XIPH_PATH_VORBIS],
+-[dnl
+-AC_REQUIRE([XIPH_PATH_OGG])
+-
+-dnl Get the cflags and libraries for vorbis
+-dnl
+-AC_ARG_VAR([VORBIS_PREFIX],[path to vorbis installation])
+-AC_ARG_WITH(vorbis,
+- AC_HELP_STRING([--with-vorbis=PREFIX],
+- [Prefix where libvorbis is installed (optional)]),
+- vorbis_prefix="$withval",
+- vorbis_prefix="$VORBIS_PREFIX"
+- )
+-if test "x$vorbis_prefix" = "x" -o "x$vorbis_prefix" = "xyes"; then
+- if test "x$prefix" = "xNONE"; then
+- vorbis_prefix="/usr/local"
+- else
+- vorbis_prefix="$prefix"
+- fi
+-fi
+-
+-VORBIS_CFLAGS="$OGG_CFLAGS"
+-VORBIS_LDFLAGS="$OGG_LDFLAGS"
+-if test "x$vorbis_prefix" != "x$ogg_prefix"; then
+- XIPH_GCC_WARNING(-I"$vorbis_prefix/include",,
+- [VORBIS_CFLAGS="$VORBIS_CFLAGS -I$vorbis_prefix/include"
+- VORBIS_LDFLAGS="-L$vorbis_prefix/lib $VORBIS_LDFLAGS"
+- ])
+-fi
+-
+-VORBIS_LIBS="-lvorbis"
+-VORBISFILE_LIBS="-lvorbisfile"
+-VORBISENC_LIBS="-lvorbisenc"
+-
+-xt_save_LIBS="$LIBS"
+-xt_save_LDFLAGS="$LDFLAGS"
+-xt_save_CPPFLAGS="$CPPFLAGS"
+-CPPFLAGS="$CPPFLAGS $VORBIS_CFLAGS"
+-LDFLAGS="$LDFLAGS $VORBIS_LDFLAGS"
+-LIBS="$LIBS $VORBIS_LIBS"
+-xt_lib_vorbis="not found"
+-AC_MSG_CHECKING([for libvorbis])
+-AC_TRY_LINK_FUNC(ogg_stream_init, [xt_lib_vorbis=ok],
+- [LIBS="$LIBS $OGG_LIBS -lm"
+- AC_TRY_LINK_FUNC(vorbis_info_init,
+- [xt_lib_vorbis=ok
+- VORBIS_LIBS="$VORBIS_LIBS $OGG_LIBS -lm"],
+- )
+- ])
+-
+-if test "x$xt_lib_vorbis" = "xok"; then
+-#
+-# Now check if the installed Vorbis is sufficiently new.
+-#
+-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
+-#include <vorbis/codec.h>
+-#include <vorbis/vorbisenc.h>
+- ], [
+-struct ovectl_ratemanage_arg a;
+-])],,[xt_lib_vorbis="old version found"])
+-AC_MSG_RESULT([$xt_lib_vorbis])
+-fi
+-CPPFLAGS="$xt_save_CPPFLAGS"
+-LIBS="$xt_save_LIBS"
+-LDFLAGS="$xt_save_LDFLAGS"
+-
+-if test "x$xt_lib_vorbis" = "xok"; then
+- ifelse([$1], ,[:], [$1])
+-else
+- VORBIS_CFLAGS=""
+- VORBIS_LDFLAGS=""
+- VORBIS_LIBS=""
+- VORBISFILE_LIBS=""
+- VORBISENC_LIBS=""
+- ifelse([$2], ,, [$2])
+-fi
+-AC_SUBST(VORBIS_CFLAGS)
+-AC_SUBST(VORBIS_LDFLAGS)
+-AC_SUBST(VORBIS_LIBS)
+-AC_SUBST(VORBISFILE_LIBS)
+-AC_SUBST(VORBISENC_LIBS)
+-])
+Index: icecast-2.3.2/configure.in
+===================================================================
+--- icecast-2.3.2.orig/configure.in
++++ icecast-2.3.2/configure.in
+@@ -60,14 +60,24 @@ dnl -- configure options --
+ # always required
+ PKG_CHECK_MODULES(XSLT, libxslt)
+
+-XIPH_PATH_VORBIS([
+- XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$VORBIS_CFLAGS])
+- XIPH_VAR_PREPEND([XIPH_LIBS],[$VORBIS_LIBS])
+- XIPH_VAR_APPEND([XIPH_LDFLAGS],[$VORBIS_LDFLAGS])
+- ICECAST_OPTIONAL="$ICECAST_OPTIONAL format_vorbis.o"
+- ],
+- [AC_MSG_ERROR([must have Ogg Vorbis v1.0 or above installed])
+- ])
++# check for libvorbis
++AC_MSG_CHECKING([for libvorbis])
++AC_ARG_WITH(vorbis,
++ [AS_HELP_STRING([--with-vorbis],
++ [Use libvorbis @<:@default=no@:>@])],
++ [], [with_vorbis=no])
++
++if test x$with_vorbis = xno; then
++ AC_MSG_RESULT([libvorbis support disabled by request])
++else
++ AC_MSG_RESULT([${with_vorbis}])
++ PKG_CHECK_MODULES(VORBIS, vorbis)
++ PKG_CHECK_MODULES(VORBISFILE, vorbisfile)
++ PKG_CHECK_MODULES(VORBISENC, vorbisenc)
++
++ AC_DEFINE([HAVE_VORBIS], [1], [Define if you have libvorbis installed])
++fi
++AM_CONDITIONAL(BUILD_VORBIS, [test x$with_vorbis = xyes])
+
+ XIPH_PATH_THEORA([
+ XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$THEORA_CFLAGS])
+Index: icecast-2.3.2/src/Makefile.am
+===================================================================
+--- icecast-2.3.2.orig/src/Makefile.am
++++ icecast-2.3.2/src/Makefile.am
+@@ -20,12 +20,23 @@ icecast_SOURCES = cfgfile.c main.c loggi
+ auth.c auth_htpasswd.c format_kate.c format_skeleton.c
+ EXTRA_icecast_SOURCES = yp.c \
+ auth_url.c \
+- format_vorbis.c format_theora.c format_speex.c
++ format_theora.c format_speex.c
++
++if BUILD_VORBIS
++icecast_SOURCES += format_vorbis.c
++endif
+
+ icecast_DEPENDENCIES = @ICECAST_OPTIONAL@ net/libicenet.la thread/libicethread.la \
+ httpp/libicehttpp.la log/libicelog.la avl/libiceavl.la timing/libicetiming.la
+-icecast_LDADD = $(icecast_DEPENDENCIES) @XIPH_LIBS@ @KATE_LIBS@ @XSLT_LIBS@
+-icecast_CFLAGS = @XSLT_CFLAGS@
++icecast_LDADD = @XSLT_LIBS@ \
++ @VORBIS_LIBS@ \
++ @VORBISFILE_LIBS@ \
++ @VORBISENC_LIBS@ \
++ $(icecast_DEPENDENCIES) @XIPH_LIBS@ @KATE_LIBS@
++icecast_CFLAGS = @XSLT_CFLAGS@ \
++ @VORBIS_CFLAGS@ \
++ @VORBISFILE_CFLAGS@ \
++ @VORBISENC_CFLAGS@
+
+ AM_CFLAGS = @XIPH_CFLAGS@
+ AM_CPPFLAGS = @XIPH_CPPFLAGS@
+Index: icecast-2.3.2/src/format_ogg.c
+===================================================================
+--- icecast-2.3.2.orig/src/format_ogg.c
++++ icecast-2.3.2/src/format_ogg.c
+@@ -222,9 +222,11 @@ static int process_initial_page (format_
+ ogg_info->error = 1;
+ return -1;
+ }
++#ifdef HAVE_VORBIS
+ codec = initial_vorbis_page (plugin, page);
+ if (codec)
+ break;
++#endif
+ #ifdef HAVE_THEORA
+ codec = initial_theora_page (plugin, page);
+ if (codec)
diff --git a/patches/icecast-2.3.2/fix_xml_detection.diff b/patches/icecast-2.3.2/fix_xml_detection.diff
new file mode 100644
index 0000000..96888ad
--- /dev/null
+++ b/patches/icecast-2.3.2/fix_xml_detection.diff
@@ -0,0 +1,102 @@
+From: Juergen Beisert <jbe@pengutronix.de>
+Subject: Fix XSLT detection
+Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
+---
+ configure.in | 5 +---
+ m4/xiph_xml2.m4 | 58 --------------------------------------------------------
+ src/Makefile.am | 3 +-
+ 3 files changed, 4 insertions(+), 62 deletions(-)
+
+Index: icecast-2.3.2/configure.in
+===================================================================
+--- icecast-2.3.2.orig/configure.in
++++ icecast-2.3.2/configure.in
+@@ -57,9 +57,8 @@ XIPH_NET
+
+ dnl -- configure options --
+
+-XIPH_PATH_XSLT
+-XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$XSLT_CFLAGS])
+-XIPH_VAR_PREPEND([XIPH_LIBS],[$XSLT_LIBS])
++# always required
++PKG_CHECK_MODULES(XSLT, libxslt)
+
+ XIPH_PATH_VORBIS([
+ XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$VORBIS_CFLAGS])
+Index: icecast-2.3.2/src/Makefile.am
+===================================================================
+--- icecast-2.3.2.orig/src/Makefile.am
++++ icecast-2.3.2/src/Makefile.am
+@@ -24,7 +24,8 @@ EXTRA_icecast_SOURCES = yp.c \
+
+ icecast_DEPENDENCIES = @ICECAST_OPTIONAL@ net/libicenet.la thread/libicethread.la \
+ httpp/libicehttpp.la log/libicelog.la avl/libiceavl.la timing/libicetiming.la
+-icecast_LDADD = $(icecast_DEPENDENCIES) @XIPH_LIBS@ @KATE_LIBS@
++icecast_LDADD = $(icecast_DEPENDENCIES) @XIPH_LIBS@ @KATE_LIBS@ @XSLT_LIBS@
++icecast_CFLAGS = @XSLT_CFLAGS@
+
+ AM_CFLAGS = @XIPH_CFLAGS@
+ AM_CPPFLAGS = @XIPH_CPPFLAGS@
+Index: icecast-2.3.2/m4/xiph_xml2.m4
+===================================================================
+--- icecast-2.3.2.orig/m4/xiph_xml2.m4
++++ /dev/null
+@@ -1,58 +0,0 @@
+-dnl XIPH_PATH_XML
+-dnl Populate XML_CFLAGS and XML_LIBS with infomation for
+-dnl linking with libxml2
+-AC_DEFUN([XIPH_PATH_XML],
+-[dnl
+-AC_MSG_RESULT([checking for XML configuration])
+-AC_ARG_VAR([XMLCONFIG],[XML configuration program])
+-AC_ARG_WITH(xml-config,
+- [AC_HELP_STRING([--with-xml-config=PATH],
+- [use xml-config in PATH to find libxml])],
+- [XMLCONFIG="$withval"],
+- [AC_PATH_PROGS(XMLCONFIG, [xml2-config xml-config], "")]
+-)
+-if test "x$XMLCONFIG" = "x"; then
+- AC_MSG_ERROR([XML configuration could not be found])
+-fi
+-if ! test -x "$XMLCONFIG"; then
+- AC_MSG_ERROR([$XMLCONFIG cannot be executed])
+-fi
+-XML_LIBS="$($XMLCONFIG --libs)"
+-XML_CFLAGS="$($XMLCONFIG --cflags)"
+-ac_xml_save_LIBS="$LIBS"
+-ac_xml_save_CFLAGS="$CFLAGS"
+-LIBS="$XML_LIBS $LIBS"
+-CFLAGS="$CFLAGS $XML_CFLAGS"
+-AC_CHECK_FUNC(xmlParseFile,, [AC_MSG_ERROR([Unable to link with libxml])])
+-CFLAGS="$ac_xml_save_CFLAGS"
+-LIBS="$ac_xml_save_LIBS"
+-])
+-
+-dnl XIPH_PATH_XSLT
+-dnl Populate XSLT_CFLAGS and XSLT_LIBS with infomation for
+-dnl linking with libxml2
+-AC_DEFUN([XIPH_PATH_XSLT],
+-[dnl
+-AC_ARG_VAR([XSLTCONFIG],[XSLT configuration program])
+-AC_ARG_WITH(xslt-config,
+- [AC_HELP_STRING([--with-xslt-config=PATH],
+- [use xslt-config in PATH to find libxslt])],
+- [XSLTCONFIG="$withval"],
+- [AC_PATH_PROGS(XSLTCONFIG, [xslt-config], "")]
+-)
+-if test "x$XSLTCONFIG" = "x"; then
+- AC_MSG_ERROR([XSLT configuration could not be found])
+-fi
+-if ! test -x "$XSLTCONFIG"; then
+- AC_MSG_ERROR([$XSLTCONFIG cannot be executed])
+-fi
+-XSLT_LIBS="$($XSLTCONFIG --libs)"
+-XSLT_CFLAGS="$($XSLTCONFIG --cflags)"
+-ac_xslt_save_LIBS="$LIBS"
+-ac_xslt_save_CFLAGS="$CFLAGS"
+-LIBS="$XSLT_LIBS $LIBS"
+-CFLAGS="$CFLAGS $XSLT_CFLAGS"
+-AC_CHECK_FUNCS([xsltSaveResultToString])
+-CFLAGS="$ac_xslt_save_CFLAGS"
+-LIBS="$ac_xslt_save_LIBS"
+-])
diff --git a/patches/icecast-2.3.2/fix_yp_handling.diff b/patches/icecast-2.3.2/fix_yp_handling.diff
new file mode 100644
index 0000000..69ef3af
--- /dev/null
+++ b/patches/icecast-2.3.2/fix_yp_handling.diff
@@ -0,0 +1,60 @@
+From: Juergen Beisert <jbe@pengutronix.de>
+Subject: Fix "YP" handling in configure
+Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
+---
+ configure.in | 15 ++++++++-------
+ src/Makefile.am | 4 +++-
+ 2 files changed, 11 insertions(+), 8 deletions(-)
+
+Index: icecast-2.3.2/configure.in
+===================================================================
+--- icecast-2.3.2.orig/configure.in
++++ icecast-2.3.2/configure.in
+@@ -144,17 +144,18 @@ fi
+ AM_CONDITIONAL(BUILD_CURL, [test x$with_curl = xyes])
+
+ dnl -- YP support --
++AC_MSG_CHECKING([whether YP should be used])
+ AC_ARG_ENABLE([yp],
+ AC_HELP_STRING([--disable-yp],[disable YP directory support]),
+- enable_yp="$enableval",
+- enable_yp="yes")
+-if test "x$enable_yp" = "xyes" -a x$with_curl = xyes
+-then
+- AC_DEFINE([USE_YP], 1, [Define to compile in YP support code])
+- ICECAST_OPTIONAL="$ICECAST_OPTIONAL yp.o"
++ [], [enable_yp=yes])
++if test x$enable_yp = xyes -a x$with_curl = xyes; then
++ AC_DEFINE([USE_YP], 1, [Define to compile in YP support code])
+ else
+- AC_MSG_NOTICE([YP support disabled])
++ enable_yp="no (missing CURL)"
+ fi
++AC_MSG_RESULT([${enable_yp}])
++AM_CONDITIONAL(BUILD_YP, [test "x$enable_yp" = xyes])
++
+ XIPH_PATH_OPENSSL([
+ XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$OPENSSL_CFLAGS])
+ XIPH_VAR_APPEND([XIPH_LDFLAGS],[$OPENSSL_LDFLAGS])
+Index: icecast-2.3.2/src/Makefile.am
+===================================================================
+--- icecast-2.3.2.orig/src/Makefile.am
++++ icecast-2.3.2/src/Makefile.am
+@@ -18,7 +18,6 @@ icecast_SOURCES = cfgfile.c main.c loggi
+ xslt.c fserve.c event.c admin.c md5.c \
+ format.c format_ogg.c format_mp3.c format_midi.c format_flac.c \
+ auth.c auth_htpasswd.c format_kate.c format_skeleton.c
+-EXTRA_icecast_SOURCES = yp.c
+
+ if BUILD_VORBIS
+ icecast_SOURCES += format_vorbis.c
+@@ -32,6 +31,9 @@ endif
+ if BUILD_CURL
+ icecast_SOURCES += auth_url.c
+ endif
++if BUILD_YP
++icecast_SOURCES += yp.c
++endif
+
+ icecast_DEPENDENCIES = @ICECAST_OPTIONAL@ net/libicenet.la thread/libicethread.la \
+ httpp/libicehttpp.la log/libicelog.la avl/libiceavl.la timing/libicetiming.la
diff --git a/patches/icecast-2.3.2/series b/patches/icecast-2.3.2/series
new file mode 100644
index 0000000..6483d31
--- /dev/null
+++ b/patches/icecast-2.3.2/series
@@ -0,0 +1,10 @@
+use_pkg_config.diff
+enabled_silen_rules.diff
+fix_xml_detection.diff
+fix_vorbis_detection.diff
+fix_theora_detection.diff
+fix_speex_detection.diff
+fix_curl_detection.diff
+fix_yp_handling.diff
+fix_openssl_detection.diff
+fix_ogg_detection.diff
diff --git a/patches/icecast-2.3.2/use_pkg_config.diff b/patches/icecast-2.3.2/use_pkg_config.diff
new file mode 100644
index 0000000..49daf8c
--- /dev/null
+++ b/patches/icecast-2.3.2/use_pkg_config.diff
@@ -0,0 +1,19 @@
+From: Juergen Beisert <jbe@pengutronix.de>
+Subject: To use PKG queries in if statements, place the main check on top of all
+Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
+---
+ configure.in | 1 +
+ 1 file changed, 1 insertion(+)
+
+Index: icecast-2.3.2/configure.in
+===================================================================
+--- icecast-2.3.2.orig/configure.in
++++ icecast-2.3.2/configure.in
+@@ -26,6 +26,7 @@ else
+ fi
+
+ dnl Checks for programs.
++PKG_PROG_PKG_CONFIG
+
+ dnl Checks for libraries.
+
diff --git a/rules/icecast.in b/rules/icecast.in
new file mode 100644
index 0000000..cc95309
--- /dev/null
+++ b/rules/icecast.in
@@ -0,0 +1,50 @@
+## SECTION=applications
+
+menuconfig ICECAST
+ tristate
+ prompt "icecast "
+ select LIBC_RT
+ select LIBC_PTHREAD
+ select LIBC_M
+ select LIBC_DL
+ select LIBXSLT
+ select LIBOGG
+ select LIBVORBIS if ICECAST_WITH_VORBIS
+ select LIBTHEORA if ICECAST_WITH_THEORA
+ select SPEEX if ICECAST_WITH_SPEEX
+ select LIBCURL if ICECAST_WITH_CURL
+ select OPENSSL if ICECAST_WITH_SSL
+ help
+ Xiph Streaming media server that supports multiple formats.
+ Icecast is a streaming media server which currently supports Ogg Vorbis
+ and MP3 audio streams. It can be used to create an Internet radio
+ station or a privately running jukebox and many things in between.
+ It is very versatile in that new formats can be added relatively
+ easily and supports open standards for commuincation and interaction.
+
+if ICECAST
+
+config ICECAST_WITH_VORBIS
+ bool
+ prompt "with VORBIS"
+
+config ICECAST_WITH_THEORA
+ bool
+ prompt "with THEORA"
+
+config ICECAST_WITH_SPEEX
+ bool
+ prompt "with SPEEX"
+
+config ICECAST_WITH_CURL
+ bool
+ prompt "with CURL"
+ help
+ Icecast may be compiled without curl, however this will disable all
+ directory server interaction (YP).
+
+config ICECAST_WITH_SSL
+ bool
+ prompt "with SSL"
+
+endif
diff --git a/rules/icecast.make b/rules/icecast.make
new file mode 100644
index 0000000..9001bd9
--- /dev/null
+++ b/rules/icecast.make
@@ -0,0 +1,71 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2012 by Juergen Beisert <jbe@pengutronix.de>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_ICECAST) += icecast
+
+#
+# Paths and names
+#
+ICECAST_VERSION := 2.3.2
+ICECAST_MD5 := ff516b3ccd2bcc31e68f460cd316093f
+ICECAST := icecast-$(ICECAST_VERSION)
+ICECAST_SUFFIX := tar.gz
+ICECAST_URL := http://downloads.xiph.org/releases/icecast/$(ICECAST).$(ICECAST_SUFFIX)
+ICECAST_SOURCE := $(SRCDIR)/$(ICECAST).$(ICECAST_SUFFIX)
+ICECAST_DIR := $(BUILDDIR)/$(ICECAST)
+ICECAST_LICENSE := GPLv2
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+ICECAST_CONF_TOOL := autoconf
+ICECAST_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --enable-shared \
+ --disable-static \
+ $(GLOBAL_LARGE_FILE_OPTION) \
+ --$(call ptx/endis, PTXCONF_ICECAST_WITH_CURL)-yp \
+ --$(call ptx/wwo, PTXCONF_ICECAST_WITH_VORBIS)-vorbis \
+ --$(call ptx/wwo, PTXCONF_ICECAST_WITH_THEORA)-theora \
+ --$(call ptx/wwo, PTXCONF_ICECAST_WITH_SPEEX)-speex \
+ --$(call ptx/wwo, PTXCONF_ICECAST_WITH_CURL)-curl \
+ --$(call ptx/wwo, PTXCONF_ICECAST_WITH_SSL)-openssl
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/icecast.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, icecast)
+ @$(call install_fixup, icecast,PRIORITY,optional)
+ @$(call install_fixup, icecast,SECTION,base)
+ @$(call install_fixup, icecast,AUTHOR,"Juergen Beisert <jbe@pengutronix.de>")
+ @$(call install_fixup, icecast,DESCRIPTION,missing)
+
+ @$(call install_copy, icecast, 0, 0, 0755, -, /usr/bin/icecast)
+ @$(call install_alternative, icecast, 0, 0, 0644, /etc/icecast.xml)
+ @$(call install_tree, icecast, 0, 0, -, /usr/share/icecast)
+
+ @$(call install_alternative, icecast, 0, 0, 0755, /etc/init.d/icecast)
+
+# RAM FS! Makes no sense
+# @$(call install_copy, icecast, 65534, 65534, /var/log/icecast)
+
+ @$(call install_finish, icecast)
+
+ @$(call touch)
+
+# vim: syntax=make
--
1.7.9.5
--
ptxdist mailing list
ptxdist@pengutronix.de
^ permalink raw reply [flat|nested] 9+ messages in thread