lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAK7LNAQba5CDetpwevSoaOLJ21s1tO9ZHh=7gJpPCNK0AnHfJw@mail.gmail.com>
Date: Fri, 5 Jul 2024 00:52:41 +0900
From: Masahiro Yamada <masahiroy@...nel.org>
To: Rafael Aquini <aquini@...hat.com>
Cc: linux-kbuild@...r.kernel.org, linux-kernel@...r.kernel.org, 
	Nathan Chancellor <nathan@...nel.org>, Nicolas Schier <nicolas@...sle.eu>
Subject: Re: [PATCH 2/2] kbuild: rpm-pkg: introduce a simple changelog section
 for kernel.spec

On Wed, Jun 12, 2024 at 6:11 AM Rafael Aquini <aquini@...hat.com> wrote:
>
> Fix the following rpmbuild warning:
>
>   $ make srcrpm-pkg
>   ...
>   RPM build warnings:
>       source_date_epoch_from_changelog set but %changelog is missing
>
> Signed-off-by: Rafael Aquini <aquini@...hat.com>
> ---
>  scripts/package/kernel.spec | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/scripts/package/kernel.spec b/scripts/package/kernel.spec
> index 19e458341f45..126b23c1f6c2 100644
> --- a/scripts/package/kernel.spec
> +++ b/scripts/package/kernel.spec
> @@ -132,3 +132,8 @@ fi
>  /usr/src/kernels/%{KERNELRELEASE}
>  /lib/modules/%{KERNELRELEASE}/build
>  %endif
> +
> +%changelog
> +* %(echo "$(LC_ALL=C; date +'%a %b %d %Y') $(git config --get user.name) \
> +<$(git config --get user.email)>") - %{version}-%{release}
> +- Custom built Linux kernel.
> --
> 2.45.1
>


This approach is wrong because %(...) is not expanded when generating
the source package.


Expand the generated SRPM to see what has happened.


[vagrant@...ora39 ~]$ rpm2cpio
kernel-6.10.0_rc3_00002_gdb908e378f93-6.src.rpm | cpio -idvm

[vagrant@...ora39 ~]$ tail -n 4 kernel.spec
%changelog
* %(echo "$(LC_ALL=C; date +'%a %b %d %Y') $(git config --get user.name) \
<$(git config --get user.email)>") - %{version}-%{release}
- Custom built Linux kern



This %changelog section is meaningless, as it does not contain
any useful information about the person who packaged it.



Just like mkdebian, this log information must be generated
when you create the package.


Using 'git config' is OK, but git is optional for 'make binrpm-pkg'.

So, you need to add fallback defaults in case git is not available.
(this code is available in scripts/package/mkdebian)





How about adding this to scripts/package/mkspec?


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
        email="${KBUILD_BUILD_USER:-$(id
-nu)}@...BUILD_BUILD_HOST:-$(hostname -f 2>/dev/null || hostname)}"
fi

cat<<EOF

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




--
Best Regards

Masahiro Yamada

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