mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
* [ptxdist] [PATCH] Add all tools to create a internet radio station
@ 2012-04-06 12:45 Juergen Beisert
  2012-04-06 12:45 ` [ptxdist] [PATCH 1/5] Add the 'libshout' Juergen Beisert
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Juergen Beisert @ 2012-04-06 12:45 UTC (permalink / raw)
  To: ptxdist

This patch series adds tools to PTXdist to run an embedded target as a
internet radio station.

Comments are welcome.

jbe


-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [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

* [ptxdist] [PATCH 4/5] Add the 'icegenerator'
  2012-04-06 12:45 [ptxdist] [PATCH] Add all tools to create a internet radio station Juergen Beisert
                   ` (2 preceding siblings ...)
  2012-04-06 12:45 ` [ptxdist] [PATCH 3/5] ICECAST: add an audio streaming server Juergen Beisert
@ 2012-04-06 12:45 ` 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

[-- Attachment #1: Type: text/plain, Size: 8767 bytes --]

Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
---
 generic/etc/icegenerator.conf |  172 +++++++++++++++++++++++++++++++++++++++++
 rules/icegenerator.in         |   25 ++++++
 rules/icegenerator.make       |   63 +++++++++++++++
 3 files changed, 260 insertions(+)
 create mode 100644 generic/etc/icegenerator.conf
 create mode 100644 rules/icegenerator.in
 create mode 100644 rules/icegenerator.make

diff --git a/generic/etc/icegenerator.conf b/generic/etc/icegenerator.conf
new file mode 100644
index 0000000..9b3ce7b
--- /dev/null
+++ b/generic/etc/icegenerator.conf
@@ -0,0 +1,172 @@
+# IceGenerator sample configuration file
+
+#######################################################
+# Server section
+#######################################################
+
+# IP (REQUIRED)
+IP=127.0.0.1
+
+# Port (REQUIRED)
+PORT=8000
+
+# Type (REQUIRED)
+# 1 - Icecast 1.3.21 or Shoutcast (ICY protocol compatible)
+# 2 - Icecast 2.0 (HTTP protocol compatible)
+SERVER=2
+
+# Mount point for MP3/OGG streaming. (REQUIRED)
+# REMEMBER TO SET A VIRTUAL MOUNT POINT HERE FOR OGG STREAMING. MANY 
+# PLAYERS (LIKE WINAMP, XMMS, ETC.) CAN'T AUTO RECOGNIZE OGG STREAMING
+# WITHOUT .OGG EXTENSION.
+# Dieser Name muss dann auf der URL-Seite verwendet werden.
+# Also http://aura:8000/jbe
+# Das hei�t, http://aura:8000 ist ICECAST und das jbe ist ICEGENERATOR
+MOUNT=jbe
+
+
+
+#######################################################
+# User section
+#######################################################
+
+# Source user name (usually IceCast is configured for "source"). (REQUIRED)
+SOURCE=source
+
+# Server connection password (REQUIRED)
+# hier ist das "source password" gemeint
+PASSWORD=hackme
+
+
+
+#######################################################
+# File and playlist section
+#######################################################
+
+# Format (REQUIRED)
+# 0 - Ogg Vorbis
+# 1 - MP3
+FORMAT=1
+
+# Path for MP3s/OGGs. (REQUIRED)
+# This variable has the following format:
+#       playlist_type:playlist_data
+# where playlist_type is
+#       pth: list of dirs
+#       sql: MySQL server table
+#       pql: PostGreSQL server table
+#       pls: PLS file
+#       m3u: M3U file
+#
+# pth case
+#       playlist_data is your mp3's directories separated with full commas
+#       eg: pth:/path1;/path2;path3
+#
+# pql/sql case
+#       playlist_data is your PostGreSQL/MySQL connection data (separated with
+#       full commas) in the following order:
+#       sql:host;port;user;password;database;table;field       where:
+#               host is SQL server hostname or IP
+#               port is SQL server port. If 0, default port will be used
+#               user is SQL user authorized to database read access
+#               password is SQL user password
+#               database is SQL db name that contains mp3 data
+#               table is SQL table of database that contains mp3 data
+#               field is SQL table's field that contains mp3 pathname
+#
+# m3u/pls case
+#       you have to specify a M3U/PLS standard playlist file path.
+#       eg: pls:/my_path/my_playlist.pls
+MP3PATH=pth:/usr/share/music/
+
+# Set this flag to search recursively from root directories specified (default is disabled)
+RECURSIVE=1
+
+# File to record the stream to on the server (default is none)
+DUMPFILE=
+
+# Loop playlist (default is enabled)
+LOOP=1
+
+# Set this flag to play your music in random order (default is enabled), otherwise
+# alphabetic order will be used
+SHUFFLE=1
+
+#######################################################
+# Information
+#######################################################
+	
+# In next four variables u can put your metadata information that will be
+# sent to clients. You can use any string you want.
+
+# Name of the stream (default none).
+NAME=Juergens Unterhalter
+
+# Genre of the stream (default none).
+GENRE=Alles was mir gefaellt
+
+# Description of the stream (default none).
+DESCRIPTION=Nur was fuer Zuhause
+
+# Url of the stream (default none).
+URL=http://aura:8000
+
+# Bitrate of the stream. Its value is purely informational. It doesn't
+# affect real bitrate of your MP3s (default 24000).
+BITRATE=24000
+
+# Flag to list the stream in directories (default 0)
+PUBLIC=0
+
+# Set this flag to specify time elapsed between META information update in seconds 
+# (default is 5). A value of 0 disables META information, and only NAME value
+# will be transmitted.
+METAUPDATE=40
+
+# This set global MetaDataFile path for your songs. See README.IceMetal 
+# for more info.
+MDFPATH=/mypath/global.mdf
+
+
+#######################################################
+# Debug and logging information
+#######################################################
+
+# Log 
+# 0 - None
+# 1 - System logger
+# 2 - File
+LOG=2
+
+# Log path
+# Specify where you want to log IceG actions. Defaults to /var/log/icegenerator.log
+# if not specified
+LOGPATH=/var/log/icegenerator.log
+
+#######################################################
+# Telnet interface
+#######################################################
+
+# Now IceGenerator has a minimal telnet interface that
+# receives run-time commands to change IceGenerator
+# behaviour while streaming. Case is insensitive.
+# ALL COMMAND MUST BE FOLLOWED BY A TRAILING DOT!!!
+# Telnet commands are:
+#      TRACK
+#           Returns information about current track
+#      LOOP
+#           Returns information about current LOOP setting
+#      LOOPON
+#           Turns on playlist loop
+#      LOOPOFF
+#           Turns off playlist loop
+#      SHUFFLE
+#           Returns informations about current SHUFFLE setting
+#      SHUFFLEON
+#           Turns on shuffle
+#      SHUFFLEOFF
+#           Turns off shuffle
+#
+# DATAPORT is used to specify telnet port. If not specified, telnet
+# interface will be disabled. If 0, 8796 (default port) will be used.
+DATAPORT=8796
diff --git a/rules/icegenerator.in b/rules/icegenerator.in
new file mode 100644
index 0000000..6b4e4fd
--- /dev/null
+++ b/rules/icegenerator.in
@@ -0,0 +1,25 @@
+## SECTION=applications
+
+menuconfig ICEGENERATOR
+	tristate
+	prompt "icegenerator                  "
+	select LIBID3LIB if ICEGENERATOR_ID3TAG
+	select LIBSHOUT
+	help
+	  IceGenerator is a direct streaming generator for Icecast/Shoutcast.
+
+if ICEGENERATOR
+
+config ICEGENERATOR_ID3TAG
+	bool
+	prompt "use ID3TAG"
+	help
+	  Enable ID3 support for MPEG files
+
+config ICEGENERATOR_DEBUG
+	bool
+	prompt "enable debug"
+	help
+	  Make the program more noisy
+
+endif
diff --git a/rules/icegenerator.make b/rules/icegenerator.make
new file mode 100644
index 0000000..a4e9b37
--- /dev/null
+++ b/rules/icegenerator.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_ICEGENERATOR) += icegenerator
+
+#
+# Paths and names
+#
+ICEGENERATOR_VERSION	:= 0.5.5-pre2
+ICEGENERATOR_MD5	:= 71515d79bc43ca53baffc96c4ada946a
+ICEGENERATOR		:= icegenerator-$(ICEGENERATOR_VERSION)
+ICEGENERATOR_SUFFIX	:= tar.gz
+ICEGENERATOR_URL	:= http://www.becrux.com/pages/projects/icegenerator/$(ICEGENERATOR).$(ICEGENERATOR_SUFFIX)
+ICEGENERATOR_SOURCE	:= $(SRCDIR)/$(ICEGENERATOR).$(ICEGENERATOR_SUFFIX)
+ICEGENERATOR_DIR	:= $(BUILDDIR)/$(ICEGENERATOR)
+ICEGENERATOR_LICENSE	:= GPLv2
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+ICEGENERATOR_CONF_TOOL	:= autoconf
+ICEGENERATOR_CONF_OPT	:= \
+	$(CROSS_AUTOCONF_USR) \
+	--$(call ptx/wwo, PTXCONF_ICEGENERATOR_ID3TAG)-id3 \
+	--$(call ptx/endis, PTXCONF_ICEGENERATOR_DEBUG)-debug
+
+# this does not work
+#	--without-mysq \
+#	--without-pgsql \
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/icegenerator.targetinstall:
+	@$(call targetinfo)
+
+	@$(call install_init, icegenerator)
+	@$(call install_fixup, icegenerator,PRIORITY,optional)
+	@$(call install_fixup, icegenerator,SECTION,base)
+	@$(call install_fixup, icegenerator,AUTHOR,"Juergen Beisert <jbe@pengutronix.de>")
+	@$(call install_fixup, icegenerator,DESCRIPTION,missing)
+
+	@$(call install_copy, icegenerator, 0, 0, 0755, -, /usr/local/bin/icegenerator)
+	@$(call install_alternative, icegenerator, 0, 0, 0755, /etc/icegenerator.conf)
+
+	@$(call install_finish, icegenerator)
+
+	@$(call touch)
-- 
1.7.9.5



