Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966799Ab3DQVEE (ORCPT ); Wed, 17 Apr 2013 17:04:04 -0400 Received: from cobra.newdream.net ([66.33.216.30]:37699 "EHLO cobra.newdream.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755527Ab3DQVEC (ORCPT ); Wed, 17 Apr 2013 17:04:02 -0400 Date: Wed, 17 Apr 2013 14:04:00 -0700 (PDT) From: Sage Weil X-X-Sender: sage@cobra.newdream.net To: Michal Marek cc: Gary Lowell , linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, maximilian attems Subject: Re: [PATCH 1/1] scripts/package/builddeb: build perftools package. In-Reply-To: <512C7A6C.4040103@suse.cz> Message-ID: References: <1361842218-1768-1-git-send-email-gary.lowell@inktank.com> <512C7A6C.4040103@suse.cz> User-Agent: Alpine 2.00 (DEB 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 6771 Lines: 174 On Tue, 26 Feb 2013, Michal Marek wrote: > Added Maximilian to CC. Hey- Did this get pulled in? We'd love to stop applying and maintaining this patch downstream. Thanks! sage > > Michal > > On 26.2.2013 02:30, Gary Lowell wrote: > > This will build a linux-tools-$version package for each build that includes > > perf. We've been using this for internal builds and other folks might find > > it helpful. > > > > Signed-off-by: Gary Lowell > > --- > > scripts/package/builddeb | 95 +++++++++++++++++++++++++++++++++++++++++++++- > > 1 file changed, 94 insertions(+), 1 deletion(-) > > > > diff --git a/scripts/package/builddeb b/scripts/package/builddeb > > index acb8650..f57d33c 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,77 @@ 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/" > > + cp -a "$srctree/tools/perf/config" "$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" > > + ln -s $srctree/arch "$tmp_build_dir/../../../arch" > > + 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" > > @@ -292,9 +370,24 @@ Description: Linux support headers for userspace development > > are used by the installed headers for GNU glibc and other system libraries. > > EOF > > > > +cat <> debian/control > > + > > +Package: $tools_packagename > > +Section: devel > > +Architecture: $arch > > +Depends: \${shlibs:Depends} > > +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" > > > > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/