
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: 301c10908e
("kbuild: rpm-pkg: introduce a simple changelog section for kernel.spec")
Signed-off-by: Petr Vorel <pvorel@suse.cz>
Reviewed-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
1.2 KiB
Executable File
#!/bin/sh
Output a simple RPM spec file.
This version assumes a minimum of RPM 4.13
The only gothic bit here is redefining install_post to avoid
stripping the symbols from files in the kernel which we want
Patched for non-x86 by Opencon (L) 2002 opencon@rio.skydome.net
set -eu
output=$1
mkdir -p "$(dirname "${output}")"
exec >"${output}"
if grep -q CONFIG_MODULES=y include/config/auto.conf; then echo '%define with_devel %{?_without_devel: 0} %{?!_without_devel: 1}' else echo '%define with_devel 0' fi
cat<<EOF %define ARCH ${ARCH} %define KERNELRELEASE ${KERNELRELEASE} %define pkg_release $("${srctree}/scripts/build-version") EOF
cat "${srctree}/scripts/package/kernel.spec"
collect the user's name and email address for the changelog entry
if [ "$(command -v git)" ]; then name=$(git config user.name) || true email=$(git config user.email) || true fi
if [ ! "${name:+set}" ]; then name=${KBUILD_BUILD_USER:-$(id -nu)} fi
if [ ! "${email:+set}" ]; then buildhost=${KBUILD_BUILD_HOST:-$(hostname -f 2>/dev/null || hostname)} builduser=${KBUILD_BUILD_USER:-$(id -nu)} email="${builduser}@${buildhost}" fi
cat << EOF
%changelog
- $(LC_ALL=C date +'%a %b %d %Y') ${name} <${email}>
- Custom built Linux kernel. EOF