[Buildroot] File path name and bash pattern matching

Peter Seiderer ps.report at gmx.net
Fri Jun 17 22:05:44 UTC 2016


Hello,

some fun with a patch file name containing '?' and bash pattern matching, e.g:

	$ make openssl-dirclean

Rename the original patch file substituting '?' with '_':

	$ mv dl/openssl-1.0.2d-parallel-build.patch?id=c8abcbe8de5d3b6cdd68c162f398c011ff6e2d9d dl/openssl-1.0.2d-parallel-build.patch_id=c8abcbe8de5d3b6cdd68c162f398c011ff6e2d9d

Buildroot fails with misleading error message:

	$ make
  umask 0022 && make -C <some_path>/build O=<some_path>/build/. 
  openssl-1.0.2h.tar.gz: OK (sha256: 1d4007e53aad94a5b2002fe045ee7bb0b3d98f1a47f8b2bc851dcd1c74332919)
  ERROR: No hash found for openssl-1.0.2d-parallel-build.patch_id=c8abcbe8de5d3b6cdd68c162f398c011ff6e2d9d
  ERROR: No hash found for openssl-1.0.2d-parallel-build.patch_id=c8abcbe8de5d3b6cdd68c162f398c011ff6e2d9d
  package/pkg-generic.mk:113: recipe for target '<some_path>/build/openssl-1.0.2h/.stamp_downloaded' failed
  make[1]: *** [<some_path>/build/openssl-1.0.2h/.stamp_downloaded] Error 1
  Makefile:16: recipe for target '_all' failed
  make: *** [_all] Error 2

Removing the renamed patch file fixes the build:

	$ rm dl/openssl-1.0.2d-parallel-build.patch_id=c8abcbe8de5d3b6cdd68c162f398c011ff6e2d9d
	$ make
...starts with a fresh download of the missing patch file...

Which is the best way to avoid bash pattern matching here (in 'support/download/dl-wrapper')?

Regards,
Peter


More information about the buildroot mailing list