Patchwork icecast: new package

login
register
mail settings
Submitter Ezequiel Garcia
Date July 7, 2013, 6:40 p.m.
Message ID <1373222441-2848-1-git-send-email-ezequiel.garcia@free-electrons.com>
Download mbox | patch
Permalink /patch/257365/
State Changes Requested
Headers show

Comments

Ezequiel Garcia - July 7, 2013, 6:40 p.m.
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.

Icecast is distributed under the GNU GPL, version 2. A copy of this
license is included with this software in the COPYING file.

Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
---
I'm no longer working on this stuff because the box I was interested
in hadn't hardware FP support making it impossible to achieve what
I originally planned.

 package/multimedia/Config.in                       |  1 +
 package/multimedia/icecast/Config.in               | 13 +++++++++++
 .../multimedia/icecast/icecast-curl-config.patch   | 12 +++++++++++
 package/multimedia/icecast/icecast.mk              | 25 ++++++++++++++++++++++
 4 files changed, 51 insertions(+)
 create mode 100644 package/multimedia/icecast/Config.in
 create mode 100644 package/multimedia/icecast/icecast-curl-config.patch
 create mode 100644 package/multimedia/icecast/icecast.mk
Thomas Petazzoni - July 7, 2013, 7:42 p.m.
Dear Ezequiel Garcia,

On Sun,  7 Jul 2013 15:40:41 -0300, Ezequiel Garcia wrote:
> 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.
> 
> Icecast is distributed under the GNU GPL, version 2. A copy of this
> license is included with this software in the COPYING file.
> 
> Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
> ---
> I'm no longer working on this stuff because the box I was interested
> in hadn't hardware FP support making it impossible to achieve what
> I originally planned.

Are you still willing to do a few iterations to get it merged?

A couple of comments below.

> diff --git a/package/multimedia/icecast/Config.in b/package/multimedia/icecast/Config.in
> new file mode 100644
> index 0000000..0d2c343
> --- /dev/null
> +++ b/package/multimedia/icecast/Config.in
> @@ -0,0 +1,13 @@
> +config BR2_PACKAGE_ICECAST
> +	bool "icecast"
> +	select BR2_PACKAGE_LIBOGG
> +	select BR2_PACKAGE_LIBVORBIS
> +	select BR2_PACKAGE_LIBXML2
> +	select BR2_PACKAGE_LIBXSLT
> +	help
> +	  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.

We normally add a empty line here, and then one line with the upstream
project URL.

> diff --git a/package/multimedia/icecast/icecast-curl-config.patch b/package/multimedia/icecast/icecast-curl-config.patch
> new file mode 100644
> index 0000000..c193aa9
> --- /dev/null
> +++ b/package/multimedia/icecast/icecast-curl-config.patch
> @@ -0,0 +1,12 @@

We always want a description + Signed-off-by line. We also generally
prefer patches on the configure.in or configure.ac file, rather than on
configure directly. For efficiency reasons (avoid the need of
autoreconfiguring the package), we may accept a patch on configure, but
I would say that configure.in or configure.ac should also be patched
appropriately.

> diff --git a/package/multimedia/icecast/icecast.mk b/package/multimedia/icecast/icecast.mk
> new file mode 100644
> index 0000000..f840be1
> --- /dev/null
> +++ b/package/multimedia/icecast/icecast.mk
> @@ -0,0 +1,25 @@
> +############################################################

80 # are needed now.

> +#
> +# Icecast (Shoutcast compatible streaming server)

Just the package name, not more.

> +#
> +############################################################
> +
> +ICECAST_SITE = http://downloads.xiph.org/releases/icecast
> +ICECAST_VERSION = 2.3.2
> +ICECAST_LICENSE = GPLv2

Have you checked whether is GPLv2 only, or GPLv2 or later? If the
latter, then it should be GPLv2+.

> +ICECAST_LICENSE_FILES = COPYING
> +
> +ICECAST_DEPENDENCIES = host-pkgconf libxslt libxml2 libogg libvorbis libcurl

Why do you have libcurl here? From the rest of your package, it seems
like an optional dependency.

> +ICECAST_CONF_OPT += --with-xslt-config=$(STAGING_DIR)/usr/bin/xslt-config
> +ICECAST_CONF_OPT += --with-ogg=$(STAGING_DIR)/usr
> +ICECAST_CONF_OPT += --with-vorbis=$(STAGING_DIR)/usr

We normally write this like:

