[Buildroot] [PATCH 1/1] Add package ola (open lighting architecture)

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Sun Jul 28 15:50:49 UTC 2013


Dear David Skok,

Thanks for your contribution! A few comments below.

On Mon, 24 Jun 2013 14:39:04 -0400, David Skok wrote:

> @@ -674,6 +674,7 @@ source "package/empty/Config.in"
>  source "package/googlefontdirectory/Config.in"
>  source "package/mcrypt/Config.in"
>  source "package/mobile-broadband-provider-info/Config.in"
> +source "package/ola/Config.in"

Isn't there a better place than Miscalleneous for this package? Maybe
Hardware handling?

> diff --git a/package/ola/Config.in b/package/ola/Config.in
> new file mode 100644
> index 0000000..41fdefb
> --- /dev/null
> +++ b/package/ola/Config.in
> @@ -0,0 +1,162 @@
> +config BR2_PACKAGE_OLA
> +	bool "open lighting architecture"
> +        select BR2_PACKAGE_PROTOBUF

Indentation issue, you should also inherit from protobuf dependencies,
i.e:

	depends on BR2_INSTALL_LIBSTDCPP # protobuf

> +	select BR2_PACKAGE_UTIL_LINUX_LIBUUID

You should also select BR2_PACKAGE_UTIL_LINUX, and you should inherit
from the dependencies of util-linux, i.e:

	depends on BR2_LARGEFILE # util-linux
	depends on BR2_USE_WCHAR # util-linux

> +	help
> +	  Open Lighting Architecture provides applications
> +          with a mechanism to send and receive DMX512 & RDM
> +          commands using hardware devices and DMX over IP protocols.

Indentation issue: all lines should be indented with one tab + two
spaces.

> +
> +	  http://www.opendmx.net/index.php/OLA
> +
> +comment "OLA requires a toolchain with C++ support enabled"
> +	depends on !BR2_INSTALL_LIBSTDCPP

Good, but please also mention wchar and largefile as they are needed
for util-linux.

> +comment "OLA functionality desired may require a USB driver"
> +	depends on !BR2_PACKAGE_LIBFTDI && !BR2_PACKAGE_LIBUSB

You probably want to put this comment next to the options that actually
need either libftdi or libusb.

> +if BR2_PACKAGE_OLA
> +
> +choice
> +
> +prompt "Version"
> +
> +config BR2_PACKAGE_OLA_RELEASE
> +	bool "Release"
> +	help
> +	  OLA release version.
> +
> +config BR2_PACKAGE_OLA_GIT_VER
> +	bool "Git"
> +	help
> +	  OLA from git.
> +
> +endchoice

We typically don't provide such a version choice. Just package the
latest stable version, i.e 0.8.31 apparently.

> +config BR2_PACKAGE_OLA_RELEASE_VER
> +	string "release version"
> +	default 0.8.31
> +	depends on BR2_PACKAGE_OLA_RELEASE
> +	help
> +	  OLA version
> +
> +menu "OLA Bindings and Interface"

Interfaces

> +
> +config BR2_PACKAGE_OLA_WEB
> +	bool "http interface"
> +        select BR2_PACKAGE_LIBMICROHTTPD

Indentation issue.

> +	help
> +	  Build OLA with browser interface.
> +
> +config BR2_PACKAGE_OLA_SLP
> +	bool "slp tools"
> +	help
> +	  Build OLA with slp tools.
> +
> +config BR2_PACKAGE_OLA_BINDING_PYTHON

BR2_PACKAGE_OLA_PYTHON_BINDINGS seems like a better name.

> +	bool "python bindings"
> +        select BR2_PACKAGE_PYTHON

Indentation issue.

> +	select BR2_PACKAGE_PYTHON_PROTOBUF
> +	help
> +	  Build OLA with support for the Python language.
> +
> +endmenu
> +
> +
> +menu "Tests and Examples"
> +
> +config BR2_PACKAGE_OLA_EXAMPLES
> +	bool "examples"
> +	select BR2_PACKAGE_NCURSES
> +	help
> +	  Build OLA examples.
> +
> +config BR2_PACKAGE_OLA_RDM_TESTS
> +	bool "rdm tests"
> +	depends on BR2_PACKAGE_OLA_BINDING_PYTHON
> +	help
> +	  Build OLA RDM tests.
> +
> +endmenu
> +
> +menu "OLA Plugin selections"
> +
> +config BR2_PACKAGE_OLA_PLUGIN_ARTNET
> +	bool "artnet"
> +        default y

Indentation issue.

