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]
Date:   Thu, 14 Sep 2017 16:10:00 +0300
From:   Riku Voipio <riku.voipio@...aro.org>
To:     Masahiro Yamada <yamada.masahiro@...ionext.com>
Cc:     linux-kbuild <linux-kbuild@...r.kernel.org>,
        Sam Ravnborg <sam@...nborg.org>,
        Michal Marek <mmarek@...e.com>,
        LKML <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v2] kbuild: (bin)rpm-pkg: fix version number handling

On 14 September 2017 at 14:26, Masahiro Yamada
<yamada.masahiro@...ionext.com> wrote:
> The "Release:" field of the spec file is determined based on the
> .version file.
>
> However, the .version file is not copied to the source tar file.
> So, when we build the kernel from the source package, the UTS_VERSION
> always indicates #1.  This does not match with "rpm -q".
>
> The kernel UTS_VERSION and "rpm -q" do not agree for binrpm-pkg, either.
> Please note the kernel has already been built before the spec file is
> created.  Currently, mkspec invokes mkversion.  This script returns an
> incremented version.  So, the "Release:" field of the spec file is
> greater than the version in the kernel by one.
>
> For the source package build (where .version file is missing), we can
> give KBUILD_BUILD_VERSION=%{release} to the build command.
>
> For the binary package build, we can simply read out the .version file
> because it contains the version number that was used for building the
> kernel image.
>
> We can remove scripts/mkversion because scripts/package/Makefile need
> not touch the .version file.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@...ionext.com>
> ---
>
> Changes in v2:
>   - Remove bogus comment in mkspec
>
>  scripts/mkversion        | 6 ------
>  scripts/package/Makefile | 5 -----
>  scripts/package/mkspec   | 6 ++----
>  3 files changed, 2 insertions(+), 15 deletions(-)
>  delete mode 100644 scripts/mkversion
>
> diff --git a/scripts/mkversion b/scripts/mkversion
> deleted file mode 100644
> index c12addc..0000000
> --- a/scripts/mkversion
> +++ /dev/null
> @@ -1,6 +0,0 @@
> -if [ ! -f .version ]
> -then
> -    echo 1
> -else
> -    expr 0`cat .version` + 1
> -fi
> diff --git a/scripts/package/Makefile b/scripts/package/Makefile
> index 71b4a8a..73f9f31 100644
> --- a/scripts/package/Makefile
> +++ b/scripts/package/Makefile
> @@ -50,8 +50,6 @@ rpm-pkg rpm: FORCE
>         $(MAKE) clean
>         $(CONFIG_SHELL) $(MKSPEC) >$(objtree)/kernel.spec
>         $(call cmd,src_tar,$(KERNELPATH),kernel.spec)
> -       $(CONFIG_SHELL) $(srctree)/scripts/mkversion > $(objtree)/.tmp_version
> -       mv -f $(objtree)/.tmp_version $(objtree)/.version
>         rpmbuild $(RPMOPTS) --target $(UTS_MACHINE) -ta $(KERNELPATH).tar.gz
>         rm $(KERNELPATH).tar.gz kernel.spec
>
> @@ -60,9 +58,6 @@ rpm-pkg rpm: FORCE
>  binrpm-pkg: FORCE
>         $(MAKE) KBUILD_SRC=
>         $(CONFIG_SHELL) $(MKSPEC) prebuilt > $(objtree)/binkernel.spec
> -       $(CONFIG_SHELL) $(srctree)/scripts/mkversion > $(objtree)/.tmp_version
> -       mv -f $(objtree)/.tmp_version $(objtree)/.version
> -
>         rpmbuild $(RPMOPTS) --define "_builddir $(objtree)" --target \
>                 $(UTS_MACHINE) -bb $(objtree)/binkernel.spec
>         rm binkernel.spec
> diff --git a/scripts/package/mkspec b/scripts/package/mkspec
> index bb43f15..e81dafc 100755
> --- a/scripts/package/mkspec
> +++ b/scripts/package/mkspec
> @@ -27,9 +27,7 @@ __KERNELRELEASE=`echo $KERNELRELEASE | sed -e "s/-/_/g"`
>  echo "Name: kernel"
>  echo "Summary: The Linux Kernel"
>  echo "Version: $__KERNELRELEASE"
> -# we need to determine the NEXT version number so that uname and
> -# rpm -q will agree
> -echo "Release: `. $srctree/scripts/mkversion`"
> +echo "Release: $(cat .version)"

$(cat .version||echo 1)"

 .version might not exist at that point  - for example when calling
make rpm-pkg from a pristine source tree. Apart from that looks good
to me.

>  echo "License: GPL"
>  echo "Group: System Environment/Kernel"
>  echo "Vendor: The Linux Community"
> @@ -77,7 +75,7 @@ fi
>  echo "%build"
>
>  if ! $PREBUILT; then
> -echo "make clean && make %{?_smp_mflags}"
> +echo "make clean && make %{?_smp_mflags} KBUILD_BUILD_VERSION=%{release}"
>  echo ""
>  fi
>
> --
> 2.7.4
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