Do_image_teziimg fails on next day after timestamp update of source

I am building an image that inherits from core-image.
It is set up to create an image for colibri-imx6, but I don’t really think it depends on architecture.
When I build this image when tmp is empty or non-existent it builds fine:

bitbake myproject-image

The yocto build directory is stored separately from the source.
I am constantly regenerating (that is removing and recreating) the same source directory (developing a tool for workspace set-up). At the same time I keep my build directory.
That means that the timestamps of my source directory are constantly updated.

I have noticed that if I regenerate my sources the same day, the creation of the image works.
However, if I regenerate the sources and run the build command the next day, the build fails.
The error is the following:

ERROR: colibtest-image-1.0-r0 do_image_teziimg: Function failed: do_image_teziimg (log file is located at /home/builduser/build/tmp/work/colibri_imx6-linux-gnueabi/colibtest-image/1.0-r0/temp/log.do_image_teziimg.410)
ERROR: Logfile of failure stored in: /home/builduser/build/tmp/work/colibri_imx6-linux-gnueabi/colibtest-image/1.0-r0/temp/log.do_image_teziimg.410
Log data follows:
| DEBUG: Executing python function rootfs_tezi_json
| NOTE: Toradex Easy Installer metadata file image.json written.
| DEBUG: Python function rootfs_tezi_json finished
| DEBUG: Executing python function set_image_size
| DEBUG: Python function set_image_size finished
| DEBUG: Executing shell function do_image_teziimg
| NOTE: Create bootfs tarball
| tar: Removing leading `/' from member names
| tar: /home/builduser/build/tmp/work/colibri_imx6-linux-gnueabi/colibtest-image/1.0-r0/deploy-colibtest-image-image-complete/colibtest-image-colibri-imx6-20190816081629.rootfs.tar.xz: Cannot stat: No such file or directory
| tar: Exiting with failure status due to previous errors
| WARNING: exit code 2 from a shell command.
| ERROR: Function failed: do_image_teziimg (log file is located at /home/builduser/build/tmp/work/colibri_imx6-linux-gnueabi/colibtest-image/1.0-r0/temp/log.do_image_teziimg.410)
ERROR: Task (/home/builduser/yocto/layers/meta-colibtest/recipes-core/image/colibtest-image.bb:do_image_teziimg) failed with exit code '1'
NOTE: Tasks Summary: Attempted 5028 tasks of which 5027 didn't need to be rerun and 1 failed.

What I get from the listing, is that the rootfs tar.xz-file was not regenerated, although the bootfs tar.xz file was.
Is this there something missing in image_type_tezi.bbclass?

As indicated, removing tmp (and thereby rebuilding from sstate cache) works fine, but I would also like this to work out-of-the-box.

hello @hvdbrand and Welcome to the Toradex Community!

The yocto build directory is stored separately from the source. I am constantly regenerating (that is removing and recreating) the same source directory (developing a tool for workspace set-up). At the same time I keep my build directory. That means that the timestamps of my source directory are constantly updated.

How and how often are you doing this?

I have noticed that if I regenerate my sources the same day, the creation of the image works. However, if I regenerate the sources and run the build command the next day, the build fails. The error is the following:

According to the error log the file colibtest-image-colibri-imx6-20190816081629.rootfs.tar is missing. Could you check if the file is there?

What I get from the listing, is that the rootfs tar.xz-file was not regenerated, although the bootfs tar.xz file was. Is this there something missing in image_type_tezi.bbclass?

Have you done any changes to image_type_tezi.bbclass ?

Best regards,
Jaski

How and how often are you doing this?

A couple of times a day.

According to the error log the file colibtest-image-colibri-imx6-20190816081629.rootfs.tar is missing. Could you check if the file is there?

The file is missing. I tried it again today and had the same problem::
colibtest-image-colibri-imx6-20190820110603.rootfs.tar.xz: Cannot stat: No such file or directory

Have you done any changes to image_type_tezi.bbclass ?

No, I did not make any changes to image_type_tezi.bbclass.

With core-image-minimal I was able to reproduce the error with the following steps:

  1. Set-up a build directory building for colibri-imx6
  2. Run bitbake core-image-minimal yesterday which builds ok
  3. Run bitbake core-image-minimal today which succeeds
  4. Put a recent timestamp on all file ~/yocto/layers using find ~/yocto/layers/ -exec touch {} \;
  5. Run bitbake core-image-minimal again which now fails with the error below:

:

NOTE: Executing RunQueue Tasks
ERROR: core-image-minimal-1.0-r0 do_image_teziimg: Function failed: do_image_teziimg (log file is located at /home/builduser/build/tmp/work/colibri_imx6-scap-linux-gnueabi/core-image-minimal/1.0-r0/temp/log.do_image_teziimg.9037)
ERROR: Logfile of failure stored in: /home/builduser/build/tmp/work/colibri_imx6-scap-linux-gnueabi/core-image-minimal/1.0-r0/temp/log.do_image_teziimg.9037
Log data follows:
| DEBUG: Executing python function rootfs_tezi_json
| NOTE: Toradex Easy Installer metadata file image.json written.
| DEBUG: Python function rootfs_tezi_json finished
| DEBUG: Executing python function set_image_size
| DEBUG: Python function set_image_size finished
| DEBUG: Executing shell function do_image_teziimg
| NOTE: Create bootfs tarball
| tar: Removing leading `/' from member names
| tar: /home/builduser/build/tmp/work/colibri_imx6-scap-linux-gnueabi/core-image-minimal/1.0-r0/deploy-core-image-minimal-image-complete/core-image-minimal-colibri-imx6-20190821122021.rootfs.tar.xz: Cannot stat: No such file or directory
| tar: Exiting with failure status due to previous errors
| WARNING: exit code 2 from a shell command.
| ERROR: Function failed: do_image_teziimg (log file is located at /home/builduser/build/tmp/work/colibri_imx6-scap-linux-gnueabi/core-image-minimal/1.0-r0/temp/log.do_image_teziimg.9037)
ERROR: Task (/home/builduser/yocto/layers/meta/recipes-core/images/core-image-minimal.bb:do_image_teziimg) failed with exit code '1'
NOTE: Tasks Summary: Attempted 1978 tasks of which 1977 didn't need to be rerun and 1 failed.