> +	help
> +	  Build Artnet plugin for OLA.
> +
> +config BR2_PACKAGE_OLA_PLUGIN_DUMMY
> +	bool "dummy"
> +        default y

Ditto.

> +	help
> +	  Build Dummy plugin for OLA.
> +
> +config BR2_PACKAGE_OLA_PLUGIN_E131
> +	bool "acn E131"
> +        default y
> +	help
> +	  Build ACN E131 plugin for OLA.
> +
> +config BR2_PACKAGE_OLA_PLUGIN_ESPNET
> +	bool "espnet"
> +	help
> +	  Build EspNet plugin for OLA.
> +
> +config BR2_PACKAGE_OLA_PLUGIN_KINET
> +	bool "kinet"
> +	help
> +	  Build KiNet plugin for OLA.
> +
> +config BR2_PACKAGE_OLA_PLUGIN_OPENDMX
> +	bool "DMX4Linux"
> +	help
> +	  Build DMX4Linux plugin for OLA.
> +
> +config BR2_PACKAGE_OLA_PLUGIN_PATHPORT
> +	bool "pathport"
> +	help
> +	  Build Pathport plugin for OLA.
> +
> +config BR2_PACKAGE_OLA_PLUGIN_SANDNET
> +	bool "sandnet"
> +	help
> +	  Build SandNet plugin for OLA.
> +
> +config BR2_PACKAGE_OLA_PLUGIN_SHOWNET
> +	bool "shownet"
> +	help
> +	  Build ShowNet plugin for OLA.
> +
> +config BR2_PACKAGE_OLA_PLUGIN_KARATE
> +	bool "karate"
> +	help
> +	  Build Karate plugin for OLA.
> +
> +config BR2_PACKAGE_OLA_PLUGIN_SPI
> +	bool "spi"
> +	help
> +	  Build SPI plugin for OLA.
> +
> +config BR2_PACKAGE_OLA_PLUGIN_STAGEPROFI
> +	bool "stageprofi"
> +	depends on BR2_PACKAGE_LIBFTDI || BR2_PACKAGE_LIBUSB
> +	help
> +	  Build StageProfi plugin for OLA.
> +
> +config BR2_PACKAGE_OLA_PLUGIN_USBPRO
> +	bool "usbpro"
> +	depends on BR2_PACKAGE_LIBFTDI || BR2_PACKAGE_LIBUSB
> +	help
> +	  Build UsbPro plugin for OLA.
> +
> +config BR2_PACKAGE_OLA_PLUGIN_OSC
> +	bool "osc"
> +	select BR2_PACKAGE_LIBLO
> +	help
> +	  Build Open sound control plugin for OLA.
> +
> +endmenu
> +
> +endif
> diff --git a/package/ola/ola.mk b/package/ola/ola.mk
> new file mode 100644
> index 0000000..3fb5ace
> --- /dev/null
> +++ b/package/ola/ola.mk
> @@ -0,0 +1,168 @@
> +#############################################################

80 # are now needed.

> +#
> +# ola - open lighting architecture
> +#
> +# Open Lighting Architecture provides applications
> +# with a mechanism to send and receive DMX512 & RDM
> +# commands using hardware devices and DMX over IP protocols.

Just put the package name, i.e 'ola'.

> +#
> +#############################################################
> +
> +ifeq ($(BR2_PACKAGE_OLA_RELEASE),y)
> +OLA_VERSION = $(call qstrip,$(BR2_PACKAGE_OLA_RELEASE_VER))
> +OLA_SOURCE = ola-${OLA_VERSION}.tar.gz

We use $(...) and not ${...}.

> +OLA_SITE = https://open-lighting.googlecode.com/files
> +else
> +OLA_VERSION = master
> +OLA_SITE = https://code.google.com/p/open-lighting/
> +OLA_SITE_METHOD = git
> +endif

As suggested above, just support the latest stable release.

> +
> +OLA_AUTORECONF = YES

Please add a comment above this line that explains why
autoreconfiguration is needed. Most likely, with a tarball release, it
shouldn't be needed.

> +OLA_LICENSE = LGPLv2.1+
> +OLA_LICENSE_FILES = LICENSE COPYING.LGPLv2.1
> +
> +# util-linux provides uuid lib
> +OLA_DEPENDENCIES += protobuf util-linux

Just '=' since it is the first OLA_DEPENDENCIES line.

> +
> +OLA_CONF_OPT = --prefix=/usr

Not needed, that's the default.

