Message ID | 20191125143451.230139-1-seth.forshee@canonical.com |
---|---|
State | New |
Headers | show |
Series | [SRU,E/Unstable] UBUNTU: [Debian] Fix warnings when checking for modules signatures | expand |
On 25.11.19 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@canonical.com> Thanks for fixing it. Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com> > --- > > 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) \ >
On 25.11.19 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@canonical.com> Acked-by: Stefan Bader <stefan.bader@canonical.com> > --- > > 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) \ >
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@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) \ >
On Mon, Nov 25, 2019 at 08:34:51AM -0600, 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@canonical.com> Applied to unstable/master.
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) \
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@canonical.com> --- 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(-)