[-- Attachment #2: Type: text/plain, Size: 48 bytes --]

-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [ptxdist] [PATCH 5/5] Add ices
  2012-04-06 12:45 [ptxdist] [PATCH] Add all tools to create a internet radio station Juergen Beisert
                   ` (3 preceding siblings ...)
  2012-04-06 12:45 ` [ptxdist] [PATCH 4/5] Add the 'icegenerator' Juergen Beisert
@ 2012-04-06 12:45 ` Juergen Beisert
  2012-04-06 20:01   ` Michael Olbrich
  4 siblings, 1 reply; 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/ices.conf |   78 +++++++++++++++++++++++++++++++++++++++++++++++++
 rules/ices.in         |   33 +++++++++++++++++++++
 rules/ices.make       |   71 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 182 insertions(+)
 create mode 100644 generic/etc/ices.conf
 create mode 100644 rules/ices.in
 create mode 100644 rules/ices.make

diff --git a/generic/etc/ices.conf b/generic/etc/ices.conf
new file mode 100644
index 0000000..b58f71a
--- /dev/null
+++ b/generic/etc/ices.conf
@@ -0,0 +1,78 @@
+<?xml version="1.0"?>
+<ices:Configuration xmlns:ices="http://www.icecast.org/projects/ices">
+  <Playlist>
+    <!-- This is the filename used as a playlist when using the builtin 
+	 playlist handler. -->
+    <File>playlist.txt</File>
+    <!-- Set this to 0 if you don't want to randomize your playlist, and to
+	 1 if you do. -->
+    <Randomize>1</Randomize>
+    <!-- One of builtin, perl, or python. -->
+    <Type>builtin</Type>
+    <!-- Module name to pass to the playlist handler if using  perl or python.
+	 If you use the builtin playlist handler then this is ignored -->
+    <Module>ices</Module>
+    <!-- Set this to the number of seconds to crossfade between tracks.
+         Leave out or set to zero to disable crossfading (the default).
+    <Crossfade>5</Crossfade>
+    -->
+  </Playlist>
+
+  <Execution>
+    <!-- Set this to 1 if you want ices to launch in the background as a
+         daemon -->
+    <Background>0</Background>
+    <!-- Set this to 1 if you want to see more verbose output from ices -->
+    <Verbose>0</Verbose>
+    <!-- This directory specifies where ices should put the logfile, cue file
+	 and pid file (if daemonizing). Don't use /tmp if you have l33t h4x0rz
+         on your server. -->
+    <BaseDirectory>/tmp</BaseDirectory>
+  </Execution>
+
+  <Stream>
+    <Server>
+      <!-- Hostname or ip of the icecast server you want to connect to -->
+      <Hostname>localhost</Hostname>
+      <!-- Port of the same -->
+      <Port>8000</Port>
+      <!-- Encoder password on the icecast server -->
+      <Password>letmein</Password>
+      <!-- Header protocol to use when communicating with the server.
+           Shoutcast servers need "icy", icecast 1.x needs "xaudiocast", and
+	   icecast 2.x needs "http". -->
+      <Protocol>http</Protocol>
+    </Server>
+
+    <!-- The name of the mountpoint on the icecast server -->
+    <Mountpoint>/ices</Mountpoint>
+    <!-- The name of the dumpfile on the server for your stream. DO NOT set
+	 this unless you know what you're doing.
+    <Dumpfile>ices.dump</Dumpfile>
+    -->
+    <!-- The name of you stream, not the name of the song! -->
+    <Name>Default stream</Name>
+    <!-- Genre of your stream, be it rock or pop or whatever -->
+    <Genre>Default genre</Genre>
+    <!-- Longer description of your stream -->
+    <Description>Default description</Description>
+    <!-- URL to a page describing your stream -->
+    <URL>http://localhost/</URL>
+    <!-- 0 if you don't want the icecast server to publish your stream on
+	 the yp server, 1 if you do -->
+    <Public>0</Public>
+
+    <!-- Stream bitrate, used to specify bitrate if reencoding, otherwise
+	 just used for display on YP and on the server. Try to keep it
+	 accurate -->
+    <Bitrate>128</Bitrate>
+    <!-- If this is set to 1, and ices is compiled with liblame support,
+	 ices will reencode the stream on the fly to the stream bitrate. -->
+    <Reencode>0</Reencode>
+    <!-- Number of channels to reencode to, 1 for mono or 2 for stereo -->
+    <!-- Sampe rate to reencode to in Hz. Leave out for LAME's best choice
+    <Samplerate>44100</Samplerate>
+    -->
+    <Channels>2</Channels>
+  </Stream>
+</ices:Configuration>
diff --git a/rules/ices.in b/rules/ices.in
new file mode 100644
index 0000000..966fe6c
--- /dev/null
+++ b/rules/ices.in
@@ -0,0 +1,33 @@
+## SECTION=applications
+
+menuconfig ICES
+	tristate
+	prompt "ices                          "
+	select LIBVORBIS if ICES_VORBIS
+	select LIBXML2
+	select PYTHON if ICES_PYTHON
+	select LAME if ICES_LAME
+	help
+	  Ices is a tool sending an MP3 stream to an icecast server
+
+if ICES
+
+config ICES_VORBIS
+	bool
+	prompt "support VORBIS"
+	help
+	  Enable support for VORBIS data format
+
+config ICES_PYTHON
+	bool
+	prompt "enable python support"
+	help
+	  Enable python based scripting support
+
+config ICES_LAME
+	bool
+	prompt "enable lame support"
+	help
+	  Enable MP3 lame support
+
+endif
diff --git a/rules/ices.make b/rules/ices.make
new file mode 100644
index 0000000..a5687ae
--- /dev/null
+++ b/rules/ices.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_ICES) += ices
+
+#
+# Paths and names
+#
+ICES_VERSION	:= 0.4
+ICES_MD5	:= d31450c4011561dae0229f071cb41cb6
+ICES		:= ices-$(ICES_VERSION)
+ICES_SUFFIX	:= tar.gz
+ICES_URL	:= http://downloads.us.xiph.org/releases/ices/$(ICES).$(ICES_SUFFIX)
+ICES_SOURCE	:= $(SRCDIR)/$(ICES).$(ICES_SUFFIX)
+ICES_DIR	:= $(BUILDDIR)/$(ICES)
+ICES_LICENSE	:= GPLv2
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+ICES_CONF_TOOL	:= autoconf
+ICES_CONF_OPT	:= \
+	$(CROSS_AUTOCONF_USR) \
+	--enable-shared \
+	--disable-static \
+	--$(call ptx/wwo,PTXCONF_ICES_PYTHON)-python \
+	--without-perl \
+	--$(call ptx/wwo,PTXCONF_ICES_LAME)-lame \
+	--$(call ptx/wwo,PTXCONF_ICES_VORBIS)-vorbis \
+	--without-faad \
+	--without-flac
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/ices.targetinstall:
+	@$(call targetinfo)
+
+	@$(call install_init, ices)
+	@$(call install_fixup, ices,PRIORITY,optional)
+	@$(call install_fixup, ices,SECTION,base)
+	@$(call install_fixup, ices,AUTHOR,"Juergen Beisert <jbe@pengutronix.de>")
+	@$(call install_fixup, ices,DESCRIPTION,missing)
+
+	@$(call install_alternative, ices, 0, 0, 0644, /etc/ices.conf)
+ifdef PTXCONF_ICES_PYTHON
+	@$(call install_copy, ices, 0, 0, 0755, /etc/modules)
+	@$(call install_copy, ices, 0, 0, 0755, -, /etc/modules/ices.py.dist)
+endif
+	@$(call install_copy, ices, 0, 0, 0755, -, /usr/bin/ices)
+
+	@$(call install_finish, ices)
+
+	@$(call touch)
+
+# vim: syntax=make
-- 
1.7.9.5


