Hello,
I still try to include the tr-50 library into my build, which is an
autotools manages library. The code is fetch from git by bitbake.
The good thing: it builds, the compilation of the library itself gives
no errors and after it I find the .so files several times in the build
directory.
However, the packaging does not work as intended:
It builds the dev and dbg Versions of the package, but not the "normal"
version of the package:
ls
./tmp/work/armv7a-vfp-neon-dey-linux-gnueabi/tr-50/0.1-r0/deploy-rpms/armv7a_vfp_neon/
tr-50-dbg-0.1-r0.armv7a_vfp_neon.rpm tr-50-dev-0.1-r0.armv7a_vfp_neon.rpm
I could make bitbake building that package but that package was empty then.
My recipe:
DESCRIPTION = "the tr-50 (MQTT) library to communicate with the swisscom
devicewise cloud"
SECTION = "libs"
LICENSE = "Unknown"
LIC_FILES_CHKSUM = "file://COPYING;md5=c8ee358fdf91d887aa014c8712e8c22d"
# md5sum only when source is a tar.gz
SRC_URI[md5sum] = "da7315f9bc22ff4c24a1cef404b4f3a8"
SRC_URI = "git://github.com/inhedron/libtr50.git;protocol=https"
SRCREV = "aedc45c4e9a9a9a3aa301616ad03f07b903d9a81"
# tryed the three lines below already, didn't help:
#FILES_${PN}-dev = ""
#FILES_SOLIBSDEV = ""
#ALLOW_EMPTY_${PN} = "1"
#PACKAGES =+ "${PN}"
S = "${WORKDIR}/git"
DEPENDS = "openssl "
# NOTE: if this software is not capable of being built in a separate
build directory
# from the source, you should replace autotools with autotools-brokensep
in the
# inherit line
inherit autotools
# Specify any options you want to pass to the configure script using
EXTRA_OECONF:
EXTRA_OECONF = " --with-examples"
When I append tr-50-dev instead of tr-50 to the IMAGE_INSTALL in
local.conf, then bitbake (or smart via bitbake) complains, too:
Computing transaction...error: Can't install
tr-50-dev-0.1-r0@armv7a_vfp_neon: no package provides tr-50 = 0.1-r0
There are also examples that come with the tr-50 lib which cannot
bebuilt because the library tr-50 is missing (at least bitbake claims that).
As you can see in the recipe, I tryed three workarounds already that I
found. None of them worked (except for ALLOW_EMPTY, which produced the
physically intact but empty packet).
Best Regards and thanks in advance for answers,
Jakob
PS: Thanks for the responses I got already for the first description of
my problem!
On 27.01.2017 19:16, Rick Altherr wrote:
I hear you asking a lot of reasonable questions that probably seem
trivial to most of us who have been using Yocto for a while. We tend
to forget what it was like the first time.
I can't tell what reading and research you've done so far. Have you
read both the BitBake User Manual
<http://www.yoctoproject.org/docs/2.2/bitbake-user-manual/bitbake-user-manual.html> and
Yocto Project Reference Manual
<http://www.yoctoproject.org/docs/2.2/ref-manual/ref-manual.html>.
Those explain many vital details such as: what many of the variables,
like SRC_URI, are used for, the syntax rules for recipes, directory
structure of the metadata, and more. It's a lot to read and some
sections are confusing but it's a huge resource that will answer many
questions.
As others have mentioned, IRC and this mailing list are both excellent
places to ask questions. I personally get asked a lot of questions
that require some research and more lengthy explanations. I've
started writing my responses in an advice column form on my blog at
http://www.kc8apf.net/category/dear-brother-yocto/. (Note to Yocto
experts: I'm certain to get things wrong in my explanations. Please
send in corrections as well. I'm happy to include them.).
Rick
On Fri, Jan 27, 2017 at 6:51 AM, Jakob Hasse
<jakob.ha...@smart-home-technology.ch
<mailto:jakob.ha...@smart-home-technology.ch>> wrote:
Hello Leon,
Thank you for the answer!
I read the documentation, it doesn't really give me more than
general hints what to try (or maybe I read at the wrong place). I
also read in "Embedded Linux Project Using Yocto Project
Cookbook". I know that bitbake should use autotools somehow. I set
up my directories exactly like the other projects which work
without any issues. The other project, however, are simple
executables.
What is unclear to me:
To what shall SCR_URI point? The git repo? Downloaded .tar.gz
file? The source dir copied into the project directory besided the
recipe)? I tried all these ways already, each bringing up a
different error, basically.
Do I need to change do_install() or does the makefile handles it?
If I interpret the documentation and the book correctly, I don't
need to do anything more in the recipe...
When I want to fetch from git, it complains about the SRCREF not
being set. So I tried to set it to the most recent commit of the
repo in the recipe file, but it gave another error. I also tried
to "append" it somehow to the git URI which didn't work either.
Note that I need to include the development version of openssl,
not openssl itself (on Ubuntu host you do something like apt
install openssl-dev).
The recipe is appended, if it helps:
# Recipe created by recipetool
# This is the basis of a recipe and may need further editing in
order to be fully functional.
# (Feel free to remove these comments when editing.)
#
# WARNING: the following LICENSE and LIC_FILES_CHKSUM values are
best guesses - it is
# your responsibility to verify that the values are complete and
correct.
LICENSE = "Unknown"
LIC_FILES_CHKSUM =
"file://COPYING;md5=c8ee358fdf91d887aa014c8712e8c22d"
SRC_URI[md5sum] = "da7315f9bc22ff4c24a1cef404b4f3a8"
# No information for SRC_URI yet (only an external source tree was
specified)
SRC_URI =
"/usr/local/dey-2.0/sources/meta-training/recipes-examples/tr-50/tr-50-0.1/"
#SRC_URI =
"git://https://github.com/inhedron/libtr50.git;rev=aedc45c4e9a9a9a3aa301616ad03f07b903d9a81
<https://github.com/inhedron/libtr50.git;rev=aedc45c4e9a9a9a3aa301616ad03f07b903d9a81>"
#SRC_URI = "file:///home/jakob/Downloads/libtr50-0.1.0.tar.gz"
#SRCREF = "aedc45c4e9a9a9a3aa301616ad03f07b903d9a81"
DEPENDS = "openssl "
# NOTE: if this software is not capable of being built in a
separate build directory
# from the source, you should replace autotools with
autotools-brokensep in the
# inherit line
inherit autotools
# Specify any options you want to pass to the configure script
using EXTRA_OECONF:
EXTRA_OECONF = " --with-examples"
#do_install(){
# eo_runmake install DESTDIR=${D} PREFIX=${D}
#}
Thanks in advance for any answers!
All the best,
Jakob
On 27.01.2017 14:39, Leon Woestenberg wrote:
Hi Jakob,
welcome on-board.
The Yocto community expects you to re-use the available
documentation and online resources (or even offline resources
like books) on Yocto or OpenEmbedded. Then if things remains
unclear you can ask questions here on the mailing list and on IRC
channels yocto.
Your question (and probably a lot of subsequent things you learn
on the way) can be answered by the documentation and existing
resources.
I would recommend to read the documentation, then find an
existing recipe that uses "autotools" and another that DEPENDS on
openssl.
There are a lot of resources online:
http://www.yoctoproject.org/docs/1.6.1/dev-manual/dev-manual.html#new-recipe-writing-a-new-recipe
<http://www.yoctoproject.org/docs/1.6.1/dev-manual/dev-manual.html#new-recipe-writing-a-new-recipe>
https://www.yoctoproject.org/tools-resources/community/irc
<https://www.yoctoproject.org/tools-resources/community/irc>
Regards,
Leon.
On Fri, Jan 27, 2017 at 12:43 PM, Jakob Hasse
<jakob.ha...@smart-home-technology.ch
<mailto:jakob.ha...@smart-home-technology.ch>> wrote:
Hello,
I'm beginning with Yocto.
I would like to know where to find general help (like a
forum, or mailing lists) for my Yocto-related technical problems.
Right now I have problems just integrating a library into my
build. Later I will also do system development.
If this helps, a further description of my most urgent problem:
I want to integrate the tr-50 library, available on github:
https://github.com/inhedron/libtr50
<https://github.com/inhedron/libtr50>
It is managed via autotools.
I built a new project subdirectory in my custom layer for the
lib.
I built a basic recipe (with some tool) which, in principle
should somehow recognize the autotools and build the project
then. I changed the SCR_URI to the local .tar.gz file. But
when I build, it comes down to this:
make: *** No rule to make target 'install'. Stop.
I don't know if and which parameters I should change in the
recipe.
Another problem is that the lib needs openssl-dev. I can't
find how to include openssl-dev into the Yocto build.
Looking forward for your answers, best regards,
Jakob
--
Jakob Hasse
Software Developement
E: jakob.ha...@smart-home-technology.ch
<mailto:jakob.ha...@smart-home-technology.ch>
T: +41 44 552 02 66 <tel:%2B41%2044%20552%2002%2066>
Smart Home Technology GmbH
www.smart-home-technology.ch
<http://www.smart-home-technology.ch>
--
_______________________________________________
yocto mailing list
yocto@yoctoproject.org <mailto:yocto@yoctoproject.org>
https://lists.yoctoproject.org/listinfo/yocto
<https://lists.yoctoproject.org/listinfo/yocto>
--
Jakob Hasse
Software Developement
E:jakob.ha...@smart-home-technology.ch
<mailto:jakob.ha...@smart-home-technology.ch>
T:+41 44 552 02 66 <tel:+41%2044%20552%2002%2066>
Smart Home Technology GmbH
www.smart-home-technology.ch <http://www.smart-home-technology.ch>
-- _______________________________________________ yocto mailing
list yocto@yoctoproject.org <mailto:yocto@yoctoproject.org>
https://lists.yoctoproject.org/listinfo/yocto
<https://lists.yoctoproject.org/listinfo/yocto>
--
Jakob Hasse
Software Developement
E: jakob.ha...@smart-home-technology.ch
T: +41 44 552 02 66
Smart Home Technology GmbH
www.smart-home-technology.ch
--
_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto