FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Debian > Debian Kernel

 
 
LinkBack Thread Tools
 
Old 02-16-2012, 05:57 PM
Joerg Roedel
 
Default kbuild: Build linux-tools package with 'make deb-pkg'

Also build a linux-tools package for installation so that
common tools run without issues (e.g. perf).

[RFC note: This may break with x-compilation when the
x-compilation environment is not set up to
compile user-space programs. Is that acceptable?
I also thought about a compile-time parameter
such as 'make TOOLS=1 deb-pkg' or a special
'make deb-tools-pkg' target. Opinions? ]

Cc: Michal Marek <mmarek@suse.cz>
Cc: maximilian attems <max@stro.at>
Cc: Ben Hutchings <ben@decadent.org.uk>
Cc: debian-kernel@lists.debian.org
Cc: linux-kbuild@vger.kernel.org
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
---
scripts/package/builddeb | 55 +++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 54 insertions(+), 1 deletions(-)

diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index eee5f8e..8466380 100644
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -78,17 +78,19 @@ tmpdir="$objtree/debian/tmp"
fwdir="$objtree/debian/fwtmp"
kernel_headers_dir="$objtree/debian/hdrtmp"
libc_headers_dir="$objtree/debian/headertmp"
+tools_dir="$objtree/debian/toolstmp"
packagename=linux-image-$version
fwpackagename=linux-firmware-image
kernel_headers_packagename=linux-headers-$version
libc_headers_packagename=linux-libc-dev
+tools_packagename=linux-tools-$version

if [ "$ARCH" = "um" ] ; then
packagename=user-mode-linux-$version
fi

# Setup the directory structure
-rm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir"
+rm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir" "$tools_dir"
mkdir -m 755 -p "$tmpdir/DEBIAN"
mkdir -p "$tmpdir/lib" "$tmpdir/boot" "$tmpdir/usr/share/doc/$packagename"
mkdir -m 755 -p "$fwdir/DEBIAN"
@@ -98,6 +100,9 @@ mkdir -p "$libc_headers_dir/usr/share/doc/$libc_headers_packagename"
mkdir -m 755 -p "$kernel_headers_dir/DEBIAN"
mkdir -p "$kernel_headers_dir/usr/share/doc/$kernel_headers_packagename"
mkdir -p "$kernel_headers_dir/lib/modules/$version/"
+mkdir -m 755 -p "$tools_dir/DEBIAN"
+mkdir -p "$tools_dir/usr/share/doc/$tools_packagename"
+mkdir -p "$tools_dir/usr/bin/"
if [ "$ARCH" = "um" ] ; then
mkdir -p "$tmpdir/usr/lib/uml/modules/$version" "$tmpdir/usr/bin"
fi
@@ -120,6 +125,39 @@ else
fi
fi

