diff mbox series

kbuild: rpm-pkg: Fix C locale setup

Message ID 20240724084655.930706-1-pvorel@suse.cz (mailing list archive)
State New
Headers show
Series kbuild: rpm-pkg: Fix C locale setup | expand

Commit Message

Petr Vorel July 24, 2024, 8:46 a.m. UTC
semicolon separation in LC_ALL is wrong. Either variable needs to be
exported before as a separate commit or set as part of the commit in the
beginning. Used second variant.

This fixes broken build on user's locale setup which makes 'date' binary
to produce invalid characters in rpm changelog (e.g. cs_CZ.UTF-8 'čec'):

$ make binrpm-pkg
  GEN     rpmbuild/SPECS/kernel.spec
rpmbuild -bb rpmbuild/SPECS/kernel.spec --define='_topdirlinux/rpmbuild' \
    --target x86_64-linux --build-in-place --noprep --define='_smp_mflags \
    %{nil}' $(rpm -q rpm >/dev/null 2>&1 || echo --nodeps)
Building target platforms: x86_64-linux
Building for target x86_64-linux
error: bad date in %changelog: St čec 24 2024 user <user@somehost>
make[2]: *** [scripts/Makefile.package:71: binrpm-pkg] Error 1
make[1]: *** [linux/Makefile:1546: binrpm-pkg] Error 2
make: *** [Makefile:224: __sub-make] Error 2

Fixes: 301c10908e42 ("kbuild: rpm-pkg: introduce a simple changelog section for kernel.spec")
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
 scripts/package/mkspec | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Petr Vorel July 24, 2024, 9:03 a.m. UTC | #1
From: Masahiro Yamada <masahiroy@kernel.org>

Hi Masahiro, Linus,

> Hello Linus,

> Please pull Kbuild updates for v6.11-rc1




> You will get a merge conflict in scripts/Makefile.lib

> It is a conflict between the following two commits:
>  49636c5680b977d8a39263c6c8db6061c427346e
>  712aba5543b88996bc4682086471076fbf048927

> The resolution exists in linux-next.

It'd be nice to include also this tiny binrpm-pkg fix [1] for non-english
locales (introduced by 301c10908e42 already merged).

Kind regards,
Petr

[1] https://lore.kernel.org/linux-kbuild/20240724084655.930706-1-pvorel@suse.cz/

> Thank you.
...
Miguel Ojeda July 24, 2024, 9:11 a.m. UTC | #2
On Wed, Jul 24, 2024 at 10:51 AM Petr Vorel <pvorel@suse.cz> wrote:
>
> semicolon separation in LC_ALL is wrong. Either variable needs to be
> exported before as a separate commit or set as part of the commit in the
> beginning. Used second variant.

Reviewed-by: Miguel Ojeda <ojeda@kernel.org>

Probably a typo after having removed `export`, or perhaps it was
assuming a built-in `date` for some reason.

Cheers,
Miguel
Masahiro Yamada July 24, 2024, 10:02 a.m. UTC | #3
On Wed, Jul 24, 2024 at 5:47 PM Petr Vorel <pvorel@suse.cz> wrote:
>
> semicolon separation in LC_ALL is wrong. Either variable needs to be
> exported before as a separate commit or set as part of the commit in the
> beginning. Used second variant.
>
> This fixes broken build on user's locale setup which makes 'date' binary
> to produce invalid characters in rpm changelog (e.g. cs_CZ.UTF-8 'čec'):
>
> $ make binrpm-pkg
>   GEN     rpmbuild/SPECS/kernel.spec
> rpmbuild -bb rpmbuild/SPECS/kernel.spec --define='_topdirlinux/rpmbuild' \
>     --target x86_64-linux --build-in-place --noprep --define='_smp_mflags \
>     %{nil}' $(rpm -q rpm >/dev/null 2>&1 || echo --nodeps)
> Building target platforms: x86_64-linux
> Building for target x86_64-linux
> error: bad date in %changelog: St čec 24 2024 user <user@somehost>
> make[2]: *** [scripts/Makefile.package:71: binrpm-pkg] Error 1
> make[1]: *** [linux/Makefile:1546: binrpm-pkg] Error 2
> make: *** [Makefile:224: __sub-make] Error 2
>
> Fixes: 301c10908e42 ("kbuild: rpm-pkg: introduce a simple changelog section for kernel.spec")
> Signed-off-by: Petr Vorel <pvorel@suse.cz>
> ---
>  scripts/package/mkspec | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/package/mkspec b/scripts/package/mkspec
> index ead54d67a024..4dc1466dfc81 100755
> --- a/scripts/package/mkspec
> +++ b/scripts/package/mkspec
> @@ -50,6 +50,6 @@ fi
>  cat << EOF
>
>  %changelog
> -* $(LC_ALL=C; date +'%a %b %d %Y') ${name} <${email}>
> +* $(LC_ALL=C date +'%a %b %d %Y') ${name} <${email}>
>  - Custom built Linux kernel.
>  EOF
> --
> 2.43.0
>



Ah, right. Thanks.



I also noticed this mistake in Rafaels' initial submission, then
I suggested the correct code without the semicolon:

https://lore.kernel.org/linux-kbuild/CAK7LNAQba5CDetpwevSoaOLJ21s1tO9ZHh=7gJpPCNK0AnHfJw@mail.gmail.com/



He tried to modify the code on his way over again,
then I missed that he had restored the semicolon.
I should have taken the code diff.
:-(
Masahiro Yamada July 24, 2024, 10:24 a.m. UTC | #4
On Wed, Jul 24, 2024 at 5:47 PM Petr Vorel <pvorel@suse.cz> wrote:
>
> semicolon separation in LC_ALL is wrong. Either variable needs to be
> exported before as a separate commit or set as part of the commit in the
> beginning. Used second variant.
>
> This fixes broken build on user's locale setup which makes 'date' binary
> to produce invalid characters in rpm changelog (e.g. cs_CZ.UTF-8 'čec'):
>
> $ make binrpm-pkg
>   GEN     rpmbuild/SPECS/kernel.spec
> rpmbuild -bb rpmbuild/SPECS/kernel.spec --define='_topdirlinux/rpmbuild' \
>     --target x86_64-linux --build-in-place --noprep --define='_smp_mflags \
>     %{nil}' $(rpm -q rpm >/dev/null 2>&1 || echo --nodeps)
> Building target platforms: x86_64-linux
> Building for target x86_64-linux
> error: bad date in %changelog: St čec 24 2024 user <user@somehost>
> make[2]: *** [scripts/Makefile.package:71: binrpm-pkg] Error 1
> make[1]: *** [linux/Makefile:1546: binrpm-pkg] Error 2
> make: *** [Makefile:224: __sub-make] Error 2
>
> Fixes: 301c10908e42 ("kbuild: rpm-pkg: introduce a simple changelog section for kernel.spec")
> Signed-off-by: Petr Vorel <pvorel@suse.cz>


Applied to linux-kbuild/fixes.
Thanks!
Petr Vorel July 24, 2024, 10:50 a.m. UTC | #5
Hi Masahiro,

> On Wed, Jul 24, 2024 at 5:47 PM Petr Vorel <pvorel@suse.cz> wrote:

> > semicolon separation in LC_ALL is wrong. Either variable needs to be
> > exported before as a separate commit or set as part of the commit in the
> > beginning. Used second variant.

> > This fixes broken build on user's locale setup which makes 'date' binary
> > to produce invalid characters in rpm changelog (e.g. cs_CZ.UTF-8 'čec'):

> > $ make binrpm-pkg
> >   GEN     rpmbuild/SPECS/kernel.spec
> > rpmbuild -bb rpmbuild/SPECS/kernel.spec --define='_topdirlinux/rpmbuild' \
> >     --target x86_64-linux --build-in-place --noprep --define='_smp_mflags \
> >     %{nil}' $(rpm -q rpm >/dev/null 2>&1 || echo --nodeps)
> > Building target platforms: x86_64-linux
> > Building for target x86_64-linux
> > error: bad date in %changelog: St čec 24 2024 user <user@somehost>
> > make[2]: *** [scripts/Makefile.package:71: binrpm-pkg] Error 1
> > make[1]: *** [linux/Makefile:1546: binrpm-pkg] Error 2
> > make: *** [Makefile:224: __sub-make] Error 2

> > Fixes: 301c10908e42 ("kbuild: rpm-pkg: introduce a simple changelog section for kernel.spec")
> > Signed-off-by: Petr Vorel <pvorel@suse.cz>
> > ---
> >  scripts/package/mkspec | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)

