'bitbake SRC_URI file://

If I have a tarball, helloworld.tar.gz in a local directory, say /home/user/tarballs/, how can I make my bitbake recipe fetch from that directory?

my helloworld.bb is

SECTION = "examples"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://COPYING; md5=1b1b8016e15e07a2fec59623ebf12345"

SRC_URI = "file://helloworld.tar.gz"

but when I bitbake, I get the below warning message:

WARNING: Unable to get checksum for helloworld SRC_URI entry helloworld.tar.gz: file could not be found

I read something about FILES and FILESEXTRAPATHS can influence the download path but not sure where/how to set them.

I did a bitbake -c show FILESEXTRAPATHS but get an error message:

ERROR: Nothing PROVIDES 'FILESEXTRAPATHS'


Solution 1:[1]

Well, if you want to fetch from a local directory, use e.g.:

SRC_URI = "file:///home/user/tarballs/helloworld.tar.gz"

The FILES and FILESEXTRAPATHS variables tells bitbake where to find files which are referenced as:

SRC_URI = "file://helloworld.tar.gz"

These files are searched for in the locations specified by those two variables. (Or rather, FILESEXTRAPATHS is searched and then some possible subdirectories of the directories specified in FILESEXTRAPATHS, amongst those the expanded values of DISTRO, MACHINE, ARCH, etc).

FILES (and FILESEXTRAPATHS) are used to find files stored together with the meta-data, i.e. under the paths meta-/recipes-/name/XXX.

See http://www.yoctoproject.org/docs/1.7/mega-manual/mega-manual.html#var-FILES and http://www.yoctoproject.org/docs/1.7/mega-manual/mega-manual.html#var-FILESEXTRAPATHS

Solution 2:[2]

Better you can keep your files in present(where the .bb file present) directory and give the below lines in your .bb file.

FILESEXTRAPATHS_prepend := "${THISDIR}:"
SRC_URI = "file://helloworld.tar.gz"

FILESEXTRAPATHS_prepend : tells to bitbake the files are present in where the .bb file is present.

Solution 3:[3]

Also you can edit .bb file as follows,

FILESEXTRAPATHS_prepend := "path_to_home_folder_of_source_folders:"
SRC_URI = "file://Source_floder/*"

as an example

FILESEXTRAPATHS_prepend := "/home/username/:"
SRC_URI = "file://tarballs/*"

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Anders
Solution 2
Solution 3 Lahiru Gunathilake