diff mbox

[v13,1/1] squeezelite: new package

Message ID 201509281246.t8SCktDe022277@ms-omx02.plus.so-net.ne.jp
State Superseded
Headers show

Commit Message

kei-k@ca2.so-net.ne.jp Sept. 28, 2015, 12:46 p.m. UTC
Dear, all.

Please review attached patch.

I've fixed SQUEEZELITE_BUILD_CMDS issue.
I hope this will be the final version, and be pulled up.

Signed-off-by: Hiroshi Kawashima <kei-k@ca2.so-net.ne.jp>
---
v12 -> v13
- change SQUEEZELITE_SITE to github (mine), cloned from original
  google code site (original site is unstable to fetch).
- change to use $(TARGET_CONFIGURE_OPTS) on SQUEEZELITE_BUILD_CMDS to
  be suitable for buildroot make system.
- to accomplish above, change to generate buildroot suitable Makefile from
  original squeezelite's Makefile (using 'override' directive for CFLAGS,
  LDFLAGS).

v11 -> v12
- remove -DRESAMPLE_MP, because libsoxr is compiled without
  openMP support in buildroot, so meaningless for now.
- add -DLINKALL to resolve symbols in optional libraries (libsoxr, etc).
- add more configuration options : ffmpeg, DSD, Visualizer.
  lirc support is not included for now, because more work will be
  necessary to use it (eg: modifying package/lirc-tools to add
  LIRC_TOOLS_INSTALL_STAGING = YES).
---
 package/Config.in                  |    1 +
 package/squeezelite/Config.in      |   46 ++++++++++++++++++++++++++++++++
 package/squeezelite/squeezelite.mk |   51 ++++++++++++++++++++++++++++++++++++
 3 files changed, 98 insertions(+), 0 deletions(-)
 create mode 100644 package/squeezelite/Config.in
 create mode 100644 package/squeezelite/squeezelite.mk

Comments

Thomas Petazzoni Sept. 28, 2015, 9:03 p.m. UTC | #1
Hello,

On Mon, 28 Sep 2015 21:46:54 +0900, kei-k@ca2.so-net.ne.jp wrote:
> Dear, all.
> 
> Please review attached patch.
> 
> I've fixed SQUEEZELITE_BUILD_CMDS issue.
> I hope this will be the final version, and be pulled up.

Unfortunately you are still not following the good comments from
Vicente. Your commit log should *not* contain any "personal" messages.
All "personal" messages should go below the "---" sign.

> diff --git a/package/squeezelite/Config.in b/package/squeezelite/Config.in
> new file mode 100644
> index 0000000..b4af3c8
> --- /dev/null
> +++ b/package/squeezelite/Config.in
> @@ -0,0 +1,46 @@
> +config BR2_PACKAGE_SQUEEZELITE
> +	bool "squeezelite"
> +	depends on BR2_USE_WCHAR # flac
> +	depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib
> +	depends on BR2_USE_MMU # mpg123
> +	select BR2_PACKAGE_ALSA_LIB
> +	select BR2_PACKAGE_FLAC
> +	select BR2_PACKAGE_LIBMAD
> +	select BR2_PACKAGE_LIBVORBIS
> +	select BR2_PACKAGE_FAAD2
> +	select BR2_PACKAGE_MPG123
> +	help
> +	  Logitech Media Server client
> +
> +	  https://code.google.com/p/squeezelite/
> +
> +if BR2_PACKAGE_SQUEEZELITE
> +
> +config BR2_PACKAGE_SQUEEZELITE_FF

Option should be suffixed _FFMPEG

> 	bool "Enable wma, alac decoding (by ffmpeg)"

"(by ffmpeg)" part not needed.

Also, please use:

	Enable WMA and ALAC decoding

> +	default y
> +	select BR2_PACKAGE_FFMPEG
> +	help
> +	  Enable wma, alac decoding

The help is useless here, so get rid of it.

> +
> +config BR2_PACKAGE_SQUEEZELITE_DSD
> +	bool "Enable dsd decoding"

Please use:

	"Enable Direct Speech Decoding"

or at least put DSD in capital letters.

> +	help
> +	  Enable built-in DSD decoder
> +
> +config BR2_PACKAGE_SQUEEZELITE_RESAMPLE
> +	bool "Enable resampling function"

Rather than "function" use "support"

> +	select BR2_PACKAGE_LIBSOXR
> +	help
> +	  Enable resampling function