ICECAST_CONF_OPT = \
	--with-xslt-config=$(STAGING_DIR)/usr/bin/xslt-config \
	--with-ogg=$(STAGING_DIR)/usr \
	--with-vorbis=$(STAGING_DIR)/usr

> +
> +ifeq ($(BR2_PACKAGE_LIBCURL),y)
> +ICECAST_DEPENDENCIES += libcurl
> +ICECAST_CONF_OPT += --with-curl-config=$(STAGING_DIR)/usr/bin/curl-config
> +else
> +ICECAST_CONF_OPT += --without-curl
> +endif
> +
> +$(eval $(autotools-package))

Otherwise, looks good to me.

Thomas
Ezequiel Garcia - July 7, 2013, 7:57 p.m.
Hi Thomas.

On Sun, Jul 07, 2013 at 09:42:49PM +0200, Thomas Petazzoni wrote:
> Dear Ezequiel Garcia,
> 
> On Sun,  7 Jul 2013 15:40:41 -0300, Ezequiel Garcia wrote:
> > 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.
> > 
> > Icecast is distributed under the GNU GPL, version 2. A copy of this
> > license is included with this software in the COPYING file.
> > 
> > Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
> > ---
> > I'm no longer working on this stuff because the box I was interested
> > in hadn't hardware FP support making it impossible to achieve what
> > I originally planned.
> 
> Are you still willing to do a few iterations to get it merged?
> 

Sure. I was just about to wipe this from my branch, but thought I could
submit in case someone finds it interesting.

> A couple of comments below.
> 
> > diff --git a/package/multimedia/icecast/Config.in b/package/multimedia/icecast/Config.in
> > new file mode 100644
> > index 0000000..0d2c343
> > --- /dev/null
> > +++ b/package/multimedia/icecast/Config.in
> > @@ -0,0 +1,13 @@
> > +config BR2_PACKAGE_ICECAST
> > +	bool "icecast"
> > +	select BR2_PACKAGE_LIBOGG
> > +	select BR2_PACKAGE_LIBVORBIS
> > +	select BR2_PACKAGE_LIBXML2
> > +	select BR2_PACKAGE_LIBXSLT
> > +	help
> > +	  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.
> 
> We normally add a empty line here, and then one line with the upstream
> project URL.
> 

Right.

> > diff --git a/package/multimedia/icecast/icecast-curl-config.patch b/package/multimedia/icecast/icecast-curl-config.patch
> > new file mode 100644
> > index 0000000..c193aa9
> > --- /dev/null
> > +++ b/package/multimedia/icecast/icecast-curl-config.patch
> > @@ -0,0 +1,12 @@
> 
> We always want a description + Signed-off-by line. We also generally
> prefer patches on the configure.in or configure.ac file, rather than on
> configure directly. For efficiency reasons (avoid the need of
> autoreconfiguring the package), we may accept a patch on configure, but
> I would say that configure.in or configure.ac should also be patched
> appropriately.
> 

Right. I'll try that.