-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [ptxdist] [PATCH 5/5] Add ices
  2012-04-06 12:45 ` [ptxdist] [PATCH 5/5] Add ices Juergen Beisert
@ 2012-04-06 20:01   ` Michael Olbrich
  2012-04-07  9:12     ` Juergen Beisert
  0 siblings, 1 reply; 9+ messages in thread
From: Michael Olbrich @ 2012-04-06 20:01 UTC (permalink / raw)
  To: ptxdist

On Fri, Apr 06, 2012 at 02:45:20PM +0200, Juergen Beisert wrote:
> Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
> ---
>  generic/etc/ices.conf |   78 +++++++++++++++++++++++++++++++++++++++++++++++++
>  rules/ices.in         |   33 +++++++++++++++++++++
>  rules/ices.make       |   71 ++++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 182 insertions(+)
>  create mode 100644 generic/etc/ices.conf
>  create mode 100644 rules/ices.in
>  create mode 100644 rules/ices.make
> 
> diff --git a/generic/etc/ices.conf b/generic/etc/ices.conf
> new file mode 100644
> index 0000000..b58f71a
> --- /dev/null
> +++ b/generic/etc/ices.conf
> @@ -0,0 +1,78 @@
> +<?xml version="1.0"?>
> +<ices:Configuration xmlns:ices="http://www.icecast.org/projects/ices">
> +  <Playlist>
> +    <!-- This is the filename used as a playlist when using the builtin 
> +	 playlist handler. -->
> +    <File>playlist.txt</File>
> +    <!-- Set this to 0 if you don't want to randomize your playlist, and to
> +	 1 if you do. -->
> +    <Randomize>1</Randomize>
> +    <!-- One of builtin, perl, or python. -->
> +    <Type>builtin</Type>
> +    <!-- Module name to pass to the playlist handler if using  perl or python.
> +	 If you use the builtin playlist handler then this is ignored -->
> +    <Module>ices</Module>
> +    <!-- Set this to the number of seconds to crossfade between tracks.
> +         Leave out or set to zero to disable crossfading (the default).
> +    <Crossfade>5</Crossfade>
> +    -->
> +  </Playlist>
> +
> +  <Execution>
> +    <!-- Set this to 1 if you want ices to launch in the background as a
> +         daemon -->
> +    <Background>0</Background>
> +    <!-- Set this to 1 if you want to see more verbose output from ices -->
> +    <Verbose>0</Verbose>
> +    <!-- This directory specifies where ices should put the logfile, cue file
> +	 and pid file (if daemonizing). Don't use /tmp if you have l33t h4x0rz
> +         on your server. -->
> +    <BaseDirectory>/tmp</BaseDirectory>
> +  </Execution>
> +
> +  <Stream>
> +    <Server>
> +      <!-- Hostname or ip of the icecast server you want to connect to -->
> +      <Hostname>localhost</Hostname>
> +      <!-- Port of the same -->
> +      <Port>8000</Port>
> +      <!-- Encoder password on the icecast server -->
> +      <Password>letmein</Password>
> +      <!-- Header protocol to use when communicating with the server.
> +           Shoutcast servers need "icy", icecast 1.x needs "xaudiocast", and
> +	   icecast 2.x needs "http". -->
> +      <Protocol>http</Protocol>
> +    </Server>
> +
> +    <!-- The name of the mountpoint on the icecast server -->
> +    <Mountpoint>/ices</Mountpoint>
> +    <!-- The name of the dumpfile on the server for your stream. DO NOT set
> +	 this unless you know what you're doing.
> +    <Dumpfile>ices.dump</Dumpfile>
> +    -->
> +    <!-- The name of you stream, not the name of the song! -->
> +    <Name>Default stream</Name>
> +    <!-- Genre of your stream, be it rock or pop or whatever -->
> +    <Genre>Default genre</Genre>
> +    <!-- Longer description of your stream -->
> +    <Description>Default description</Description>
> +    <!-- URL to a page describing your stream -->
> +    <URL>http://localhost/</URL>
> +    <!-- 0 if you don't want the icecast server to publish your stream on
> +	 the yp server, 1 if you do -->
> +    <Public>0</Public>
> +
> +    <!-- Stream bitrate, used to specify bitrate if reencoding, otherwise
> +	 just used for display on YP and on the server. Try to keep it
> +	 accurate -->
> +    <Bitrate>128</Bitrate>
> +    <!-- If this is set to 1, and ices is compiled with liblame support,
> +	 ices will reencode the stream on the fly to the stream bitrate. -->
> +    <Reencode>0</Reencode>
> +    <!-- Number of channels to reencode to, 1 for mono or 2 for stereo -->
> +    <!-- Sampe rate to reencode to in Hz. Leave out for LAME's best choice
> +    <Samplerate>44100</Samplerate>
> +    -->
> +    <Channels>2</Channels>
> +  </Stream>
> +</ices:Configuration>
> diff --git a/rules/ices.in b/rules/ices.in
> new file mode 100644
> index 0000000..966fe6c
> --- /dev/null
> +++ b/rules/ices.in
> @@ -0,0 +1,33 @@
> +## SECTION=applications
> +
> +menuconfig ICES
> +	tristate
> +	prompt "ices                          "
> +	select LIBVORBIS if ICES_VORBIS
> +	select LIBXML2
> +	select PYTHON if ICES_PYTHON
> +	select LAME if ICES_LAME


please indent.

> +	help
> +	  Ices is a tool sending an MP3 stream to an icecast server
> +
> +if ICES
> +
> +config ICES_VORBIS
> +	bool
> +	prompt "support VORBIS"
> +	help
> +	  Enable support for VORBIS data format
> +
> +config ICES_PYTHON
> +	bool
> +	prompt "enable python support"
> +	help
> +	  Enable python based scripting support
> +
> +config ICES_LAME
> +	bool
> +	prompt "enable lame support"
> +	help
> +	  Enable MP3 lame support
> +
> +endif
> diff --git a/rules/ices.make b/rules/ices.make
> new file mode 100644
> index 0000000..a5687ae
> --- /dev/null
> +++ b/rules/ices.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_ICES) += ices
> +
> +#
> +# Paths and names
> +#
> +ICES_VERSION	:= 0.4

Any reason for this version? I see 2.0.1, or is that something else?

> +ICES_MD5	:= d31450c4011561dae0229f071cb41cb6
> +ICES		:= ices-$(ICES_VERSION)
> +ICES_SUFFIX	:= tar.gz
> +ICES_URL	:= http://downloads.us.xiph.org/releases/ices/$(ICES).$(ICES_SUFFIX)
> +ICES_SOURCE	:= $(SRCDIR)/$(ICES).$(ICES_SUFFIX)
> +ICES_DIR	:= $(BUILDDIR)/$(ICES)
> +ICES_LICENSE	:= GPLv2
> +
> +# ----------------------------------------------------------------------------
> +# Prepare
> +# ----------------------------------------------------------------------------
> +
> +#
> +# autoconf
> +#
> +ICES_CONF_TOOL	:= autoconf
> +ICES_CONF_OPT	:= \
> +	$(CROSS_AUTOCONF_USR) \
> +	--enable-shared \
> +	--disable-static \
> +	--$(call ptx/wwo,PTXCONF_ICES_PYTHON)-python \
> +	--without-perl \
> +	--$(call ptx/wwo,PTXCONF_ICES_LAME)-lame \
> +	--$(call ptx/wwo,PTXCONF_ICES_VORBIS)-vorbis \
> +	--without-faad \
> +	--without-flac
> +
> +# ----------------------------------------------------------------------------
> +# Target-Install
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/ices.targetinstall:
> +	@$(call targetinfo)
> +
> +	@$(call install_init, ices)
> +	@$(call install_fixup, ices,PRIORITY,optional)
> +	@$(call install_fixup, ices,SECTION,base)
> +	@$(call install_fixup, ices,AUTHOR,"Juergen Beisert <jbe@pengutronix.de>")
> +	@$(call install_fixup, ices,DESCRIPTION,missing)
> +
> +	@$(call install_alternative, ices, 0, 0, 0644, /etc/ices.conf)
> +ifdef PTXCONF_ICES_PYTHON
> +	@$(call install_copy, ices, 0, 0, 0755, /etc/modules)
> +	@$(call install_copy, ices, 0, 0, 0755, -, /etc/modules/ices.py.dist)

This is not good. It clashes with /etc/modules for kernel modules.

Michael

> +endif
> +	@$(call install_copy, ices, 0, 0, 0755, -, /usr/bin/ices)
> +
> +	@$(call install_finish, ices)
> +
> +	@$(call touch)
> +
> +# vim: syntax=make
> -- 
> 1.7.9.5
> 
> 
> -- 
> ptxdist mailing list
> ptxdist@pengutronix.de
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [ptxdist] [PATCH 5/5] Add ices
  2012-04-06 20:01   ` Michael Olbrich
