APPLIED: [PATCH][SRU][E/Unstable] UBUNTU: [Debian] Fix warnings when checking for modules signatures

Kleber Souza kleber.souza at canonical.com
Mon Dec 2 10:57:10 UTC 2019


On 2019-11-25 15:34, Seth Forshee wrote:
> BugLink: https://bugs.launchpad.net/bugs/1853843
> 
> When detecting module signatures, the current approach causes
> this warning for modules lacking a signature:
> 
>  /bin/bash: line 5: warning: command substitution: ignored null byte in input
> 
> My original approach used read, which works well, but for unknown
> reasons causes an error from bash when by itself as the first
> line in the if clause. Putting it in a no-op while loop prevents
> the error, but it has the advantage of working without flooding
> the build logs with warnings.
> 
> Signed-off-by: Seth Forshee <seth.forshee at canonical.com>

Applied to eoan/master-next branch.

Thanks,
Kleber

> ---
> 
> This is the same approach as in the first patch I sent for this. The
> no-op while loop is strange, but without it the read genearates an error
> that no one has been able to explain. However, so far this is the only
> approach I've found that works in both bionic and eoan without spamming
> the build log.
> 
>  debian/rules.d/2-binary-arch.mk | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/debian/rules.d/2-binary-arch.mk b/debian/rules.d/2-binary-arch.mk
> index 070478e010f7..2aea5e857f79 100644
> --- a/debian/rules.d/2-binary-arch.mk
> +++ b/debian/rules.d/2-binary-arch.mk
> @@ -413,12 +413,14 @@ ifneq ($(skipdbg),true)
>  	  -name '*.ko' | while read path_module ; do \
>  		module="/lib/modules/$${path_module#*/lib/modules/}"; \
>  		if [[ -f "$(dbgpkgdir)/usr/lib/debug/$$module" ]] ; then \
> -			signature=$$(tail -c 28 "$$path_module"); \
> +			while IFS= read -r -d '' signature < <(tail -c 28 "$$path_module"); do \
> +				break; \
> +			done; \
>  			$(CROSS_COMPILE)objcopy \
>  				--add-gnu-debuglink=$(dbgpkgdir)/usr/lib/debug/$$module \
>  				$$path_module; \
>  			if grep -q CONFIG_MODULE_SIG=y $(builddir)/build-$*/.config && \
> -			   [ "$$signature" = "~Module signature appended~" ]; then \
> +			   [ "$$signature" = $$'~Module signature appended~\n' ]; then \
>  				$(builddir)/build-$*/scripts/sign-file $(MODHASHALGO) \
>  					$(MODSECKEY) \
>  					$(MODPUBKEY) \
> 




More information about the kernel-team mailing list