Also, please note that I tried to patch this on 2.3.3 but failed
(don't remember why). I found this fix in OpenWRT, if I remember
correctly.

And this the reason why I had to stick to 2.3.2. I remember someone
complained about being *very* old, but unless we can get over this
silly configure bug, we'll have to stick to 2.3.2.

> > diff --git a/package/multimedia/icecast/icecast.mk b/package/multimedia/icecast/icecast.mk
> > new file mode 100644
> > index 0000000..f840be1
> > --- /dev/null
> > +++ b/package/multimedia/icecast/icecast.mk
> > @@ -0,0 +1,25 @@
> > +############################################################
> 
> 80 # are needed now.
> 

Ok.

> > +#
> > +# Icecast (Shoutcast compatible streaming server)
> 
> Just the package name, not more.
> 

Ok.

> > +#
> > +############################################################
> > +
> > +ICECAST_SITE = http://downloads.xiph.org/releases/icecast
> > +ICECAST_VERSION = 2.3.2
> > +ICECAST_LICENSE = GPLv2
> 
> Have you checked whether is GPLv2 only, or GPLv2 or later? If the
> latter, then it should be GPLv2+.
> 

I'll check.

> > +ICECAST_LICENSE_FILES = COPYING
> > +
> > +ICECAST_DEPENDENCIES = host-pkgconf libxslt libxml2 libogg libvorbis libcurl
> 
> Why do you have libcurl here? From the rest of your package, it seems
> like an optional dependency.
> 

Right.

> > +ICECAST_CONF_OPT += --with-xslt-config=$(STAGING_DIR)/usr/bin/xslt-config
> > +ICECAST_CONF_OPT += --with-ogg=$(STAGING_DIR)/usr
> > +ICECAST_CONF_OPT += --with-vorbis=$(STAGING_DIR)/usr
> 
> We normally write this like:
> 
> ICECAST_CONF_OPT = \
> 	--with-xslt-config=$(STAGING_DIR)/usr/bin/xslt-config \
> 	--with-ogg=$(STAGING_DIR)/usr \
> 	--with-vorbis=$(STAGING_DIR)/usr
> 

Of course.

> > +
> > +ifeq ($(BR2_PACKAGE_LIBCURL),y)
> > +ICECAST_DEPENDENCIES += libcurl
> > +ICECAST_CONF_OPT += --with-curl-config=$(STAGING_DIR)/usr/bin/curl-config
> > +else
> > +ICECAST_CONF_OPT += --without-curl
> > +endif
> > +
> > +$(eval $(autotools-package))
> 
> Otherwise, looks good to me.
> 

Thanks for the feedback!

Patch

diff --git a/package/multimedia/Config.in b/package/multimedia/Config.in
index 925051e..21cb64c 100644
--- a/package/multimedia/Config.in
+++ b/package/multimedia/Config.in
@@ -26,6 +26,7 @@  source "package/multimedia/gst1-plugins-bad/Config.in"
 source "package/multimedia/gst1-plugins-ugly/Config.in"
 source "package/multimedia/gst-omx/Config.in"
 
+source "package/multimedia/icecast/Config.in"
 source "package/multimedia/lame/Config.in"
 source "package/multimedia/libvpx/Config.in"
 source "package/multimedia/madplay/Config.in"
diff --git a/package/multimedia/icecast/Config.in b/package/multimedia/icecast/Config.in
new file mode 100644
index 0000000..0d2c343
--- /dev/null
+++ b/package/multimedia/icecast/Config.in
@@ -0,0 +1,13 @@ 
+config BR2_PACKAGE_ICECAST
+	bool "icecast"
+	select BR2_PACKAGE_LIBOGG
+	select BR2_PACKAGE_LIBVORBIS
+	select BR2_PACKAGE_LIBXML2
+	select BR2_PACKAGE_LIBXSLT
+	help
+	  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.
diff --git a/package/multimedia/icecast/icecast-curl-config.patch b/package/multimedia/icecast/icecast-curl-config.patch
new file mode 100644
index 0000000..c193aa9
--- /dev/null
+++ b/package/multimedia/icecast/icecast-curl-config.patch
@@ -0,0 +1,12 @@ 
+--- icecast-2.3.2/configure	2008-09-29 20:11:37.000000000 +0200
++++ icecast-2.3.2.new/configure	2008-09-29 20:12:00.000000000 +0200
+@@ -24198,8 +24198,7 @@
+   { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+ See \`config.log' for more details." >&5
+ echo "$as_me: error: cannot run test program while cross compiling
+-See \`config.log' for more details." >&2;}
+-   { (exit 1); exit 1; }; }
++See \`config.log' for more details." >&2;} }
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
diff --git a/package/multimedia/icecast/icecast.mk b/package/multimedia/icecast/icecast.mk
new file mode 100644
index 0000000..f840be1
--- /dev/null
+++ b/package/multimedia/icecast/icecast.mk
@@ -0,0 +1,25 @@ 
+############################################################
+#
+# Icecast (Shoutcast compatible streaming server)
+#
+############################################################
+
+ICECAST_SITE = http://downloads.xiph.org/releases/icecast
+ICECAST_VERSION = 2.3.2
+ICECAST_LICENSE = GPLv2
+ICECAST_LICENSE_FILES = COPYING
+
+ICECAST_DEPENDENCIES = host-pkgconf libxslt libxml2 libogg libvorbis libcurl
+
+ICECAST_CONF_OPT += --with-xslt-config=$(STAGING_DIR)/usr/bin/xslt-config
+ICECAST_CONF_OPT += --with-ogg=$(STAGING_DIR)/usr
+ICECAST_CONF_OPT += --with-vorbis=$(STAGING_DIR)/usr
+
+ifeq ($(BR2_PACKAGE_LIBCURL),y)
+ICECAST_DEPENDENCIES += libcurl
+ICECAST_CONF_OPT += --with-curl-config=$(STAGING_DIR)/usr/bin/curl-config
+else
+ICECAST_CONF_OPT += --without-curl
+endif
+
+$(eval $(autotools-package))