+# Build the tools
+num_tools="0"
+tools_flavour_abi=${version#*-}
+tools_flavour=${tools_flavour_abi#*-}
+tools_version=${version%-$tools_flavour}
+if grep -q '^CONFIG_PERF_EVENTS=y' .config ; then
+ # Build perf
+ (
+ mkdir -p $objtree/tools/perf
+ cd "$srctree/tools/perf"
+ $MAKE LDFLAGS= O=$O/tools/perf
+ cp $objtree/tools/perf/perf "$tools_dir/usr/bin/perf_$tools_version"
+ )
+ num_tools=$(($num_tools+1))
+fi
+
+if [[ "$ARCH" = "i386" || "$ARCH" = "x86_64" ]]; then
+ # Build turbostat
+ (
+ cd "$srctree/tools/power/x86/turbostat/"
+ $MAKE
+ cp turbostat "$tools_dir/usr/bin/turbostat_$tools_version"
+ )
+
+ # Build x86_energy_perf_policy
+ (
+ cd "$srctree/tools/power/x86/x86_energy_perf_policy"
+ $MAKE
+ cp x86_energy_perf_policy "$tools_dir/usr/bin/x86_energy_perf_policy_$tools_version"
+ )
+ num_tools=$(($num_tools+2))
+fi
+
if grep -q '^CONFIG_MODULES=y' .config ; then
INSTALL_MOD_PATH="$tmpdir" $MAKE KBUILD_SRC= modules_install
rm -f "$tmpdir/lib/modules/$version/build"
@@ -291,9 +329,24 @@ Description: Linux support headers for userspace development
are used by the installed headers for GNU glibc and other system libraries.
EOF

+cat <<EOF >> debian/control
+
+Package: $tools_packagename
+Section: devel
+Architecture: $arch
+Depends: ${shlibsepends}, linux-tools-common
+Description: Linux kernel tools for version $version
+ This package provides the architecture dependant parts for kernel
+ version locked tools for version $version
+EOF
+
if [ "$ARCH" != "um" ]; then
create_package "$kernel_headers_packagename" "$kernel_headers_dir"
create_package "$libc_headers_packagename" "$libc_headers_dir"
+ if [ "$num_tools" > "0" ]; then
+ dpkg-shlibdeps $tools_dir/usr/bin/*
+ create_package "$tools_packagename" "$tools_dir"
+ fi
fi

create_package "$packagename" "$tmpdir"
--
1.7.5.4



--
To UNSUBSCRIBE, email to debian-kernel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 1329418664-1750-1-git-send-email-joerg.roedel@amd.com">http://lists.debian.org/1329418664-1750-1-git-send-email-joerg.roedel@amd.com
 
Old 02-17-2012, 02:16 AM
Ben Hutchings
 
Default kbuild: Build linux-tools package with 'make deb-pkg'

On Thu, 2012-02-16 at 19:57 +0100, Joerg Roedel wrote:
> Also build a linux-tools package for installation so that
> common tools run without issues (e.g. perf).
>
> [RFC note: This may break with x-compilation when the
> x-compilation environment is not set up to
> compile user-space programs. Is that acceptable?
> I also thought about a compile-time parameter
> such as 'make TOOLS=1 deb-pkg' or a special
> 'make deb-tools-pkg' target. Opinions? ]
>
> Cc: Michal Marek <mmarek@suse.cz>
> Cc: maximilian attems <max@stro.at>
> Cc: Ben Hutchings <ben@decadent.org.uk>
> Cc: debian-kernel@lists.debian.org
> Cc: linux-kbuild@vger.kernel.org
> Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
> ---
> scripts/package/builddeb | 55 +++++++++++++++++++++++++++++++++++++++++++++-
> 1 files changed, 54 insertions(+), 1 deletions(-)
>
> diff --git a/scripts/package/builddeb b/scripts/package/builddeb
> index eee5f8e..8466380 100644
> --- a/scripts/package/builddeb
> +++ b/scripts/package/builddeb
> @@ -78,17 +78,19 @@ tmpdir="$objtree/debian/tmp"
> fwdir="$objtree/debian/fwtmp"
> kernel_headers_dir="$objtree/debian/hdrtmp"
> libc_headers_dir="$objtree/debian/headertmp"
> +tools_dir="$objtree/debian/toolstmp"
> packagename=linux-image-$version
> fwpackagename=linux-firmware-image
> kernel_headers_packagename=linux-headers-$version
> libc_headers_packagename=linux-libc-dev
> +tools_packagename=linux-tools-$version

The advice I got from one of the perf developers - possibly Peter
Zijlstra - was that changes to the perf kernel interface are backward-
compatible but newer versions of the perf tool may depend on newer
kernel features. New features involve a bump to the 2nd (at the time,
it was the 3rd) version component unless you're building from a perf
development branch.

So to avoid package proliferation the package name should be
linux-tools-$VERSION.$PATCHLEVEL and the executable filenames should be
something like perf_$VERSION.$PATCHLEVEL-$subcommand. This is what we
do in Debian.

However, Ubuntu uses the full kernel release string (as do several
RPM-based distributions). So at the moment you can't build a versioned
perf that's going to work in both. But that is fixable if one of the
perf wrappers is changed to fall back to the alternate naming scheme.

[...]
> +# Build the tools
> +num_tools="0"
> +tools_flavour_abi=${version#*-}
> +tools_flavour=${tools_flavour_abi#*-}
> +tools_version=${version%-$tools_flavour}
> +if grep -q '^CONFIG_PERF_EVENTS=y' .config ; then
> + # Build perf
> + (
> + mkdir -p $objtree/tools/perf
> + cd "$srctree/tools/perf"
> + $MAKE LDFLAGS= O=$O/tools/perf
> + cp $objtree/tools/perf/perf "$tools_dir/usr/bin/perf_$tools_version"
[...]

What about the manual pages and scripting support?

Ben.

--
Ben Hutchings
Beware of programmers who carry screwdrivers. - Leonard Brandwein
--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team
 
Old 02-17-2012, 02:16 AM
Ben Hutchings
 
Default kbuild: Build linux-tools package with 'make deb-pkg'

On Thu, 2012-02-16 at 19:57 +0100, Joerg Roedel wrote:
> Also build a linux-tools package for installation so that
> common tools run without issues (e.g. perf).
>
> [RFC note: This may break with x-compilation when the
> x-compilation environment is not set up to
> compile user-space programs. Is that acceptable?
> I also thought about a compile-time parameter
> such as 'make TOOLS=1 deb-pkg' or a special
> 'make deb-tools-pkg' target. Opinions? ]
>
> Cc: Michal Marek <mmarek@suse.cz>
> Cc: maximilian attems <max@stro.at>
> Cc: Ben Hutchings <ben@decadent.org.uk>
> Cc: debian-kernel@lists.debian.org
> Cc: linux-kbuild@vger.kernel.org
> Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
> ---
> scripts/package/builddeb | 55 +++++++++++++++++++++++++++++++++++++++++++++-
> 1 files changed, 54 insertions(+), 1 deletions(-)
>
> diff --git a/scripts/package/builddeb b/scripts/package/builddeb
> index eee5f8e..8466380 100644
> --- a/scripts/package/builddeb
> +++ b/scripts/package/builddeb
> @@ -78,17 +78,19 @@ tmpdir="$objtree/debian/tmp"
> fwdir="$objtree/debian/fwtmp"
> kernel_headers_dir="$objtree/debian/hdrtmp"
> libc_headers_dir="$objtree/debian/headertmp"
> +tools_dir="$objtree/debian/toolstmp"
> packagename=linux-image-$version
> fwpackagename=linux-firmware-image
> kernel_headers_packagename=linux-headers-$version
> libc_headers_packagename=linux-libc-dev
> +tools_packagename=linux-tools-$version

The advice I got from one of the perf developers - possibly Peter
Zijlstra - was that changes to the perf kernel interface are backward-
compatible but newer versions of the perf tool may depend on newer
kernel features. New features involve a bump to the 2nd (at the time,
it was the 3rd) version component unless you're building from a perf
development branch.

So to avoid package proliferation the package name should be
linux-tools-$VERSION.$PATCHLEVEL and the executable filenames should be
something like perf_$VERSION.$PATCHLEVEL-$subcommand. This is what we
do in Debian.

However, Ubuntu uses the full kernel release string (as do several
RPM-based distributions). So at the moment you can't build a versioned
perf that's going to work in both. But that is fixable if one of the
perf wrappers is changed to fall back to the alternate naming scheme.

[...]
> +# Build the tools
> +num_tools="0"
> +tools_flavour_abi=${version#*-}
> +tools_flavour=${tools_flavour_abi#*-}
> +tools_version=${version%-$tools_flavour}
> +if grep -q '^CONFIG_PERF_EVENTS=y' .config ; then
> + # Build perf
> + (
> + mkdir -p $objtree/tools/perf
> + cd "$srctree/tools/perf"
> + $MAKE LDFLAGS= O=$O/tools/perf
> + cp $objtree/tools/perf/perf "$tools_dir/usr/bin/perf_$tools_version"
[...]

What about the manual pages and scripting support?

Ben.

--
Ben Hutchings
Beware of programmers who carry screwdrivers. - Leonard Brandwein
 
Old 02-17-2012, 02:46 AM
Ben Hutchings
 
Default kbuild: Build linux-tools package with 'make deb-pkg'

On Fri, 2012-02-17 at 03:16 +0000, Ben Hutchings wrote:
> On Thu, 2012-02-16 at 19:57 +0100, Joerg Roedel wrote:
> > Also build a linux-tools package for installation so that
> > common tools run without issues (e.g. perf).
> >
> > [RFC note: This may break with x-compilation when the
> > x-compilation environment is not set up to
> > compile user-space programs. Is that acceptable?
> > I also thought about a compile-time parameter
> > such as 'make TOOLS=1 deb-pkg' or a special
> > 'make deb-tools-pkg' target. Opinions? ]
> >
> > Cc: Michal Marek <mmarek@suse.cz>
> > Cc: maximilian attems <max@stro.at>
> > Cc: Ben Hutchings <ben@decadent.org.uk>
> > Cc: debian-kernel@lists.debian.org
> > Cc: linux-kbuild@vger.kernel.org
> > Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
> > ---
> > scripts/package/builddeb | 55 +++++++++++++++++++++++++++++++++++++++++++++-
> > 1 files changed, 54 insertions(+), 1 deletions(-)
> >
> > diff --git a/scripts/package/builddeb b/scripts/package/builddeb
> > index eee5f8e..8466380 100644
> > --- a/scripts/package/builddeb
> > +++ b/scripts/package/builddeb
> > @@ -78,17 +78,19 @@ tmpdir="$objtree/debian/tmp"
> > fwdir="$objtree/debian/fwtmp"
> > kernel_headers_dir="$objtree/debian/hdrtmp"
> > libc_headers_dir="$objtree/debian/headertmp"
> > +tools_dir="$objtree/debian/toolstmp"
> > packagename=linux-image-$version
> > fwpackagename=linux-firmware-image
> > kernel_headers_packagename=linux-headers-$version
> > libc_headers_packagename=linux-libc-dev
> > +tools_packagename=linux-tools-$version
>
> The advice I got from one of the perf developers - possibly Peter
> Zijlstra - was that changes to the perf kernel interface are backward-
> compatible but newer versions of the perf tool may depend on newer
> kernel features. New features involve a bump to the 2nd (at the time,
> it was the 3rd) version component unless you're building from a perf
> development branch.
>
> So to avoid package proliferation the package name should be
> linux-tools-$VERSION.$PATCHLEVEL and the executable filenames should be
> something like perf_$VERSION.$PATCHLEVEL-$subcommand.
[...]

Sorry, the executable filename is just perf_$VERSION.$PATCHLEVEL. Only
the manual pages for sub-commands are actually separate files.

Ben.

--
Ben Hutchings
Beware of programmers who carry screwdrivers. - Leonard Brandwein
--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team
 
Old 02-17-2012, 02:46 AM
Ben Hutchings
 
Default kbuild: Build linux-tools package with 'make deb-pkg'

On Fri, 2012-02-17 at 03:16 +0000, Ben Hutchings wrote:
> On Thu, 2012-02-16 at 19:57 +0100, Joerg Roedel wrote:
> > Also build a linux-tools package for installation so that
> > common tools run without issues (e.g. perf).
> >
> > [RFC note: This may break with x-compilation when the
> > x-compilation environment is not set up to
> > compile user-space programs. Is that acceptable?
> > I also thought about a compile-time parameter
> > such as 'make TOOLS=1 deb-pkg' or a special
> > 'make deb-tools-pkg' target. Opinions? ]
> >
> > Cc: Michal Marek <mmarek@suse.cz>
> > Cc: maximilian attems <max@stro.at>
> > Cc: Ben Hutchings <ben@decadent.org.uk>
> > Cc: debian-kernel@lists.debian.org
> > Cc: linux-kbuild@vger.kernel.org
> > Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
> > ---
> > scripts/package/builddeb | 55 +++++++++++++++++++++++++++++++++++++++++++++-
> > 1 files changed, 54 insertions(+), 1 deletions(-)
> >
> > diff --git a/scripts/package/builddeb b/scripts/package/builddeb
> > index eee5f8e..8466380 100644
> > --- a/scripts/package/builddeb
> > +++ b/scripts/package/builddeb
> > @@ -78,17 +78,19 @@ tmpdir="$objtree/debian/tmp"
> > fwdir="$objtree/debian/fwtmp"
> > kernel_headers_dir="$objtree/debian/hdrtmp"
> > libc_headers_dir="$objtree/debian/headertmp"
> > +tools_dir="$objtree/debian/toolstmp"
> > packagename=linux-image-$version
> > fwpackagename=linux-firmware-image
> > kernel_headers_packagename=linux-headers-$version
> > libc_headers_packagename=linux-libc-dev
> > +tools_packagename=linux-tools-$version
>
> The advice I got from one of the perf developers - possibly Peter
> Zijlstra - was that changes to the perf kernel interface are backward-
> compatible but newer versions of the perf tool may depend on newer
> kernel features. New features involve a bump to the 2nd (at the time,
> it was the 3rd) version component unless you're building from a perf
> development branch.
>
> So to avoid package proliferation the package name should be
> linux-tools-$VERSION.$PATCHLEVEL and the executable filenames should be
> something like perf_$VERSION.$PATCHLEVEL-$subcommand.
[...]

Sorry, the executable filename is just perf_$VERSION.$PATCHLEVEL. Only
the manual pages for sub-commands are actually separate files.

Ben.

--
Ben Hutchings
Beware of programmers who carry screwdrivers. - Leonard Brandwein
 
Old 02-23-2012, 10:17 AM
Joerg Roedel
 
Default kbuild: Build linux-tools package with 'make deb-pkg'

On Fri, Feb 17, 2012 at 03:46:30AM +0000, Ben Hutchings wrote:
> > The advice I got from one of the perf developers - possibly Peter
> > Zijlstra - was that changes to the perf kernel interface are backward-
> > compatible but newer versions of the perf tool may depend on newer
> > kernel features. New features involve a bump to the 2nd (at the time,
> > it was the 3rd) version component unless you're building from a perf
> > development branch.
> >
> > So to avoid package proliferation the package name should be
> > linux-tools-$VERSION.$PATCHLEVEL and the executable filenames should be
> > something like perf_$VERSION.$PATCHLEVEL-$subcommand.
> [...]
>
> Sorry, the executable filename is just perf_$VERSION.$PATCHLEVEL. Only
> the manual pages for sub-commands are actually separate files.

Okay, here is a new version. It fits the needs for Debian and Ubuntu
now. I tested the patch on both distributions and with in-tree and
out-of-tree build. The installed packages work fine.

>From f17987587e188b34be57b7b20aee851de70a80d1 Mon Sep 17 00:00:00 2001
From: Joerg Roedel <joerg.roedel@amd.com>
Date: Thu, 16 Feb 2012 19:48:24 +0100
Subject: [PATCH] RFC: kbuild: Build linux-tools package with 'make deb-pkg'

Also build a linux-tools package for installation so that
common tools run without issues (e.g. perf).

[RFC note: This may break with x-compilation when the
x-compilation environment is not set up to
compile user-space programs. Is that acceptable?
I also thought about a compile-time parameter
such as 'make TOOLS=1 deb-pkg' or a special
'make deb-tools-pkg' target. Opinions? ]

Cc: Michal Marek <mmarek@suse.cz>
Cc: maximilian attems <max@stro.at>
Cc: Ben Hutchings <ben@decadent.org.uk>
Cc: debian-kernel@lists.debian.org
Cc: linux-kbuild@vger.kernel.org
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
---
scripts/package/builddeb | 93 +++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 92 insertions(+), 1 deletions(-)

diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index eee5f8e..d474736 100644
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -78,17 +78,20 @@ tmpdir="$objtree/debian/tmp"
fwdir="$objtree/debian/fwtmp"
kernel_headers_dir="$objtree/debian/hdrtmp"
libc_headers_dir="$objtree/debian/headertmp"
+tools_dir="$objtree/debian/toolstmp"
+tmp_build_dir="$objtree/debian/toolsbuild"
packagename=linux-image-$version
fwpackagename=linux-firmware-image
kernel_headers_packagename=linux-headers-$version
libc_headers_packagename=linux-libc-dev
+tools_packagename=linux-tools-$version

if [ "$ARCH" = "um" ] ; then
packagename=user-mode-linux-$version
fi

# Setup the directory structure
-rm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir"
+rm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir" "$tools_dir" "$tmp_build_dir"
mkdir -m 755 -p "$tmpdir/DEBIAN"
mkdir -p "$tmpdir/lib" "$tmpdir/boot" "$tmpdir/usr/share/doc/$packagename"
mkdir -m 755 -p "$fwdir/DEBIAN"
@@ -98,6 +101,10 @@ mkdir -p "$libc_headers_dir/usr/share/doc/$libc_headers_packagename"
mkdir -m 755 -p "$kernel_headers_dir/DEBIAN"
mkdir -p "$kernel_headers_dir/usr/share/doc/$kernel_headers_packagename"
mkdir -p "$kernel_headers_dir/lib/modules/$version/"
+mkdir -m 755 -p "$tools_dir/DEBIAN"
+mkdir -p "$tools_dir/usr/share/doc/$tools_packagename"
+mkdir -p "$tools_dir/usr/bin/"
+mkdir -p "$tmp_build_dir"
if [ "$ARCH" = "um" ] ; then
mkdir -p "$tmpdir/usr/lib/uml/modules/$version" "$tmpdir/usr/bin"
fi
@@ -120,6 +127,75 @@ else
fi
fi

+# Build the tools
+num_tools="0"
+tools_flavour_abi=${version#*-}
+tools_flavour=${tools_flavour_abi#*-}
+tools_version=${version%-$tools_flavour}
+debian_tools_version="${version%%-*}"
+debian_tools_version="${version%.*}"
+if grep -q '^CONFIG_PERF_EVENTS=y' .config ; then
+ # Build and install perf
+ (
+ unset MAKEFLAGS
+ unset MFLAGS
+ unset MAKEOVERRIDES
+
+ mkdir -p $objtree/tools/perf
+ cd "$srctree/tools/perf"
+ $MAKE DESTDIR="$tools_dir/usr/" LDFLAGS= O=$objtree/tools/perf/ install
+ mv "$tools_dir/usr/bin/perf" "$tools_dir/usr/bin/perf_$debian_tools_version"
+ ln -s "/usr/bin/perf_$debian_tools_version" "$tools_dir/usr/bin/perf_$tools_version"
+ mv "$tools_dir/usr/libexec/perf-core" "$tools_dir/usr/share/perf_$debian_tools_version-core"
+ rmdir "$tools_dir/usr/libexec"
+
+ # Documentation can't be built out-of-tree so copy source
+ # over to objtree and build man pages there
+ mkdir -p $tmp_build_dir/perf
+ cp -a "$srctree/tools/perf/Documentation" "$tmp_build_dir/perf/"
+ cd "$tmp_build_dir/perf/Documentation"
+ $MAKE man
+ $MAKE DESTDIR="$tools_dir/usr/" install
+ for manpage in `find $tools_dir/usr/share/man/ -type f`; do
+ mv $manpage ${manpage/perf/perf_$debian_tools_version}
+ gzip -9 ${manpage/perf/perf_$debian_tools_version}
+ done
+ )
+ num_tools=$(($num_tools+1))
+fi
+
+if [[ "$ARCH" = "i386" || "$ARCH" = "x86_64" ]]; then
+ # Build turbostat
+ (
+ cp -a $srctree/tools/power/x86/turbostat "$tmp_build_dir"
+ cd "$tmp_build_dir/turbostat/"
+ unset MAKEFLAGS
+ unset MFLAGS
+ unset MAKEOVERRIDES
+ $MAKE LDFLAGS=
+ cp turbostat "$tools_dir/usr/bin/turbostat_$debian_tools_version"
+ ln -s "/usr/bin/turbostat_$debian_tools_version" "$tools_dir/usr/bin/turbostat_$tools_version"
+ mkdir -p "$tools_dir/usr/share/man/man8"
+ cp turbostat.8 "$tools_dir/usr/share/man/man8/turbotstat_${debian_tools_version}.8"
+ gzip -9 "$tools_dir/usr/share/man/man8/turbotstat_${debian_tools_version}.8"
+ )
+
+ # Build x86_energy_perf_policy
+ (
+ cp -a $srctree/tools/power/x86/x86_energy_perf_policy "$tmp_build_dir"
+ cd "$tmp_build_dir/x86_energy_perf_policy"
+ unset MAKEFLAGS
+ unset MFLAGS
+ unset MAKEOVERRIDES
+ $MAKE LDFLAGS=
+ cp x86_energy_perf_policy "$tools_dir/usr/bin/x86_energy_perf_policy_$debian_tools_version"
+ ln -s "/usr/bin/x86_energy_perf_policy_$debian_tools_version" "$tools_dir/usr/bin/x86_energy_perf_policy_$tools_version"
+ cp x86_energy_perf_policy.8 "$tools_dir/usr/share/man/man8/x86_energy_perf_policy_${debian_tools_version}.8"
+ gzip -9 "$tools_dir/usr/share/man/man8/x86_energy_perf_policy_${debian_tools_version}.8"
+ )
+ num_tools=$(($num_tools+2))
+fi
+
if grep -q '^CONFIG_MODULES=y' .config ; then
INSTALL_MOD_PATH="$tmpdir" $MAKE KBUILD_SRC= modules_install
rm -f "$tmpdir/lib/modules/$version/build"
@@ -291,9 +367,24 @@ Description: Linux support headers for userspace development
are used by the installed headers for GNU glibc and other system libraries.
EOF

+cat <<EOF >> debian/control
+
+Package: $tools_packagename
+Section: devel
+Architecture: $arch
+Depends: ${shlibsepends}
+Description: Linux kernel tools for version $version
+ This package provides the architecture dependant parts for kernel
+ version locked tools for version $version
+EOF
+
if [ "$ARCH" != "um" ]; then
create_package "$kernel_headers_packagename" "$kernel_headers_dir"
create_package "$libc_headers_packagename" "$libc_headers_dir"
+ if [ "$num_tools" > "0" ]; then
+ dpkg-shlibdeps $tools_dir/usr/bin/*
+ create_package "$tools_packagename" "$tools_dir"
+ fi
fi

create_package "$packagename" "$tmpdir"
--
1.7.5.4




--
AMD Operating System Research Center

Advanced Micro Devices GmbH Einsteinring 24 85609 Dornach
General Managers: Alberto Bozzo
Registration: Dornach, Landkr. Muenchen; Registerger. Muenchen, HRB Nr. 43632


--
To UNSUBSCRIBE, email to debian-kernel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 20120223111712.GA2454@amd.com">http://lists.debian.org/20120223111712.GA2454@amd.com
 
Old 02-23-2012, 10:17 AM
Joerg Roedel
 
Default kbuild: Build linux-tools package with 'make deb-pkg'

On Fri, Feb 17, 2012 at 03:46:30AM +0000, Ben Hutchings wrote:
> > The advice I got from one of the perf developers - possibly Peter
> > Zijlstra - was that changes to the perf kernel interface are backward-
> > compatible but newer versions of the perf tool may depend on newer
> > kernel features. New features involve a bump to the 2nd (at the time,
> > it was the 3rd) version component unless you're building from a perf
> > development branch.
> >
> > So to avoid package proliferation the package name should be
> > linux-tools-$VERSION.$PATCHLEVEL and the executable filenames should be
> > something like perf_$VERSION.$PATCHLEVEL-$subcommand.
> [...]
>
> Sorry, the executable filename is just perf_$VERSION.$PATCHLEVEL. Only
> the manual pages for sub-commands are actually separate files.

Okay, here is a new version. It fits the needs for Debian and Ubuntu
now. I tested the patch on both distributions and with in-tree and
out-of-tree build. The installed packages work fine.
 

Thread Tools




All times are GMT. The time now is 11:05 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org