Again help text useless if it's just copy/pasting the prompt of the
option.

> +
> +config BR2_PACKAGE_SQUEEZELITE_VISEXPORT
> +	bool "Enable Visualiser support"

	"Enable visualiser support"

(no need for a capital V)

> +	help
> +	  Enable Visualiser support

Useless help, should be removed.

> +
> +endif
> +
> +comment "squeezelite needs a toolchain w/ wchar, threads"
> +	depends on BR2_USE_MMU
> +	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
> diff --git a/package/squeezelite/squeezelite.mk b/package/squeezelite/squeezelite.mk
> new file mode 100644
> index 0000000..f64da6a
> --- /dev/null
> +++ b/package/squeezelite/squeezelite.mk
> @@ -0,0 +1,51 @@
> +################################################################################
> +#
> +# squeezelite
> +#
> +################################################################################
> +
> +SQUEEZELITE_VERSION = v1.8
> +SQUEEZELITE_SITE = https://github.com/robadenshi/squeezelite
> +SQUEEZELITE_SITE_METHOD = git
> +SQUEEZELITE_LICENSE = GPLv3
> +SQUEEZELITE_LICENSE_FILE = LICENSE.txt
> +SQUEEZELITE_DEPENDENCIES = alsa-lib flac libmad libvorbis faad2 mpg123
> +SQUEEZELITE_MAKE_OPTS = -DLINKALL
> +SQUEEZELITE_MAKEFILE  = Makefile.buildroot
> +
> +ifeq ($(BR2_PACKAGE_SQUEEZELITE_FF),y)
> +SQUEEZELITE_DEPENDENCIES += ffmpeg
> +SQUEEZELITE_MAKE_OPTS += -DFFMPEG
> +endif
> +
> +ifeq ($(BR2_PACKAGE_SQUEEZELITE_DSD),y)
> +SQUEEZELITE_MAKE_OPTS += -DDSD
> +endif
> +
> +ifeq ($(BR2_PACKAGE_SQUEEZELITE_RESAMPLE),y)
> +SQUEEZELITE_DEPENDENCIES += libsoxr
> +SQUEEZELITE_MAKE_OPTS += -DRESAMPLE
> +endif
> +
> +ifeq ($(BR2_PACKAGE_SQUEEZELITE_VISEXPORT),y)
> +SQUEEZELITE_MAKE_OPTS += -DVISEXPORT
> +endif
> +
> +define SQUEEZELITE_CONFIGURE_CMDS
> +	sed -e '1aoverride CFLAGS += $$(OPTS)' \
> +		-e 's/LDFLAGS +=/override LDFLAGS +=/' \
> +		-e 's/LDFLAGS ?=/override LDFLAGS +=/' \
> +		$(@D)/Makefile >$(@D)/$(SQUEEZELITE_MAKEFILE)
> +endef

Don't do this. Create a patch for the Makefile that does the necessary
changes.

> +
> +define SQUEEZELITE_BUILD_CMDS
> +	$(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \
> +		OPTS="$(SQUEEZELITE_MAKE_OPTS)" \
> +		-f $(SQUEEZELITE_MAKEFILE) -C $(@D) all
> +endef
> +
> +define SQUEEZELITE_INSTALL_TARGET_CMDS
> +	$(INSTALL) -D -m 0755 $(@D)/squeezelite $(TARGET_DIR)/usr/bin

You must use a full path as the destination, i.e:

	$(TARGET_DIR)/usr/bin/squeezelite

Can you fix the above issues and send an updated version? Please be
careful to take into account all the comments. If you have some doubts
about certain comments, simply ask questions as a reply to this e-mail
rather than sending many iterations of the patch.

Thanks a lot!

Thomas
diff mbox

Patch

diff --git a/package/Config.in b/package/Config.in
index 0e0c5cd..7c5a43a 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -33,6 +33,7 @@  menu "Audio and video applications"
 	source "package/opus-tools/Config.in"
 	source "package/pulseaudio/Config.in"
 	source "package/sox/Config.in"
+	source "package/squeezelite/Config.in"
 	source "package/tidsp-binaries/Config.in"
 	source "package/tovid/Config.in"
 	source "package/tstools/Config.in"
diff --git a/package/squeezelite/Config.in b/package/squeezelite/Config.in
new file mode 100644
index 0000000..b4af3c8
--- /dev/null
+++ b/package/squeezelite/Config.in
@@ -0,0 +1,46 @@ 
+config BR2_PACKAGE_SQUEEZELITE
+	bool "squeezelite"
+	depends on BR2_USE_WCHAR # flac
+	depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib
+	depends on BR2_USE_MMU # mpg123
+	select BR2_PACKAGE_ALSA_LIB
+	select BR2_PACKAGE_FLAC
+	select BR2_PACKAGE_LIBMAD
+	select BR2_PACKAGE_LIBVORBIS
+	select BR2_PACKAGE_FAAD2
+	select BR2_PACKAGE_MPG123
+	help
+	  Logitech Media Server client
+
+	  https://code.google.com/p/squeezelite/
+
+if BR2_PACKAGE_SQUEEZELITE
+
+config BR2_PACKAGE_SQUEEZELITE_FF
+	bool "Enable wma, alac decoding (by ffmpeg)"
+	default y
+	select BR2_PACKAGE_FFMPEG
+	help
+	  Enable wma, alac decoding
+
+config BR2_PACKAGE_SQUEEZELITE_DSD
+	bool "Enable dsd decoding"
+	help
+	  Enable built-in DSD decoder
+
+config BR2_PACKAGE_SQUEEZELITE_RESAMPLE
+	bool "Enable resampling function"
+	select BR2_PACKAGE_LIBSOXR
+	help
+	  Enable resampling function
+
+config BR2_PACKAGE_SQUEEZELITE_VISEXPORT
+	bool "Enable Visualiser support"
+	help
+	  Enable Visualiser support
+
+endif
+
+comment "squeezelite needs a toolchain w/ wchar, threads"
+	depends on BR2_USE_MMU
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/squeezelite/squeezelite.mk b/package/squeezelite/squeezelite.mk
new file mode 100644
index 0000000..f64da6a
--- /dev/null
+++ b/package/squeezelite/squeezelite.mk
@@ -0,0 +1,51 @@ 
+################################################################################
+#
+# squeezelite
+#
+################################################################################
+
+SQUEEZELITE_VERSION = v1.8
+SQUEEZELITE_SITE = https://github.com/robadenshi/squeezelite
+SQUEEZELITE_SITE_METHOD = git
+SQUEEZELITE_LICENSE = GPLv3
+SQUEEZELITE_LICENSE_FILE = LICENSE.txt
+SQUEEZELITE_DEPENDENCIES = alsa-lib flac libmad libvorbis faad2 mpg123
+SQUEEZELITE_MAKE_OPTS = -DLINKALL
+SQUEEZELITE_MAKEFILE  = Makefile.buildroot
+
+ifeq ($(BR2_PACKAGE_SQUEEZELITE_FF),y)
+SQUEEZELITE_DEPENDENCIES += ffmpeg
+SQUEEZELITE_MAKE_OPTS += -DFFMPEG
+endif
+
+ifeq ($(BR2_PACKAGE_SQUEEZELITE_DSD),y)
+SQUEEZELITE_MAKE_OPTS += -DDSD
+endif
+
+ifeq ($(BR2_PACKAGE_SQUEEZELITE_RESAMPLE),y)
+SQUEEZELITE_DEPENDENCIES += libsoxr
+SQUEEZELITE_MAKE_OPTS += -DRESAMPLE
+endif
+
+ifeq ($(BR2_PACKAGE_SQUEEZELITE_VISEXPORT),y)
+SQUEEZELITE_MAKE_OPTS += -DVISEXPORT
+endif
+
+define SQUEEZELITE_CONFIGURE_CMDS
+	sed -e '1aoverride CFLAGS += $$(OPTS)' \
+		-e 's/LDFLAGS +=/override LDFLAGS +=/' \
+		-e 's/LDFLAGS ?=/override LDFLAGS +=/' \
+		$(@D)/Makefile >$(@D)/$(SQUEEZELITE_MAKEFILE)
+endef
+
+define SQUEEZELITE_BUILD_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \
+		OPTS="$(SQUEEZELITE_MAKE_OPTS)" \
+		-f $(SQUEEZELITE_MAKEFILE) -C $(@D) all
+endef
+
+define SQUEEZELITE_INSTALL_TARGET_CMDS
+	$(INSTALL) -D -m 0755 $(@D)/squeezelite $(TARGET_DIR)/usr/bin
+endef
+
+$(eval $(generic-package))