* [PATCH v4 0/4] deb-pkg: bring it a little bit closer to debian packaging
@ 2013-05-07 15:46 Anisse Astier
2013-05-07 15:46 ` [PATCH v4 1/4] deb-pkg: use KCONFIG_CONFIG instead of .config file directly Anisse Astier
` (3 more replies)
0 siblings, 4 replies; 10+ messages in thread
From: Anisse Astier @ 2013-05-07 15:46 UTC (permalink / raw)
To: linux-kbuild
Cc: Michal Marek, maximilian attems, Anisse Astier, Ben Hutchings,
debian-kernel, kernel-team
These little fixes should bring debian packaging closer to the way it's done in debian:
Changes since:
v2:
- only build debug packages when CONFIG_DEBUG_INFO=y
- build debug package last.
- more verbose debug package description
- put package in section debug
v3:
- remove duplicate code from v2
v4:
- fixes thanks to Ben Hutchings' review
- use KCONFIG_CONFIG instead of .config
- use installed path specific to each architecture instead of hard-coded
/boot/vmlinuz-$version, based on
http://anonscm.debian.org/viewvc/kernel/dists/wheezy/linux/debian/rules.real?view=markup
Anisse Astier (4):
deb-pkg: use KCONFIG_CONFIG instead of .config file directly
deb-pkg: split debug symbols in their own package
deb-pkg: fix installed image path on parisc, mips and powerpc
deb-pkg: add a hook argument to match debian hooks parameters
scripts/package/builddeb | 82 +++++++++++++++++++++++++++++++++++++++---------
1 file changed, 67 insertions(+), 15 deletions(-)
--
1.8.3.rc1
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v4 1/4] deb-pkg: use KCONFIG_CONFIG instead of .config file directly
2013-05-07 15:46 [PATCH v4 0/4] deb-pkg: bring it a little bit closer to debian packaging Anisse Astier
@ 2013-05-07 15:46 ` Anisse Astier
2013-05-08 2:49 ` Ben Hutchings
2013-05-07 15:46 ` [PATCH v4 2/4] deb-pkg: split debug symbols in their own package Anisse Astier
` (2 subsequent siblings)
3 siblings, 1 reply; 10+ messages in thread
From: Anisse Astier @ 2013-05-07 15:46 UTC (permalink / raw)
To: linux-kbuild
Cc: Michal Marek, maximilian attems, Anisse Astier, Ben Hutchings,
debian-kernel, kernel-team
Signed-off-by: Anisse Astier <anisse@astier.eu>
---
scripts/package/builddeb | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index acb8650..2d84671 100644
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -41,9 +41,9 @@ create_package() {
parisc*)
debarch=hppa ;;
mips*)
- debarch=mips$(grep -q CPU_LITTLE_ENDIAN=y .config && echo el) ;;
+ debarch=mips$(grep -q CPU_LITTLE_ENDIAN=y $objtree/$KCONFIG_CONFIG && echo el) ;;
arm*)
- debarch=arm$(grep -q CONFIG_AEABI=y .config && echo el) ;;
+ debarch=arm$(grep -q CONFIG_AEABI=y $objtree/$KCONFIG_CONFIG && echo el) ;;
*)
echo "" >&2
echo "** ** ** WARNING ** ** **" >&2
@@ -106,12 +106,12 @@ fi
if [ "$ARCH" = "um" ] ; then
$MAKE linux
cp System.map "$tmpdir/usr/lib/uml/modules/$version/System.map"
- cp .config "$tmpdir/usr/share/doc/$packagename/config"
+ cp $KCONFIG_CONFIG "$tmpdir/usr/share/doc/$packagename/config"
gzip "$tmpdir/usr/share/doc/$packagename/config"
cp $KBUILD_IMAGE "$tmpdir/usr/bin/linux-$version"
else
cp System.map "$tmpdir/boot/System.map-$version"
- cp .config "$tmpdir/boot/config-$version"
+ cp $KCONFIG_CONFIG "$tmpdir/boot/config-$version"
# Not all arches include the boot path in KBUILD_IMAGE
if [ -e $KBUILD_IMAGE ]; then
cp $KBUILD_IMAGE "$tmpdir/boot/vmlinuz-$version"
@@ -120,7 +120,7 @@ else
fi
fi
-if grep -q '^CONFIG_MODULES=y' .config ; then
+if grep -q '^CONFIG_MODULES=y' $objtree/$KCONFIG_CONFIG ; then
INSTALL_MOD_PATH="$tmpdir" $MAKE KBUILD_SRC= modules_install
rm -f "$tmpdir/lib/modules/$version/build"
rm -f "$tmpdir/lib/modules/$version/source"
@@ -245,7 +245,7 @@ fi
# Build header package
(cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl > "$objtree/debian/hdrsrcfiles")
(cd $srctree; find arch/$SRCARCH/include include scripts -type f >> "$objtree/debian/hdrsrcfiles")
-(cd $objtree; find arch/$SRCARCH/include .config Module.symvers include scripts -type f >> "$objtree/debian/hdrobjfiles")
+(cd $objtree; find arch/$SRCARCH/include $KCONFIG_CONFIG Module.symvers include scripts -type f >> "$objtree/debian/hdrobjfiles")
destdir=$kernel_headers_dir/usr/src/linux-headers-$version
mkdir -p "$destdir"
(cd $srctree; tar -c -f - -T "$objtree/debian/hdrsrcfiles") | (cd $destdir; tar -xf -)
--
1.8.3.rc1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v4 2/4] deb-pkg: split debug symbols in their own package
2013-05-07 15:46 [PATCH v4 0/4] deb-pkg: bring it a little bit closer to debian packaging Anisse Astier
2013-05-07 15:46 ` [PATCH v4 1/4] deb-pkg: use KCONFIG_CONFIG instead of .config file directly Anisse Astier
@ 2013-05-07 15:46 ` Anisse Astier
2013-05-08 3:14 ` Ben Hutchings
2013-05-07 15:46 ` [PATCH v4 3/4] deb-pkg: fix installed image path on parisc, mips and powerpc Anisse Astier
2013-05-07 15:46 ` [PATCH v4 4/4] deb-pkg: add a hook argument to match debian hooks parameters Anisse Astier
3 siblings, 1 reply; 10+ messages in thread
From: Anisse Astier @ 2013-05-07 15:46 UTC (permalink / raw)
To: linux-kbuild
Cc: Michal Marek, maximilian attems, Anisse Astier, Ben Hutchings,
debian-kernel, kernel-team
This can reduce almost 3 times the size of the linux-image package,
while keeping the debug symbols available for this particular build, in
their own package.
This mimics the way kernels are built in debian, ubuntu, or with
make-kpkg, and comes at the price of a small slowdown in the building of
packages.
Signed-off-by: Anisse Astier <anisse@astier.eu>
---
scripts/package/builddeb | 43 ++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 42 insertions(+), 1 deletion(-)
diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index 2d84671..797484b 100644
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -78,17 +78,21 @@ tmpdir="$objtree/debian/tmp"
fwdir="$objtree/debian/fwtmp"
kernel_headers_dir="$objtree/debian/hdrtmp"
libc_headers_dir="$objtree/debian/headertmp"
+dbg_dir="$objtree/debian/dbgtmp"
packagename=linux-image-$version
fwpackagename=linux-firmware-image
kernel_headers_packagename=linux-headers-$version
libc_headers_packagename=linux-libc-dev
+dbg_packagename=$packagename-dbg
if [ "$ARCH" = "um" ] ; then
packagename=user-mode-linux-$version
fi
+BUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_INFO=y' $objtree/$KCONFIG_CONFIG || true)"
+
# Setup the directory structure
-rm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir"
+rm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir"
mkdir -m 755 -p "$tmpdir/DEBIAN"
mkdir -p "$tmpdir/lib" "$tmpdir/boot" "$tmpdir/usr/share/doc/$packagename"
mkdir -m 755 -p "$fwdir/DEBIAN"
@@ -101,6 +105,10 @@ mkdir -p "$kernel_headers_dir/lib/modules/$version/"
if [ "$ARCH" = "um" ] ; then
mkdir -p "$tmpdir/usr/lib/uml/modules/$version" "$tmpdir/usr/bin"
fi
+if [ -n "$BUILD_DEBUG" ] ; then
+ mkdir -p "$dbg_dir/usr/share/doc/$dbg_packagename"
+ mkdir -m 755 -p "$dbg_dir/DEBIAN"
+fi
# Build and install the kernel
if [ "$ARCH" = "um" ] ; then
@@ -128,6 +136,20 @@ if grep -q '^CONFIG_MODULES=y' $objtree/$KCONFIG_CONFIG ; then
mv "$tmpdir/lib/modules/$version"/* "$tmpdir/usr/lib/uml/modules/$version/"
rmdir "$tmpdir/lib/modules/$version"
fi
+ if [ -n "$BUILD_DEBUG" ] ; then
+ (
+ cd $tmpdir
+ for module in $(find lib/modules/ -name *.ko); do
+ mkdir -p $(dirname $dbg_dir/usr/lib/debug/$module)
+ # only keep debug symbols in the debug file
+ objcopy --only-keep-debug $module $dbg_dir/usr/lib/debug/$module
+ # strip original module from debug symbols
+ objcopy --strip-debug $module
+ # then add a link to those
+ objcopy --add-gnu-debuglink=$dbg_dir/usr/lib/debug/$module $module
+ done
+ )
+ fi
fi
if [ "$ARCH" != "um" ]; then
@@ -299,4 +321,23 @@ fi
create_package "$packagename" "$tmpdir"
+if [ -n "$BUILD_DEBUG" ] ; then
+ # Build debug package
+ mkdir -p $dbg_dir/usr/lib/debug/lib/modules/$version/
+ cp vmlinux $dbg_dir/usr/lib/debug/lib/modules/$version/
+
+ cat <<EOF >> debian/control
+
+Package: $dbg_packagename
+Section: debug
+Provides: linux-debug, linux-debug-$version
+Architecture: any
+Description: Linux kernel debugging symbols for $version
+ This package will come in handy if you need to debug the kernel. It provides
+ all the necessary debug symbols for the kernel and its modules.
+EOF
+
+ create_package "$dbg_packagename" "$dbg_dir"
+fi
+
exit 0
--
1.8.3.rc1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v4 3/4] deb-pkg: fix installed image path on parisc, mips and powerpc
2013-05-07 15:46 [PATCH v4 0/4] deb-pkg: bring it a little bit closer to debian packaging Anisse Astier
2013-05-07 15:46 ` [PATCH v4 1/4] deb-pkg: use KCONFIG_CONFIG instead of .config file directly Anisse Astier
2013-05-07 15:46 ` [PATCH v4 2/4] deb-pkg: split debug symbols in their own package Anisse Astier
@ 2013-05-07 15:46 ` Anisse Astier
2013-05-08 3:54 ` Ben Hutchings
2013-05-07 15:46 ` [PATCH v4 4/4] deb-pkg: add a hook argument to match debian hooks parameters Anisse Astier
3 siblings, 1 reply; 10+ messages in thread
From: Anisse Astier @ 2013-05-07 15:46 UTC (permalink / raw)
To: linux-kbuild
Cc: Michal Marek, maximilian attems, Anisse Astier, Ben Hutchings,
debian-kernel, kernel-team
Signed-off-by: Anisse Astier <anisse@astier.eu>
---
scripts/package/builddeb | 25 ++++++++++++++++++-------
1 file changed, 18 insertions(+), 7 deletions(-)
diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index 797484b..73bb551 100644
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -89,6 +89,18 @@ if [ "$ARCH" = "um" ] ; then
packagename=user-mode-linux-$version
fi
+# Not all arches have the same installed path in debian
+case $ARCH in
+um)
+ installed_image_path="usr/bin/linux-$version"
+ ;;
+parisc|mips|powerpc)
+ installed_image_path="boot/vmlinux-$version"
+ ;;
+*)
+ installed_image_path="boot/vmlinuz-$version"
+esac
+
BUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_INFO=y' $objtree/$KCONFIG_CONFIG || true)"
# Setup the directory structure
@@ -116,16 +128,15 @@ if [ "$ARCH" = "um" ] ; then
cp System.map "$tmpdir/usr/lib/uml/modules/$version/System.map"
cp $KCONFIG_CONFIG "$tmpdir/usr/share/doc/$packagename/config"
gzip "$tmpdir/usr/share/doc/$packagename/config"
- cp $KBUILD_IMAGE "$tmpdir/usr/bin/linux-$version"
else
cp System.map "$tmpdir/boot/System.map-$version"
cp $KCONFIG_CONFIG "$tmpdir/boot/config-$version"
- # Not all arches include the boot path in KBUILD_IMAGE
- if [ -e $KBUILD_IMAGE ]; then
- cp $KBUILD_IMAGE "$tmpdir/boot/vmlinuz-$version"
- else
- cp arch/$ARCH/boot/$KBUILD_IMAGE "$tmpdir/boot/vmlinuz-$version"
- fi
+fi
+# Not all arches include the boot path in KBUILD_IMAGE
+if [ -e $KBUILD_IMAGE ]; then
+ cp $KBUILD_IMAGE "$tmpdir/$installed_image_path"
+else
+ cp arch/$ARCH/boot/$KBUILD_IMAGE "$tmpdir/$installed_image_path"
fi
if grep -q '^CONFIG_MODULES=y' $objtree/$KCONFIG_CONFIG ; then
--
1.8.3.rc1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v4 4/4] deb-pkg: add a hook argument to match debian hooks parameters
2013-05-07 15:46 [PATCH v4 0/4] deb-pkg: bring it a little bit closer to debian packaging Anisse Astier
` (2 preceding siblings ...)
2013-05-07 15:46 ` [PATCH v4 3/4] deb-pkg: fix installed image path on parisc, mips and powerpc Anisse Astier
@ 2013-05-07 15:46 ` Anisse Astier
2013-05-08 4:00 ` Ben Hutchings
3 siblings, 1 reply; 10+ messages in thread
From: Anisse Astier @ 2013-05-07 15:46 UTC (permalink / raw)
To: linux-kbuild
Cc: Michal Marek, maximilian attems, Anisse Astier, Ben Hutchings,
debian-kernel, kernel-team
We now provide the installed image path to the kernel hooks.
This should allow the package to better integrate with debian hooks, and
should not be too disruptive of hooks supporting only one parameter.
Signed-off-by: Anisse Astier <anisse@astier.eu>
---
scripts/package/builddeb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index 73bb551..fa084c6 100644
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -182,7 +182,7 @@ set -e
# Pass maintainer script parameters to hook scripts
export DEB_MAINT_PARAMS="\$*"
-test -d $debhookdir/$script.d && run-parts --arg="$version" $debhookdir/$script.d
+test -d $debhookdir/$script.d && run-parts --arg="$version" --arg="/$installed_image_path" $debhookdir/$script.d
exit 0
EOF
chmod 755 "$tmpdir/DEBIAN/$script"
--
1.8.3.rc1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v4 1/4] deb-pkg: use KCONFIG_CONFIG instead of .config file directly
2013-05-07 15:46 ` [PATCH v4 1/4] deb-pkg: use KCONFIG_CONFIG instead of .config file directly Anisse Astier
@ 2013-05-08 2:49 ` Ben Hutchings
0 siblings, 0 replies; 10+ messages in thread
From: Ben Hutchings @ 2013-05-08 2:49 UTC (permalink / raw)
To: Anisse Astier
Cc: linux-kbuild, Michal Marek, maximilian attems, debian-kernel,
kernel-team
[-- Attachment #1: Type: text/plain, Size: 1516 bytes --]
On Tue, 2013-05-07 at 17:46 +0200, Anisse Astier wrote:
> Signed-off-by: Anisse Astier <anisse@astier.eu>
> ---
> scripts/package/builddeb | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/scripts/package/builddeb b/scripts/package/builddeb
> index acb8650..2d84671 100644
> --- a/scripts/package/builddeb
> +++ b/scripts/package/builddeb
> @@ -41,9 +41,9 @@ create_package() {
> parisc*)
> debarch=hppa ;;
> mips*)
> - debarch=mips$(grep -q CPU_LITTLE_ENDIAN=y .config && echo el) ;;
> + debarch=mips$(grep -q CPU_LITTLE_ENDIAN=y $objtree/$KCONFIG_CONFIG && echo el) ;;
> arm*)
> - debarch=arm$(grep -q CONFIG_AEABI=y .config && echo el) ;;
> + debarch=arm$(grep -q CONFIG_AEABI=y $objtree/$KCONFIG_CONFIG && echo el) ;;
You use $objtree here (and I think I may have suggested to you that it
was necessary)...
> *)
> echo "" >&2
> echo "** ** ** WARNING ** ** **" >&2
> @@ -106,12 +106,12 @@ fi
> if [ "$ARCH" = "um" ] ; then
> $MAKE linux
> cp System.map "$tmpdir/usr/lib/uml/modules/$version/System.map"
> - cp .config "$tmpdir/usr/share/doc/$packagename/config"
> + cp $KCONFIG_CONFIG "$tmpdir/usr/share/doc/$packagename/config"
[...]
but you don't use it here. This still works because we are running with
current directory set to $objtree. So be consistent and just use
$KCONFIG_CONFIG in all cases.
Ben.
--
Ben Hutchings
For every action, there is an equal and opposite criticism. - Harrison
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 828 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v4 2/4] deb-pkg: split debug symbols in their own package
2013-05-07 15:46 ` [PATCH v4 2/4] deb-pkg: split debug symbols in their own package Anisse Astier
@ 2013-05-08 3:14 ` Ben Hutchings
2013-05-20 13:34 ` Anisse Astier
0 siblings, 1 reply; 10+ messages in thread
From: Ben Hutchings @ 2013-05-08 3:14 UTC (permalink / raw)
To: Anisse Astier
Cc: linux-kbuild, Michal Marek, maximilian attems, debian-kernel,
kernel-team
[-- Attachment #1: Type: text/plain, Size: 2689 bytes --]
On Tue, 2013-05-07 at 17:46 +0200, Anisse Astier wrote:
> This can reduce almost 3 times the size of the linux-image package,
> while keeping the debug symbols available for this particular build, in
> their own package.
>
> This mimics the way kernels are built in debian, ubuntu, or with
> make-kpkg, and comes at the price of a small slowdown in the building of
> packages.
>
> Signed-off-by: Anisse Astier <anisse@astier.eu>
> ---
> scripts/package/builddeb | 43 ++++++++++++++++++++++++++++++++++++++++++-
> 1 file changed, 42 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/package/builddeb b/scripts/package/builddeb
> index 2d84671..797484b 100644
> --- a/scripts/package/builddeb
> +++ b/scripts/package/builddeb
> @@ -78,17 +78,21 @@ tmpdir="$objtree/debian/tmp"
> fwdir="$objtree/debian/fwtmp"
> kernel_headers_dir="$objtree/debian/hdrtmp"
> libc_headers_dir="$objtree/debian/headertmp"
> +dbg_dir="$objtree/debian/dbgtmp"
> packagename=linux-image-$version
> fwpackagename=linux-firmware-image
> kernel_headers_packagename=linux-headers-$version
> libc_headers_packagename=linux-libc-dev
> +dbg_packagename=$packagename-dbg
>
> if [ "$ARCH" = "um" ] ; then
> packagename=user-mode-linux-$version
> fi
>
> +BUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_INFO=y' $objtree/$KCONFIG_CONFIG || true)"
As in the previous patch, you can omit $objtree/ here.
[...]
> @@ -128,6 +136,20 @@ if grep -q '^CONFIG_MODULES=y' $objtree/$KCONFIG_CONFIG ; then
> mv "$tmpdir/lib/modules/$version"/* "$tmpdir/usr/lib/uml/modules/$version/"
> rmdir "$tmpdir/lib/modules/$version"
> fi
> + if [ -n "$BUILD_DEBUG" ] ; then
> + (
> + cd $tmpdir
> + for module in $(find lib/modules/ -name *.ko); do
What if this is a non-modular kernel?
[...]
> +if [ -n "$BUILD_DEBUG" ] ; then
> + # Build debug package
> + mkdir -p $dbg_dir/usr/lib/debug/lib/modules/$version/
> + cp vmlinux $dbg_dir/usr/lib/debug/lib/modules/$version/
[...]
Different tools have different ideas about where vmlinux debuginfo
should be. What I ended up doing in Debian's own kernel debug packages
in wheezy was installing/symlinking to all of:
/usr/lib/debug/boot/vmlinux-$version [systemtap]
/usr/lib/debug/lib/modules/$version/vmlinux [perf]
/usr/lib/debug/vmlinux-$version [kdump-tools]
So unless anyone has a better suggestion I think you'd better do the
same here.
(But really, the Linux development community ought to agree on a single
canonical path format that all such tools will support.)
Ben.
--
Ben Hutchings
For every action, there is an equal and opposite criticism. - Harrison
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 828 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v4 3/4] deb-pkg: fix installed image path on parisc, mips and powerpc
2013-05-07 15:46 ` [PATCH v4 3/4] deb-pkg: fix installed image path on parisc, mips and powerpc Anisse Astier
@ 2013-05-08 3:54 ` Ben Hutchings
0 siblings, 0 replies; 10+ messages in thread
From: Ben Hutchings @ 2013-05-08 3:54 UTC (permalink / raw)
To: Anisse Astier
Cc: linux-kbuild, Michal Marek, maximilian attems, debian-kernel,
kernel-team
[-- Attachment #1: Type: text/plain, Size: 1440 bytes --]
On Tue, 2013-05-07 at 17:46 +0200, Anisse Astier wrote:
> Signed-off-by: Anisse Astier <anisse@astier.eu>
> ---
> scripts/package/builddeb | 25 ++++++++++++++++++-------
> 1 file changed, 18 insertions(+), 7 deletions(-)
>
> diff --git a/scripts/package/builddeb b/scripts/package/builddeb
> index 797484b..73bb551 100644
> --- a/scripts/package/builddeb
> +++ b/scripts/package/builddeb
> @@ -89,6 +89,18 @@ if [ "$ARCH" = "um" ] ; then
> packagename=user-mode-linux-$version
> fi
>
> +# Not all arches have the same installed path in debian
> +case $ARCH in
> +um)
> + installed_image_path="usr/bin/linux-$version"
> + ;;
> +parisc|mips|powerpc)
> + installed_image_path="boot/vmlinux-$version"
> + ;;
> +*)
> + installed_image_path="boot/vmlinuz-$version"
> +esac
[...]
This certainly matches the naming we use in official Debian kernel
packages. The intent was, I think, to match what 'make install' would
do, but with the version suffix. We've diverged from that slightly in
that some MIPS platforms now support compressed kernel images which are
installed as vmlinuz.
So, you can consider this:
Reviewed-by: Ben Hutchings <ben@decadent.org.uk>
However I think we could improve on this by making each architecture
Makefile define the canonical installed name of the kernel image.
Ben.
--
Ben Hutchings
For every action, there is an equal and opposite criticism. - Harrison
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 828 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v4 4/4] deb-pkg: add a hook argument to match debian hooks parameters
2013-05-07 15:46 ` [PATCH v4 4/4] deb-pkg: add a hook argument to match debian hooks parameters Anisse Astier
@ 2013-05-08 4:00 ` Ben Hutchings
0 siblings, 0 replies; 10+ messages in thread
From: Ben Hutchings @ 2013-05-08 4:00 UTC (permalink / raw)
To: Anisse Astier
Cc: linux-kbuild, Michal Marek, maximilian attems, debian-kernel,
kernel-team
[-- Attachment #1: Type: text/plain, Size: 1403 bytes --]
On Tue, 2013-05-07 at 17:46 +0200, Anisse Astier wrote:
> We now provide the installed image path to the kernel hooks.
>
> This should allow the package to better integrate with debian hooks, and
> should not be too disruptive of hooks supporting only one parameter.
>
> Signed-off-by: Anisse Astier <anisse@astier.eu>
Reviewed-by: Ben Hutchings <ben@decadent.org.uk>
All hook scripts should support both forms, as specified in
<http://kernel-handbook.alioth.debian.org/ch-update-hooks.html>. Of
course, that is only Debian policy and we don't know that everyone
working on derivatives has read it...
Ben.
> ---
> scripts/package/builddeb | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/package/builddeb b/scripts/package/builddeb
> index 73bb551..fa084c6 100644
> --- a/scripts/package/builddeb
> +++ b/scripts/package/builddeb
> @@ -182,7 +182,7 @@ set -e
> # Pass maintainer script parameters to hook scripts
> export DEB_MAINT_PARAMS="\$*"
>
> -test -d $debhookdir/$script.d && run-parts --arg="$version" $debhookdir/$script.d
> +test -d $debhookdir/$script.d && run-parts --arg="$version" --arg="/$installed_image_path" $debhookdir/$script.d
> exit 0
> EOF
> chmod 755 "$tmpdir/DEBIAN/$script"
> --
> 1.8.3.rc1
>
>
--
Ben Hutchings
For every action, there is an equal and opposite criticism. - Harrison
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 828 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v4 2/4] deb-pkg: split debug symbols in their own package
2013-05-08 3:14 ` Ben Hutchings
@ 2013-05-20 13:34 ` Anisse Astier
0 siblings, 0 replies; 10+ messages in thread
From: Anisse Astier @ 2013-05-20 13:34 UTC (permalink / raw)
To: Ben Hutchings
Cc: linux-kbuild, Michal Marek, maximilian attems, debian-kernel,
kernel-team
Hi Ben,
On Wed, May 8, 2013 at 5:14 AM, Ben Hutchings <ben@decadent.org.uk> wrote:
> On Tue, 2013-05-07 at 17:46 +0200, Anisse Astier wrote:
>> This can reduce almost 3 times the size of the linux-image package,
>> while keeping the debug symbols available for this particular build, in
>> their own package.
>>
>> This mimics the way kernels are built in debian, ubuntu, or with
>> make-kpkg, and comes at the price of a small slowdown in the building of
>> packages.
>>
>> Signed-off-by: Anisse Astier <anisse@astier.eu>
>> ---
>> scripts/package/builddeb | 43 ++++++++++++++++++++++++++++++++++++++++++-
>> 1 file changed, 42 insertions(+), 1 deletion(-)
>>
>> diff --git a/scripts/package/builddeb b/scripts/package/builddeb
>> index 2d84671..797484b 100644
>> --- a/scripts/package/builddeb
>> +++ b/scripts/package/builddeb
>> @@ -78,17 +78,21 @@ tmpdir="$objtree/debian/tmp"
>> fwdir="$objtree/debian/fwtmp"
>> kernel_headers_dir="$objtree/debian/hdrtmp"
>> libc_headers_dir="$objtree/debian/headertmp"
>> +dbg_dir="$objtree/debian/dbgtmp"
>> packagename=linux-image-$version
>> fwpackagename=linux-firmware-image
>> kernel_headers_packagename=linux-headers-$version
>> libc_headers_packagename=linux-libc-dev
>> +dbg_packagename=$packagename-dbg
>>
>> if [ "$ARCH" = "um" ] ; then
>> packagename=user-mode-linux-$version
>> fi
>>
>> +BUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_INFO=y' $objtree/$KCONFIG_CONFIG || true)"
>
> As in the previous patch, you can omit $objtree/ here.
>
> [...]
>> @@ -128,6 +136,20 @@ if grep -q '^CONFIG_MODULES=y' $objtree/$KCONFIG_CONFIG ; then
>> mv "$tmpdir/lib/modules/$version"/* "$tmpdir/usr/lib/uml/modules/$version/"
>> rmdir "$tmpdir/lib/modules/$version"
>> fi
>> + if [ -n "$BUILD_DEBUG" ] ; then
>> + (
>> + cd $tmpdir
>> + for module in $(find lib/modules/ -name *.ko); do
>
> What if this is a non-modular kernel?
It's not entirely apparent in the diff, but this code is inside an if
checking CONFIG_MODULES..
>
> [...]
>> +if [ -n "$BUILD_DEBUG" ] ; then
>> + # Build debug package
>> + mkdir -p $dbg_dir/usr/lib/debug/lib/modules/$version/
>> + cp vmlinux $dbg_dir/usr/lib/debug/lib/modules/$version/
> [...]
>
> Different tools have different ideas about where vmlinux debuginfo
> should be. What I ended up doing in Debian's own kernel debug packages
> in wheezy was installing/symlinking to all of:
>
> /usr/lib/debug/boot/vmlinux-$version [systemtap]
> /usr/lib/debug/lib/modules/$version/vmlinux [perf]
> /usr/lib/debug/vmlinux-$version [kdump-tools]
>
> So unless anyone has a better suggestion I think you'd better do the
> same here.
>
> (But really, the Linux development community ought to agree on a single
> canonical path format that all such tools will support.)
I'll add the symlinks for the next iteration.
Thanks a lot for your review time.
Anisse
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2013-05-20 13:34 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-05-07 15:46 [PATCH v4 0/4] deb-pkg: bring it a little bit closer to debian packaging Anisse Astier
2013-05-07 15:46 ` [PATCH v4 1/4] deb-pkg: use KCONFIG_CONFIG instead of .config file directly Anisse Astier
2013-05-08 2:49 ` Ben Hutchings
2013-05-07 15:46 ` [PATCH v4 2/4] deb-pkg: split debug symbols in their own package Anisse Astier
2013-05-08 3:14 ` Ben Hutchings
2013-05-20 13:34 ` Anisse Astier
2013-05-07 15:46 ` [PATCH v4 3/4] deb-pkg: fix installed image path on parisc, mips and powerpc Anisse Astier
2013-05-08 3:54 ` Ben Hutchings
2013-05-07 15:46 ` [PATCH v4 4/4] deb-pkg: add a hook argument to match debian hooks parameters Anisse Astier
2013-05-08 4:00 ` Ben Hutchings
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.