Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 73 additions & 0 deletions yocto/recipes-conectivity/ola/ola_git.bb
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
SUMMARY = "Open Lighting Architecture - OLA"
DESCRIPTION = "The Open Lighting Architecture (OLA) is part of the Open Lighting Project and provides applications with a mechanism to send and receive DMX512 & RDM commands using hardware devices and DMX over IP protocols. This enables software lighting controllers to communicate with hardware either via Ethernet or traditional DMX512 networks. \
OLA can also convert DMX512 data sent using DMX over IP protocols from one format to another, allowing devices from different manufacturers to interact with one another. For example a Strand Lighting Console using ShowNet can send DMX512 to an Enttec EtherGate. When combined with a physical DMX interface such as the DMX USB Pro, OLA can send and receive data from wired DMX512 networks."

LICENSE = "GPLv2 & LGPLv2.1"
LIC_FILES_CHKSUM = "file://LICENCE;md5=7aa5f01584d845ad733abfa9f5cad2a1"

#DEPENDS_class-nativesdk = "bison libusb1 protobuf protobuf-native pkgconfig-native ossp-uuid ola-native "
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this relevant still? Would this be for a native build?

Copy link
Author

@arielmol arielmol Apr 25, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

UPDATED: Read below

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That line is optional for when you need an sdk

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should it be uncommented though then, there seems to be a mix of both referring to nativesdk throughout the file.

DEPENDS_class-target = "bison libmicrohttpd avahi libusb1 libftdi cppunit protobuf protobuf-native ola-native"
DEPENDS_class-native = "protobuf bison-native flex-native pkgconfig-native ossp-uuid-native"

PV = "0.10.6"

# 0.10.6 tag won't build, this rev has protobuf patches
SRCREV = "00dc86a48ec4c528cec90166435b440f283a9c86"
SRC_URI = "git://github.com/OpenLightingProject/ola.git;protocol=https"
Comment on lines +12 to +16
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should be able to build 0.10.9 cleanly now, is this the right sort of syntax?

Suggested change
PV = "0.10.6"
# 0.10.6 tag won't build, this rev has protobuf patches
SRCREV = "00dc86a48ec4c528cec90166435b440f283a9c86"
SRC_URI = "git://github.com/OpenLightingProject/ola.git;protocol=https"
PV = "0.10.9"
SRC_URI = "git://github.com/OpenLightingProject/ola.git;protocol=https"


S = "${WORKDIR}/git"
B = "${WORKDIR}/git"

inherit autotools-brokensep relative_symlinks
# autotools-brokensep
# forces in-source building (ola has bugs for out-of-tree builds).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think/hope we've fixed this too now...

# See: https://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html#migration-1.7-autotools-class-changes
#
# relative_symlinks
# Absolute symbolic links (symlinks) within staged files are no longer permitted and now trigger an error.
# inherit relative_symlinks within the recipe to turn those absolute symlinks into relative
# https://www.yoctoproject.org/docs/2.4/ref-manual/ref-manual.html#migration-2.3-absolute-symlinks

#EXTRA_OECONF = " --disable-unittests --disable-rdm-tests --disable-python-libs --disable-java-libs --disable-all-plugins"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this line redundant/part of testing?

EXTRA_OECONF = " --disable-unittests --disable-rdm-tests --disable-java-libs "

# nativesdk is for the toolchain, only libola and ola_common are required, all plugins are dynamic
EXTRA_OECONF_append_class-nativesdk = " --with-ola-protoc-plugin=${STAGING_BINDIR_NATIVE}/ola_protoc_plugin \
--disable-all-plugins --disable-e133 --disable-python-libs --disable-examples --disable-http"


# native is for the strange ola_protoc_plugin required at build time
EXTRA_OECONF_append_class-native = " --disable-all-plugins --disable-e133 --disable-python-libs --disable-examples --disable-http"

# target are the real config options
EXTRA_OECONF_append_class-target = " --with-ola-protoc-plugin=${STAGING_BINDIR_NATIVE}/ola_protoc_plugin --disable-python-libs\
--enable-http --enable-dummy --enable-gpio --enable-opendmx --enable-e131 \
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You don't explicitly need to enable all the options. Although it will ensure configure fails if some of them aren't available for some reason.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In yocto anyone would be able to disable them, but disabling them will make ola build transparently but be useless as will have no plugins.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, if we need to explicitly enable all plugins in here we ought to add a note to ensure we add new ones here when they're added to https://github.com/OpenLightingProject/ola/blob/d34d4f13d954894e76bf024743e6519696813c29/configure.ac#L892-915

--enable-opendmx --enable-usbdmx --enable-usbpro --enable-spi --enable-spidmx \
--enable-artnet --enable-openpixelcontrol --enable-renard --enable-kinet \
--enable-nanoleaf --enable-karate --enable-espnet --enable-milinst --enable-pathport \
--enable-sandnet --enable-shownet --enable-stageprofi \
--enable-e133 \
--enable-examples "

# -fvisibility-inlines-hidden breaks stuff
CXXFLAGS = "${CFLAGS}"

# The code is not Werror safe
do_configure_prepend() {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

--disable-fatal-warnings will do this, without needing to be quite so hacky. Although we try our best to fix the issues, so ideally can you tell us what errors you're getting and we'll try and fix or bypass them before they become critical in future.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You mean as an argument for ./configure ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct @desert .

But please either comment here, or pastebin the errors and we can try adn fix them properly.

sed -i -e 's:-Werror::g' ${S}/configure.ac
sed -i -e 's:-Werror::g' ${S}/Makefile.am
}

do_install_append_class-native() {
install -d ${D}${bindir}
install -m 0755 ${B}/protoc/ola_protoc_plugin ${D}${bindir}
}

FILES_${PN}-dbg += "${libdir}/*/.debug"
FILES_${PN} += "${datadir}/olad ${libdir}/olad/*.so.*"
FILES_${PN}-staticdev += "${libdir}/olad/*.a"
FILES_${PN}-dev += "${libdir}/olad/*.la ${libdir}/olad/*.so"

RDEPENDS_${PN}-dev = ""

BBCLASSEXTEND = "native nativesdk"