> +OLA_CONF_OPT += --disable-gcov
> +OLA_CONF_OPT += --disable-tcmalloc
> +OLA_CONF_OPT += --disable-unittests
> +OLA_CONF_OPT += --disable-root-check
> +OLA_CONF_OPT += --disable-java-libs

Please do in one line:

OLA_CONF_OPT = \
	--disable-gcov \
	--disable-tcmalloc \
	--disable-unittests \
	--disable-root-check \
	--disable-java-libs


> +# sets where to find python libs built for target and required by ola
> +OLA_CONF_ENV =
> PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages
> +OLA_MAKE_ENV =
> PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages
> +
> +## OLA Bindings and Interface selections
> +
> +ifeq ($(BR2_PACKAGE_OLA_WEB),y)
> +OLA_CONF_OPT += --enable-http
> +OLA_DEPENDENCIES += libmicrohttpd
> +else
> +OLA_CONF_OPT += --disable-http
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OLA_SLP),y)
> +OLA_CONF_OPT += --enable-slp
> +else
> +OLA_CONF_OPT += --disable-slp
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OLA_BINDING_PYTHON),y)
> +OLA_CONF_OPT += --enable-python-libs
> +OLA_DEPENDENCIES += python python-protobuf
> +else
> +OLA_CONF_OPT += --disable-python-libs
> +endif
> +
> +## OLA Examples and Tests
> +
> +ifeq ($(BR2_PACKAGE_OLA_EXAMPLES),y)
> +OLA_CONF_OPT += --enable-examples
> +OLA_DEPENDENCIES += ncurses
> +else
> +OLA_CONF_OPT += --disable-examples
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OLA_RDM_TESTS),y)
> +OLA_CONF_OPT += --enable-rdm-tests
> +else
> +OLA_CONF_OPT += --disable-rdm-tests
> +endif
> +
> +## OLA Plugin selections
> +
> +ifeq ($(BR2_PACKAGE_OLA_PLUGIN_ARTNET),y)
> +OLA_CONF_OPT += --enable-artnet
> +else
> +OLA_CONF_OPT += --disable-artnet
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OLA_PLUGIN_DUMMY),y)
> +OLA_CONF_OPT += --enable-dummy
> +else
> +OLA_CONF_OPT += --disable-dummy
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OLA_PLUGIN_E131),y)
> +OLA_CONF_OPT += --enable-e131
> +else
> +OLA_CONF_OPT += --disable-e131
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OLA_PLUGIN_ESPNET),y)
> +OLA_CONF_OPT += --enable-espnet
> +else
> +OLA_CONF_OPT += --disable-espnet
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OLA_PLUGIN_KINET),y)
> +OLA_CONF_OPT += --enable-kinet
> +else
> +OLA_CONF_OPT += --disable-kinet
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OLA_PLUGIN_OPENDMX),y)
> +OLA_CONF_OPT += --enable-opendmx
> +else
> +OLA_CONF_OPT += --disable-opendmx
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OLA_PLUGIN_PATHPORT),y)
> +OLA_CONF_OPT += --enable-pathport
> +else
> +OLA_CONF_OPT += --disable-pathport
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OLA_PLUGIN_SANDNET),y)
> +OLA_CONF_OPT += --enable-sandnet
> +else
> +OLA_CONF_OPT += --disable-sandnet
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OLA_PLUGIN_SHOWNET),y)
> +OLA_CONF_OPT += --enable-shownet
> +else
> +OLA_CONF_OPT += --disable-shownet
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OLA_PLUGIN_KARATE),y)
> +OLA_CONF_OPT += --enable-karate
> +else
> +OLA_CONF_OPT += --disable-karate
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OLA_PLUGIN_SPI),y)
> +OLA_CONF_OPT += --enable-spi
> +else
> +OLA_CONF_OPT += --disable-spi
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OLA_PLUGIN_STAGEPROFI),y)
> +OLA_CONF_OPT += --enable-stageprofi
> +else
> +OLA_CONF_OPT += --disable-stageprofi
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OLA_PLUGIN_USBPRO),y)
> +OLA_CONF_OPT += --enable-usbpro
> +else
> +OLA_CONF_OPT += --disable-usbpro
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OLA_PLUGIN_OSC),y)
> +OLA_CONF_OPT += --enable-osc
> +OLA_DEPENDENCIES += liblo
> +else
> +OLA_CONF_OPT += --disable-osc
> +endif
> +
> +$(eval $(autotools-package))
> +
> +
> +
> +
> +

Unneeded empty lines at end of file.

Could you rework your patch to take into account those comments, and
repost an updated version?

Thanks a lot!

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com


More information about the buildroot mailing list