Merge pull request #130 from andrenarchy/master
authorsbyx <steven@midlink.org>
Mon, 28 Jul 2014 08:07:52 +0000 (10:07 +0200)
committersbyx <steven@midlink.org>
Mon, 28 Jul 2014 08:07:52 +0000 (10:07 +0200)
Import and upgrade icecast

multimedia/icecast/Makefile [new file with mode: 0644]
multimedia/icecast/files/icecast.init [new file with mode: 0755]
multimedia/icecast/libvorbisidec.mk [new file with mode: 0644]
multimedia/icecast/patches/001-icecast-2.4.0-tremor.patch [new file with mode: 0644]
multimedia/icecast/patches/010-fix_libcurl_test_crap.patch [new file with mode: 0644]

diff --git a/multimedia/icecast/Makefile b/multimedia/icecast/Makefile
new file mode 100644 (file)
index 0000000..f883eee
--- /dev/null
@@ -0,0 +1,94 @@
+#
+# Copyright (C) 2006-2011 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=icecast
+PKG_VERSION:=2.4.0
+PKG_RELEASE:=1
+PKG_MAINTAINER:=AndrĂ© Gaul <gaul@web-yard.de>
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://downloads.us.xiph.org/releases/icecast/
+PKG_MD5SUM:=bb00bfc0d6d2dde24974641085602b81
+
+PKG_FIXUP:=autoreconf
+
+include $(INCLUDE_DIR)/package.mk
+
+TREMOR_BUILD_DIR=$(PKG_BUILD_DIR)/libvorbisidec-1.2.0-dave
+TREMOR_DIR=$(TREMOR_BUILD_DIR)/ipkg-install/usr
+
+define Package/icecast
+  SECTION:=multimedia
+  CATEGORY:=Multimedia
+  DEPENDS:=+libcurl +libxml2 +libxslt +libogg +libopenssl
+  TITLE:=A streaming media server for Ogg/Vorbis and MP3 audio streams
+  URL:=http://www.icecast.org/
+endef
+
+define Package/icecast/description
+       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.
+endef
+
+define Build/Prepare
+       $(Build/Prepare/Default)
+       $(SUBMAKE) -f libvorbisidec.mk \
+               BUILD_DIR="$(PKG_BUILD_DIR)" \
+               V=99 \
+               prepare
+endef
+
+define Build/Configure
+       $(MAKE) -f libvorbisidec.mk \
+               BUILD_DIR="$(PKG_BUILD_DIR)" \
+               V=99 \
+               compile
+       $(SED) 's,-lvorbis ,$(TREMOR_DIR)/lib/libvorbisidec.a -logg ,g' $(PKG_BUILD_DIR)/configure
+       $(call Build/Configure/Default, \
+               --enable-yp \
+               --with-curl="yes" \
+               --with-curl-config="$(STAGING_DIR)/usr/bin/curl-config" \
+               --with-ogg="$(STAGING_DIR)/usr" \
+               --with-speex="no" \
+               --with-theora="no" \
+               --with-vorbis="$(TREMOR_DIR)" \
+               --with-xslt-config="$(STAGING_DIR)/usr/bin/xslt-config" \
+               , \
+               CPPFLAGS="-I$(TREMOR_DIR)/include -I$(STAGING_DIR)/usr/include/libxml2 $(TARGET_CPPFLAGS)" \
+       )
+endef
+
+define Build/Compile
+       $(MAKE) -C $(PKG_BUILD_DIR) \
+               DESTDIR="$(PKG_INSTALL_DIR)" \
+               INCLUDES="-I$(PKG_BUILD_DIR)/src -I$(TREMOR_DIR)/include" \
+               all install
+endef
+
+define Package/icecast/install
+       $(INSTALL_DIR) $(1)/etc
+       $(CP) $(PKG_INSTALL_DIR)/etc/icecast.xml $(1)/etc/
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/icecast.init $(1)/etc/init.d/icecast
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/icecast $(1)/usr/bin/
+       $(INSTALL_DIR) $(1)/usr/share/icecast
+       $(CP) $(PKG_INSTALL_DIR)/usr/share/icecast/admin $(1)/usr/share/icecast/
+       $(CP) $(PKG_INSTALL_DIR)/usr/share/icecast/web $(1)/usr/share/icecast/
+endef
+
+define Package/icecast/conffiles
+/etc/icecast.xml
+endef
+
+$(eval $(call BuildPackage,icecast))
diff --git a/multimedia/icecast/files/icecast.init b/multimedia/icecast/files/icecast.init
new file mode 100755 (executable)
index 0000000..355e4b7
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh /etc/rc.common
+# Example script
+# Copyright (C) 2014 OpenWrt.org
+USE_PROCD=1
+START=99
+STOP=15
+
+start_service() {
+       procd_open_instance
+       procd_set_param command /usr/bin/icecast -c /etc/icecast.xml
+       procd_set_param respawn
+       procd_close_instance
+}
diff --git a/multimedia/icecast/libvorbisidec.mk b/multimedia/icecast/libvorbisidec.mk
new file mode 100644 (file)
index 0000000..eda6e76
--- /dev/null
@@ -0,0 +1,41 @@
+# 
+# Copyright (C) 2006 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=icecast-libvorbisidec
+PKG_VERSION:=1.2.0-dave
+PKG_RELEASE:=1
+
+PKG_SOURCE:=libvorbisidec-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://users.tpg.com.au/davico/openwrt/
+PKG_MD5SUM:=cb8e51aab92ef164f8e0e8853f7164fa
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/libvorbisidec-$(PKG_VERSION)
+PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
+PATCH_DIR=./patches-libvorbisidec
+
+include $(INCLUDE_DIR)/package.mk
+
+define Build/Configure
+       $(call Build/Configure/Default, \
+               --disable-shared \
+               --enable-static \
+       )
+endef
+
+define Build/Compile
+       $(MAKE) -C $(PKG_BUILD_DIR) \
+               DESTDIR="$(PKG_INSTALL_DIR)" \
+               all install
+endef
+
+define Build/InstallDev
+       true
+endef
+
+$(eval $(call Build/DefaultTargets))
diff --git a/multimedia/icecast/patches/001-icecast-2.4.0-tremor.patch b/multimedia/icecast/patches/001-icecast-2.4.0-tremor.patch
new file mode 100644 (file)
index 0000000..6fa6f08
--- /dev/null
@@ -0,0 +1,155 @@
+--- a/src/format_flac.c
++++ b/src/format_flac.c
+@@ -18,7 +18,7 @@
+ #endif
+ #include <stdlib.h>
+-#include <ogg/ogg.h>
++#include <tremor/ogg.h>
+ #include <string.h>
+ typedef struct source_tag source_t;
+--- a/src/format_midi.c
++++ b/src/format_midi.c
+@@ -18,7 +18,7 @@
+ #endif
+ #include <stdlib.h>
+-#include <ogg/ogg.h>
++#include <tremor/ogg.h>
+ #include <string.h>
+ typedef struct source_tag source_t;
+--- a/src/format_ogg.c
++++ b/src/format_ogg.c
+@@ -24,7 +24,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+-#include <ogg/ogg.h>
++#include <tremor/ogg.h>
+ #include "refbuf.h"
+ #include "source.h"
+--- a/src/format_ogg.h
++++ b/src/format_ogg.h
+@@ -18,7 +18,7 @@
+ #ifndef __FORMAT_OGG_H__
+ #define __FORMAT_OGG_H__
+-#include <ogg/ogg.h>
++#include <tremor/ogg.h>
+ #include "refbuf.h"
+ #include "format.h"
+--- a/src/format_speex.c
++++ b/src/format_speex.c
+@@ -18,7 +18,7 @@
+ #endif
+ #include <stdlib.h>
+-#include <ogg/ogg.h>
++#include <tremor/ogg.h>
+ #include <speex/speex_header.h>
+ typedef struct source_tag source_t;
+--- a/src/format_theora.c
++++ b/src/format_theora.c
+@@ -18,7 +18,7 @@
+ #endif
+ #include <stdlib.h>
+-#include <ogg/ogg.h>
++#include <tremor/ogg.h>
+ #include <theora/theora.h>
+ typedef struct source_tag source_t;
+--- a/src/format_vorbis.c
++++ b/src/format_vorbis.c
+@@ -18,8 +18,8 @@
+ #endif
+ #include <stdlib.h>
+-#include <ogg/ogg.h>
+-#include <vorbis/codec.h>
++#include <tremor/ogg.h>
++#include <tremor/ivorbiscodec.h>
+ #include <memory.h>
+ #include <string.h>
+--- a/src/source.c
++++ b/src/source.c
+@@ -19,7 +19,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <sys/types.h>
+-#include <ogg/ogg.h>
++#include <tremor/ogg.h>
+ #include <errno.h>
+ #ifndef _WIN32
+--- a/src/format_kate.c
++++ b/src/format_kate.c
+@@ -19,7 +19,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+-#include <ogg/ogg.h>
++#include <tremor/ogg.h>
+ #ifdef HAVE_KATE
+ #include <kate/oggkate.h>
+ #endif
+--- a/m4/vorbis.m4
++++ b/m4/vorbis.m4
+@@ -38,9 +38,9 @@ if test "x$vorbis_prefix" != "x$ogg_pref
+             ])
+ fi
+-VORBIS_LIBS="-lvorbis"
+-VORBISFILE_LIBS="-lvorbisfile"
+-VORBISENC_LIBS="-lvorbisenc"
++VORBIS_LIBS="-lvorbisidec"
++VORBISFILE_LIBS="-lvorbisidec"
++VORBISENC_LIBS="-lvorbisidec"
+ xt_save_LIBS="$LIBS"
+ xt_save_LDFLAGS="$LDFLAGS"
+@@ -58,18 +58,6 @@ AC_TRY_LINK_FUNC(ogg_stream_init, [xt_li
+             )
+         ])
+-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"
+--- a/m4/ogg.m4
++++ b/m4/ogg.m4
+@@ -29,7 +29,7 @@ XIPH_GCC_WARNING([-I$ogg_prefix/include]
+       ])
+ AC_CACHE_CHECK([for libogg], xt_cv_lib_ogg,
+ [dnl
+-OGG_LIBS="-logg"
++OGG_LIBS="-lvorbisidec"
+ #
+ # check if the installed Ogg is sufficiently new.
+@@ -42,7 +42,7 @@ 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>],, 
++    [ AC_TRY_LINK([#include <tremor/ogg.h>],, 
+         [ xt_cv_lib_ogg="pre v1.0, needs updating" ],
+         [ xt_cv_lib_ogg="not found" ])
+     ])
diff --git a/multimedia/icecast/patches/010-fix_libcurl_test_crap.patch b/multimedia/icecast/patches/010-fix_libcurl_test_crap.patch
new file mode 100644 (file)
index 0000000..8da6e33
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/m4/xiph_curl.m4
++++ b/m4/xiph_curl.m4
+@@ -52,7 +52,7 @@ AC_CHECK_HEADERS([curl/curl.h],, curl_ok
+ AC_MSG_CHECKING(for libcurl)
+ if test "$curl_ok" = "yes"
+ then
+-    AC_RUN_IFELSE(AC_LANG_SOURCE([
++    AC_COMPILE_IFELSE(AC_LANG_SOURCE([
+ #include <curl/curl.h>
+ int main()
+ {