From df5a2d2f2df9dc919f65a50564567d04a709bd41 Mon Sep 17 00:00:00 2001 From: Denis Lisov Date: Thu, 9 May 2019 20:01:21 +0300 Subject: [PATCH] x11-apps/igt-gpu-tools: update USE flags for meson Initially the igt-gpu-tools meson build system had no optional dependencies so all USE flags were forced on. This commit restores the ability to disable optional dependencies and restructures the USE flags from dependency-based (alsa, gsl, xrandr) to feature-based (sound, overlay). Closes: https://bugs.gentoo.org/670282 Closes: https://github.com/gentoo/gentoo/pull/11946 Signed-off-by: Denis Lisov Signed-off-by: Matt Turner --- profiles/arch/amd64/package.use.mask | 4 + profiles/arch/base/package.use.mask | 4 + profiles/arch/x86/package.use.mask | 4 + profiles/base/package.use.force | 6 - .../igt-gpu-tools-1.23-r1.ebuild | 104 ++++++++++++++++++ .../igt-gpu-tools/igt-gpu-tools-9999.ebuild | 95 ++++++++++++---- x11-apps/igt-gpu-tools/metadata.xml | 5 + 7 files changed, 193 insertions(+), 29 deletions(-) create mode 100644 x11-apps/igt-gpu-tools/igt-gpu-tools-1.23-r1.ebuild diff --git a/profiles/arch/amd64/package.use.mask b/profiles/arch/amd64/package.use.mask index 16f29053d761..7f5f72085961 100644 --- a/profiles/arch/amd64/package.use.mask +++ b/profiles/arch/amd64/package.use.mask @@ -17,6 +17,10 @@ #--- END OF EXAMPLES --- +# Denis Lisov (09 May 2019) +# Overlay can only be built on amd64 and x86 +x11-apps/igt-gpu-tools -overlay + # Sergei Trofimovich (16 Mar 2019) # sys-block/megactl works on x86 and amd64 www-apps/phpsysinfo -megactl diff --git a/profiles/arch/base/package.use.mask b/profiles/arch/base/package.use.mask index c80bc9f0d7f1..614b36ab7581 100644 --- a/profiles/arch/base/package.use.mask +++ b/profiles/arch/base/package.use.mask @@ -1,6 +1,10 @@ # Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Denis Lisov (09 May 2019) +# Overlay can only be built on amd64 and x86 +x11-apps/igt-gpu-tools overlay + # Sergei Trofimovich (16 Mar 2019) # sys-block/megactl works only on amd64 and x86 so far, bug #670564 www-apps/phpsysinfo megactl diff --git a/profiles/arch/x86/package.use.mask b/profiles/arch/x86/package.use.mask index 6aa126754ab0..9fb753ae9e5f 100644 --- a/profiles/arch/x86/package.use.mask +++ b/profiles/arch/x86/package.use.mask @@ -3,6 +3,10 @@ # This file requires >=portage-2.1.1 +# Denis Lisov (09 May 2019) +# Overlay can only be built on amd64 and x86 +x11-apps/igt-gpu-tools -overlay + # Sergei Trofimovich (16 Mar 2019) # sys-block/megactl works on x86 and amd64 www-apps/phpsysinfo -megactl diff --git a/profiles/base/package.use.force b/profiles/base/package.use.force index e18ccc6024ff..04fc8f63c525 100644 --- a/profiles/base/package.use.force +++ b/profiles/base/package.use.force @@ -24,12 +24,6 @@ net-misc/netkit-bootparamd libtirpc sci-astronomy/esomidas libtirpc sys-cluster/glusterfs libtirpc -# Matt Turner (13 Jun 2018) -# Upstream is transitioning to Meson, but does not yet have any configuration -# options. Until those configuration options are provided, force USE flags on -# to avoid automagic deps. ->=x11-apps/igt-gpu-tools-1.23 alsa chamelium doc glib gsl sound valgrind video_cards_amdgpu video_cards_intel video_cards_nouveau X xrandr xv - # NP-Hardass (10 Apr 2017) # Always force patch on appropriate variant to ensure # similar experience when using app-emulation/wine-any diff --git a/x11-apps/igt-gpu-tools/igt-gpu-tools-1.23-r1.ebuild b/x11-apps/igt-gpu-tools/igt-gpu-tools-1.23-r1.ebuild new file mode 100644 index 000000000000..8318e1ca9cc3 --- /dev/null +++ b/x11-apps/igt-gpu-tools/igt-gpu-tools-1.23-r1.ebuild @@ -0,0 +1,104 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +EGIT_REPO_URI="https://gitlab.freedesktop.org/drm/${PN}.git" +if [[ ${PV} = *9999* ]]; then + GIT_ECLASS="git-r3" +fi + +inherit ${GIT_ECLASS} meson + +DESCRIPTION="Intel GPU userland tools" + +HOMEPAGE="https://01.org/linuxgraphics https://gitlab.freedesktop.org/drm/igt-gpu-tools" +if [[ ${PV} = *9999* ]]; then + SRC_URI="" +else + KEYWORDS="~amd64 ~x86" + SRC_URI="https://www.x.org/releases/individual/app/${P}.tar.xz" +fi +LICENSE="MIT" +SLOT="0" +IUSE="chamelium doc man overlay sound valgrind video_cards_amdgpu video_cards_intel video_cards_nouveau X xv" +REQUIRED_USE=" + || ( video_cards_amdgpu video_cards_intel video_cards_nouveau ) + overlay? ( + video_cards_intel + || ( X xv ) + ) +" +RESTRICT="test" + +RDEPEND=" + dev-libs/glib:2 + dev-libs/openssl:= + sys-apps/kmod:= + sys-libs/libunwind:= + sys-libs/zlib:= + sys-process/procps:= + virtual/libudev:= + >=x11-libs/cairo-1.12.0[X?] + >=x11-libs/libdrm-2.4.82[video_cards_amdgpu?,video_cards_intel?,video_cards_nouveau?] + >=x11-libs/libpciaccess-0.10 + chamelium? ( + dev-libs/xmlrpc-c + sci-libs/gsl + x11-libs/pixman + ) + overlay? ( + >=x11-libs/libXrandr-1.3 + xv? ( + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXv + ) + ) + sound? ( + sci-libs/gsl + media-libs/alsa-lib:= + ) + valgrind? ( dev-util/valgrind ) + " +DEPEND="${RDEPEND} + doc? ( >=dev-util/gtk-doc-1.25-r1 ) + man? ( dev-python/docutils ) + overlay? ( + >=dev-util/peg-0.1.18 + x11-base/xorg-proto + ) + video_cards_intel? ( + sys-devel/bison + sys-devel/flex + ) +" + +src_prepare() { + sed -e "s/rst2man/rst2man.py/" -i man/rst2man.sh + sed -e "s/find_program('rst2man'/find_program('rst2man.py'/" -i man/meson.build + default_src_prepare +} + +src_configure() { + local gpus="" + use video_cards_amdgpu && gpus+="amdgpu," + use video_cards_intel && gpus+="intel," + use video_cards_nouveau && gpus+="nouveau," + + local overlay_backends="" + use overlay && use xv && overlay_backends+="xv," + use overlay && use X && overlay_backends+="x," + + local emesonargs=( + -Dbuild_audio=$(usex sound true false) + -Dbuild_chamelium=$(usex chamelium true false) + -Dbuild_docs=$(usex doc true false) + -Dbuild_man=$(usex man true false) + -Dbuild_overlay=$(usex overlay true false) + -Dbuild_tests=$(usex doc true false) # Test build is required for docs + -Doverlay_backends=${overlay_backends%?} + -Dwith_libdrm=${gpus%?} + -Dwith_valgrind=$(usex valgrind true false) + ) + meson_src_configure +} diff --git a/x11-apps/igt-gpu-tools/igt-gpu-tools-9999.ebuild b/x11-apps/igt-gpu-tools/igt-gpu-tools-9999.ebuild index 65bdd0b60689..81fff23b3e74 100644 --- a/x11-apps/igt-gpu-tools/igt-gpu-tools-9999.ebuild +++ b/x11-apps/igt-gpu-tools/igt-gpu-tools-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Authors +# Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -20,35 +20,84 @@ else fi LICENSE="MIT" SLOT="0" -IUSE="alsa chamelium doc glib gsl sound valgrind video_cards_amdgpu video_cards_intel video_cards_nouveau X xrandr xv" -REQUIRED_USE="chamelium? ( glib gsl )" +IUSE="chamelium doc man overlay runner unwind valgrind video_cards_amdgpu video_cards_intel video_cards_nouveau X xv" +REQUIRED_USE=" + || ( video_cards_amdgpu video_cards_intel video_cards_nouveau ) + overlay? ( + video_cards_intel + || ( X xv ) + ) +" RESTRICT="test" -X86_RDEPEND=" - xv? ( - x11-libs/libX11 - x11-libs/libXext - x11-libs/libXv - )" -X86_DEPEND="x11-base/xorg-proto - >=dev-util/peg-0.1.18" -RDEPEND="sys-apps/kmod:= +RDEPEND=" + dev-libs/elfutils + dev-libs/glib:2 + sys-apps/kmod:= sys-libs/libunwind:= + sys-libs/zlib:= sys-process/procps:= virtual/libudev:= >=x11-libs/cairo-1.12.0[X?] >=x11-libs/libdrm-2.4.82[video_cards_amdgpu?,video_cards_intel?,video_cards_nouveau?] >=x11-libs/libpciaccess-0.10 - alsa? ( media-libs/alsa-lib:= ) - chamelium? ( dev-libs/xmlrpc-c ) - glib? ( dev-libs/glib:2 ) - gsl? ( sci-libs/gsl ) + x11-libs/pixman + chamelium? ( + dev-libs/xmlrpc-c[curl] + sci-libs/gsl + media-libs/alsa-lib:= + ) + overlay? ( + >=x11-libs/libXrandr-1.3 + xv? ( + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXv + ) + ) + runner? ( dev-libs/json-c:= ) + unwind? ( sys-libs/libunwind ) valgrind? ( dev-util/valgrind ) - video_cards_intel? ( sys-libs/zlib:= ) - xrandr? ( >=x11-libs/libXrandr-1.3 ) - amd64? ( ${X86_RDEPEND} ) - x86? ( ${X86_RDEPEND} )" + " DEPEND="${RDEPEND} - amd64? ( ${X86_DEPEND} ) - x86? ( ${X86_DEPEND} ) - doc? ( >=dev-util/gtk-doc-1.25-r1 )" + doc? ( >=dev-util/gtk-doc-1.25-r1 ) + man? ( dev-python/docutils ) + overlay? ( + >=dev-util/peg-0.1.18 + x11-base/xorg-proto + ) + video_cards_intel? ( + sys-devel/bison + sys-devel/flex + ) +" + +src_prepare() { + sed -e "s/find_program('rst2man-3'/find_program('rst2man.py', 'rst2man-3'/" -i man/meson.build + default_src_prepare +} + +src_configure() { + local gpus="" + use video_cards_amdgpu && gpus+="amdgpu," + use video_cards_intel && gpus+="intel," + use video_cards_nouveau && gpus+="nouveau," + + local overlay_backends="" + use overlay && use xv && overlay_backends+="xv," + use overlay && use X && overlay_backends+="x," + + local emesonargs=( + -Dbuild_chamelium=$(usex chamelium true false) + -Dbuild_docs=$(usex doc true false) + -Dbuild_man=$(usex man true false) + -Dbuild_overlay=$(usex overlay true false) + -Dbuild_runner=$(usex runner true false) + -Dbuild_tests=$(usex doc true false) # Test build is required for docs + -Doverlay_backends=${overlay_backends%?} + -Dwith_libdrm=${gpus%?} + -Dwith_libunwind=$(usex unwind true false) + -Dwith_valgrind=$(usex valgrind true false) + ) + meson_src_configure +} diff --git a/x11-apps/igt-gpu-tools/metadata.xml b/x11-apps/igt-gpu-tools/metadata.xml index df5e45209705..d1c1f29fe122 100644 --- a/x11-apps/igt-gpu-tools/metadata.xml +++ b/x11-apps/igt-gpu-tools/metadata.xml @@ -8,7 +8,12 @@ Enables support for building Chamelium tests Support reading config files via glib helpers + Build and install man pages + Build the intel-gpu-overlay utility + Build the test runner Support valgrind annotations Enable support for the X RandR extension + Enable intel-gpu-overlay xv backend + Enable intel-gpu-overlay xlib/cairo backend -- 2.26.2