Mender-artifact Incorrect Usage: flag provided but not defined: -f



I’m building mender for x86 platform (yocto thud branch and hit yesterday this error):

| DEBUG: Python function extend_recipe_sysroot finished
| DEBUG: Executing shell function do_image_mender
| + [ -z x86_23_04_2019_19_39 ]
| + stat -Lc %s /home/gitlab-runner/builds/d9570b5d/0/marek.belisko/test/.build-x86/tmp/work/intel_corei7_64-poky-linux/core-image-minimal-initramfs/1.0-r0/deploy-core-image-minimal-initramfs-image-complete/core-image-minimal-initramfs-intel-corei7-64.ext4
| + rootfs_size=37577728
| + expr 1024000 * 1024
| + calc_rootfs_size=1048576000
| + [ 37577728 -gt 1048576000 ]
| + [ -z intel-corei7-64 ]
| + extra_args=
| + extra_args= -t intel-corei7-64
| + [ -n  ]
| + [ -d /home/gitlab-runner/builds/d9570b5d/0/marek.belisko/test/.build-x86/tmp/deploy/images/intel-corei7-64/mender-state-scripts ]
| + image_flag=-f
| + mender-artifact write rootfs-image -n x86_23_04_2019_19_39 -t intel-corei7-64 -f /home/gitlab-runner/builds/d9570b5d/0/marek.belisko/test/.build-x86/tmp/work/intel_corei7_64-poky-linux/core-image-minimal-initramfs/1.0-r0/deploy-core-image-minimal-initramfs-image-complete/core-image-minimal-initramfs-intel-corei7-64.ext4 -o /home/gitlab-runner/builds/d9570b5d/0/marek.belisko/test/.build-x86/tmp/work/intel_corei7_64-poky-linux/core-image-minimal-initramfs/1.0-r0/deploy-core-image-minimal-initramfs-image-complete/core-image-minimal-initramfs-intel-corei7-64--20190423194106.mender
| Incorrect Usage: flag provided but not defined: -f
|    mender-artifact write rootfs-image - Writes Mender artifact containing rootfs image
|    mender-artifact write rootfs-image [command options] <image path>
|    --update FILE, -u FILE           Update FILE.
|    --device-type value, -t value    Type of device(s) supported by the update. You can specify multiple compatible devices providing this parameter multiple times.
|    --artifact-name value, -n value  Name of the artifact
|    --output-path value, -o value    Full path to output artifact file.
|    --version value, -v value        Version of the artifact. (default: 2)
|    --key value, -k value            Full path to the private key that will be used to sign the artifact.
|    --script value, -s value         Full path to the state script(s). You can specify multiple scripts providing this parameter multiple times.
| + bb_exit_handler
| + ret=1

from code it looks like that mender_version_is_minimum thinks that mender-artifact is < 3.0.0 and then use wrong flag. Ideas? Thanks.


Sorry about that. This was accidentally introduced yesterday. I have put up a fix for review here:


@kacf thanks for info. I’ve reverted to thud-2019.03 and lets see if it build ;). Thanks for info.


Just for my info. Why arguments was changed? Cannot be keep for backward compatibility? Thx.


The argument was changed because the ‘-u’ letter makes no sense anymore
when considering update modules. Previously it meant “update”, but now
it can be any file, a header, a manifest, a script, anything. So we
changed it to ‘-f’ for “file”.

Of course for classic rootfs artifacts it still means “update”, but we
wanted to use the same arguments everywhere.


This should be fixed now.