Summary: 1 task failed:
  /home/builduser/yocto/layers/meta/recipes-core/images/core-image-minimal.bb:do_image_teziimg
Summary: There was 1 WARNING message shown.
Summary: There was 1 ERROR message shown, returning a non-zero exit code.

Hi

How exactly did you setup your openembedded installation. E.g. in my setup according to here the rootfs tarball does not contain the build date and time.

tmp-glibc/work/colibri_imx6-angstrom-linux-gnueabi/core-image-minimal/1.0-r0/deploy-core-image-minimal-image-complete/Angstrom-core-image-minimal-glibc-ipk-v2017.12-colibri-imx6.rootfs.manifest
tmp-glibc/work/colibri_imx6-angstrom-linux-gnueabi/core-image-minimal/1.0-r0/deploy-core-image-minimal-image-complete/Angstrom-core-image-minimal-glibc-ipk-v2017.12-colibri-imx6.rootfs.tar.xz

Note that your step 4 (calling touch on all files in all layers) does not influence the build.
bitbake creates hash values per task over all variables which influence that task and uses that hash to decide if a task needs to be rerun or not.

When your build fails, what is the name of the missing file and what is the list of files in the directory where the missing file should be?

Max

We use poky rocko, so we don’t follow the openembedded to which you linked.
I did not configure any build date and time settings myself.
If you can point to how to disable this, I could also try that.
However, I still expect it to work with the normal set-up.

The following layers were added:

layer                 path                                      priority
==========================================================================
meta                  /home/builduser/yocto/layers/meta         5
meta-poky             /home/builduser/yocto/layers/meta-poky    5
meta-yocto-bsp        /home/builduser/yocto/layers/meta-yocto-bsp  5
meta-freescale        /home/builduser/yocto/layers/meta-freescale  5
meta-freescale-3rdparty  /home/builduser/yocto/layers/meta-freescale-3rdparty  4
meta-toradex-bsp-common  /home/builduser/yocto/layers/meta-toradex-bsp-common  90
meta-toradex-nxp      /home/builduser/yocto/layers/meta-toradex-nxp  90

