2023-03-21 18:52:09

by Kevin Locke

[permalink] [raw]
Subject: [PATCH] kbuild: deb-pkg: set version for linux-headers paths

As a result of the switch to dh_listpackages, $version is no longer set
when install_kernel_headers() is called. This causes files in the
linux-headers deb package to be installed to a path with an empty
$version (e.g. /usr/src/linux-headers-/scripts/sign-file rather than
/usr/src/linux-headers-6.3.0-rc3/scripts/sign-file).

To avoid this, while continuing to use the version information from
dh_listpackages, set $version from $package.

Fixes: 36862e14e316 ("kbuild: deb-pkg: use dh_listpackages to know enabled packages")
Signed-off-by: Kevin Locke <[email protected]>
---
scripts/package/builddeb | 1 +
1 file changed, 1 insertion(+)

diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index c5ae57167d7c..6fd590437f47 100755
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -229,6 +229,7 @@ do
linux-libc-dev)
install_libc_headers debian/linux-libc-dev;;
linux-headers-*)
+ version=${package#linux-headers-}
install_kernel_headers debian/linux-headers;;
esac
done
--
2.39.2



2023-03-21 21:22:41

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH] kbuild: deb-pkg: set version for linux-headers paths

On Wed, Mar 22, 2023 at 3:36 AM Kevin Locke <[email protected]> wrote:
>
> As a result of the switch to dh_listpackages, $version is no longer set
> when install_kernel_headers() is called. This causes files in the
> linux-headers deb package to be installed to a path with an empty
> $version (e.g. /usr/src/linux-headers-/scripts/sign-file rather than
> /usr/src/linux-headers-6.3.0-rc3/scripts/sign-file).
>
> To avoid this, while continuing to use the version information from
> dh_listpackages, set $version from $package.
>
> Fixes: 36862e14e316 ("kbuild: deb-pkg: use dh_listpackages to know enabled packages")
> Signed-off-by: Kevin Locke <[email protected]>
> ---
> scripts/package/builddeb | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/scripts/package/builddeb b/scripts/package/builddeb
> index c5ae57167d7c..6fd590437f47 100755
> --- a/scripts/package/builddeb
> +++ b/scripts/package/builddeb
> @@ -229,6 +229,7 @@ do
> linux-libc-dev)
> install_libc_headers debian/linux-libc-dev;;
> linux-headers-*)
> + version=${package#linux-headers-}
> install_kernel_headers debian/linux-headers;;

Thank you for catching this.
Can you pass it as the second argument to the function?


install_kerne_headers debian/linux-headers ${package#linux-headers-}



> esac
> done
> --
> 2.39.2
>


--
Best Regards
Masahiro Yamada

2023-03-21 21:43:07

by Kevin Locke

[permalink] [raw]
Subject: [PATCH v2] kbuild: deb-pkg: set version for linux-headers paths

As a result of the switch to dh_listpackages, $version is no longer set
when install_kernel_headers() is called. This causes files in the
linux-headers deb package to be installed to a path with an empty
$version (e.g. /usr/src/linux-headers-/scripts/sign-file rather than
/usr/src/linux-headers-6.3.0-rc3/scripts/sign-file).

To avoid this, while continuing to use the version information from
dh_listpackages, pass $version from $package as the second argument
of install_kernel_headers().

Fixes: 36862e14e316 ("kbuild: deb-pkg: use dh_listpackages to know enabled packages")
Signed-off-by: Kevin Locke <[email protected]>
---
Good idea! Thanks for the quick review and feedback. Here's an updated
version.

Changes since v1:
* Pass version as the second argument to install_kernel_headers(),
rather than as a global variable, as suggested by Masahiro Yamada.

scripts/package/builddeb | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index c5ae57167d7c..7b23f52c70c5 100755
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -162,6 +162,7 @@ install_linux_image_dbg () {

install_kernel_headers () {
pdir=$1
+ version=$2

rm -rf $pdir

@@ -229,7 +230,7 @@ do
linux-libc-dev)
install_libc_headers debian/linux-libc-dev;;
linux-headers-*)
- install_kernel_headers debian/linux-headers;;
+ install_kernel_headers debian/linux-headers ${package#linux-headers-};;
esac
done

--
2.39.2

2023-03-22 14:34:05

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH v2] kbuild: deb-pkg: set version for linux-headers paths

On Wed, Mar 22, 2023 at 6:39 AM Kevin Locke <[email protected]> wrote:
>
> As a result of the switch to dh_listpackages, $version is no longer set
> when install_kernel_headers() is called. This causes files in the
> linux-headers deb package to be installed to a path with an empty
> $version (e.g. /usr/src/linux-headers-/scripts/sign-file rather than
> /usr/src/linux-headers-6.3.0-rc3/scripts/sign-file).
>
> To avoid this, while continuing to use the version information from
> dh_listpackages, pass $version from $package as the second argument
> of install_kernel_headers().
>
> Fixes: 36862e14e316 ("kbuild: deb-pkg: use dh_listpackages to know enabled packages")
> Signed-off-by: Kevin Locke <[email protected]>
> ---

Applied to linux-kbuild/fixes. Thanks.



> Good idea! Thanks for the quick review and feedback. Here's an updated
> version.
>
> Changes since v1:
> * Pass version as the second argument to install_kernel_headers(),
> rather than as a global variable, as suggested by Masahiro Yamada.
>
> scripts/package/builddeb | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/package/builddeb b/scripts/package/builddeb
> index c5ae57167d7c..7b23f52c70c5 100755
> --- a/scripts/package/builddeb
> +++ b/scripts/package/builddeb
> @@ -162,6 +162,7 @@ install_linux_image_dbg () {
>
> install_kernel_headers () {
> pdir=$1
> + version=$2
>
> rm -rf $pdir
>
> @@ -229,7 +230,7 @@ do
> linux-libc-dev)
> install_libc_headers debian/linux-libc-dev;;
> linux-headers-*)
> - install_kernel_headers debian/linux-headers;;
> + install_kernel_headers debian/linux-headers ${package#linux-headers-};;
> esac
> done
>
> --
> 2.39.2
>


--
Best Regards
Masahiro Yamada