[yocto] Having trouble getting recipe to run in proper directory

Paul Eggleton paul.eggleton at linux.intel.com
Wed Oct 4 19:01:10 PDT 2017


Hi Greg,

On Thursday, 5 October 2017 1:16:15 PM NZDT Greg Wilson-Lindberg wrote:
> I'm trying to create a new recipe for a package that has a version and non-numeric rev
> in its name (canfestival-3-asc). I've gotten bitbake to unpack the package into a tree 
> that looks ok, but it keeps trying to run the compile at least in the wrong directory. 
> Here is the recipe:
> 
> 
> SUMMARY = "Independent CANOpen® stack"
> DESCRIPTION = "CanFestival focuses on providing an ANSI-C platform independent \
>                CANOpen® stack that can be built as master or slave nodes on PCs, \
>                Real-time IPCs, and Microcontrollers."
> 
> HOMEPAGE = "http://www.canfestival.org/"
> 
> SRCREV = "895:8973dd8be7e8"
> 
> SRC_URI = "hg://bitbucket.org/Mongo;protocol=https;module=canfestival-3-asc"
> SRC_URI[md5sum] = ""
> SRC_URI[sha256sum] = ""
> 
> PN = "canfestival"
> PV = '3'
> PR = 'asc'
> 
> LICENSE = "LGPL-2"
> LIC_FILES_CHKSUM = "file://COPYING;md5= \
>                     file://LICENCE;md5="
> 
> inherit autotools
> 
> # Specify any options you want to pass to the configure script using EXTRA_OECONF:
> EXTRA_OECONF = "-can=socket -timers=unix -SDO_MAX_SIMULTANEOUS_TRANSFERS=25 \
>                 -SDO_MAX_LENGTH_TRANSFER=4096 -MAX_NB_TIMER=128 -SDO_TIMEOUT_MS=1000"
> 
> PROVIDES = "canfestival"
> 
> The directory structure that bitbake builds is:
> 
> 
> canfestival
> 
>            3-asc
> 
>                    build
> 
>                    canfestival-3           # directory that bitbake is trying to compile in
> 
>                    canfestival-3-asc       # directory that code was extracted to
> 
>                    temp
> 
> 
> I'm not getting any errors from the configure task, but the log file looks like 
> it is trying to run from the canfestival-3 directory, not the canfestival-3-asc. What 
> can I do to the recipe to get the build to run in the canfestival-3-asc directory? 
> Or, i guess, get bitbake to unpack the source into the canfestival-3, or a
> different directory that it will actually run the tasks in.

So firstly the directory where the build system should expect to find the
source after do_unpack is specified by the S variable, whose default
is "${WORKDIR}/${BP}" where BP defaults to "${BPN}-${PV}" and BPN will be the
same as PN in this case. However, you're setting the "asc" part in PR -
typically PR is left under the control of the build system and thus your PV
would typically be set to "3-asc" in which case S would default to the right value i.e.
"canfestival-3-asc" (but if it didn't, you would just set S to fix it).

To summarise, set PV = "3-asc" (or alternatively have it picked up from the
file name, i.e. name it canfestival_3-asc.bb) and it should work as you
expect.

A couple of other notes:
* For LICENSE, LGPL-2 isn't a standard value - LGPLv2, LGPLv2.0, LGPLv2.1, 
  LGPL-2.0, or LGPL-2.1 (with or without + at the end) would be understood
  by the build system
* You don't need SRC_URI md5sum/sha256sum for an hg:// URL.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



More information about the yocto mailing list