What I needed in local.conf to reproduce is:

MACHINE = "colibri-imx6"
include conf/machine/include/${MACHINE}.inc
ACCEPT_FSL_EULA = "1"

It also seems that running bitbake -f -c do_rootfs core-image-minimal solves the issue.
So to me, this looks like the image_teziimg has an implicit dependency on rootfs or a task dependent on rootfs.

Hi

as @max.tx wrote, the rootfs tarball does not contain the build date and time. So how did you exactly did your setup (recipe, machine, local.conf, …)?

Additionally could you answer the following questions of Max?

When your build fails, what is the name of the missing file and what is the list of files in the directory where the missing file should be?

Best regards,
Jaski

As I mentioned before, to my knowledge I did not add any particular configuration flag to add the build date and time to the image.
I already posted the relevant contect of local.conf.
Apart from that it specifies rpms and the poky distribution.
As mentioned, I would gladly disable the timestamp settings if you can indicate where they are.

The rootfs.tzr.xz file that is reported as missing is not present.
In contrast, a bootfs.tar.xz file is generated with the build date and time.

I noticed that a touch of the image recipe that I am buidling is enough.
So a touch of the image recipe triggers do_image_teziimg without making rootfs.tar.xz.

Maybe integrating the following patch into your build might melp

Maybe answering my question ‘what is the list of files in the directory where the missing file should be?’ might also shed some light.

Also, since you didn’t use our setup, giving more information what your actual setup looks like might help too. E.g. by posting the first few lines of bitbake output with all the layers and their versions.

Max

By running bitbake -e core-image-minimal I see that date and time are added by bitbake.conf:

# $IMAGE_NAME [3 operations]
#   set /home/builduser/yocto/layers/meta/conf/bitbake.conf:445
#     "${IMAGE_BASENAME}-${MACHINE}-${DATETIME}"
#   append /home/builduser/yocto/layers/meta/conf/bitbake.conf:446
#     [vardepsexclude] "DATETIME"
#   set /home/builduser/yocto/layers/meta/conf/documentation.conf:216
#     [doc] "The name of the output image files minus the extension."
# pre-expansion value:
#   "${IMAGE_BASENAME}-${MACHINE}-${DATETIME}"
IMAGE_NAME="core-image-minimal-colibri-imx6-20190910073128"

As far as I can see this is still the default yocto configuration: https://git.yoctoproject.org/cgit.cgi/poky/tree/meta/conf/bitbake.conf

So, I did the following steps:

  1. bitbake core-image-minimal succeeded yesterday

  2. bitbake core-image-minimal succeeds today before touch based on already built files

  3. find meta -name core-image-minimal.bb -exec touch {} ; Touch image recipe

  4. Build failure after touch, see the listing below:

    builduser@aa1a2ef56ab7:~/build$ bitbake core-image-minimal
    WARNING: Host distribution “ubuntu-18.04” has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution.
    Loading cache: 100% |####################################################################################| Time: 0:00:00
    Loaded 1463 entries from dependency cache.
    Parsing recipes: 100% |##################################################################################| Time: 0:00:01
    Parsing of 984 .bb files complete (959 cached, 25 parsed). 1463 targets, 158 skipped, 0 masked, 0 errors.
    WARNING: No recipes available for:
    /home/builduser/yocto/layers/meta-toradex-bsp-common/recipes-support/libsoc/libsoc_0.8.2.bbappend
    NOTE: Resolving any missing task queue dependencies

    Build Configuration:
    BB_VERSION = “1.36.0”
    BUILD_SYS = “x86_64-linux”
    NATIVELSBSTRING = “universal”
    TARGET_SYS = “arm-poky-linux-gnueabi”
    MACHINE = “colibri-imx6”
    DISTRO = “poky”
    DISTRO_VERSION = “2.4.3”
    TUNE_FEATURES = “arm armv7a vfp thumb neon callconvention-hard cortexa9”
    TARGET_FPU = “hard”
    meta
    meta-poky
    meta-yocto-bsp = “:”
    meta-freescale = “HEAD:a4158e3425a79720ddc4c02e76251d567bdceb51”
    meta-freescale-3rdparty = “HEAD:a02324e27f7a7ac630dab616f46a8bad7fe2c071”
    meta-toradex-bsp-common = “HEAD:3e713eef6e056c955b82adaf4b45286a98c3fcdf”
    meta-toradex-nxp = “HEAD:656677f4a68e6747971a4a30550cd72c3beb6a76”

    Initialising tasks: 100% |###############################################################################| Time: 0:00:06
    NOTE: Executing SetScene Tasks
    NOTE: Executing RunQueue Tasks
    ERROR: core-image-minimal-1.0-r0 do_image_teziimg: Function failed: do_image_teziimg (log file is located at /home/builduser/build/tmp/work/colibri_imx6-poky-linux-gnueabi/core-image-minimal/1.0-r0/temp/log.do_image_teziimg.6426)
    ERROR: Logfile of failure stored in: /home/builduser/build/tmp/work/colibri_imx6-poky-linux-gnueabi/core-image-minimal/1.0-r0/temp/log.do_image_teziimg.6426
    Log data follows:
    | DEBUG: Executing python function rootfs_tezi_json
    | NOTE: Toradex Easy Installer metadata file image.json written.
    | DEBUG: Python function rootfs_tezi_json finished
    | DEBUG: Executing python function set_image_size
    | DEBUG: Python function set_image_size finished
    | DEBUG: Executing shell function do_image_teziimg
    | NOTE: Create bootfs tarball
    | tar: Removing leading `/’ from member names
    | tar: /home/builduser/build/tmp/work/colibri_imx6-poky-linux-gnueabi/core-image-minimal/1.0-r0/deploy-core-image-minimal-image-complete/core-image-minimal-colibri-imx6-20190910110041.rootfs.tar.xz: Cannot stat: No such file or directory
    | tar: Exiting with failure status due to previous errors
    | WARNING: exit code 2 from a shell command.
    | ERROR: Function failed: do_image_teziimg (log file is located at /home/builduser/build/tmp/work/colibri_imx6-poky-linux-gnueabi/core-image-minimal/1.0-r0/temp/log.do_image_teziimg.6426)
    ERROR: Task (/home/builduser/yocto/layers/meta/recipes-core/images/core-image-minimal.bb:do_image_teziimg) failed with exit code ‘1’
    NOTE: Tasks Summary: Attempted 2320 tasks of which 2319 didn’t need to be rerun and 1 failed.

    Summary: 1 task failed:
    /home/builduser/yocto/layers/meta/recipes-core/images/core-image-minimal.bb:do_image_teziimg
    Summary: There were 2 WARNING messages shown.
    Summary: There was 1 ERROR message shown, returning a non-zero exit code.

The file is not present:

uilduser@aa1a2ef56ab7:~/build$ ls /home/builduser/build/tmp/work/colibri_imx6-poky-linux-gnueabi/core-image-minimal/1.0-r0/deploy-core-image-minimal-image-complete/
core-image-minimal-colibri-imx6-20190910070712.bootfs.tar
core-image-minimal-colibri-imx6-20190910070712.bootfs.tar.xz
core-image-minimal-colibri-imx6-20190910070712.rootfs.manifest
core-image-minimal-colibri-imx6-20190910070712.rootfs.tar.xz
core-image-minimal-colibri-imx6-20190910070712.rootfs.wic.gz
core-image-minimal-colibri-imx6-20190910070712-Tezi_1.0.tar
core-image-minimal-colibri-imx6-20190910071318.bootfs.tar
core-image-minimal-colibri-imx6-20190910071318.bootfs.tar.xz
core-image-minimal-colibri-imx6-20190910071318-Tezi_1.0.tar
core-image-minimal-colibri-imx6-20190910110041.bootfs.tar
core-image-minimal-colibri-imx6-20190910110041.bootfs.tar.xz
core-image-minimal-colibri-imx6-20190910110041-Tezi_1.0.tar
core-image-minimal-colibri-imx6.manifest
core-image-minimal-colibri-imx6.tar.xz
core-image-minimal-colibri-imx6.wic.gz

Judging by the information on Image generation and the output below, the problem is between do_image and do_image_complete

builduser@aa1a2ef56ab7:~/build$ bitbake -c do_image core-image-minimal
WARNING: Host distribution "ubuntu-18.04" has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution.
Loading cache: 100% |####################################################################################| Time: 0:00:00
Loaded 1463 entries from dependency cache.
WARNING: No recipes available for:
  /home/builduser/yocto/layers/meta-toradex-bsp-common/recipes-support/libsoc/libsoc_0.8.2.bbappend
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION           = "1.36.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "universal"
TARGET_SYS           = "arm-poky-linux-gnueabi"
MACHINE              = "colibri-imx6"
DISTRO               = "poky"
DISTRO_VERSION       = "2.4.3"
TUNE_FEATURES        = "arm armv7a vfp thumb neon callconvention-hard cortexa9"
TARGET_FPU           = "hard"
meta
meta-poky
meta-yocto-bsp       = "<unknown>:<unknown>"
meta-freescale       = "HEAD:a4158e3425a79720ddc4c02e76251d567bdceb51"
meta-freescale-3rdparty = "HEAD:a02324e27f7a7ac630dab616f46a8bad7fe2c071"
meta-toradex-bsp-common = "HEAD:3e713eef6e056c955b82adaf4b45286a98c3fcdf"
meta-toradex-nxp     = "HEAD:656677f4a68e6747971a4a30550cd72c3beb6a76"

Initialising tasks: 100% |###############################################################################| Time: 0:00:06
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
NOTE: Tasks Summary: Attempted 1964 tasks of which 1964 didn't need to be rerun and all succeeded.

Summary: There were 2 WARNING messages shown.
builduser@aa1a2ef56ab7:~/build$ bitbake -c do_image_complete core-image-minimal
WARNING: Host distribution "ubuntu-18.04" has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution.
Loading cache: 100% |####################################################################################| Time: 0:00:00
Loaded 1463 entries from dependency cache.
WARNING: No recipes available for:
  /home/builduser/yocto/layers/meta-toradex-bsp-common/recipes-support/libsoc/libsoc_0.8.2.bbappend
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION           = "1.36.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "universal"
TARGET_SYS           = "arm-poky-linux-gnueabi"
MACHINE              = "colibri-imx6"
DISTRO               = "poky"
DISTRO_VERSION       = "2.4.3"
TUNE_FEATURES        = "arm armv7a vfp thumb neon callconvention-hard cortexa9"
TARGET_FPU           = "hard"
meta
meta-poky
meta-yocto-bsp       = "<unknown>:<unknown>"
meta-freescale       = "HEAD:a4158e3425a79720ddc4c02e76251d567bdceb51"
meta-freescale-3rdparty = "HEAD:a02324e27f7a7ac630dab616f46a8bad7fe2c071"
meta-toradex-bsp-common = "HEAD:3e713eef6e056c955b82adaf4b45286a98c3fcdf"
meta-toradex-nxp     = "HEAD:656677f4a68e6747971a4a30550cd72c3beb6a76"

Initialising tasks: 100% |###############################################################################| Time: 0:00:06
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
ERROR: core-image-minimal-1.0-r0 do_image_teziimg: Function failed: do_image_teziimg (log file is located at /home/builduser/build/tmp/work/colibri_imx6-poky-linux-gnueabi/core-image-minimal/1.0-r0/temp/log.do_image_teziimg.6577)
ERROR: Logfile of failure stored in: /home/builduser/build/tmp/work/colibri_imx6-poky-linux-gnueabi/core-image-minimal/1.0-r0/temp/log.do_image_teziimg.6577
Log data follows:
| DEBUG: Executing python function rootfs_tezi_json
| NOTE: Toradex Easy Installer metadata file image.json written.
| DEBUG: Python function rootfs_tezi_json finished
| DEBUG: Executing python function set_image_size
| DEBUG: Python function set_image_size finished
| DEBUG: Executing shell function do_image_teziimg
| NOTE: Create bootfs tarball
| tar: Removing leading `/' from member names
| tar: /home/builduser/build/tmp/work/colibri_imx6-poky-linux-gnueabi/core-image-minimal/1.0-r0/deploy-core-image-minimal-image-complete/core-image-minimal-colibri-imx6-20190910113109.rootfs.tar.xz: Cannot stat: No such file or directory
| tar: Exiting with failure status due to previous errors
| WARNING: exit code 2 from a shell command.
| ERROR: Function failed: do_image_teziimg (log file is located at /home/builduser/build/tmp/work/colibri_imx6-poky-linux-gnueabi/core-image-minimal/1.0-r0/temp/log.do_image_teziimg.6577)
ERROR: Task (/home/builduser/yocto/layers/meta/recipes-core/images/core-image-minimal.bb:do_image_teziimg) failed with exit code '1'
NOTE: Tasks Summary: Attempted 2012 tasks of which 2011 didn't need to be rerun and 1 failed.

Summary: 1 task failed:
  /home/builduser/yocto/layers/meta/recipes-core/images/core-image-minimal.bb:do_image_teziimg
Summary: There were 2 WARNING messages shown.
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
builduser@aa1a2ef56ab7:~/build$

I have also inspected the task dependencies of do_image_teziimage (bitbake-dumpsig tmp/stamps/colibri_imx6-poky-linux-gnueabi/core-image-minimal/1.0-r0.do_image_teziimg.sigdata.b8f947f7ee585c50142182e2b45b8da4) and found the following dependencies:

List of dependencies for variable IMAGE_CMD_teziimg is {'XZ_THREADS', 'PV', 'SPL_BINARY', 'KERNEL_IMAGETYPE', 'XZ_COMPRESSION_LEVEL', 'UBOOT_ENV_TEZI', 'IMAGE_NAME', 'IMGDEPLOYDIR', 'DEPLOY_DIR_IMAGE', 'TDX_VERDATE', 'IMAGE_CMD_TAR', 'DATE', 'DTS_FILE', 'UBOOT_BINARY_TEZI', 'XZ_INTEGRITY_CHECK', 'KERNEL_DEVICETREE', 'DTS_BASE_NAME', 'TORADEX_FLASH_TYPE', 'KERNEL_DEVICETREE_FILES'}
Variable DATE value is 20190910

