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

Reply via email to