@ 2012-04-07  9:12     ` Juergen Beisert
  2012-04-07 10:30       ` Michael Olbrich
  0 siblings, 1 reply; 9+ messages in thread
From: Juergen Beisert @ 2012-04-07  9:12 UTC (permalink / raw)
  To: ptxdist; +Cc: Michael Olbrich

HI Michael,

Michael Olbrich wrote:
> [...]
> > diff --git a/rules/ices.in b/rules/ices.in
> > new file mode 100644
> > index 0000000..966fe6c
> > --- /dev/null
> > +++ b/rules/ices.in
> > @@ -0,0 +1,33 @@
> > +## SECTION=applications
> > +
> > +menuconfig ICES
> > +	tristate
> > +	prompt "ices                          "
> > +	select LIBVORBIS if ICES_VORBIS
> > +	select LIBXML2
> > +	select PYTHON if ICES_PYTHON
> > +	select LAME if ICES_LAME
>
> please indent.

????????

> [...]
> > diff --git a/rules/ices.make b/rules/ices.make
> > new file mode 100644
> > index 0000000..a5687ae
> > --- /dev/null
> > +++ b/rules/ices.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_ICES) += ices
> > +
> > +#
> > +# Paths and names
> > +#
> > +ICES_VERSION	:= 0.4
>
> Any reason for this version? I see 2.0.1, or is that something else?

From the website at "http://icecast.org/ices.php":

"Ices comes in two flavors, the 0.x flavor which supports sending an MP3 
stream to an icecast server, and the 2.x flavor which supports sending an Ogg 
Vorbis stream to an icecast server."

I'm not sure if this comment is still valid, as also the 0.4 revision has an 
option to enable Vorbis. But I need the MP3 feature, so I have decided to use 
the 0.4 revision.

> [...]
> > +	@$(call install_alternative, ices, 0, 0, 0644, /etc/ices.conf)
> > +ifdef PTXCONF_ICES_PYTHON
> > +	@$(call install_copy, ices, 0, 0, 0755, /etc/modules)
> > +	@$(call install_copy, ices, 0, 0, 0755, -, /etc/modules/ices.py.dist)
>
> This is not good. It clashes with /etc/modules for kernel modules.

Ups, you are right. Didn't noticed it.

I will send a new patch series.

jbe

-- 
Pengutronix e.K.                              | Juergen Beisert             |
Linux Solutions for Science and Industry      | http://www.pengutronix.de/  |

-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [ptxdist] [PATCH 5/5] Add ices
  2012-04-07  9:12     ` Juergen Beisert
@ 2012-04-07 10:30       ` Michael Olbrich
  0 siblings, 0 replies; 9+ messages in thread
