From 8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 14 Jul 2018 21:03:06 +0100 Subject: gentoo resync : 14.07.2018 --- dev-util/perf/Manifest | 22 ++++ dev-util/perf/files/perf-4.1.5-prefix.patch | 43 +++++++ dev-util/perf/metadata.xml | 33 +++++ dev-util/perf/perf-3.12.ebuild | 177 ++++++++++++++++++++++++++ dev-util/perf/perf-3.13.1-r1.ebuild | 182 ++++++++++++++++++++++++++ dev-util/perf/perf-3.15.5.ebuild | 182 ++++++++++++++++++++++++++ dev-util/perf/perf-4.1.5-r1.ebuild | 190 ++++++++++++++++++++++++++++ dev-util/perf/perf-4.14.33.ebuild | 179 ++++++++++++++++++++++++++ dev-util/perf/perf-4.4.4.ebuild | 184 +++++++++++++++++++++++++++ dev-util/perf/perf-4.9.13.ebuild | 178 ++++++++++++++++++++++++++ 10 files changed, 1370 insertions(+) create mode 100644 dev-util/perf/Manifest create mode 100644 dev-util/perf/files/perf-4.1.5-prefix.patch create mode 100644 dev-util/perf/metadata.xml create mode 100644 dev-util/perf/perf-3.12.ebuild create mode 100644 dev-util/perf/perf-3.13.1-r1.ebuild create mode 100644 dev-util/perf/perf-3.15.5.ebuild create mode 100644 dev-util/perf/perf-4.1.5-r1.ebuild create mode 100644 dev-util/perf/perf-4.14.33.ebuild create mode 100644 dev-util/perf/perf-4.4.4.ebuild create mode 100644 dev-util/perf/perf-4.9.13.ebuild (limited to 'dev-util/perf') diff --git a/dev-util/perf/Manifest b/dev-util/perf/Manifest new file mode 100644 index 000000000000..6a49fc90d1a8 --- /dev/null +++ b/dev-util/perf/Manifest @@ -0,0 +1,22 @@ +AUX perf-4.1.5-prefix.patch 1637 BLAKE2B 8fdccb3d6d8f2955118e96edf4990e4d9a172524d49f36d757254dd983733c81f82d3920c21f40b6dd5e4df3d5ec2b799bb163c44dc5340f4128c5560430bb4d SHA512 ff7179d7b06513a83f0909723ad47774c07ad089079f43750c24a1dca685745048bce5ea6b0766e65e48b75b50d5a26866e827a89b0206800769ea2779355d6b +DIST linux-3.12.tar.bz2 91111381 BLAKE2B ec3295f41b639f0a7c63eed5d5be4a53c435ddb6e3681bce519263c33172efec46c25b284e7c58ef590387dc13b1e2e76d77b67dcd0345e8de7611bb78c9eb5a SHA512 bea14d044c8a0257d8312f45db6a39ca4f9dffe8ac32a11198e90762ee1735c8b6975bb81c635a4755d451793fa7c7e5b2d7d692c9e57133b15b4cdc941febf1 +DIST linux-3.13.tar.xz 77187032 BLAKE2B 4c0d96a9f1f8f971b9886651a1a0438bd7e00c3eb5de6b52c599c0e621714e34f4048348e836bc8bf8d0c879d447569ee99adda09c3de2fc197ce9503bc2b568 SHA512 1ba223bb4b885d691a67196d86a8aaf7b4a1c351bf2a762f50f1b0c32da00dd0c28895872a66b49e8d244498d996876609268e64861d28ac4048886ef9f79b87 +DIST linux-3.15.tar.xz 79676484 BLAKE2B a21b0b97fe0c9c2ef032b10b71062065fe0d27417f7f51c2ca4215891d254fef00aec11d20bfa4f7a71937f7e307a18f4c3ab08e45b9600816cd1c9dfe6c8fbb SHA512 d5dc477cad4584e56e2e2ef9e0950c2b22e76e5cf5090a896ba099cb7c5e5db1853a4aeb96b199189653dc66d461557e95198e37516a619f7ddc01ba6b308e02 +DIST linux-4.1.tar.xz 83017828 BLAKE2B d1dc4e458db191f16306b3d2d7eb60ef5e04307406c769cccdd88beb407f8de228ab1f095a44d6e992b06d01cd896fda31dec1cdf16667f4ca0b628da594aee3 SHA512 168ef84a4e67619f9f53f3574e438542a5747f9b43443363cb83597fcdac9f40d201625c66e375a23226745eaada9176eb006ca023613cec089349e91751f3c0 +DIST linux-4.14.tar.xz 100770500 BLAKE2B 85dc4aa953fe65e273a24473d8de98e4f204f97c43be9fc87cf5be01f796f94cfde5c8f9c84619751f1cac51f83ce0b4681fb19c5f2965a72d4a94fe5577846a SHA512 77e43a02d766c3d73b7e25c4aafb2e931d6b16e870510c22cef0cdb05c3acb7952b8908ebad12b10ef982c6efbe286364b1544586e715cf38390e483927904d8 +DIST linux-4.4.tar.xz 87295988 BLAKE2B f260f1858994f5d481fd078c86e51bddbc958f7c5d1586f60dced772e1b1107ecf3aae0558c3e6f39c36f7d3aa1e6cd1e5c64ec9d6f2218f47b98413da6466fb SHA512 13c8459933a8b80608e226a1398e3d1848352ace84bcfb7e6a4a33cb230bbe1ab719d4b58e067283df91ce5311be6d2d595fc8c19e2ae6ecc652499415614b3e +DIST linux-4.9.tar.xz 93192404 BLAKE2B 83ae310b17d47f1f18d6d28537c31e10f3e60458c5954c4611158ca99e71cc0da2e051272eabf27d5887df4a7cb4a5dd66ff993077c11d2221e92d300a0b48d7 SHA512 bf67ff812cc3cb7e5059e82cc5db0d9a7c5637f7ed9a42e4730c715bf7047c81ed3a571225f92a33ef0b6d65f35595bc32d773356646df2627da55e9bc7f1f1a +DIST patch-3.13.1.xz 2884 BLAKE2B 6fd04189866fa50efb48c3c979de2880231dcb06b857a67eab18321a589bbab611bb1a2df68adae513d16e9e3ca897b8533a677121e1c7c430f7027044f899f1 SHA512 164235a15e6a984e9aeaf9fe475a8b2975d5e4c4b28dd4ecf99064b0f0c72eea766d925340f1a7232cabcbd23d26773527c300b6d995bf5cde18a276208fdccc +DIST patch-3.15.5.xz 122232 BLAKE2B 9c138316beea8ea04b704baca23621c76291064ac72a5eb107bcec4f371c2680471f96c678e269d04b03eaa857dc054ddd8057a06e5c7ac2b7ea8a303468139b SHA512 6831200503334e839c3cccdad29058aecc0205171cc5b75205d0a2aada8636633889ebff35d9677d4567bbaeea249efc83571e016104cd67554fe72b3b405755 +DIST patch-4.1.5.xz 170056 BLAKE2B 3beee64274154565bbe80389fe6258228f388ad5fa77a69e4d83906755c746bfd9d6052bf224d0f1bad33c4b656c1b6538345d05efd3e4f3953495241c05f0c8 SHA512 1325cdb35ea1f277d513932af37804f788b96ae63b94cedeb3c9b916ee8963bbd6aca5d0e13279e36a81f1de06005c5f3666ecfc845609932686f261fa4250c5 +DIST patch-4.14.33.xz 905284 BLAKE2B e67bd9a96708aaaf65eb0aa852493b2323c9e237bfcc6fa837f795e481943ead3e2d5005ee72e40fc247df01c50877d9da3848a05aba3c999c3cfb7678cbdbc9 SHA512 5c76be5171709c2df7df7d5a8e8f3d0f7ede47b433da3b0f1710f262c8fcf5cf6c744a96d4336ea397c2c88a5f0a7507a5ab08c7c82f08deeb7a6f887ad77cfd +DIST patch-4.4.4.xz 200972 BLAKE2B 76f5505fae96c6ec21ef3480c54bd53d7021d9ec360527209dd16b069d5f7c65ab8f1e44aeeed49480cd7c2a685fd42852e062fff703a1d010cc487f55ec15fa SHA512 c206af7803cb0915fbe2bd27ed33282452db3fbd3070c73e4c7147443efd3c7588fb3be12d0abc08742381fbe892190602b29147684630aa9e6ff5e9efa49dbc +DIST patch-4.9.13.xz 295932 BLAKE2B 37a90811dc1591d3f5d6609185ae518b02b36827c8557e400e7bb359ea04bf9cee66ea74fceaefb02c6e145ac34697efaecca6db071b35d6d872c9ac7c84b9ab SHA512 d7956cc8a4ab11514789af4f1f7023268e4b003216766c153f0f09aac659aabda5de634b363d53f8daeddfcf5820619c5bca31ff5f9aeb187c1df016c05f68d5 +EBUILD perf-3.12.ebuild 5006 BLAKE2B 7eb7939628a49ca9dadf7c4a223184b5e4da478fef65fd8089a3190859a93a0c937ca4609e68e25ea7e606a92b8f574aa9863b8bc50be3f07413c9c3d9749a88 SHA512 c247393496ac96e14ede7eaebb7e00d32221ccd38c2dca2cf50e3b7fe158172f49803c1e697584e25917a6d7d829890952cc7e8ae09a87158180530af66afb56 +EBUILD perf-3.13.1-r1.ebuild 5128 BLAKE2B e34cc28ba57866db83fcf9ab639e95306582c66fd7ce427543b19528d72fa78757721efc0ac1b23c6435973766fa4619e5f6448bfb21a6c50cc01cca2a2c3859 SHA512 f7ce04b5f4a4db657dfeb6b59d70c15cfb012ce661a62620773607ee93d5becfea56912dd9fae88db47a9f42ade6ce0ed0d0ba67a3fc37b086eda0e9e87118ab +EBUILD perf-3.15.5.ebuild 5143 BLAKE2B 694b1eaa11dde8aa29ab0ac812479869e9e45e47f02cf9201e78a5d6bcb4c18d645ae4bc8e584237ab738a1739f971a2ae62faf950d8bbe9845f02ad878aab84 SHA512 9a56717e87b9bf6bfa27f3d953e41af18c55e92020fbcc14fd01f43835e542bf1c7adb195387400c955706f5ca8a69090e41d6edfb728717910cd19b801d6dfc +EBUILD perf-4.1.5-r1.ebuild 5269 BLAKE2B 859aff4b3f86bb85187c7a0a7a85cd423ec8ceed0a2c9bba55c711b466216017ed796b976a1b16a03c8aae7292f31b8329e37ee55810c868caa246aa39c38d17 SHA512 1aa7d9fad71cbaf1a28976cfe7dbf74d7e04b4a00f81e5d7e0b96cced0a051bcf9846122caa66bb1466790ef5b7dcea71a1b291b2300056b1846ce4e5531b165 +EBUILD perf-4.14.33.ebuild 4950 BLAKE2B f4b86b4fc45dbbaada34a9cbf463dd68675ea74ab93794891eba66e20869e931c653d5e20e6cbf41df035d49a2b5aa298eb08829f2819c0055221d134e2cd353 SHA512 a4a6323f62c46cfcf1141a41025609f8eb990978ca9a3f77be65f1c5913a84a733ad3c16d8e65fea8728064d15308a3d99f20a859364dcd3b3eef58747fec2ef +EBUILD perf-4.4.4.ebuild 5040 BLAKE2B fd6ff983115568989077d1d626b29121b452a11552d982b85a992cb6016b41e7beb7750008c8b87833f6dded0f6f2281275bffe7ad9c61dc773ec69a6f7fa33f SHA512 f39e5397d269f879dbaa62b4cfacebba27dd2f26feb17d70b5b4f60fcf256438c2920df340c27abb45f24404b21ace1c5bab982c7e4a93c2befa382762e76967 +EBUILD perf-4.9.13.ebuild 4925 BLAKE2B 919acbb8b5bc86a8cc0de41f963e87a85f16d7ba3fee026adab0c29ac5a46c8846fd102592576f0efdebb379080bf1580babfb0bc23729ea386ae3cc7ba3d634 SHA512 750501145fd525bf5e973edb7f4645cf0cd94c3449ae859ffcc33896e8963db8e573248893441de971248af2842fa18df9222704b5b92880a356e8656776a597 +MISC metadata.xml 1093 BLAKE2B c10db12ae6c05c68b06dba1112b3c899dd40d2d35f8ff8f2bc840c38e712571256b1ac49d90983b4df6af5806fc93b59bbb86e6d851d197539e776d60da0d7da SHA512 5c83c9c871c23eda63760d4b33b549849236d1f79edf4a69bbf2803987cd6db9c3f5dd8abdd216abacce91c93a589a9487e911d9ee1f57a9fec761f7e39beeef diff --git a/dev-util/perf/files/perf-4.1.5-prefix.patch b/dev-util/perf/files/perf-4.1.5-prefix.patch new file mode 100644 index 000000000000..0c4dff011306 --- /dev/null +++ b/dev-util/perf/files/perf-4.1.5-prefix.patch @@ -0,0 +1,43 @@ +commit 75e84ab906ef8935cff3df3d8929f1bafea81599 +Author: Lukas Wunner +Date: Thu Jun 18 13:00:32 2015 +0200 + + perf tools: Fix build breakage if prefix= is specified + + Invoking Makefile.perf with prefix= breaks the build since Makefile.perf + hands that variable down to Makefile.build where it overrides + + prefix := $(subst ./,,$(OUTPUT)$(dir)/) + + leading to errors like this: + + No rule to make target '/usrabspath.o', needed by '/usrlibperf-in.o' + + Signed-off-by: Lukas Wunner + Acked-by: Jiri Olsa + Cc: David Ahern + Fixes: c819e2cf2eb6f65d3208d195d7a0edef6108d5 + Link: http://lkml.kernel.org/r/5582c48a.84a22b0a.a918.5285SMTPIN_ADDED_MISSING@mx.google.com + Signed-off-by: Arnaldo Carvalho de Melo + +diff --git a/tools/build/Makefile.build b/tools/build/Makefile.build +index 10df572..98cfc38 100644 +--- a/tools/build/Makefile.build ++++ b/tools/build/Makefile.build +@@ -94,12 +94,12 @@ obj-y := $(patsubst %/, %/$(obj)-in.o, $(obj-y)) + subdir-obj-y := $(filter %/$(obj)-in.o, $(obj-y)) + + # '$(OUTPUT)/dir' prefix to all objects +-prefix := $(subst ./,,$(OUTPUT)$(dir)/) +-obj-y := $(addprefix $(prefix),$(obj-y)) +-subdir-obj-y := $(addprefix $(prefix),$(subdir-obj-y)) ++objprefix := $(subst ./,,$(OUTPUT)$(dir)/) ++obj-y := $(addprefix $(objprefix),$(obj-y)) ++subdir-obj-y := $(addprefix $(objprefix),$(subdir-obj-y)) + + # Final '$(obj)-in.o' object +-in-target := $(prefix)$(obj)-in.o ++in-target := $(objprefix)$(obj)-in.o + + PHONY += $(subdir-y) + diff --git a/dev-util/perf/metadata.xml b/dev-util/perf/metadata.xml new file mode 100644 index 000000000000..abff870927b6 --- /dev/null +++ b/dev-util/perf/metadata.xml @@ -0,0 +1,33 @@ + + + + + naota@gentoo.org + + + dlan@gentoo.org + Yixun Lan + + + + Enable C++ symbol name demangling, using libbfd from + sys-devel/binutils. When this flag is enabled, the + package will have to be rebuilt after every version bump of + binutils. + + + Build documentation and man pages. With this USE flag disabled, + the --help parameter for perf and its sub-tools will not be + available. This is optional because it depends on a few + documentation handling tools that are not always welcome on user + systems. + + Enable NUMA support + + Add support for Perl as a scripting language for perf tools. + + + Use sys-libs/libunwind for frame unwinding support. + + + diff --git a/dev-util/perf/perf-3.12.ebuild b/dev-util/perf/perf-3.12.ebuild new file mode 100644 index 000000000000..9b930d58dece --- /dev/null +++ b/dev-util/perf/perf-3.12.ebuild @@ -0,0 +1,177 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" + +PYTHON_COMPAT=( python2_7 ) +inherit versionator eutils toolchain-funcs python-single-r1 linux-info + +MY_PV="${PV/_/-}" +MY_PV="${MY_PV/-pre/-git}" + +DESCRIPTION="Userland tools for Linux Performance Counters" +HOMEPAGE="https://perf.wiki.kernel.org/" + +LINUX_V="${PV:0:1}.x" +if [[ ${PV/_rc} != ${PV} ]] ; then + LINUX_VER=$(get_version_component_range 1-2).$(($(get_version_component_range 3)-1)) + PATCH_VERSION=$(get_version_component_range 1-3) + LINUX_PATCH=patch-${PV//_/-}.bz2 + SRC_URI="mirror://kernel/linux/kernel/v${LINUX_V}/testing/${LINUX_PATCH} + mirror://kernel/linux/kernel/v${LINUX_V}/testing/v${PATCH_VERSION}/${LINUX_PATCH}" +elif [[ $(get_version_component_count) == 4 ]] ; then + # stable-release series + LINUX_VER=$(get_version_component_range 1-3) + LINUX_PATCH=patch-${PV}.bz2 + SRC_URI="mirror://kernel/linux/kernel/v${LINUX_V}/${LINUX_PATCH}" +else + LINUX_VER=${PV} + SRC_URI="" +fi + +LINUX_SOURCES="linux-${LINUX_VER}.tar.bz2" +SRC_URI+=" mirror://kernel/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~ppc ~x86" +IUSE="audit +demangle +doc perl python slang unwind" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +RDEPEND="audit? ( sys-process/audit ) + demangle? ( sys-devel/binutils ) + perl? ( dev-lang/perl ) + python? ( ${PYTHON_DEPS} ) + slang? ( dev-libs/newt ) + unwind? ( sys-libs/libunwind ) + dev-libs/elfutils" +DEPEND="${RDEPEND} + ${LINUX_PATCH+dev-util/patchutils} + sys-devel/bison + sys-devel/flex + doc? ( + app-text/asciidoc + app-text/sgml-common + app-text/xmlto + sys-process/time + )" + +S_K="${WORKDIR}/linux-${LINUX_VER}" +S="${S_K}/tools/perf" + +CONFIG_CHECK="~PERF_EVENTS ~KALLSYMS" + +pkg_setup() { + linux-info_pkg_setup + use python && python-single-r1_pkg_setup +} + +src_unpack() { + local paths=( tools/perf tools/scripts tools/lib include lib "arch/*/include" "arch/*/lib" ) + + # We expect the tar implementation to support the -j option (both + # GNU tar and libarchive's tar support that). + echo ">>> Unpacking ${LINUX_SOURCES} (${paths[*]}) to ${PWD}" + tar --wildcards -xpf "${DISTDIR}"/${LINUX_SOURCES} \ + "${paths[@]/#/linux-${LINUX_VER}/}" || die + + if [[ -n ${LINUX_PATCH} ]] ; then + eshopts_push -o noglob + ebegin "Filtering partial source patch" + filterdiff -p1 ${paths[@]/#/-i } -z "${DISTDIR}"/${LINUX_PATCH} > ${P}.patch || die + eend $? || die "filterdiff failed" + eshopts_pop + fi + + local a + for a in ${A}; do + [[ ${a} == ${LINUX_SOURCES} ]] && continue + [[ ${a} == ${LINUX_PATCH} ]] && continue + unpack ${a} + done +} + +src_prepare() { + if [[ -n ${LINUX_PATCH} ]] ; then + cd "${S_K}" + epatch "${WORKDIR}"/${P}.patch + fi + + # Drop some upstream too-developer-oriented flags and fix the + # Makefile in general + sed -i \ + -e 's:-Werror::' \ + -e 's:-ggdb3::' \ + -e 's:-fstack-protector-all::' \ + -e 's:^LDFLAGS =:EXTLIBS +=:' \ + -e '/\(PERL\|PYTHON\)_EMBED_LDOPTS/s:ALL_LDFLAGS +=:EXTLIBS +=:' \ + -e '/-x c - /s:\$(ALL_LDFLAGS):\0 $(EXTLIBS):' \ + -e '/^ALL_CFLAGS =/s:$: $(CFLAGS_OPTIMIZE):' \ + -e '/^ALL_LDFLAGS =/s:$: $(LDFLAGS_OPTIMIZE):' \ + -e 's:$(sysconfdir_SQ)/bash_completion.d:/usr/share/bash-completion:' \ + "${S}"/Makefile || die + sed -i -e 's:-Werror::' "${S_K}"/tools/lib/lk/Makefile || die + sed -i \ + -e '/.FORCE-PERF-VERSION-FILE/s,.FORCE-PERF-VERSION-FILE,,g' \ + "${S}"/Makefile \ + "${S}"/Documentation/Makefile || die + + # Avoid the call to make kernelversion + echo "#define PERF_VERSION \"${MY_PV}\"" > PERF-VERSION-FILE + + # The code likes to compile local assembly files which lack ELF markings. + find -name '*.S' -exec sed -i '$a.section .note.GNU-stack,"",%progbits' {} + +} + +puse() { usex $1 "" no; } +perf_make() { + # The arch parsing is a bit funky. The perf tools package is integrated + # into the kernel, so it wants an ARCH that looks like the kernel arch, + # but it also wants to know about the split value -- i386/x86_64 vs just + # x86. We can get that by telling the func to use an older linux version. + # It's kind of a hack, but not that bad ... + local arch=$(KV=2.6.23 tc-arch-kernel) + emake -j1 V=1 \ + CC="$(tc-getCC)" AR="$(tc-getAR)" \ + prefix="/usr" bindir_relative="sbin" \ + CFLAGS_OPTIMIZE="${CFLAGS}" \ + LDFLAGS_OPTIMIZE="${LDFLAGS}" \ + ARCH="${arch}" \ + NO_DEMANGLE=$(puse demangle) \ + NO_LIBAUDIT=$(puse audit) \ + NO_LIBPERL=$(puse perl) \ + NO_LIBPYTHON=$(puse python) \ + NO_LIBUNWIND=$(puse unwind) \ + NO_NEWT=$(puse slang) \ + WERROR=0 \ + "$@" +} + +src_compile() { + perf_make + use doc && perf_make -C Documentation +} + +src_test() { + : +} + +src_install() { + perf_make install DESTDIR="${D}" + + dodoc CREDITS + + dodoc *txt Documentation/*.txt + if use doc ; then + dohtml Documentation/*.html + doman Documentation/*.1 + fi +} + +pkg_postinst() { + if ! use doc ; then + elog "Without the doc USE flag you won't get any documentation nor man pages." + elog "And without man pages, you won't get any --help output for perf and its" + elog "sub-tools." + fi +} diff --git a/dev-util/perf/perf-3.13.1-r1.ebuild b/dev-util/perf/perf-3.13.1-r1.ebuild new file mode 100644 index 000000000000..39c962d6d05c --- /dev/null +++ b/dev-util/perf/perf-3.13.1-r1.ebuild @@ -0,0 +1,182 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" + +PYTHON_COMPAT=( python2_7 ) +inherit versionator eutils toolchain-funcs python-single-r1 linux-info + +MY_PV="${PV/_/-}" +MY_PV="${MY_PV/-pre/-git}" + +DESCRIPTION="Userland tools for Linux Performance Counters" +HOMEPAGE="https://perf.wiki.kernel.org/" + +LINUX_V="${PV:0:1}.x" +if [[ ${PV} == *_rc* ]] ; then + LINUX_VER=$(get_version_component_range 1-2).$(($(get_version_component_range 3)-1)) + PATCH_VERSION=$(get_version_component_range 1-3) + LINUX_PATCH=patch-${PV//_/-}.xz + SRC_URI="mirror://kernel/linux/kernel/v${LINUX_V}/testing/${LINUX_PATCH} + mirror://kernel/linux/kernel/v${LINUX_V}/testing/v${PATCH_VERSION}/${LINUX_PATCH}" +else + VER_COUNT=$(get_version_component_count) + if [[ ${VER_COUNT} -gt 2 ]] ; then + # stable-release series + LINUX_VER=$(get_version_component_range 1-2) + LINUX_PATCH=patch-${PV}.xz + SRC_URI="mirror://kernel/linux/kernel/v${LINUX_V}/${LINUX_PATCH}" + else + LINUX_VER=${PV} + SRC_URI="" + fi +fi + +LINUX_SOURCES="linux-${LINUX_VER}.tar.xz" +SRC_URI+=" mirror://kernel/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~mips ~ppc ~x86" +IUSE="audit +demangle +doc gtk perl python slang unwind" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +RDEPEND="audit? ( sys-process/audit ) + demangle? ( sys-devel/binutils ) + gtk? ( x11-libs/gtk+:2 ) + perl? ( dev-lang/perl ) + python? ( ${PYTHON_DEPS} ) + slang? ( dev-libs/newt ) + unwind? ( sys-libs/libunwind ) + dev-libs/elfutils" +DEPEND="${RDEPEND} + ${LINUX_PATCH+dev-util/patchutils} + sys-devel/bison + sys-devel/flex + doc? ( + app-text/asciidoc + app-text/sgml-common + app-text/xmlto + sys-process/time + )" + +S_K="${WORKDIR}/linux-${LINUX_VER}" +S="${S_K}/tools/perf" + +CONFIG_CHECK="~PERF_EVENTS ~KALLSYMS" + +pkg_setup() { + linux-info_pkg_setup + use python && python-single-r1_pkg_setup +} + +src_unpack() { + local paths=( tools/perf tools/scripts tools/lib include lib "arch/*/include" "arch/*/lib" ) + + # We expect the tar implementation to support the -j option (both + # GNU tar and libarchive's tar support that). + echo ">>> Unpacking ${LINUX_SOURCES} (${paths[*]}) to ${PWD}" + tar --wildcards -xpf "${DISTDIR}"/${LINUX_SOURCES} \ + "${paths[@]/#/linux-${LINUX_VER}/}" || die + + if [[ -n ${LINUX_PATCH} ]] ; then + eshopts_push -o noglob + ebegin "Filtering partial source patch" + filterdiff -p1 ${paths[@]/#/-i } -z "${DISTDIR}"/${LINUX_PATCH} > ${P}.patch || die + eend $? || die "filterdiff failed" + eshopts_pop + fi + + local a + for a in ${A}; do + [[ ${a} == ${LINUX_SOURCES} ]] && continue + [[ ${a} == ${LINUX_PATCH} ]] && continue + unpack ${a} + done +} + +src_prepare() { + if [[ -n ${LINUX_PATCH} ]] ; then + cd "${S_K}" + epatch "${WORKDIR}"/${P}.patch + fi + + # Drop some upstream too-developer-oriented flags and fix the + # Makefile in general + sed -i \ + -e 's:-Werror::' \ + -e 's:-ggdb3::' \ + -e 's:-fstack-protector-all::' \ + -e 's:^LDFLAGS =:EXTLIBS +=:' \ + -e '/\(PERL\|PYTHON\)_EMBED_LDOPTS/s:ALL_LDFLAGS +=:EXTLIBS +=:' \ + -e '/-x c - /s:\$(ALL_LDFLAGS):\0 $(EXTLIBS):' \ + -e '/^ALL_CFLAGS =/s:$: $(CFLAGS_OPTIMIZE):' \ + -e '/^ALL_LDFLAGS =/s:$: $(LDFLAGS_OPTIMIZE):' \ + -e 's:$(sysconfdir_SQ)/bash_completion.d:/usr/share/bash-completion:' \ + "${S}"/Makefile || die + sed -i -e 's:-Werror::' "${S_K}"/tools/lib/lk/Makefile || die + sed -i \ + -e '/.FORCE-PERF-VERSION-FILE/s,.FORCE-PERF-VERSION-FILE,,g' \ + "${S}"/Makefile \ + "${S}"/Documentation/Makefile || die + + # Avoid the call to make kernelversion + echo "#define PERF_VERSION \"${MY_PV}\"" > PERF-VERSION-FILE + + # The code likes to compile local assembly files which lack ELF markings. + find -name '*.S' -exec sed -i '$a.section .note.GNU-stack,"",%progbits' {} + +} + +puse() { usex $1 "" no; } +perf_make() { + # The arch parsing is a bit funky. The perf tools package is integrated + # into the kernel, so it wants an ARCH that looks like the kernel arch, + # but it also wants to know about the split value -- i386/x86_64 vs just + # x86. We can get that by telling the func to use an older linux version. + # It's kind of a hack, but not that bad ... + local arch=$(KV=2.6.23 tc-arch-kernel) + emake V=1 \ + CC="$(tc-getCC)" AR="$(tc-getAR)" \ + prefix="/usr" bindir_relative="bin" \ + CFLAGS_OPTIMIZE="${CFLAGS}" \ + LDFLAGS_OPTIMIZE="${LDFLAGS}" \ + ARCH="${arch}" \ + NO_DEMANGLE=$(puse demangle) \ + NO_GTK2=$(puse gtk) \ + NO_LIBAUDIT=$(puse audit) \ + NO_LIBPERL=$(puse perl) \ + NO_LIBPYTHON=$(puse python) \ + NO_LIBUNWIND=$(puse unwind) \ + NO_NEWT=$(puse slang) \ + WERROR=0 \ + "$@" +} + +src_compile() { + perf_make -f Makefile.perf + use doc && perf_make -C Documentation +} + +src_test() { + : +} + +src_install() { + perf_make -f Makefile.perf install DESTDIR="${D}" + + dodoc CREDITS + + dodoc *txt Documentation/*.txt + if use doc ; then + dohtml Documentation/*.html + doman Documentation/*.1 + fi +} + +pkg_postinst() { + if ! use doc ; then + elog "Without the doc USE flag you won't get any documentation nor man pages." + elog "And without man pages, you won't get any --help output for perf and its" + elog "sub-tools." + fi +} diff --git a/dev-util/perf/perf-3.15.5.ebuild b/dev-util/perf/perf-3.15.5.ebuild new file mode 100644 index 000000000000..c2e5a6f47f2c --- /dev/null +++ b/dev-util/perf/perf-3.15.5.ebuild @@ -0,0 +1,182 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" + +PYTHON_COMPAT=( python2_7 ) +inherit versionator eutils toolchain-funcs python-single-r1 linux-info + +MY_PV="${PV/_/-}" +MY_PV="${MY_PV/-pre/-git}" + +DESCRIPTION="Userland tools for Linux Performance Counters" +HOMEPAGE="https://perf.wiki.kernel.org/" + +LINUX_V="${PV:0:1}.x" +if [[ ${PV} == *_rc* ]] ; then + LINUX_VER=$(get_version_component_range 1-2).$(($(get_version_component_range 3)-1)) + PATCH_VERSION=$(get_version_component_range 1-3) + LINUX_PATCH=patch-${PV//_/-}.xz + SRC_URI="mirror://kernel/linux/kernel/v${LINUX_V}/testing/${LINUX_PATCH} + mirror://kernel/linux/kernel/v${LINUX_V}/testing/v${PATCH_VERSION}/${LINUX_PATCH}" +else + VER_COUNT=$(get_version_component_count) + if [[ ${VER_COUNT} -gt 2 ]] ; then + # stable-release series + LINUX_VER=$(get_version_component_range 1-2) + LINUX_PATCH=patch-${PV}.xz + SRC_URI="mirror://kernel/linux/kernel/v${LINUX_V}/${LINUX_PATCH}" + else + LINUX_VER=${PV} + SRC_URI="" + fi +fi + +LINUX_SOURCES="linux-${LINUX_VER}.tar.xz" +SRC_URI+=" mirror://kernel/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~ppc ~x86" +IUSE="audit debug +demangle +doc gtk perl python slang unwind" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +RDEPEND="audit? ( sys-process/audit ) + demangle? ( sys-devel/binutils ) + gtk? ( x11-libs/gtk+:2 ) + perl? ( dev-lang/perl ) + python? ( ${PYTHON_DEPS} ) + slang? ( dev-libs/newt ) + unwind? ( sys-libs/libunwind ) + dev-libs/elfutils" +DEPEND="${RDEPEND} + ${LINUX_PATCH+dev-util/patchutils} + sys-devel/bison + sys-devel/flex + doc? ( + app-text/asciidoc + app-text/sgml-common + app-text/xmlto + sys-process/time + )" + +S_K="${WORKDIR}/linux-${LINUX_VER}" +S="${S_K}/tools/perf" + +CONFIG_CHECK="~PERF_EVENTS ~KALLSYMS" + +pkg_setup() { + linux-info_pkg_setup + use python && python-single-r1_pkg_setup +} + +src_unpack() { + local paths=( tools/perf tools/scripts tools/include tools/lib include lib "arch/*/include" "arch/*/lib" ) + + # We expect the tar implementation to support the -j option (both + # GNU tar and libarchive's tar support that). + echo ">>> Unpacking ${LINUX_SOURCES} (${paths[*]}) to ${PWD}" + tar --wildcards -xpf "${DISTDIR}"/${LINUX_SOURCES} \ + "${paths[@]/#/linux-${LINUX_VER}/}" || die + + if [[ -n ${LINUX_PATCH} ]] ; then + eshopts_push -o noglob + ebegin "Filtering partial source patch" + filterdiff -p1 ${paths[@]/#/-i } -z "${DISTDIR}"/${LINUX_PATCH} > ${P}.patch || die + eend $? || die "filterdiff failed" + eshopts_pop + fi + + local a + for a in ${A}; do + [[ ${a} == ${LINUX_SOURCES} ]] && continue + [[ ${a} == ${LINUX_PATCH} ]] && continue + unpack ${a} + done +} + +src_prepare() { + if [[ -n ${LINUX_PATCH} ]] ; then + cd "${S_K}" + epatch "${WORKDIR}"/${P}.patch + fi + + # Drop some upstream too-developer-oriented flags and fix the + # Makefile in general + sed -i \ + -e 's:-Werror::' \ + -e 's:-ggdb3::' \ + -e 's:-fstack-protector-all::' \ + -e 's:^LDFLAGS =:EXTLIBS +=:' \ + -e '/\(PERL\|PYTHON\)_EMBED_LDOPTS/s:ALL_LDFLAGS +=:EXTLIBS +=:' \ + -e '/-x c - /s:\$(ALL_LDFLAGS):\0 $(EXTLIBS):' \ + -e '/^ALL_CFLAGS =/s:$: $(CFLAGS_OPTIMIZE):' \ + -e '/^ALL_LDFLAGS =/s:$: $(LDFLAGS_OPTIMIZE):' \ + -e 's:$(sysconfdir_SQ)/bash_completion.d:/usr/share/bash-completion:' \ + "${S}"/Makefile || die + sed -i -e 's:-Werror::' "${S_K}"/tools/lib/api/Makefile || die + sed -i \ + -e '/.FORCE-PERF-VERSION-FILE/s,.FORCE-PERF-VERSION-FILE,,g' \ + "${S}"/Makefile \ + "${S}"/Documentation/Makefile || die + + # Avoid the call to make kernelversion + echo "#define PERF_VERSION \"${MY_PV}\"" > PERF-VERSION-FILE + + # The code likes to compile local assembly files which lack ELF markings. + find -name '*.S' -exec sed -i '$a.section .note.GNU-stack,"",%progbits' {} + +} + +puse() { usex $1 "" no; } +perf_make() { + # The arch parsing is a bit funky. The perf tools package is integrated + # into the kernel, so it wants an ARCH that looks like the kernel arch, + # but it also wants to know about the split value -- i386/x86_64 vs just + # x86. We can get that by telling the func to use an older linux version. + # It's kind of a hack, but not that bad ... + local arch=$(KV=2.6.23 tc-arch-kernel) + emake V=1 \ + CC="$(tc-getCC)" AR="$(tc-getAR)" \ + prefix="/usr" bindir_relative="bin" \ + CFLAGS_OPTIMIZE="${CFLAGS}" \ + LDFLAGS_OPTIMIZE="${LDFLAGS}" \ + ARCH="${arch}" \ + NO_DEMANGLE=$(puse demangle) \ + NO_GTK2=$(puse gtk) \ + NO_LIBAUDIT=$(puse audit) \ + NO_LIBPERL=$(puse perl) \ + NO_LIBPYTHON=$(puse python) \ + NO_LIBUNWIND=$(puse unwind) \ + NO_NEWT=$(puse slang) \ + WERROR=0 \ + "$@" +} + +src_compile() { + perf_make -f Makefile.perf + use doc && perf_make -C Documentation +} + +src_test() { + : +} + +src_install() { + perf_make -f Makefile.perf install DESTDIR="${D}" + + dodoc CREDITS + + dodoc *txt Documentation/*.txt + if use doc ; then + dohtml Documentation/*.html + doman Documentation/*.1 + fi +} + +pkg_postinst() { + if ! use doc ; then + elog "Without the doc USE flag you won't get any documentation nor man pages." + elog "And without man pages, you won't get any --help output for perf and its" + elog "sub-tools." + fi +} diff --git a/dev-util/perf/perf-4.1.5-r1.ebuild b/dev-util/perf/perf-4.1.5-r1.ebuild new file mode 100644 index 000000000000..4fdec292a19d --- /dev/null +++ b/dev-util/perf/perf-4.1.5-r1.ebuild @@ -0,0 +1,190 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" + +PYTHON_COMPAT=( python2_7 ) +inherit versionator eutils toolchain-funcs python-single-r1 linux-info + +MY_PV="${PV/_/-}" +MY_PV="${MY_PV/-pre/-git}" + +DESCRIPTION="Userland tools for Linux Performance Counters" +HOMEPAGE="https://perf.wiki.kernel.org/" + +LINUX_V="${PV:0:1}.x" +if [[ ${PV} == *_rc* ]] ; then + LINUX_VER=$(get_version_component_range 1-2).$(($(get_version_component_range 3)-1)) + PATCH_VERSION=$(get_version_component_range 1-3) + LINUX_PATCH=patch-${PV//_/-}.xz + SRC_URI="mirror://kernel/linux/kernel/v${LINUX_V}/testing/${LINUX_PATCH} + mirror://kernel/linux/kernel/v${LINUX_V}/testing/v${PATCH_VERSION}/${LINUX_PATCH}" +else + VER_COUNT=$(get_version_component_count) + if [[ ${VER_COUNT} -gt 2 ]] ; then + # stable-release series + LINUX_VER=$(get_version_component_range 1-2) + LINUX_PATCH=patch-${PV}.xz + SRC_URI="mirror://kernel/linux/kernel/v${LINUX_V}/${LINUX_PATCH}" + else + LINUX_VER=${PV} + SRC_URI="" + fi +fi + +LINUX_SOURCES="linux-${LINUX_VER}.tar.xz" +SRC_URI+=" mirror://kernel/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~ppc ~x86" +IUSE="audit debug +demangle +doc gtk numa perl python slang unwind" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +RDEPEND="audit? ( sys-process/audit ) + demangle? ( sys-devel/binutils:= ) + gtk? ( x11-libs/gtk+:2 ) + numa? ( sys-process/numactl ) + perl? ( dev-lang/perl ) + python? ( ${PYTHON_DEPS} ) + slang? ( dev-libs/newt ) + unwind? ( sys-libs/libunwind ) + dev-libs/elfutils" +DEPEND="${RDEPEND} + ${LINUX_PATCH+dev-util/patchutils} + sys-devel/bison + sys-devel/flex + doc? ( + app-text/asciidoc + app-text/sgml-common + app-text/xmlto + sys-process/time + )" + +S_K="${WORKDIR}/linux-${LINUX_VER}" +S="${S_K}/tools/perf" + +CONFIG_CHECK="~PERF_EVENTS ~KALLSYMS" + +pkg_setup() { + linux-info_pkg_setup + use python && python-single-r1_pkg_setup +} + +src_unpack() { + local paths=( + tools/build tools/include tools/lib tools/perf tools/scripts + include lib "arch/*/include" "arch/*/lib" + ) + + # We expect the tar implementation to support the -j option (both + # GNU tar and libarchive's tar support that). + echo ">>> Unpacking ${LINUX_SOURCES} (${paths[*]}) to ${PWD}" + tar --wildcards -xpf "${DISTDIR}"/${LINUX_SOURCES} \ + "${paths[@]/#/linux-${LINUX_VER}/}" || die + + if [[ -n ${LINUX_PATCH} ]] ; then + eshopts_push -o noglob + ebegin "Filtering partial source patch" + filterdiff -p1 ${paths[@]/#/-i } -z "${DISTDIR}"/${LINUX_PATCH} \ + > ${P}.patch || die + eend $? || die "filterdiff failed" + eshopts_pop + fi + + local a + for a in ${A}; do + [[ ${a} == ${LINUX_SOURCES} ]] && continue + [[ ${a} == ${LINUX_PATCH} ]] && continue + unpack ${a} + done +} + +src_prepare() { + if [[ -n ${LINUX_PATCH} ]] ; then + cd "${S_K}" + epatch "${WORKDIR}"/${P}.patch + fi + + epatch "${FILESDIR}"/${P}-prefix.patch + + # Drop some upstream too-developer-oriented flags and fix the + # Makefile in general + sed -i \ + -e 's:-Werror::' \ + -e 's:-ggdb3::' \ + -e 's:-fstack-protector-all::' \ + -e 's:^LDFLAGS =:EXTLIBS +=:' \ + -e '/\(PERL\|PYTHON\)_EMBED_LDOPTS/s:ALL_LDFLAGS +=:EXTLIBS +=:' \ + -e '/-x c - /s:\$(ALL_LDFLAGS):\0 $(EXTLIBS):' \ + -e '/^ALL_CFLAGS =/s:$: $(CFLAGS_OPTIMIZE):' \ + -e '/^ALL_LDFLAGS =/s:$: $(LDFLAGS_OPTIMIZE):' \ + -e 's:$(sysconfdir_SQ)/bash_completion.d:/usr/share/bash-completion:' \ + "${S}"/Makefile || die + sed -i -e 's:-Werror::' "${S_K}"/tools/lib/api/Makefile || die + sed -i \ + -e '/.FORCE-PERF-VERSION-FILE/s,.FORCE-PERF-VERSION-FILE,,g' \ + "${S}"/Makefile \ + "${S}"/Documentation/Makefile || die + + # Avoid the call to make kernelversion + echo "#define PERF_VERSION \"${MY_PV}\"" > PERF-VERSION-FILE + + # The code likes to compile local assembly files which lack ELF markings. + find -name '*.S' -exec sed -i '$a.section .note.GNU-stack,"",%progbits' {} + +} + +puse() { usex $1 "" no; } +perf_make() { + # The arch parsing is a bit funky. The perf tools package is integrated + # into the kernel, so it wants an ARCH that looks like the kernel arch, + # but it also wants to know about the split value -- i386/x86_64 vs just + # x86. We can get that by telling the func to use an older linux version. + # It's kind of a hack, but not that bad ... + local arch=$(tc-arch-kernel) + emake V=1 \ + CC="$(tc-getCC)" AR="$(tc-getAR)" \ + prefix="/usr" bindir_relative="bin" \ + CFLAGS_OPTIMIZE="${CFLAGS}" \ + LDFLAGS_OPTIMIZE="${LDFLAGS}" \ + ARCH="${arch}" \ + NO_DEMANGLE=$(puse demangle) \ + NO_GTK2=$(puse gtk) \ + NO_LIBAUDIT=$(puse audit) \ + NO_LIBPERL=$(puse perl) \ + NO_LIBPYTHON=$(puse python) \ + NO_LIBUNWIND=$(puse unwind) \ + NO_NEWT=$(puse slang) \ + NO_LIBNUMA=$(puse numa) \ + WERROR=0 \ + "$@" +} + +src_compile() { + perf_make -f Makefile.perf + use doc && perf_make -C Documentation +} + +src_test() { + : +} + +src_install() { + perf_make -f Makefile.perf install DESTDIR="${D}" + + dodoc CREDITS + + dodoc *txt Documentation/*.txt + if use doc ; then + dohtml Documentation/*.html + doman Documentation/*.1 + fi +} + +pkg_postinst() { + if ! use doc ; then + elog "Without the doc USE flag you won't get any documentation nor man pages." + elog "And without man pages, you won't get any --help output for perf and its" + elog "sub-tools." + fi +} diff --git a/dev-util/perf/perf-4.14.33.ebuild b/dev-util/perf/perf-4.14.33.ebuild new file mode 100644 index 000000000000..609530402717 --- /dev/null +++ b/dev-util/perf/perf-4.14.33.ebuild @@ -0,0 +1,179 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python2_7 ) +inherit bash-completion-r1 versionator eutils toolchain-funcs python-single-r1 linux-info + +MY_PV="${PV/_/-}" +MY_PV="${MY_PV/-pre/-git}" + +DESCRIPTION="Userland tools for Linux Performance Counters" +HOMEPAGE="https://perf.wiki.kernel.org/" + +LINUX_V="${PV:0:1}.x" +if [[ ${PV} == *_rc* ]] ; then + LINUX_VER=$(get_version_component_range 1-2).$(($(get_version_component_range 3)-1)) + PATCH_VERSION=$(get_version_component_range 1-3) + LINUX_PATCH=patch-${PV//_/-}.xz + SRC_URI="mirror://kernel/linux/kernel/v${LINUX_V}/testing/${LINUX_PATCH} + mirror://kernel/linux/kernel/v${LINUX_V}/testing/v${PATCH_VERSION}/${LINUX_PATCH}" +else + VER_COUNT=$(get_version_component_count) + if [[ ${VER_COUNT} -gt 2 ]] ; then + # stable-release series + LINUX_VER=$(get_version_component_range 1-2) + LINUX_PATCH=patch-${PV}.xz + SRC_URI="mirror://kernel/linux/kernel/v${LINUX_V}/${LINUX_PATCH}" + else + LINUX_VER=${PV} + SRC_URI="" + fi +fi + +LINUX_SOURCES="linux-${LINUX_VER}.tar.xz" +SRC_URI+=" mirror://kernel/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~mips ~ppc ~x86 ~amd64-linux ~x86-linux" +IUSE="audit debug +demangle +doc gtk numa perl python slang unwind" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +RDEPEND="audit? ( sys-process/audit ) + demangle? ( sys-libs/binutils-libs:= ) + gtk? ( x11-libs/gtk+:2 ) + numa? ( sys-process/numactl ) + perl? ( dev-lang/perl ) + python? ( ${PYTHON_DEPS} ) + slang? ( dev-libs/newt ) + unwind? ( sys-libs/libunwind ) + dev-libs/elfutils" +DEPEND="${RDEPEND} + >=sys-kernel/linux-headers-4.9 + ${LINUX_PATCH+dev-util/patchutils} + sys-devel/bison + sys-devel/flex + doc? ( + app-text/asciidoc + app-text/sgml-common + app-text/xmlto + sys-process/time + )" + +S_K="${WORKDIR}/linux-${LINUX_VER}" +S="${S_K}/tools/perf" + +CONFIG_CHECK="~PERF_EVENTS ~KALLSYMS" + +pkg_setup() { + linux-info_pkg_setup + use python && python-single-r1_pkg_setup +} + +src_unpack() { + local paths=( + tools/arch tools/build tools/include tools/lib tools/perf tools/scripts + include lib "arch/*/lib" + ) + + # We expect the tar implementation to support the -j option (both + # GNU tar and libarchive's tar support that). + echo ">>> Unpacking ${LINUX_SOURCES} (${paths[*]}) to ${PWD}" + tar --wildcards -xpf "${DISTDIR}"/${LINUX_SOURCES} \ + "${paths[@]/#/linux-${LINUX_VER}/}" || die + + if [[ -n ${LINUX_PATCH} ]] ; then + eshopts_push -o noglob + ebegin "Filtering partial source patch" + filterdiff -p1 ${paths[@]/#/-i } -z "${DISTDIR}"/${LINUX_PATCH} \ + > ${P}.patch || die + eend $? || die "filterdiff failed" + eshopts_pop + fi + + local a + for a in ${A}; do + [[ ${a} == ${LINUX_SOURCES} ]] && continue + [[ ${a} == ${LINUX_PATCH} ]] && continue + unpack ${a} + done +} + +src_prepare() { + default + if [[ -n ${LINUX_PATCH} ]] ; then + cd "${S_K}" + eapply "${WORKDIR}"/${P}.patch + fi + + # Drop some upstream too-developer-oriented flags and fix the + # Makefile in general + sed -i \ + -e "s:\$(sysconfdir_SQ)/bash_completion.d:$(get_bashcompdir):" \ + "${S}"/Makefile.perf || die + # A few places still use -Werror w/out $(WERROR) protection. + sed -i -e 's:-Werror::' \ + "${S}"/Makefile.perf "${S_K}"/tools/lib/bpf/Makefile || die + + # Avoid the call to make kernelversion + echo "#define PERF_VERSION \"${MY_PV}\"" > PERF-VERSION-FILE + + # The code likes to compile local assembly files which lack ELF markings. + find -name '*.S' -exec sed -i '$a.section .note.GNU-stack,"",%progbits' {} + +} + +puse() { usex $1 "" no; } +perf_make() { + # The arch parsing is a bit funky. The perf tools package is integrated + # into the kernel, so it wants an ARCH that looks like the kernel arch, + # but it also wants to know about the split value -- i386/x86_64 vs just + # x86. We can get that by telling the func to use an older linux version. + # It's kind of a hack, but not that bad ... + local arch=$(tc-arch-kernel) + emake V=1 \ + CC="$(tc-getCC)" AR="$(tc-getAR)" LD="$(tc-getLD)" \ + prefix="${EPREFIX}/usr" bindir_relative="bin" \ + EXTRA_CFLAGS="${CFLAGS}" \ + ARCH="${arch}" \ + NO_DEMANGLE=$(puse demangle) \ + NO_GTK2=$(puse gtk) \ + NO_LIBAUDIT=$(puse audit) \ + NO_LIBPERL=$(puse perl) \ + NO_LIBPYTHON=$(puse python) \ + NO_LIBUNWIND=$(puse unwind) \ + NO_NEWT=$(puse slang) \ + NO_LIBNUMA=$(puse numa) \ + WERROR=0 \ + "$@" +} + +src_compile() { + perf_make -f Makefile.perf + use doc && perf_make -C Documentation +} + +src_test() { + : +} + +src_install() { + perf_make -f Makefile.perf install DESTDIR="${D}" + + dodoc CREDITS + + dodoc *txt Documentation/*.txt + if use doc ; then + HTML_DOCS="Documentation/*.html" einstalldocs + doman Documentation/*.1 + fi +} + +pkg_postinst() { + if ! use doc ; then + elog "Without the doc USE flag you won't get any documentation nor man pages." + elog "And without man pages, you won't get any --help output for perf and its" + elog "sub-tools." + fi +} diff --git a/dev-util/perf/perf-4.4.4.ebuild b/dev-util/perf/perf-4.4.4.ebuild new file mode 100644 index 000000000000..a1366ba16e6f --- /dev/null +++ b/dev-util/perf/perf-4.4.4.ebuild @@ -0,0 +1,184 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" + +PYTHON_COMPAT=( python2_7 ) +inherit versionator eutils toolchain-funcs python-single-r1 linux-info + +MY_PV="${PV/_/-}" +MY_PV="${MY_PV/-pre/-git}" + +DESCRIPTION="Userland tools for Linux Performance Counters" +HOMEPAGE="https://perf.wiki.kernel.org/" + +LINUX_V="${PV:0:1}.x" +if [[ ${PV} == *_rc* ]] ; then + LINUX_VER=$(get_version_component_range 1-2).$(($(get_version_component_range 3)-1)) + PATCH_VERSION=$(get_version_component_range 1-3) + LINUX_PATCH=patch-${PV//_/-}.xz + SRC_URI="mirror://kernel/linux/kernel/v${LINUX_V}/testing/${LINUX_PATCH} + mirror://kernel/linux/kernel/v${LINUX_V}/testing/v${PATCH_VERSION}/${LINUX_PATCH}" +else + VER_COUNT=$(get_version_component_count) + if [[ ${VER_COUNT} -gt 2 ]] ; then + # stable-release series + LINUX_VER=$(get_version_component_range 1-2) + LINUX_PATCH=patch-${PV}.xz + SRC_URI="mirror://kernel/linux/kernel/v${LINUX_V}/${LINUX_PATCH}" + else + LINUX_VER=${PV} + SRC_URI="" + fi +fi + +LINUX_SOURCES="linux-${LINUX_VER}.tar.xz" +SRC_URI+=" mirror://kernel/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~ppc ~x86" +IUSE="audit debug +demangle +doc gtk numa perl python slang unwind" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +RDEPEND="audit? ( sys-process/audit ) + demangle? ( sys-devel/binutils:= ) + gtk? ( x11-libs/gtk+:2 ) + numa? ( sys-process/numactl ) + perl? ( dev-lang/perl ) + python? ( ${PYTHON_DEPS} ) + slang? ( dev-libs/newt ) + unwind? ( sys-libs/libunwind ) + dev-libs/elfutils" +DEPEND="${RDEPEND} + >=sys-kernel/linux-headers-4.4 + ${LINUX_PATCH+dev-util/patchutils} + sys-devel/bison + sys-devel/flex + doc? ( + app-text/asciidoc + app-text/sgml-common + app-text/xmlto + sys-process/time + )" + +S_K="${WORKDIR}/linux-${LINUX_VER}" +S="${S_K}/tools/perf" + +CONFIG_CHECK="~PERF_EVENTS ~KALLSYMS" + +pkg_setup() { + linux-info_pkg_setup + use python && python-single-r1_pkg_setup +} + +src_unpack() { + local paths=( + tools/arch tools/build tools/include tools/lib tools/perf tools/scripts + include lib "arch/*/lib" + ) + + # We expect the tar implementation to support the -j option (both + # GNU tar and libarchive's tar support that). + echo ">>> Unpacking ${LINUX_SOURCES} (${paths[*]}) to ${PWD}" + tar --wildcards -xpf "${DISTDIR}"/${LINUX_SOURCES} \ + "${paths[@]/#/linux-${LINUX_VER}/}" || die + + if [[ -n ${LINUX_PATCH} ]] ; then + eshopts_push -o noglob + ebegin "Filtering partial source patch" + filterdiff -p1 ${paths[@]/#/-i } -z "${DISTDIR}"/${LINUX_PATCH} \ + > ${P}.patch || die + eend $? || die "filterdiff failed" + eshopts_pop + fi + + local a + for a in ${A}; do + [[ ${a} == ${LINUX_SOURCES} ]] && continue + [[ ${a} == ${LINUX_PATCH} ]] && continue + unpack ${a} + done +} + +src_prepare() { + if [[ -n ${LINUX_PATCH} ]] ; then + cd "${S_K}" + epatch "${WORKDIR}"/${P}.patch + fi + + # Drop some upstream too-developer-oriented flags and fix the + # Makefile in general + sed -i \ + -e 's:-Werror::' \ + -e 's:-ggdb3::' \ + -e 's:-fstack-protector-all::' \ + -e 's:^LDFLAGS =:EXTLIBS +=:' \ + -e '/\(PERL\|PYTHON\)_EMBED_LDOPTS/s:ALL_LDFLAGS +=:EXTLIBS +=:' \ + -e '/-x c - /s:\$(ALL_LDFLAGS):\0 $(EXTLIBS):' \ + "${S}"/config/Makefile || die + sed -i \ + -e 's:$(sysconfdir_SQ)/bash_completion.d:/usr/share/bash-completion:' \ + "${S}"/Makefile.perf || die + sed -i -e 's:-Werror::' "${S_K}"/tools/lib/api/Makefile || die + + # Avoid the call to make kernelversion + echo "#define PERF_VERSION \"${MY_PV}\"" > PERF-VERSION-FILE + + # The code likes to compile local assembly files which lack ELF markings. + find -name '*.S' -exec sed -i '$a.section .note.GNU-stack,"",%progbits' {} + +} + +puse() { usex $1 "" no; } +perf_make() { + # The arch parsing is a bit funky. The perf tools package is integrated + # into the kernel, so it wants an ARCH that looks like the kernel arch, + # but it also wants to know about the split value -- i386/x86_64 vs just + # x86. We can get that by telling the func to use an older linux version. + # It's kind of a hack, but not that bad ... + local arch=$(tc-arch-kernel) + emake V=1 \ + CC="$(tc-getCC)" AR="$(tc-getAR)" LD="$(tc-getLD)" \ + prefix="/usr" bindir_relative="bin" \ + EXTRA_CFLAGS="${CFLAGS}" \ + ARCH="${arch}" \ + NO_DEMANGLE=$(puse demangle) \ + NO_GTK2=$(puse gtk) \ + NO_LIBAUDIT=$(puse audit) \ + NO_LIBPERL=$(puse perl) \ + NO_LIBPYTHON=$(puse python) \ + NO_LIBUNWIND=$(puse unwind) \ + NO_NEWT=$(puse slang) \ + NO_LIBNUMA=$(puse numa) \ + WERROR=0 \ + "$@" +} + +src_compile() { + perf_make -f Makefile.perf + use doc && perf_make -C Documentation +} + +src_test() { + : +} + +src_install() { + perf_make -f Makefile.perf install DESTDIR="${D}" + + dodoc CREDITS + + dodoc *txt Documentation/*.txt + if use doc ; then + dohtml Documentation/*.html + doman Documentation/*.1 + fi +} + +pkg_postinst() { + if ! use doc ; then + elog "Without the doc USE flag you won't get any documentation nor man pages." + elog "And without man pages, you won't get any --help output for perf and its" + elog "sub-tools." + fi +} diff --git a/dev-util/perf/perf-4.9.13.ebuild b/dev-util/perf/perf-4.9.13.ebuild new file mode 100644 index 000000000000..e9c0e8f0c42e --- /dev/null +++ b/dev-util/perf/perf-4.9.13.ebuild @@ -0,0 +1,178 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" + +PYTHON_COMPAT=( python2_7 ) +inherit bash-completion-r1 versionator eutils toolchain-funcs python-single-r1 linux-info + +MY_PV="${PV/_/-}" +MY_PV="${MY_PV/-pre/-git}" + +DESCRIPTION="Userland tools for Linux Performance Counters" +HOMEPAGE="https://perf.wiki.kernel.org/" + +LINUX_V="${PV:0:1}.x" +if [[ ${PV} == *_rc* ]] ; then + LINUX_VER=$(get_version_component_range 1-2).$(($(get_version_component_range 3)-1)) + PATCH_VERSION=$(get_version_component_range 1-3) + LINUX_PATCH=patch-${PV//_/-}.xz + SRC_URI="mirror://kernel/linux/kernel/v${LINUX_V}/testing/${LINUX_PATCH} + mirror://kernel/linux/kernel/v${LINUX_V}/testing/v${PATCH_VERSION}/${LINUX_PATCH}" +else + VER_COUNT=$(get_version_component_count) + if [[ ${VER_COUNT} -gt 2 ]] ; then + # stable-release series + LINUX_VER=$(get_version_component_range 1-2) + LINUX_PATCH=patch-${PV}.xz + SRC_URI="mirror://kernel/linux/kernel/v${LINUX_V}/${LINUX_PATCH}" + else + LINUX_VER=${PV} + SRC_URI="" + fi +fi + +LINUX_SOURCES="linux-${LINUX_VER}.tar.xz" +SRC_URI+=" mirror://kernel/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~mips ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux" +IUSE="audit debug +demangle +doc gtk numa perl python slang unwind" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +RDEPEND="audit? ( sys-process/audit ) + demangle? ( sys-libs/binutils-libs:= ) + gtk? ( x11-libs/gtk+:2 ) + numa? ( sys-process/numactl ) + perl? ( dev-lang/perl ) + python? ( ${PYTHON_DEPS} ) + slang? ( dev-libs/newt ) + unwind? ( sys-libs/libunwind ) + dev-libs/elfutils" +DEPEND="${RDEPEND} + >=sys-kernel/linux-headers-4.9 + ${LINUX_PATCH+dev-util/patchutils} + sys-devel/bison + sys-devel/flex + doc? ( + app-text/asciidoc + app-text/sgml-common + app-text/xmlto + sys-process/time + )" + +S_K="${WORKDIR}/linux-${LINUX_VER}" +S="${S_K}/tools/perf" + +CONFIG_CHECK="~PERF_EVENTS ~KALLSYMS" + +pkg_setup() { + linux-info_pkg_setup + use python && python-single-r1_pkg_setup +} + +src_unpack() { + local paths=( + tools/arch tools/build tools/include tools/lib tools/perf tools/scripts + include lib "arch/*/lib" + ) + + # We expect the tar implementation to support the -j option (both + # GNU tar and libarchive's tar support that). + echo ">>> Unpacking ${LINUX_SOURCES} (${paths[*]}) to ${PWD}" + tar --wildcards -xpf "${DISTDIR}"/${LINUX_SOURCES} \ + "${paths[@]/#/linux-${LINUX_VER}/}" || die + + if [[ -n ${LINUX_PATCH} ]] ; then + eshopts_push -o noglob + ebegin "Filtering partial source patch" + filterdiff -p1 ${paths[@]/#/-i } -z "${DISTDIR}"/${LINUX_PATCH} \ + > ${P}.patch || die + eend $? || die "filterdiff failed" + eshopts_pop + fi + + local a + for a in ${A}; do + [[ ${a} == ${LINUX_SOURCES} ]] && continue + [[ ${a} == ${LINUX_PATCH} ]] && continue + unpack ${a} + done +} + +src_prepare() { + if [[ -n ${LINUX_PATCH} ]] ; then + cd "${S_K}" + epatch "${WORKDIR}"/${P}.patch + fi + + # Drop some upstream too-developer-oriented flags and fix the + # Makefile in general + sed -i \ + -e "s:\$(sysconfdir_SQ)/bash_completion.d:$(get_bashcompdir):" \ + "${S}"/Makefile.perf || die + # A few places still use -Werror w/out $(WERROR) protection. + sed -i -e 's:-Werror::' \ + "${S}"/Makefile.perf "${S_K}"/tools/lib/bpf/Makefile || die + + # Avoid the call to make kernelversion + echo "#define PERF_VERSION \"${MY_PV}\"" > PERF-VERSION-FILE + + # The code likes to compile local assembly files which lack ELF markings. + find -name '*.S' -exec sed -i '$a.section .note.GNU-stack,"",%progbits' {} + +} + +puse() { usex $1 "" no; } +perf_make() { + # The arch parsing is a bit funky. The perf tools package is integrated + # into the kernel, so it wants an ARCH that looks like the kernel arch, + # but it also wants to know about the split value -- i386/x86_64 vs just + # x86. We can get that by telling the func to use an older linux version. + # It's kind of a hack, but not that bad ... + local arch=$(tc-arch-kernel) + emake V=1 \ + CC="$(tc-getCC)" AR="$(tc-getAR)" LD="$(tc-getLD)" \ + prefix="${EPREFIX}/usr" bindir_relative="bin" \ + EXTRA_CFLAGS="${CFLAGS}" \ + ARCH="${arch}" \ + NO_DEMANGLE=$(puse demangle) \ + NO_GTK2=$(puse gtk) \ + NO_LIBAUDIT=$(puse audit) \ + NO_LIBPERL=$(puse perl) \ + NO_LIBPYTHON=$(puse python) \ + NO_LIBUNWIND=$(puse unwind) \ + NO_NEWT=$(puse slang) \ + NO_LIBNUMA=$(puse numa) \ + WERROR=0 \ + "$@" +} + +src_compile() { + perf_make -f Makefile.perf + use doc && perf_make -C Documentation +} + +src_test() { + : +} + +src_install() { + perf_make -f Makefile.perf install DESTDIR="${D}" + + dodoc CREDITS + + dodoc *txt Documentation/*.txt + if use doc ; then + dohtml Documentation/*.html + doman Documentation/*.1 + fi +} + +pkg_postinst() { + if ! use doc ; then + elog "Without the doc USE flag you won't get any documentation nor man pages." + elog "And without man pages, you won't get any --help output for perf and its" + elog "sub-tools." + fi +} -- cgit v1.2.3