> > diff --git a/scripts/package/mkspec b/scripts/package/mkspec
> > index ead54d67a024..4dc1466dfc81 100755
> > --- a/scripts/package/mkspec
> > +++ b/scripts/package/mkspec
> > @@ -50,6 +50,6 @@ fi
> >  cat << EOF

> >  %changelog
> > -* $(LC_ALL=C; date +'%a %b %d %Y') ${name} <${email}>
> > +* $(LC_ALL=C date +'%a %b %d %Y') ${name} <${email}>
> >  - Custom built Linux kernel.
> >  EOF
> > --
> > 2.43.0




> Ah, right. Thanks.



> I also noticed this mistake in Rafaels' initial submission, then
> I suggested the correct code without the semicolon:

> https://lore.kernel.org/linux-kbuild/CAK7LNAQba5CDetpwevSoaOLJ21s1tO9ZHh=7gJpPCNK0AnHfJw@mail.gmail.com/



> He tried to modify the code on his way over again,
> then I missed that he had restored the semicolon.
> I should have taken the code diff.
> :-(

Thank you for an explanation, quick review and merge!

Kind regards,
Petr
Rafael Aquini July 25, 2024, 12:18 p.m. UTC | #6
On Wed, Jul 24, 2024 at 10:46:55AM +0200, Petr Vorel wrote:
> semicolon separation in LC_ALL is wrong. Either variable needs to be
> exported before as a separate commit or set as part of the commit in the
> beginning. Used second variant.
> 
> This fixes broken build on user's locale setup which makes 'date' binary
> to produce invalid characters in rpm changelog (e.g. cs_CZ.UTF-8 'čec'):
> 
> $ make binrpm-pkg
>   GEN     rpmbuild/SPECS/kernel.spec
> rpmbuild -bb rpmbuild/SPECS/kernel.spec --define='_topdirlinux/rpmbuild' \
>     --target x86_64-linux --build-in-place --noprep --define='_smp_mflags \
>     %{nil}' $(rpm -q rpm >/dev/null 2>&1 || echo --nodeps)
> Building target platforms: x86_64-linux
> Building for target x86_64-linux
> error: bad date in %changelog: St čec 24 2024 user <user@somehost>
> make[2]: *** [scripts/Makefile.package:71: binrpm-pkg] Error 1
> make[1]: *** [linux/Makefile:1546: binrpm-pkg] Error 2
> make: *** [Makefile:224: __sub-make] Error 2
> 
> Fixes: 301c10908e42 ("kbuild: rpm-pkg: introduce a simple changelog section for kernel.spec")
> Signed-off-by: Petr Vorel <pvorel@suse.cz>
> ---
>  scripts/package/mkspec | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/scripts/package/mkspec b/scripts/package/mkspec
> index ead54d67a024..4dc1466dfc81 100755
> --- a/scripts/package/mkspec
> +++ b/scripts/package/mkspec
> @@ -50,6 +50,6 @@ fi
>  cat << EOF
>  
>  %changelog
> -* $(LC_ALL=C; date +'%a %b %d %Y') ${name} <${email}>
> +* $(LC_ALL=C date +'%a %b %d %Y') ${name} <${email}>
>  - Custom built Linux kernel.
>  EOF
> -- 
> 2.43.0
>
 
Acked-by: Rafael Aquini <aquini@redhat.com>
diff mbox series

Patch

diff --git a/scripts/package/mkspec b/scripts/package/mkspec
index ead54d67a024..4dc1466dfc81 100755
--- a/scripts/package/mkspec
+++ b/scripts/package/mkspec
@@ -50,6 +50,6 @@  fi
 cat << EOF
 
 %changelog
-* $(LC_ALL=C; date +'%a %b %d %Y') ${name} <${email}>
+* $(LC_ALL=C date +'%a %b %d %Y') ${name} <${email}>
 - Custom built Linux kernel.
 EOF