Confused on why west blob fetch is needed

Description

Hello,

I ran into some issues when trying to build my Zephyr project with the golioth reference template that was modified with the certificate_provisioning example repo (since I want to pass a certificate via mcumgr vs hardcoding them).

I then got a message that I had to perform west blobs fetch hal_espressif, and that fixed it! However, I am confused on why this was needed in the first place since my west.yml already included hal_espressif as a dependency under the import/name-allowlist for the golioth module… for example this is my current west.yml:

manifest:
  version: 1.0

  projects:
    - name: golioth
      path: modules/lib/golioth-firmware-sdk
      revision: v0.21.0
      url: https://github.com/golioth/golioth-firmware-sdk.git
      west-commands: scripts/west-commands.yml
      submodules: true
      import:
        file: west-zephyr.yml
        path-prefix: deps
        name-allowlist:
          - nrf
          - zephyr
          - cmsis_6
          - hal_nordic
          - hal_espressif
          - hal_st
          - mbedtls
          - mbedtls-nrf
          - mcuboot
          - net-tools
          - nrfxlib
          - oberon-psa-crypto
          - qcbor
          - segger
          - tfm-mcuboot
          - tinycrypt
          - trusted-firmware-m
          - zcbor
          - littlefs

    - name: zephyr-network-info
      path: deps/modules/lib/network-info
      revision: v1.2.0
      url: https://github.com/golioth/zephyr-network-info

  self:
    path: app

Just curious since I am new to Zephyr and its not obvious to me why this is needed if it’s already defined in the yml file.

Thanks,
Nicolas

Expected Behavior

N/A

Actual Behavior

N/A

Environment

N/A

Logs and Console Output

N/A

Hey @nicolas,

Your west.yml ensured the hal_espressif module repo was pulled in, but west blobs fetch hal_espressif is a separate step that actually downloads the binary blobs that aren’t stored in the repo. The import / name-allowlist part only controls which projects get pulled in, not whether their blobs are fetched automatically.

1 Like