All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.