ba6c664081
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>
56 lines
1.2 KiB
Bash
Executable File
56 lines
1.2 KiB
Bash
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
|