This suggest that do_image_teziimg depends on the date which differs.
As a result rootfs (build by do_image_tar) is not rebuilt as it is up-to-date, but do_image_teziimg needs to be rebuild because the DATE changed.

In meta/conf/bitbake.conf, the following pattern is used to remove the dependency on DATE:

IMAGE_ROOTFS = "${WORKDIR}/rootfs"
IMAGE_BASENAME = "${PN}"
IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}-${DATETIME}"
IMAGE_NAME[vardepsexclude] += "DATETIME"
IMAGE_LINK_NAME = "${IMAGE_BASENAME}-${MACHINE}"

So my guess is that this is fixed by something like

IMAGE_CMD_teziimg[vardepsexclude] += "DATE"

That is what I am going to try tomorrow.

I tried to post a comment to this comment yesterday, but unfortunately it does not show up.
I tried the patch you suggested, but I am not using rm_work.
Instead I used bitbake-dumpsig to inspect the task dependencies.
See the answer for more details.

In short, the do_image_teziimg task depended on the DATE variable.

When bitbake runs without touching the files, it sees that the artifacts are newer than the sources, so it does not need to compute the task dependendencies.
However, when the recipe is touched it evaluates the task dependencies and notices that DATE has changed and therefore requires to be rerun.
The rerun triggers a rerun to make the bootfs archive, but not a rerun that makes the rootfs archive, because it is still valid.

I found this dependency by running:

bitbake-dumpsig ${BUILDDIR}/tmp/stamps/colibri_imx6-poky-linux-gnueabi/core-image-minima
l/1.0-r0.do_image_teziimg.sigdata.61583a32af7cd1b363b9ff73ea604ec4 | less

I now also noticed that this was already fixed on the rocko branch by the following code:

# for generic images this is not yet defined
TDX_VERDATE ?= "-${DATE}"
TDX_VERDATE[vardepsexclude] = "DATE"

For the older commit that I was using, I succefully used the vardepsexclude below:

IMAGE_CMD_teziimg[vardepsexclude] += "DATE"

Perfect that you found the solution. Thanks for sharing.

Best regards,
Jaski