This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[FAQ] TDA4VM: How to resolve Yocto build failure while trying to fetch repository?

Part Number: TDA4VM

Is there a checklist for addressing fetch failures while building with Yocto?

  • In this post, we will address a few error scenarios faced by users during Yocto builds relating to fetch step. These errors will usually be reported as "do_fetch" errors.  An example is given below:

    ERROR: Logfile of failure stored in: /work/karthik/am65xx-7.00/tisdk/build/arago-tmp-external-arm-glibc/work/aarch64-linux/thin-provisioning-tools/0.8.5-r0/temp/log.do_fetch.24291
    ERROR: Task (/work/karthik/am65xx-7.00/tisdk/sources/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.8.5.bb:do_fetch) failed with exit code '1'
    

    The last line in the above error log indicates that the recipe failed during the do_fetch step.

    Here are the typical reasons that contribute to these errors:

    1. Proxy configuration is incorrect/missing

    This is the top reason for the fetch failure. If you have not configured the http, git, https and ftp proxies correctly you may run into this issue. It is recommended that:

    2. Renaming of the git default branch to "main"

    github and many other repositories are renaming the default branch to main. Refer: https://github.com/github/renaming  Due to this change, it is expected that there will be a build break when individual repositories make this change.

    We have already seen one such failure with the thin-provisioning-tools recipe. The recommended method to fix this would be to do the following change as described in the patch. It involves only two steps:

    • define BRANCH and initialize to main
    • Specify the branch as part of the SRC_URI
    diff --git a/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.8.5.bb b/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.8.5.bb
    index 9f89bac22..e6e475140 100644
    --- a/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.8.5.bb
    +++ b/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.8.5.bb
    @@ -7,11 +7,14 @@ SECTION = "devel"
     LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
     S = "${WORKDIR}/git"
    
    -SRC_URI = "git://github.com/jthornber/thin-provisioning-tools \
    +BRANCH = "main"
    +
    +SRC_URI = "git://github.com/jthornber/thin-provisioning-tools;branch=${BRANCH} \
                file://0001-do-not-strip-pdata_tools-at-do_install.patch \
                file://use-sh-on-path.patch \
     "
    
     SRCREV = "5e5409f48b5403d2c6dffd9919b35ad77d6fb7b4"
    
     UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"

    3. Upstream repository is changed (rewrite) or LICENSE file has changed.

    Although this one is rare, it does happen occasionally when an upstream repository is rewritten for various reasons, the commit ID will tend to change causing fetch failures. It is recommended to download the repository manually and check for the tag and replace it in the recipe.

    The other related change is the update of LICENSE file causes the LICENSE checksums to fail. A similar action like above needs to be done to take care of this.

    4. Shared downloads folder 

    Some users/machines try to use the share downloads folder with other users. When using shared downloads folder, if two users are not on the same group with write permissions, the download process may not be able to update the files in the common downloads directory. Please ensure this while using shared downloads.

    Regards

    Karthik