From: Michael Olbrich @ 2012-04-07 10:30 UTC (permalink / raw)
  To: ptxdist

On Sat, Apr 07, 2012 at 11:12:29AM +0200, Juergen Beisert wrote:
> HI Michael,
> 
> Michael Olbrich wrote:
> > [...]
> > > diff --git a/rules/ices.in b/rules/ices.in
> > > new file mode 100644
> > > index 0000000..966fe6c
> > > --- /dev/null
> > > +++ b/rules/ices.in
> > > @@ -0,0 +1,33 @@
> > > +## SECTION=applications
> > > +
> > > +menuconfig ICES
> > > +	tristate
> > > +	prompt "ices                          "
> > > +	select LIBVORBIS if ICES_VORBIS
> > > +	select LIBXML2
> > > +	select PYTHON if ICES_PYTHON
> > > +	select LAME if ICES_LAME
> >
> > please indent.
> 
> ????????

I meant the ifs:
	select LIBVORBIS	if ICES_VORBIS
[...]

The same for some of the other patches I think.

> > [...]
> > > diff --git a/rules/ices.make b/rules/ices.make
> > > new file mode 100644
> > > index 0000000..a5687ae
> > > --- /dev/null
> > > +++ b/rules/ices.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_ICES) += ices
> > > +
> > > +#
> > > +# Paths and names
> > > +#
> > > +ICES_VERSION	:= 0.4
> >
> > Any reason for this version? I see 2.0.1, or is that something else?
> 
> >From the website at "http://icecast.org/ices.php":
> 
> "Ices comes in two flavors, the 0.x flavor which supports sending an MP3 
> stream to an icecast server, and the 2.x flavor which supports sending an Ogg 
> Vorbis stream to an icecast server."
> 
> I'm not sure if this comment is still valid, as also the 0.4 revision has an 
> option to enable Vorbis. But I need the MP3 feature, so I have decided to use 
> the 0.4 revision.

ok.

Michael

> > [...]
> > > +	@$(call install_alternative, ices, 0, 0, 0644, /etc/ices.conf)
> > > +ifdef PTXCONF_ICES_PYTHON
> > > +	@$(call install_copy, ices, 0, 0, 0755, /etc/modules)
> > > +	@$(call install_copy, ices, 0, 0, 0755, -, /etc/modules/ices.py.dist)
> >
> > This is not good. It clashes with /etc/modules for kernel modules.
> 
> Ups, you are right. Didn't noticed it.
> 
> I will send a new patch series.
> 
> jbe
> 
> -- 
> Pengutronix e.K.                              | Juergen Beisert             |
> Linux Solutions for Science and Industry      | http://www.pengutronix.de/  |
> 
> -- 
> ptxdist mailing list
> ptxdist@pengutronix.de
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2012-04-07 10:30 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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 ` [ptxdist] [PATCH 3/5] ICECAST: add an audio streaming server 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
2012-04-06 20:01   ` Michael Olbrich
2012-04-07  9:12     ` Juergen Beisert
2012-04-07 10:30       ` Michael Olbrich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox