~q3cpma/portage-overlay

6e44a8e6ab2bbba773a95073133ace24bc2d66e3 — q3cpma 6 months ago a6b9719
Add raze, fork stone-soup, gzdoom, nicotine and yt-dlp
34 files changed, 2673 insertions(+), 28 deletions(-)

A dev-lang/tcl/files/tcl-8.5.13-multilib.patch
A dev-lang/tcl/files/tcl-8.5.14-conf.patch
A dev-lang/tcl/files/tcl-8.6.10-multilib.patch
A dev-lang/tcl/files/tcl-8.6.8-conf.patch
A dev-lang/tcl/files/tcl-8.6.8-libieee.patch
A dev-lang/tcl/files/tcl-8.6.9-include-spec.patch
A dev-lang/tcl/metadata.xml
A dev-lang/tcl/tcl-8.6.8.ebuild
A games-fps/gzdoom/files/gzdoom-4.7.1-Introduce-the-BUILD_NONFREE-option.patch
A games-fps/gzdoom/gzdoom-4.7.1.ebuild
A games-fps/gzdoom/metadata.xml
A games-fps/raze/metadata.xml
A games-fps/raze/raze-1.2.1.ebuild
A games-roguelike/stone-soup/files/make.patch
A games-roguelike/stone-soup/files/rltiles-make.patch
A games-roguelike/stone-soup/metadata.xml
A games-roguelike/stone-soup/stone-soup-0.28.0_pre20211108.ebuild
A media-gfx/darktable/darktable-3.4.1.ebuild
A media-gfx/darktable/files/darktable-3.4.0-xmmintrin-sse-only.patch
A media-gfx/darktable/files/darktable-3.4.0_jsonschema-automagic.patch
A media-gfx/gimp/files/gimp-2.99.2_fix_autoconf-2.70.patch
A media-gfx/gimp/gimp-2.10.22-r3.ebuild
A media-libs/libaom/libaom-3.1.1.ebuild
A media-libs/libaom/libaom-9999.ebuild
A media-libs/libaom/metadata.xml
A media-video/mpv/mpv-9999.ebuild
A net-misc/yt-dlp/metadata.xml
A net-misc/yt-dlp/yt-dlp-2021.10.22.ebuild
A net-p2p/nicotine+/metadata.xml
A net-p2p/nicotine+/nicotine+-3.1.1.ebuild
R sys-apps/busybox/{busybox-1.33.0.ebuild => busybox-1.34.1.ebuild}
A x11-libs/gtk+/files/gtk+-3.24.25-update-icon-cache.patch
A x11-libs/gtk+/gtk+-3.24.24-r1.ebuild
A x11-libs/gtk+/gtk+-3.24.29.ebuild
A dev-lang/tcl/files/tcl-8.5.13-multilib.patch => dev-lang/tcl/files/tcl-8.5.13-multilib.patch +11 -0
@@ 0,0 1,11 @@
--- a/unix/configure.in
+++ b/unix/configure.in
@@ -645,7 +645,7 @@
 
 eval "TCL_LIB_FILE=${TCL_LIB_FILE}"
 
-TCL_LIBRARY='$(prefix)/lib/tcl$(VERSION)'
+TCL_LIBRARY='$(libdir)/tcl$(VERSION)'
 PRIVATE_INCLUDE_DIR='$(includedir)'
 HTML_DIR='$(DISTDIR)/html'
 

A dev-lang/tcl/files/tcl-8.5.14-conf.patch => dev-lang/tcl/files/tcl-8.5.14-conf.patch +11 -0
@@ 0,0 1,11 @@
--- a/unix/tcl.m4
+++ b/unix/tcl.m4
@@ -1427,7 +1427,7 @@ dnl AC_CHECK_TOOL(AR, ar)
 	    # get rid of the warnings.
 	    #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
 
-	    SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}'
+	    SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS} -fPIC -Wl,-soname,${@}'
 	    DL_OBJS="tclLoadDl.o"
 	    DL_LIBS="-ldl"
 	    LDFLAGS="$LDFLAGS -Wl,--export-dynamic"

A dev-lang/tcl/files/tcl-8.6.10-multilib.patch => dev-lang/tcl/files/tcl-8.6.10-multilib.patch +11 -0
@@ 0,0 1,11 @@
--- a/unix/configure.in	2020-12-26 10:39:12.107965844 +0100
+++ b/unix/configure.in	2020-12-26 10:39:44.821378776 +0100
@@ -773,7 +773,7 @@
 
 eval "TCL_LIB_FILE=${TCL_LIB_FILE}"
 
-test -z "$TCL_LIBRARY" && TCL_LIBRARY='$(prefix)/lib/tcl$(VERSION)'
+test -z "$TCL_LIBRARY" && TCL_LIBRARY='$(libdir)/tcl$(VERSION)'
 PRIVATE_INCLUDE_DIR='$(includedir)'
 HTML_DIR='$(DISTDIR)/html'
 

A dev-lang/tcl/files/tcl-8.6.8-conf.patch => dev-lang/tcl/files/tcl-8.6.8-conf.patch +11 -0
@@ 0,0 1,11 @@
--- a/unix/tcl.m4
+++ b/unix/tcl.m4
@@ -1402,7 +1402,7 @@
 	    # get rid of the warnings.
 	    #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
 
-	    SHLIB_LD='${CC} ${CFLAGS} ${LDFLAGS} -shared'
+	    SHLIB_LD='${CC} ${CFLAGS} ${LDFLAGS} -shared -fPIC -Wl,-soname,${@}'
 	    DL_OBJS="tclLoadDl.o"
 	    DL_LIBS="-ldl"
 	    LDFLAGS="$LDFLAGS -Wl,--export-dynamic"

A dev-lang/tcl/files/tcl-8.6.8-libieee.patch => dev-lang/tcl/files/tcl-8.6.8-libieee.patch +15 -0
@@ 0,0 1,15 @@
--- a/unix/tcl.m4
+++ b/unix/tcl.m4
@@ -2470,12 +2470,9 @@
     #--------------------------------------------------------------------
     # On a few very rare systems, all of the libm.a stuff is
     # already in libc.a.  Set compiler flags accordingly.
-    # Also, Linux requires the "ieee" library for math to work
-    # right (and it must appear before "-lm").
     #--------------------------------------------------------------------
 
     AC_CHECK_FUNC(sin, MATH_LIBS="", MATH_LIBS="-lm")
-    AC_CHECK_LIB(ieee, main, [MATH_LIBS="-lieee $MATH_LIBS"])
 
     #--------------------------------------------------------------------
     # Interactive UNIX requires -linet instead of -lsocket, plus it

A dev-lang/tcl/files/tcl-8.6.9-include-spec.patch => dev-lang/tcl/files/tcl-8.6.9-include-spec.patch +12 -0
@@ 0,0 1,12 @@
This resolves https://bugs.gentoo.org/731120
--- a/unix/configure.in
+++ b/unix/configure.in
@@ -895,7 +895,7 @@ TCL_BUILD_STUB_LIB_PATH="`pwd`/${TCL_STUB_LIB_FILE}"
 TCL_STUB_LIB_PATH="${TCL_STUB_LIB_DIR}/${TCL_STUB_LIB_FILE}"
 
 # Install time header dir can be set via --includedir
-eval "TCL_INCLUDE_SPEC=\"-I${includedir}\""
+eval "TCL_INCLUDE_SPEC=\"\""
 
 #------------------------------------------------------------------------
 # tclConfig.sh refers to this by a different name

A dev-lang/tcl/metadata.xml => dev-lang/tcl/metadata.xml +11 -0
@@ 0,0 1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
	<maintainer type="project">
		<email>tcltk@gentoo.org</email>
		<name>TCL/TK Herd.</name>
	</maintainer>
	<upstream>
		<remote-id type="sourceforge">tcl</remote-id>
	</upstream>
</pkgmetadata>

A dev-lang/tcl/tcl-8.6.8.ebuild => dev-lang/tcl/tcl-8.6.8.ebuild +131 -0
@@ 0,0 1,131 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=6

inherit autotools eutils flag-o-matic multilib multilib-minimal toolchain-funcs versionator

MY_P="${PN}${PV}"

DESCRIPTION="Tool Command Language"
HOMEPAGE="http://www.tcl.tk/"
SRC_URI="mirror://sourceforge/tcl/${PN}-core${PV}-src.tar.gz"

LICENSE="tcltk"
SLOT="0/8.6"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="debug +threads"

RDEPEND=">=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]"
DEPEND="${RDEPEND}"

SPARENT="${WORKDIR}/${MY_P}"
S="${SPARENT}"/unix

PATCHES=(
	"${FILESDIR}"/${PN}-8.5.13-multilib.patch
	"${FILESDIR}"/${PN}-8.6.8-conf.patch # Bug 125971
	"${FILESDIR}"/${PN}-8.6.8-libieee.patch
)

src_prepare() {
	find \
		"${SPARENT}"/compat/* \
		"${SPARENT}"/doc/try.n \
		-delete || die

	pushd "${SPARENT}" &>/dev/null || die
	default
	popd &>/dev/null || die

	# workaround stack check issues, bug #280934
	use hppa && append-cflags "-DTCL_NO_STACK_CHECK=1"

	tc-export CC

	sed \
		-e '/chmod/s:555:755:g' \
		-i Makefile.in || die

	sed \
		-e 's:-O[2s]\?::g' \
		-i tcl.m4 || die

	mv configure.{in,ac} || die

	eautoconf

	eapply_user
	multilib_copy_sources
}

multilib_src_configure() {
	# We went ahead and deleted the whole compat/ subdir which means
	# the configure tests to detect broken versions need to pass (else
	# we'll fail to build).  This comes up when cross-compiling, but
	# might as well get a minor configure speed up normally.
	export ac_cv_func_memcmp_working="yes"
	export tcl_cv_str{str,toul,tod}_unbroken="ok"
	export tcl_cv_strtod_buggy="no"

	econf \
		$(use_enable threads) \
		$(use_enable debug symbols)
}

multilib_src_install() {
	#short version number
	local v1=$(get_version_component_range 1-2)
	local mylibdir=$(get_libdir)

	S= default
	# fix the tclConfig.sh to eliminate refs to the build directory
	# and drop unnecessary -L inclusion to default system libdir

	sed \
		-e "/^TCL_BUILD_LIB_SPEC=/s:-L$(pwd) *::g" \
		-e "/^TCL_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
		-e "/^TCL_SRC_DIR=/s:${SPARENT}:${EPREFIX}/usr/${mylibdir}/tcl${v1}/include:g" \
		-e "/^TCL_BUILD_STUB_LIB_SPEC=/s:-L$(pwd) *::g" \
		-e "/^TCL_STUB_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
		-e "/^TCL_BUILD_STUB_LIB_PATH=/s:$(pwd):${EPREFIX}/usr/${mylibdir}:g" \
		-e "/^TCL_LIB_FILE=/s:'libtcl${v1}..TCL_DBGX..so':\"libtcl${v1}\$\{TCL_DBGX\}.so\":g" \
		-i "${ED}"/usr/${mylibdir}/tclConfig.sh || die
	if use prefix && [[ ${CHOST} != *-darwin* && ${CHOST} != *-mint* ]] ; then
		sed \
			-e "/^TCL_CC_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|g" \
			-e "/^TCL_LD_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|" \
			-i "${ED}"/usr/${mylibdir}/tclConfig.sh || die
	fi

	# install private headers
	insinto /usr/${mylibdir}/tcl${v1}/include/unix
	doins *.h
	insinto /usr/${mylibdir}/tcl${v1}/include/generic
	doins "${SPARENT}"/generic/*.h
	rm -f "${ED}"/usr/${mylibdir}/tcl${v1}/include/generic/{tcl,tclDecls,tclPlatDecls}.h || die

	# install symlink for libraries
	dosym libtcl${v1}$(get_libname) /usr/${mylibdir}/libtcl$(get_libname)
	dosym libtclstub${v1}.a /usr/${mylibdir}/libtclstub.a

	if multilib_is_native_abi; then
		dosym tclsh${v1} /usr/bin/tclsh
		dodoc "${SPARENT}"/{ChangeLog*,README,changes}
	fi
}

pkg_postinst() {
	for version in ${REPLACING_VERSIONS}; do
		if ! version_is_at_least 8.6 ${version}; then
			echo
			ewarn "You're upgrading from <${P}, you must recompile the other"
			ewarn "packages on your system that link with tcl after the upgrade"
			ewarn "completes. To perform this action, please run revdep-rebuild"
			ewarn "in package app-portage/gentoolkit."
			ewarn "If you have dev-lang/tk and dev-tcltk/tclx installed you should"
			ewarn "upgrade them before this recompilation, too,"
			echo
		fi
	done
}

A games-fps/gzdoom/files/gzdoom-4.7.1-Introduce-the-BUILD_NONFREE-option.patch => games-fps/gzdoom/files/gzdoom-4.7.1-Introduce-the-BUILD_NONFREE-option.patch +36 -0
@@ 0,0 1,36 @@
From d164cfcde29980c23ece15f0be1b09dac5853843 Mon Sep 17 00:00:00 2001
From: William Breathitt Gray <vilhelm.gray@gmail.com>
Date: Sat, 31 Aug 2019 21:23:23 +0900
Subject: [PATCH] Introduce the BUILD_NONFREE option

This allow users to disable building nonfree components (brightmaps.pk3,
game_support.pk3, and game_widescreen_gfx.pk3) if they so desire.
---
 CMakeLists.txt | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9013d8921..77bd703b1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -411,11 +411,14 @@ add_subdirectory( libraries/lzma )
 add_subdirectory( tools )
 add_subdirectory( libraries/gdtoa )
 add_subdirectory( wadsrc )
-add_subdirectory( wadsrc_bm )
 add_subdirectory( wadsrc_lights )
-add_subdirectory( wadsrc_extra )
-add_subdirectory( wadsrc_widepix )
 add_subdirectory( src )
+option (BUILD_NONFREE "Build nonfree components" ON)
+if( BUILD_NONFREE )
+       add_subdirectory( wadsrc_bm )
+       add_subdirectory( wadsrc_extra )
+       add_subdirectory( wadsrc_widepix )
+endif()
 
 if( NOT CMAKE_CROSSCOMPILING )
 	export(TARGETS ${CROSS_EXPORTS} FILE "${CMAKE_BINARY_DIR}/ImportExecutables.cmake" )
-- 
2.33.1


A games-fps/gzdoom/gzdoom-4.7.1.ebuild => games-fps/gzdoom/gzdoom-4.7.1.ebuild +83 -0
@@ 0,0 1,83 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

inherit cmake desktop xdg flag-o-matic

DESCRIPTION="A modder-friendly OpenGL source port based on the DOOM engine"
HOMEPAGE="https://zdoom.org"
SRC_URI="https://github.com/coelckers/${PN}/archive/g${PV}.tar.gz -> ${P}.tar.gz"

LICENSE="Apache-2.0 BSD BZIP2 GPL-3 LGPL-2.1+ LGPL-3 MIT
	non-free? ( Activision ChexQuest3 DOOM-COLLECTORS-EDITION freedist WidePix )"
SLOT="0"
KEYWORDS="~amd64 ~arm ~x86"
IUSE="debug gles2 gtk +non-free openmp telemetry vulkan"

DEPEND="
	app-arch/bzip2
	media-libs/libsdl2[gles2?,opengl,vulkan?]
	media-libs/openal
	media-libs/zmusic
	sys-libs/zlib
	virtual/jpeg:0
	gtk? ( x11-libs/gtk+:3 )"
RDEPEND="${DEPEND}"

S="${WORKDIR}/${PN}-g${PV}"

PATCHES=(
	"${FILESDIR}/${P}-Introduce-the-BUILD_NONFREE-option.patch"
)

src_prepare() {
	rm -rf docs/licenses || die
	rm -rf libraries/{bzip2,jpeg,zlib} || die
	if ! use non-free ; then
		rm -rf wadsrc_bm wadsrc_extra wadsrc_widepix || die
	fi

	cmake_src_prepare
}

src_configure() {
	local mycmakeargs=(
		-DCMAKE_BUILD_TYPE="$(usex debug Debug Release)"
		-DINSTALL_DOCS_PATH="${EPREFIX}/usr/share/doc/${PF}"
		-DINSTALL_PK3_PATH="${EPREFIX}/usr/share/doom"
		-DINSTALL_SOUNDFONT_PATH="${EPREFIX}/usr/share/doom"
		-DDYN_OPENAL=OFF
		-DNO_GTK="$(usex !gtk)"
		-DNO_OPENAL=OFF
		-DHAVE_VULKAN="$(usex vulkan)"
		-DHAVE_GLES2="$(usex gles2)"
		-DNO_OPENMP="$(usex !openmp)"
		-DBUILD_NONFREE="$(usex non-free)"
	)

	# use debug || append-cppflags -DNDEBUG
	use telemetry || append-cppflags -DNO_SEND_STATS

	cmake_src_configure
}

src_install() {
	newicon src/posix/zdoom.xpm "${PN}.xpm"
	make_desktop_entry "${PN}" "GZDoom" "${PN}" "Game;ActionGame"
	cmake_src_install
}

pkg_postinst() {
	xdg_pkg_postinst

	if ! use non-free ; then
		ewarn
		ewarn "GZDoom installed without non-free components."
		ewarn "Note: The non-free game_support.pk3 file is needed to play"
		ewarn "      games natively supported by GZDoom."
		ewarn "A list of games natively supported by GZDoom is available"
		ewarn "on the ZDoom wiki: https://zdoom.org/wiki/IWAD"
		ewarn
	fi
}

A games-fps/gzdoom/metadata.xml => games-fps/gzdoom/metadata.xml +26 -0
@@ 0,0 1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
	<maintainer type="person" proxied="yes">
		<email>vilhelm.gray@gmail.com</email>
		<name>William Breathitt Gray</name>
	</maintainer>
	<maintainer type="project" proxied="proxy">
		<email>proxy-maint@gentoo.org</email>
		<name>Proxy Maintainers</name>
	</maintainer>
	<maintainer type="project">
		<email>games@gentoo.org</email>
		<name>Gentoo Games Project</name>
	</maintainer>
	<use>
		<flag name="gles2">Enable GLES2 backend</flag>
		<flag name="non-free">Enable non-free components</flag>
		<flag name="vulkan">Enable Vulkan support</flag>
	</use>
	<upstream>
		<bugs-to>https://forum.zdoom.org/viewforum.php?f=2</bugs-to>
		<doc lang="en">https://zdoom.org</doc>
		<remote-id type="github">coelckers/gzdoom</remote-id>
	</upstream>
</pkgmetadata>

A games-fps/raze/metadata.xml => games-fps/raze/metadata.xml +26 -0
@@ 0,0 1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
	<maintainer type="person" proxied="yes">
		<email>vilhelm.gray@gmail.com</email>
		<name>William Breathitt Gray</name>
	</maintainer>
	<maintainer type="project" proxied="proxy">
		<email>proxy-maint@gentoo.org</email>
		<name>Proxy Maintainers</name>
	</maintainer>
	<maintainer type="project">
		<email>games@gentoo.org</email>
		<name>Gentoo Games Project</name>
	</maintainer>
	<use>
		<flag name="gles2">Enable GLES2 backend</flag>
		<flag name="non-free">Enable non-free components</flag>
		<flag name="vulkan">Enable Vulkan support</flag>
	</use>
	<upstream>
		<bugs-to>https://forum.zdoom.org/viewforum.php?f=2</bugs-to>
		<doc lang="en">https://zdoom.org</doc>
		<remote-id type="github">coelckers/gzdoom</remote-id>
	</upstream>
</pkgmetadata>

A games-fps/raze/raze-1.2.1.ebuild => games-fps/raze/raze-1.2.1.ebuild +58 -0
@@ 0,0 1,58 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

inherit cmake desktop xdg flag-o-matic

DESCRIPTION="Build engine port backed by GZDoom tech"
HOMEPAGE="https://raze.zdoom.org/about"
SRC_URI="https://github.com/coelckers/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"

LICENSE="Apache-2.0 BSD BZIP2 GPL-2 LGPL-2.1+ LGPL-3 MIT"
SLOT="0"
KEYWORDS="~amd64 ~arm ~x86"
IUSE="debug gles2 gtk openal +openmp vulkan"

DEPEND="
	app-arch/bzip2
	media-libs/libsdl2[gles2?,opengl,vulkan?]
	media-libs/libvpx
	openal? ( media-libs/openal )
	media-libs/zmusic
	sys-libs/zlib
	virtual/jpeg:0
	gtk? ( x11-libs/gtk+:3 )"
RDEPEND="${DEPEND}"

S="${WORKDIR}/Raze-${PV}"

src_prepare() {
	rm -rf libraries/{bzip2,jpeg,zlib} || die
	cmake_src_prepare
}

src_configure() {
	local mycmakeargs=(
		-DCMAKE_BUILD_TYPE="$(usex debug Debug Release)"
		-DDYN_GTK=OFF
		-DDYN_OPENAL=OFF
		-DHAVE_GLES2="$(usex gles2)"
		-DHAVE_VULKAN="$(usex vulkan)"
		-DINSTALL_PK3_PATH="${EPREFIX}/usr/share/raze"
		-DNO_GTK="$(usex !gtk)"
		-DNO_OPENAL="$(usex !openal)"
		-DNO_OPENMP="$(usex !openmp)"
	)
	cmake_src_configure
}

src_install() {
	newicon source/platform/posix/game.xpm "${PN}.xpm"
	make_desktop_entry "${PN}" "Raze" "${PN}" "Game;ActionGame"
	cmake_src_install
}

pkg_postinst() {
	xdg_pkg_postinst
}

A games-roguelike/stone-soup/files/make.patch => games-roguelike/stone-soup/files/make.patch +94 -0
@@ 0,0 1,94 @@
--- a/Makefile	2021-08-02 13:54:26.603900984 -0500
+++ b/Makefile	2021-08-02 13:57:26.018910565 -0500
@@ -186,7 +186,7 @@
 uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
 uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not')
 
-HOST := $(shell sh -c 'cc -dumpmachine || echo unknown')
+HOST :=
 ARCH := $(HOST)
 
 ifdef CROSSHOST
@@ -457,15 +457,7 @@
 GCC_VER_SUFFIX:=-$(GCC_VER)
 endif
 
-# Attempt to use a full compiler name, to make
-# distcc builds work nicely.
-LMACH := $(shell gcc -dumpmachine)-
-ifeq ($(LMACH),-)
 LMACH :=
-endif
-ifeq ($(shell which $(LMACH)gcc$(GCC_VER_SUFFIX) > /dev/null 2> /dev/null && echo "Yes"),)
-LMACH :=
-endif
 
 ifneq ($(FORCE_CC),)
 GCC := $(FORCE_CC)
@@ -765,7 +757,6 @@
 	FULLDEBUG=YesPlease
 	DEBUG=YesPlease
 	NO_OPTIMIZE=YesPlease
-	COVERAGE=YesPlease
 endif
 
 # Debug-Lite
@@ -773,7 +764,6 @@
 ifneq (,$(filter debug-lite,$(MAKECMDGOALS)))
 	DEBUG=YesPlease
 	NO_OPTIMIZE=YesPlease
-	COVERAGE=YesPlease
 endif
 
 # Profile
@@ -781,12 +771,10 @@
 ifneq (,$(filter profile,$(MAKECMDGOALS)))
 	FULLDEBUG=YesPlease
 	DEBUG=YesPlease
-	COVERAGE=YesPlease
 endif
 
 # Unit tests
 ifneq (,$(filter catch2-tests,$(MAKECMDGOALS)))
-	COVERAGE=YesPlease
 endif
 
 ifdef HURRY
@@ -938,7 +926,7 @@
     INSTALL_FONTS += "$(PROPORTIONAL_FONT)"
   endif
 else
-  SYS_PROPORTIONAL_FONT = $(shell util/find_font "$(OUR_PROPORTIONAL_FONT)")
+  SYS_PROPORTIONAL_FONT = /usr/share/fonts/dejavu/DejaVuSans.ttf
   ifneq (,$(SYS_PROPORTIONAL_FONT))
     ifeq (,$(COPY_FONTS))
       DEFINES += -DPROPORTIONAL_FONT=\"$(SYS_PROPORTIONAL_FONT)\"
@@ -958,7 +946,7 @@
     INSTALL_FONTS += "$(MONOSPACED_FONT)"
   endif
 else
-  SYS_MONOSPACED_FONT = $(shell util/find_font "$(OUR_MONOSPACED_FONT)")
+  SYS_MONOSPACED_FONT = /usr/share/fonts/dejavu/DejaVuSansMono.ttf
   ifneq (,$(SYS_MONOSPACED_FONT))
     ifeq (,$(COPY_FONTS))
       DEFINES += -DMONOSPACED_FONT=\"$(SYS_MONOSPACED_FONT)\"
@@ -1187,9 +1175,8 @@
 
 LANGUAGES = $(filter-out en, $(notdir $(wildcard dat/descript/??)))
 SRC_PKG_BASE  := stone_soup
-SRC_VERSION   := $(shell git describe --tags $(MERGE_BASE) 2>/dev/null || cat util/release_ver)
+SRC_VERSION   := $(shell cat util/release_ver)
 MAJOR_VERSION = $(shell echo "$(SRC_VERSION)"|$(SED) -r 's/-.*//;s/^([^.]+\.[^.]+).*/\1/')
-RECENT_TAG    := $(shell git describe --abbrev=0 --tags $(MERGE_BASE))
 WINARCH := $(shell $(GXX) -dumpmachine | grep -q x64_64 && echo win64 || echo win32)
 
 export SRC_VERSION
@@ -1523,7 +1510,7 @@
 endif
 endif
 
-install: all install-data
+install: install-data
 	[ -d $(prefix_fp)/$(bin_prefix) ] || mkdir -p $(prefix_fp)/$(bin_prefix)
 	$(COPY) $(GAME) $(prefix_fp)/$(bin_prefix)/
 	$(STRIP) $(prefix_fp)/$(bin_prefix)/$(GAME)

A games-roguelike/stone-soup/files/rltiles-make.patch => games-roguelike/stone-soup/files/rltiles-make.patch +58 -0
@@ 0,0 1,58 @@
--- a/rltiles/Makefile	2021-08-02 14:03:40.106930544 -0500
+++ b/rltiles/Makefile	2021-08-02 14:03:51.145931133 -0500
@@ -1,7 +1,7 @@
 uname_S := $(shell uname -s)
 
 ifneq (,$(findstring MINGW,$(uname_S)))
-LDFLAGS += -lmingw32
+LIBS += -lmingw32
 endif
 
 # Note: since generation of tiles is done on the host, we don't care about
@@ -29,7 +29,7 @@
   endif
 
   CFLAGS += $(PNG_INCLUDE)
-  LDFLAGS += $(PNG_LIB)
+  LIBS += $(PNG_LIB)
 
   CFLAGS += -DUSE_TILE
 endif
@@ -39,26 +39,15 @@
 endif
 
 ifneq (,$(findstring MINGW,$(uname_S)))
-LDFLAGS += -lgdi32 -lwinmm -lole32 -loleaut32 -limm32 -lshell32 -lversion -luuid
+LIBS += -lgdi32 -lwinmm -lole32 -loleaut32 -limm32 -lshell32 -lversion -luuid
 endif
 ifeq ($(uname_S),Darwin)
-LDFLAGS += -framework AppKit -framework AudioUnit -framework CoreAudio -framework ForceFeedback -framework Carbon -framework IOKit -framework OpenGL
+LIBS += -framework AppKit -framework AudioUnit -framework CoreAudio -framework ForceFeedback -framework Carbon -framework IOKit -framework OpenGL
 endif
 ifeq ($(uname_S),Linux)
-LDFLAGS += -ldl -lpthread
+LIBS += -ldl -lpthread
 endif
 
-# Attempt to use a full compiler name, to make
-# distcc builds work nicely.
-LMACH := $(shell gcc -dumpmachine)-
-ifeq ($(LMACH),-)
-LMACH :=
-endif
-ifeq ($(shell which $(LMACH)gcc > /dev/null 2> /dev/null && echo "Yes"),)
-LMACH :=
-endif
-HOSTCXX ?= $(LMACH)g++
-
 DELETE = rm -f
 
 TOOLDIR := tool
@@ -134,6 +123,6 @@
 	$(QUIET_HOSTCXX)$(HOSTCXX) $(CFLAGS) -MMD -c $< -o $@
 
 $(TILEGEN): $(OBJECTS)
-	$(QUIET_HOSTLINK)$(HOSTCXX) $(CFLAGS) $(OBJECTS) -o $@ $(LDFLAGS)
+	$(QUIET_HOSTLINK)$(HOSTCXX) $(CFLAGS) $(OBJECTS) -o $@ $(LDFLAGS) $(LIBS)
 
 .PHONY: all clean distclean

A games-roguelike/stone-soup/metadata.xml => games-roguelike/stone-soup/metadata.xml +43 -0
@@ 0,0 1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
	<maintainer type="person">
		<email>stasibear@gentoo.org</email>
		<name>Erik Mackdanz</name>
	</maintainer>
	<maintainer type="project">
		<email>games@gentoo.org</email>
		<name>Gentoo Games Project</name>
	</maintainer>
	<upstream>
		<doc lang="en">https://crawl.develz.org</doc>
		<bugs-to>https://crawl.develz.org/mantis</bugs-to>
		<remote-id type="sourceforge">crawl-ref</remote-id>
	</upstream>
	<use>
		<flag name="tiles">Enable for graphical (tiled) build.
			(can be enabled on top of ncurses)
		</flag>
		<flag name="ncurses">Enable for console (uses ncurses) based build.
			(can be enabled on top of tiles)
		</flag>
	</use>
	<longdescription lang="en">
		Dungeon Crawl Stone Soup is a free roguelike game of exploration
		and treasure-hunting in dungeons filled with dangerous and
		unfriendly monsters in a quest for the mystifyingly fabulous Orb
		of Zot.

		Dungeon Crawl Stone Soup has diverse species and many different
		character backgrounds to choose from, deep tactical game-play,
		sophisticated magic, religion and skill systems, and a grand
		variety of monsters to fight and run from, making each game
		unique and challenging.

		Dungeon Crawl Stone Soup can be played offline, or online on a
		public telnet/ssh server thanks to the good folks at
		crawl.akrasiac.org (CAO) and crawl.develz.org (CDO). These public
		servers allow you to meet other players’ ghosts, watch other people
		playing, and, in general, have a blast!
	</longdescription>
</pkgmetadata>

A games-roguelike/stone-soup/stone-soup-0.28.0_pre20211108.ebuild => games-roguelike/stone-soup/stone-soup-0.28.0_pre20211108.ebuild +201 -0
@@ 0,0 1,201 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

LUA_COMPAT=( lua5-{1..3} )
PYTHON_COMPAT=( python3_{7,8,9,10} )
VIRTUALX_REQUIRED="manual"
inherit desktop python-any-r1 lua-single xdg-utils toolchain-funcs

DESCRIPTION="Role-playing roguelike game of exploration and treasure-hunting in dungeons"
HOMEPAGE="https://crawl.develz.org"
SLOT="0.28"

# Leave empty string if not a _pre release
COMMITSHA="68644deec8371908d73084fa2f88e42fd3867a3b"
if [ -z "${COMMITSHA}" ]; then
	# This is a proper release
	SRC_URI="
		https://github.com/crawl/crawl/releases/download/${PV}/${PN/-/_}-${PV}.zip
		https://dev.gentoo.org/~stasibear/distfiles/${PN}.png -> ${PN}-${SLOT}.png
		https://dev.gentoo.org/~stasibear/distfiles/${PN}.svg -> ${PN}-${SLOT}.svg
	"
	MY_P="stone_soup-${PV}"
else
	# This is a _pre release
	SRC_URI="
		https://github.com/crawl/crawl/archive/${COMMITSHA}.tar.gz -> ${P}.tar.gz
		https://dev.gentoo.org/~stasibear/distfiles/${PN}.png -> ${PN}-${SLOT}.png
		https://dev.gentoo.org/~stasibear/distfiles/${PN}.svg -> ${PN}-${SLOT}.svg
	"
	MY_P="crawl-${COMMITSHA}/crawl-ref"
fi

# 3-clause BSD: mt19937ar.cc, MSVC/stdint.h
# 2-clause BSD: all contributions by Steve Noonan and Jesse Luehrs
# Public Domain|CC0: most of tiles
# MIT: json.cc/json.h, some .js files in webserver/static/scripts/contrib/
LICENSE="GPL-2 BSD BSD-2 public-domain CC0-1.0 MIT"
KEYWORDS="~amd64 ~x86"
IUSE="debug ncurses sound +tiles"

S=${WORKDIR}/${MY_P}/source
RDEPEND="
	${LUA_DEPS}
	dev-db/sqlite:3
	sys-libs/zlib
	!ncurses? ( !tiles? ( sys-libs/ncurses:0 ) )
	ncurses? ( sys-libs/ncurses:0 )
	tiles? (
		media-fonts/dejavu
		media-libs/freetype:2
		media-libs/libpng:0
		sound? (
			   media-libs/libsdl2[X,opengl,sound,video]
			   media-libs/sdl2-mixer
		)
		!sound? ( media-libs/libsdl2[X,opengl,video] )
		media-libs/sdl2-image[png]
		virtual/glu
		virtual/opengl
	)"
DEPEND="${RDEPEND}
	app-arch/unzip
	dev-lang/perl
	${PYTHON_DEPS}
	$(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
	sys-devel/flex
	tiles? (
		media-gfx/pngcrush
		sys-libs/ncurses:0
	)
	virtual/pkgconfig
	virtual/yacc
	"

PATCHES=(
	"${FILESDIR}"/make.patch
	"${FILESDIR}"/rltiles-make.patch
)

python_check_deps() {
	has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
}

pkg_setup() {

	python-any-r1_pkg_setup

	if use !ncurses && use !tiles ; then
		ewarn "Neither ncurses nor tiles frontend"
		ewarn "selected, choosing ncurses only."
		ewarn "Note that you can also enable both."
	fi

	if use sound && use !tiles ; then
		ewarn "Sound support is only available with tiles."
	fi
}

src_prepare() {
	default
	python_fix_shebang "${S}/util/species-gen.py"

	sed -i -e "s/GAME = crawl$/GAME = crawl-${SLOT}/" "${S}/Makefile" \
		|| die "Couldn't append slot to executable name"

	# File required for a _pre build
	if ! [ -f "${S}/util/release_ver" ]; then
		echo "${SLOT}" >"${S}/util/release_ver" || die "Couldn't write release_ver"
	fi
}

src_compile() {

	# Insurance that we're not using bundled lib sources
	rm -rf contrib || die "Couldn't delete contrib directory"

	myemakeargs=(
		$(usex debug "FULLDEBUG=y DEBUG=y" "")
		BUILD_LUA=
		AR="$(tc-getAR)"
		CFOPTIMIZE=''
		CFOTHERS="${CXXFLAGS}"
		CONTRIBS=
		DATADIR="/usr/share/${PN}-${SLOT}"
		FORCE_CC="$(tc-getCC)"
		FORCE_CXX="$(tc-getCXX)"
		LDFLAGS="${LDFLAGS}"
		MAKEOPTS="${MAKEOPTS}"
		PKGCONFIG="$(tc-getPKG_CONFIG)"
		RANLIB="$(tc-getRANLIB)"
		SAVEDIR="~/.crawl-${SLOT}"
		SOUND=$(usex sound "y" "")
		STRIP=touch
		USE_LUAJIT=
		V=1
		prefix="/usr"
	)

	if use ncurses || (use !ncurses && use !tiles) ; then
		emake "${myemakeargs[@]}"
		# move it in case we build both variants
		use tiles && { mv "crawl-${SLOT}" "${WORKDIR}"/crawl-ncurses-${SLOT} || die ;}
	fi

	if use tiles ; then
		emake "${myemakeargs[@]}" clean
		emake "${myemakeargs[@]}" "TILES=y"
	fi
}

src_test() {
	emake "${myemakeargs[@]}" \
		  $(usex tiles "TILES=y" "") \
		  catch2-tests
}

src_install() {
	emake "${myemakeargs[@]}" \
		  $(usex tiles "TILES=y" "") \
		  DESTDIR="${D}" \
		  prefix_fp="" \
		  bin_prefix="${D}/usr/bin" \
		  install

	[[ -e "${WORKDIR}/crawl-ncurses-${SLOT}" ]] && dobin "${WORKDIR}/crawl-ncurses-${SLOT}"

	# don't relocate docs, needed at runtime
	rm -rf "${D}/usr/share/${PN}-${SLOT}"/docs/license

	mv "${WORKDIR}/${MY_P}"/docs/crawl.6 "${WORKDIR}/${MY_P}/docs/crawl-${SLOT}.6" \
	   || die "Couldn't append slot to man page name"
	doman "${WORKDIR}/${MY_P}/docs/crawl-${SLOT}.6"

	# icons and menu for graphical build
	if use tiles ; then
		doicon -s 48 "${DISTDIR}"/${PN}-${SLOT}.png
		doicon -s scalable "${DISTDIR}"/${PN}-${SLOT}.svg
		make_desktop_entry "crawl-${SLOT}" "crawl-${SLOT}" "crawl-${SLOT}"
	fi
}

pkg_postinst() {
	xdg_icon_cache_update

	elog "crawl is a slotted install that supports having"
	elog "multiple versions installed.  The binary has the"
	elog "slot appended, e.g. 'crawl-"${SLOT}"'."

	if use tiles && use ncurses ; then
		elog
		elog "Since you have enabled both tiles and ncurses frontends"
		elog "the ncurses binary is called 'crawl-ncurses-"${SLOT}"' and the"
		elog "tiles binary is called 'crawl-"${SLOT}"'."
	fi
}

pkg_postrm() {
	xdg_icon_cache_update
}

A media-gfx/darktable/darktable-3.4.1.ebuild => media-gfx/darktable/darktable-3.4.1.ebuild +176 -0
@@ 0,0 1,176 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

LUA_COMPAT=( lua5-3 )

inherit cmake flag-o-matic lua-single toolchain-funcs xdg

DESCRIPTION="A virtual lighttable and darkroom for photographers"
HOMEPAGE="https://www.darktable.org/"
LICENSE="GPL-3 CC-BY-3.0"
SLOT="0"

if [[ ${PV} == *9999 ]]; then
	inherit git-r3
	EGIT_REPO_URI="https://github.com/darktable-org/${PN}.git"

	LANGS=" af ca cs da de el es fi fr gl he hu it ja nb nl pl pt-BR pt-PT ro ru sk sl sq sv th uk zh-CN zh-TW"
else
	DOC_PV="3.4.0"
	MY_PV="${PV/_/}"
	MY_P="${P/_/.}"

	SRC_URI="https://github.com/darktable-org/${PN}/releases/download/release-${MY_PV}/${MY_P}.tar.xz
		doc? ( https://github.com/darktable-org/${PN}/releases/download/release-${DOC_PV}/${PN}-usermanual.pdf -> ${PN}-usermanual-${DOC_PV}.pdf )"

	KEYWORDS="amd64 ~arm64"
	LANGS=" af cs de es fi fr he hu it pl pt-BR ru sk sl"
fi

IUSE="avif colord cups cpu_flags_x86_sse3 doc flickr geolocation gmic gnome-keyring gphoto2 graphicsmagick jpeg2k kwallet
	lto lua nls opencl openmp openexr test tools webp
	${LANGS// / l10n_}"

REQUIRED_USE="lua? ( ${LUA_REQUIRED_USE} )"

RESTRICT="!test? ( test )"

BDEPEND="
	dev-util/intltool
	virtual/pkgconfig
	nls? ( sys-devel/gettext )
	test? ( >=dev-python/jsonschema-3.2.0 )
"
COMMON_DEPEND="
	dev-db/sqlite:3
	dev-libs/json-glib
	dev-libs/libxml2:2
	>=dev-libs/pugixml-1.8:0=
	gnome-base/librsvg:2
	>=media-gfx/exiv2-0.25-r2:0=[xmp]
	media-libs/lcms:2
	>=media-libs/lensfun-0.2.3:0=
	media-libs/libpng:0=
	media-libs/tiff:0
	net-misc/curl
	sys-libs/zlib:=
	virtual/jpeg:0
	x11-libs/cairo
	>=x11-libs/gtk+-3.22:3
	x11-libs/pango
	avif? ( >=media-libs/libavif-0.8.2 )
	colord? ( x11-libs/colord-gtk:0= )
	cups? ( net-print/cups )
	flickr? ( media-libs/flickcurl )
	geolocation? ( >=sci-geosciences/osm-gps-map-1.1.0	net-libs/libsoup:2.4 )
	gmic? ( media-gfx/gmic )
	gnome-keyring? ( >=app-crypt/libsecret-0.18 )
	gphoto2? ( media-libs/libgphoto2:= )
	graphicsmagick? ( media-gfx/graphicsmagick )
	jpeg2k? ( media-libs/openjpeg:2= )
	lua? ( ${LUA_DEPS} )
	opencl? ( virtual/opencl )
	openexr? ( media-libs/openexr:0= )
	webp? ( media-libs/libwebp:0= )
"
DEPEND="${COMMON_DEPEND}
	opencl? (
		>=sys-devel/clang-4
		>=sys-devel/llvm-4
	)
"
RDEPEND="${COMMON_DEPEND}
	kwallet? ( >=kde-frameworks/kwallet-5.34.0-r1 )
"

PATCHES=(
	"${FILESDIR}"/"${PN}"-find-opencl-header.patch
	"${FILESDIR}"/${PN}-3.0.2_cmake-march-autodetection.patch
	"${FILESDIR}"/${PN}-3.4.0_jsonschema-automagic.patch
)

S="${WORKDIR}/${P/_/~}"

pkg_pretend() {
	if [[ ${MERGE_TYPE} != binary ]]; then
		# Bug #695658
		if tc-is-gcc; then
			test-flags-CC -floop-block &> /dev/null || \
				die "Please switch to a gcc version built with USE=graphite"
		fi

		if use openmp ; then
			tc-has-openmp || die "Please switch to an openmp compatible compiler"
		fi
	fi
}

pkg_setup() {
	use lua && lua-single_pkg_setup
}

src_prepare() {
	use cpu_flags_x86_sse3 && append-flags -msse3

	sed -i -e 's:/appdata:/metainfo:g' data/CMakeLists.txt || die

	cmake_src_prepare
}

src_configure() {
	local mycmakeargs=(
		-DBUILD_CURVE_TOOLS=$(usex tools)
		-DBUILD_NOISE_TOOLS=$(usex tools)
		-DBUILD_PRINT=$(usex cups)
		-DCUSTOM_CFLAGS=ON
		-DDONT_USE_INTERNAL_LUA=ON
		-DRAWSPEED_ENABLE_LTO=$(usex lto)
		-DUSE_AVIF=$(usex avif)
		-DUSE_CAMERA_SUPPORT=$(usex gphoto2)
		-DUSE_COLORD=$(usex colord)
		-DUSE_FLICKR=$(usex flickr)
		-DUSE_GMIC=$(usex gmic)
		-DUSE_GRAPHICSMAGICK=$(usex graphicsmagick)
		-DUSE_KWALLET=$(usex kwallet)
		-DUSE_LIBSECRET=$(usex gnome-keyring)
		-DUSE_LUA=$(usex lua)
		-DUSE_MAP=$(usex geolocation)
		-DUSE_NLS=$(usex nls)
		-DUSE_OPENCL=$(usex opencl)
		-DUSE_OPENEXR=$(usex openexr)
		-DUSE_OPENJPEG=$(usex jpeg2k)
		-DUSE_OPENMP=$(usex openmp)
		-DUSE_WEBP=$(usex webp)
		-DWANT_JSON_VALIDATION=$(usex test)
	)
	CMAKE_BUILD_TYPE="RELWITHDEBINFO"
	cmake_src_configure
}

src_install() {
	cmake_src_install
	# This USE flag is masked for -9999
	use doc && dodoc "${DISTDIR}"/${PN}-usermanual-${DOC_PV}.pdf

	if use nls; then
		for lang in ${LANGS} ; do
			if ! use l10n_${lang}; then
				rm -r "${ED}"/usr/share/locale/${lang/-/_} || die
			fi
		done
	fi
}

pkg_postinst() {
	xdg_pkg_postinst

	elog
	elog "When updating a major version,"
	elog "please bear in mind that your edits will be preserved during this process,"
	elog "but it will not be possible to downgrade any more."
	elog
	ewarn "It will not be possible to downgrade!"
	ewarn
}

A media-gfx/darktable/files/darktable-3.4.0-xmmintrin-sse-only.patch => media-gfx/darktable/files/darktable-3.4.0-xmmintrin-sse-only.patch +30 -0
@@ 0,0 1,30 @@
From d10c290fb3b47bbc8fd90d6d1d7935b900c1caf6 Mon Sep 17 00:00:00 2001
From: Pascal Obry <pascal@obry.net>
Date: Thu, 24 Dec 2020 16:17:19 +0100
Subject: [PATCH] guided_filter: include xmmintrin.h only if SSE defined.

Fixes #7428.
---
 src/common/guided_filter.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/common/guided_filter.h b/src/common/guided_filter.h
index 36be0de04b9..59c8b2af999 100644
--- a/src/common/guided_filter.h
+++ b/src/common/guided_filter.h
@@ -18,6 +18,7 @@
 
 #pragma once
 
+#if defined(__SSE__)
 #ifdef __PPC64__
 #ifdef NO_WARN_X86_INTRINSICS
 #include <xmmintrin.h>
@@ -29,6 +30,7 @@
 #else
 #include <xmmintrin.h>
 #endif // __PPC64__
+#endif
 
 #include "common/darktable.h"
 #include "common/opencl.h"

A media-gfx/darktable/files/darktable-3.4.0_jsonschema-automagic.patch => media-gfx/darktable/files/darktable-3.4.0_jsonschema-automagic.patch +25 -0
@@ 0,0 1,25 @@
jsonschema is only used at install time to validate a file that release
tarballs already include, treat running it as a late part of tests.

--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -350,6 +350,9 @@
 endif()
 
 # we need jsonschema to check noiseprofiles.json
+# In case of Git clones this file is generated at build time, for releases
+# it is included in the tarball.
+if (WANT_JSON_VALIDATION)
 find_program(jsonschema_BIN jsonschema)
 if(${jsonschema_BIN} STREQUAL "jsonschema_BIN-NOTFOUND")
   message(STATUS "Missing jsonschema, problems in noiseprofiles.json might go unnoticed")
@@ -358,6 +361,9 @@
   message(STATUS "Found jsonschema")
   set(VALIDATE_JSON 1)
 endif(${jsonschema_BIN} STREQUAL "jsonschema_BIN-NOTFOUND")
+else()
+  set(VALIDATE_JSON 0)
+endif()
 
 # we need an XSLT interpreter to generate preferences_gen.h and darktablerc
 find_program(Xsltproc_BIN xsltproc)

A media-gfx/gimp/files/gimp-2.99.2_fix_autoconf-2.70.patch => media-gfx/gimp/files/gimp-2.99.2_fix_autoconf-2.70.patch +58 -0
@@ 0,0 1,58 @@
From cebeb90a87105cd6e35bcb357d53cc04c828ca21 Mon Sep 17 00:00:00 2001
From: Sergei Trofimovich <slyfox@gentoo.org>
Date: Sun, 25 Oct 2020 18:09:21 +0000
Subject: [PATCH] configure.ac: fix `--with-linux-input` handling with upcoming
 autoconf-2.70

Upcoming autoconf-2.70 exposes deficiency in configure.ac:

```
$ autoconf-2.70_beta2 && ./configure --host=x86_64-pc-linux-gnu
./configure: line 1430: 5: Bad file descriptor
checking whether  is declared... ./configure: line 1432: ${+y}: bad
```

It happens because macros are called with parameters using insufficient quoting.

More details at https://lists.gnu.org/archive/html/bug-autoconf/2020-10/msg00027.html

The fix only amends `--with-linux-input`. Other cases of underquoting
will need to be handled separately.

Fix-by: Zack Weinberg
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
---
 configure.ac | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/configure.ac b/configure.ac
index 96312f706e..63b85be07a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2135,15 +2135,14 @@ fi
 AC_ARG_WITH(linux-input, [  --without-linux-input   don't build linux input event controller module])
 
 have_linux_input="no (linux input support disabled)"
-if test "x$with_linux_input" != "xno"; then
-  AC_CHECK_HEADER(linux/input.h,
-	AC_CHECK_DECL(KEY_OK,
-		have_linux_input=yes,
-		have_linux_input="no (needs Linux 2.6)",
-		[#include <linux/input.h>]))
-fi
-
-AM_CONDITIONAL(HAVE_LINUX_INPUT, test "x$have_linux_input" = xyes)
+AS_IF([test "x$with_linux_input" != "xno"],
+  [AC_CHECK_HEADER([linux/input.h],
+    [AC_CHECK_DECL([KEY_OK],
+                   [have_linux_input=yes],
+                   [have_linux_input="no (needs Linux 2.6)"],
+                   [#include <linux/input.h>])])])
+
+AM_CONDITIONAL([HAVE_LINUX_INPUT], [test "x$have_linux_input" = xyes])
 
 
 ###############################
-- 
GitLab


A media-gfx/gimp/gimp-2.10.22-r3.ebuild => media-gfx/gimp/gimp-2.10.22-r3.ebuild +211 -0
@@ 0,0 1,211 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7
GNOME2_EAUTORECONF=yes
WANT_AUTOMAKE=

inherit autotools gnome2 toolchain-funcs virtualx

DESCRIPTION="GNU Image Manipulation Program"
HOMEPAGE="https://www.gimp.org/"
SRC_URI="mirror://gimp/v2.10/${P}.tar.bz2"
LICENSE="GPL-3 LGPL-3"
SLOT="0/2"
KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~ia64 ~ppc ppc64 x86"

IUSE="aalib alsa aqua debug doc gnome heif jpeg2k mng openexr postscript udev unwind vector-icons webp wmf xpm cpu_flags_ppc_altivec cpu_flags_x86_mmx cpu_flags_x86_sse"

RESTRICT="!test? ( test )"

COMMON_DEPEND="
	>=app-text/poppler-0.50[cairo]
	>=app-text/poppler-data-0.4.7
	>=dev-libs/atk-2.2.0
	>=dev-libs/glib-2.56.2:2
	>=dev-libs/json-glib-1.2.6
	dev-libs/libxml2:2
	dev-libs/libxslt
	>=gnome-base/librsvg-2.40.6:2
	>=media-gfx/mypaint-brushes-2.0.2:=
	>=media-libs/babl-0.1.78
	>=media-libs/fontconfig-2.12.4
	>=media-libs/freetype-2.1.7
	>=media-libs/gegl-0.4.26:0.4[cairo]
	<media-libs/gegl-0.4.28:0.4
	>=media-libs/gexiv2-0.10.6
	>=media-libs/harfbuzz-0.9.19:=
	>=media-libs/lcms-2.8:2
	>=media-libs/libmypaint-1.6.1:=
	>=media-libs/libpng-1.6.25:0=
	>=media-libs/tiff-3.5.7:0
	net-libs/glib-networking[ssl]
	sys-libs/zlib
	virtual/jpeg
	>=x11-libs/cairo-1.12.2
	>=x11-libs/gdk-pixbuf-2.31:2
	>=x11-libs/gtk+-2.24.32:2
	x11-libs/libXcursor
	>=x11-libs/pango-1.29.4
	aalib? ( media-libs/aalib )
	alsa? ( >=media-libs/alsa-lib-1.0.0 )
	aqua? ( >=x11-libs/gtk-mac-integration-2.0.0 )
	heif? ( >=media-libs/libheif-1.3.2:= )
	jpeg2k? ( >=media-libs/openjpeg-2.1.0:2= )
	mng? ( media-libs/libmng:= )
	openexr? ( >=media-libs/openexr-1.6.1:= )
	postscript? ( app-text/ghostscript-gpl )
	udev? ( dev-libs/libgudev:= )
	unwind? ( >=sys-libs/libunwind-1.1.0:= )
	webp? ( >=media-libs/libwebp-0.6.0:= )
	wmf? ( >=media-libs/libwmf-0.2.8 )
	xpm? ( x11-libs/libXpm )
"

RDEPEND="
	${COMMON_DEPEND}
	x11-themes/hicolor-icon-theme
	gnome? ( gnome-base/gvfs )
"

DEPEND="
	${COMMON_DEPEND}
	>=dev-lang/perl-5.10.0
	dev-util/gtk-update-icon-cache
	>=dev-util/intltool-0.40.1
	sys-apps/findutils
	>=sys-devel/gettext-0.19
	>=sys-devel/libtool-2.2
	virtual/pkgconfig
"

DOCS=( "AUTHORS" "ChangeLog" "HACKING" "NEWS" "README" "README.i18n" )

# Bugs 685210 (and duplicate 691070)
PATCHES=(
	"${FILESDIR}/${PN}-2.99.2_fix_autoconf-2.70.patch"
)

src_prepare() {
	sed -i -e 's/mypaint-brushes-1.0/mypaint-brushes-2.0/' configure.ac || die #737794

	sed -i -e 's/== "xquartz"/= "xquartz"/' configure.ac || die #494864
	sed 's:-DGIMP_DISABLE_DEPRECATED:-DGIMP_protect_DISABLE_DEPRECATED:g' -i configure.ac || die #615144

	gnome2_src_prepare  # calls eautoreconf

	sed 's:-DGIMP_protect_DISABLE_DEPRECATED:-DGIMP_DISABLE_DEPRECATED:g' -i configure || die #615144
	fgrep -q GIMP_DISABLE_DEPRECATED configure || die #615144, self-test

	export CC_FOR_BUILD="$(tc-getBUILD_CC)"
}

_adjust_sandbox() {
	# Bugs #569738 and #591214
	local nv
	for nv in /dev/nvidia-uvm /dev/nvidiactl /dev/nvidia{0..9} ; do
		# We do not check for existence as they may show up later
		# https://bugs.gentoo.org/show_bug.cgi?id=569738#c21
		addwrite "${nv}"
	done

	addwrite /dev/dri/  # bugs #574038 and #684886
	addwrite /dev/ati/  # bug #589198
	addwrite /proc/mtrr  # bug #589198
}

src_configure() {
	_adjust_sandbox

	local myconf=(
		GEGL="${EPREFIX}"/usr/bin/gegl-0.4
		GDBUS_CODEGEN="${EPREFIX}"/bin/false

		--enable-default-binary

		--disable-check-update
		--disable-python
		--enable-mp
		--without-appdata-test
		--with-bug-report-url=https://bugs.gentoo.org/
		--with-xmc
		--without-libbacktrace
		--without-webkit
		--without-xvfb-run
		$(use_enable cpu_flags_ppc_altivec altivec)
		$(use_enable cpu_flags_x86_mmx mmx)
		$(use_enable cpu_flags_x86_sse sse)
		$(use_enable vector-icons)
		$(use_with aalib aa)
		$(use_with alsa)
		$(use_with !aqua x)
		$(use_with heif libheif)
		$(use_with jpeg2k jpeg2000)
		$(use_with mng libmng)
		$(use_with openexr)
		$(use_with postscript gs)
		$(use_with udev gudev)
		$(use_with unwind libunwind)
		$(use_with webp)
		$(use_with wmf)
		$(use_with xpm libxpm)
	)

	gnome2_src_configure "${myconf[@]}"
}

src_compile() {
	export XDG_DATA_DIRS="${EPREFIX}"/usr/share  # bug 587004
	gnome2_src_compile
}

# for https://bugs.gentoo.org/664938
_rename_plugins() {
	einfo 'Renaming plug-ins to not collide with pre-2.10.6 file layout (bug #664938)...'
	local prepend=gimp-org-
	(
		cd "${ED}"/usr/$(get_libdir)/gimp/2.0/plug-ins || die
		for plugin_slash in $(ls -d1 */); do
			plugin=${plugin_slash%/}
			if [[ -f ${plugin}/${plugin} ]]; then
			# NOTE: Folder and file name need to match for Gimp to load that plug-in
			#       so "file-svg/file-svg" becomes "${prepend}file-svg/${prepend}file-svg"
			mv ${plugin}/{,${prepend}}${plugin} || die
			mv {,${prepend}}${plugin} || die
			fi
		done
	)
}

src_test() {
	virtx emake check
}

src_install() {
	gnome2_src_install

	# Workaround for bug #321111 to give GIMP the least
	# precedence on PDF documents by default
	mv "${ED}"/usr/share/applications/{,zzz-}gimp.desktop || die

	find "${D}" -name '*.la' -type f -delete || die

	# Prevent dead symlink gimp-console.1 from downstream man page compression (bug #433527)
	local gimp_app_version=$(ver_cut 1-2)
	mv "${ED}"/usr/share/man/man1/gimp-console{-${gimp_app_version},}.1 || die

	# Remove gimp devel-docs html files if user doesn't need it
	if ! use doc; then
		rm -r "${ED}"/usr/share/gtk-doc || die
	fi

	_rename_plugins || die
}

pkg_postinst() {
	gnome2_pkg_postinst
}

pkg_postrm() {
	gnome2_pkg_postrm
}

A media-libs/libaom/libaom-3.1.1.ebuild => media-libs/libaom/libaom-3.1.1.ebuild +105 -0
@@ 0,0 1,105 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

CMAKE_ECLASS=cmake
inherit cmake-multilib

if [[ ${PV} == *9999* ]]; then
	inherit git-r3
	EGIT_REPO_URI="https://aomedia.googlesource.com/aom"
else
	SRC_URI="https://storage.googleapis.com/aom-releases/${P}.tar.gz"
	S="${WORKDIR}"
	KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
fi

DESCRIPTION="Alliance for Open Media AV1 Codec SDK"
HOMEPAGE="https://aomedia.org"

LICENSE="BSD-2"
SLOT="0/3"
IUSE="doc examples"
IUSE="${IUSE} cpu_flags_x86_mmx cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse3 cpu_flags_x86_ssse3"
IUSE="${IUSE} cpu_flags_x86_sse4_1 cpu_flags_x86_sse4_2 cpu_flags_x86_avx cpu_flags_x86_avx2"
IUSE="${IUSE} cpu_flags_arm_neon"

REQUIRED_USE="
	cpu_flags_x86_sse2? ( cpu_flags_x86_mmx )
	cpu_flags_x86_ssse3? ( cpu_flags_x86_sse2 )
"

BDEPEND="abi_x86_32? ( dev-lang/yasm )
	abi_x86_64? ( dev-lang/yasm )
	abi_x86_x32? ( dev-lang/yasm )
	x86-fbsd? ( dev-lang/yasm )
	amd64-fbsd? ( dev-lang/yasm )
	doc? ( app-doc/doxygen )
"

# the PATENTS file is required to be distributed with this package bug #682214
DOCS=( PATENTS )

multilib_src_configure() {
	local mycmakeargs=(
		-DENABLE_DOCS=$(multilib_native_usex doc ON OFF)
		-DENABLE_EXAMPLES=$(multilib_native_usex examples ON OFF)
		-DENABLE_NASM=OFF
		-DENABLE_TESTS=OFF
		-DENABLE_TOOLS=ON
		-DENABLE_WERROR=OFF

		# neon support is assumed to be always enabled on arm64
		-DENABLE_NEON=$(usex cpu_flags_arm_neon ON $(usex arm64 ON OFF))
		# ENABLE_DSPR2 / ENABLE_MSA for mips
		-DENABLE_MMX=$(usex cpu_flags_x86_mmx ON OFF)
		-DENABLE_SSE=$(usex cpu_flags_x86_sse ON OFF)
		-DENABLE_SSE2=$(usex cpu_flags_x86_sse2 ON OFF)
		-DENABLE_SSE3=$(usex cpu_flags_x86_sse3 ON OFF)
		-DENABLE_SSSE3=$(usex cpu_flags_x86_ssse3 ON OFF)
		-DENABLE_SSE4_1=$(usex cpu_flags_x86_sse4_1 ON OFF)
		-DENABLE_SSE4_2=$(usex cpu_flags_x86_sse4_2 ON OFF)
		-DENABLE_AVX=$(usex cpu_flags_x86_avx ON OFF)
		-DENABLE_AVX2=$(usex cpu_flags_x86_avx2 ON OFF)
	)
	cmake_src_configure
}

EXAMPLE_BIN='aom_cx_set_ref
decode_to_md5
decode_with_drops
lightfield_bitstream_parsing
lightfield_decoder
lightfield_encoder
lightfield_tile_list_decoder
lossless_encoder
noise_model
scalable_decoder
scalable_encoder
set_maps
simple_decoder
simple_encoder
svc_encoder_rtc
twopass_encoder'
TOOL_BIN='dump_obu'

multilib_src_install() {
	if multilib_is_native_abi && use doc ; then
		local HTML_DOCS=( "${BUILD_DIR}"/docs/html/. )
	fi
	cmake_src_install
	# Install tools and examples
	local oldIFS=$IFS
	IFS=$'\n'
	for src in $TOOL_BIN $(use examples && echo "$EXAMPLE_BIN"); do
		dst=$src
		! [[ "$dst" =~ ^aom_* ]] && dst=aom_$dst
		newbin "$src" "$dst"
	done
	IFS=$oldIFS
}

multilib_src_install_all() {
	find "${ED}" -type f \( -name "*.a" -o -name "*.la" \) -delete || die
}

A media-libs/libaom/libaom-9999.ebuild => media-libs/libaom/libaom-9999.ebuild +77 -0
@@ 0,0 1,77 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

CMAKE_ECLASS=cmake
inherit cmake-multilib

if [[ ${PV} == *9999* ]]; then
	inherit git-r3
	EGIT_REPO_URI="https://aomedia.googlesource.com/aom"
else
	SRC_URI="https://dev.gentoo.org/~whissi/dist/libaom/${P}.tar.xz"
	KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
fi

DESCRIPTION="Alliance for Open Media AV1 Codec SDK"
HOMEPAGE="https://aomedia.org"

LICENSE="BSD-2"
SLOT="0/3"
IUSE="doc examples"
IUSE="${IUSE} cpu_flags_x86_mmx cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse3 cpu_flags_x86_ssse3"
IUSE="${IUSE} cpu_flags_x86_sse4_1 cpu_flags_x86_sse4_2 cpu_flags_x86_avx cpu_flags_x86_avx2"
IUSE="${IUSE} cpu_flags_arm_neon"

REQUIRED_USE="
	cpu_flags_x86_sse2? ( cpu_flags_x86_mmx )
	cpu_flags_x86_ssse3? ( cpu_flags_x86_sse2 )
"

BDEPEND="abi_x86_32? ( dev-lang/yasm )
	abi_x86_64? ( dev-lang/yasm )
	abi_x86_x32? ( dev-lang/yasm )
	x86-fbsd? ( dev-lang/yasm )
	amd64-fbsd? ( dev-lang/yasm )
	doc? ( app-doc/doxygen )
"

# the PATENTS file is required to be distributed with this package bug #682214
DOCS=( PATENTS )

multilib_src_configure() {
	local mycmakeargs=(
		-DENABLE_DOCS=$(multilib_native_usex doc ON OFF)
		-DENABLE_EXAMPLES=$(multilib_native_usex examples ON OFF)
		-DENABLE_NASM=OFF
		-DENABLE_TESTS=OFF
		-DENABLE_TOOLS=ON
		-DENABLE_WERROR=OFF

		# neon support is assumed to be always enabled on arm64
		-DENABLE_NEON=$(usex cpu_flags_arm_neon ON $(usex arm64 ON OFF))
		# ENABLE_DSPR2 / ENABLE_MSA for mips
		-DENABLE_MMX=$(usex cpu_flags_x86_mmx ON OFF)
		-DENABLE_SSE=$(usex cpu_flags_x86_sse ON OFF)
		-DENABLE_SSE2=$(usex cpu_flags_x86_sse2 ON OFF)
		-DENABLE_SSE3=$(usex cpu_flags_x86_sse3 ON OFF)
		-DENABLE_SSSE3=$(usex cpu_flags_x86_ssse3 ON OFF)
		-DENABLE_SSE4_1=$(usex cpu_flags_x86_sse4_1 ON OFF)
		-DENABLE_SSE4_2=$(usex cpu_flags_x86_sse4_2 ON OFF)
		-DENABLE_AVX=$(usex cpu_flags_x86_avx ON OFF)
		-DENABLE_AVX2=$(usex cpu_flags_x86_avx2 ON OFF)
	)
	cmake_src_configure
}

multilib_src_install() {
	if multilib_is_native_abi && use doc ; then
		local HTML_DOCS=( "${BUILD_DIR}"/docs/html/. )
	fi
	cmake_src_install
}

multilib_src_install_all() {
	find "${ED}" -type f \( -name "*.a" -o -name "*.la" \) -delete || die
}

A media-libs/libaom/metadata.xml => media-libs/libaom/metadata.xml +7 -0
@@ 0,0 1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
	<maintainer type="project">
		<email>media-video@gentoo.org</email>
	</maintainer>
</pkgmetadata>

A media-video/mpv/mpv-9999.ebuild => media-video/mpv/mpv-9999.ebuild +360 -0
@@ 0,0 1,360 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

LUA_COMPAT=( lua5-{1..2} luajit )
PYTHON_COMPAT=( python3_{8..10} )
PYTHON_REQ_USE='threads(+)'

WAF_PV=2.0.9

inherit bash-completion-r1 flag-o-matic lua-single optfeature pax-utils python-r1 toolchain-funcs waf-utils xdg-utils

DESCRIPTION="Media player based on MPlayer and mplayer2"
HOMEPAGE="https://mpv.io/ https://github.com/mpv-player/mpv"

if [[ ${PV} != *9999* ]]; then
	SRC_URI="https://github.com/mpv-player/mpv/archive/v${PV}.tar.gz -> ${P}.tar.gz"
	KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ppc ppc64 ~riscv x86 ~amd64-linux"
	DOCS=( RELEASE_NOTES )
else
	EGIT_REPO_URI="https://github.com/mpv-player/mpv.git"
	inherit git-r3
	DOCS=(); SRC_URI=""
fi
SRC_URI+=" https://waf.io/waf-${WAF_PV}"
DOCS+=( README.md DOCS/{client-api,interface}-changes.rst )

# See Copyright in sources and Gentoo bug 506946. Waf is BSD, libmpv is ISC.
LICENSE="LGPL-2.1+ GPL-2+ BSD ISC"
SLOT="0"
IUSE="+alsa aqua archive bluray cdda +cli coreaudio cplugins cuda debug
	  doc drm dvb dvd +egl gamepad gbm +iconv jack javascript jpeg lcms
	  libcaca libmpv +lua openal +opengl pulseaudio raspberry-pi
	  rubberband sdl selinux test tools +uchardet vaapi vapoursynth
	  vdpau vulkan wayland +X +xv zlib zimg"

REQUIRED_USE="
	|| ( cli libmpv )
	aqua? ( opengl )
	cuda? ( opengl )
	egl? ( || ( gbm X wayland ) )
	gamepad? ( sdl )
	gbm? ( drm egl opengl )
	lcms? ( opengl )
	lua? ( ${LUA_REQUIRED_USE} )
	opengl? ( || ( aqua egl X raspberry-pi !cli ) )
	raspberry-pi? ( opengl )
	test? ( opengl )
	tools? ( cli )
	uchardet? ( iconv )
	vaapi? ( || ( gbm X wayland ) )
	vdpau? ( X )
	vulkan? ( || ( X wayland ) )
	wayland? ( egl )
	X? ( egl? ( opengl ) )
	xv? ( X )
	${PYTHON_REQUIRED_USE}
"

RESTRICT="!test? ( test )"

COMMON_DEPEND="
	>=media-video/ffmpeg-4.0:0=[encode,threads,vaapi?,vdpau?]
	alsa? ( >=media-libs/alsa-lib-1.0.18 )
	archive? ( >=app-arch/libarchive-3.4.0:= )
	bluray? ( >=media-libs/libbluray-0.3.0:= )
	cdda? ( dev-libs/libcdio-paranoia
			dev-libs/libcdio:= )
	drm? ( x11-libs/libdrm )
	dvd? (
		>=media-libs/libdvdnav-4.2.0:=
		>=media-libs/libdvdread-4.1.0:=
	)
	egl? ( media-libs/mesa[egl,gbm(-)?,wayland(-)?] )
	gamepad? ( media-libs/libsdl2 )
	iconv? (
		virtual/libiconv
		uchardet? ( app-i18n/uchardet )
	)
	jack? ( virtual/jack )
	javascript? ( >=dev-lang/mujs-1.0.0 )
	jpeg? ( virtual/jpeg:0 )
	lcms? ( >=media-libs/lcms-2.6:2 )
	>=media-libs/libass-0.12.1:=[fontconfig,harfbuzz(+)]
	virtual/ttf-fonts
	libcaca? ( >=media-libs/libcaca-0.99_beta18 )
	lua? ( ${LUA_DEPS} )
	openal? ( >=media-libs/openal-1.13 )
	pulseaudio? ( media-sound/pulseaudio )
	raspberry-pi? ( >=media-libs/raspberrypi-userland-0_pre20160305-r1 )
	rubberband? ( >=media-libs/rubberband-1.8.0 )
	sdl? ( media-libs/libsdl2[sound,threads,video] )
	vaapi? ( x11-libs/libva:=[drm?,X?,wayland?] )
	vapoursynth? ( media-libs/vapoursynth )
	vdpau? ( x11-libs/libvdpau )
	vulkan? (
		>=media-libs/libplacebo-3.104.0:=[vulkan]
		media-libs/shaderc
	)
	wayland? (
		>=dev-libs/wayland-1.6.0
		>=dev-libs/wayland-protocols-1.14
		>=x11-libs/libxkbcommon-0.3.0
	)
	X? (
		x11-libs/libX11
		x11-libs/libXScrnSaver
		x11-libs/libXext
		x11-libs/libXinerama
		x11-libs/libXrandr
		opengl? (
			x11-libs/libXdamage
			virtual/opengl
		)
		xv? ( x11-libs/libXv )
	)
	zlib? ( sys-libs/zlib )
	zimg? ( >=media-libs/zimg-2.9.2 )
"
DEPEND="${COMMON_DEPEND}
	${PYTHON_DEPS}
	cuda? ( >=media-libs/nv-codec-headers-8.2.15.7 )
	dvb? ( virtual/linuxtv-dvb-headers )
"
RDEPEND="${COMMON_DEPEND}
	cuda? ( x11-drivers/nvidia-drivers[X] )
	selinux? ( sec-policy/selinux-mplayer )
	tools? ( ${PYTHON_DEPS} )
"
BDEPEND="dev-python/docutils
	virtual/pkgconfig
	test? ( >=dev-util/cmocka-1.0.0 )
"

pkg_setup() {
	use lua && lua-single_pkg_setup
}

src_prepare() {
	cp "${DISTDIR}/waf-${WAF_PV}" "${S}"/waf || die
	chmod +x "${S}"/waf || die
	default
}

src_configure() {
	python_setup
	tc-export CC PKG_CONFIG AR

	if use raspberry-pi; then
		append-cflags -I"${SYSROOT%/}${EPREFIX}/opt/vc/include"
		append-ldflags -L"${SYSROOT%/}${EPREFIX}/opt/vc/lib"
	fi

	local mywafargs=(
		--confdir="${EPREFIX}/etc/${PN}"

		$(usex cli '' '--disable-cplayer')
		$(use_enable libmpv libmpv-shared)

		--disable-libmpv-static
		--disable-static-build
		# See deep down below for build-date.
		--disable-optimize # Don't add '-O2' to CFLAGS.
		$(usex debug '' '--disable-debug-build')

		$(use_enable doc html-build)
		--disable-pdf-build
		--enable-manpage-build
		$(use_enable cplugins)
		$(use_enable test)

		$(use_enable iconv)
		$(use_enable lua)
		$(use_enable javascript)
		$(use_enable zlib)
		$(use_enable bluray libbluray)
		$(use_enable dvd dvdnav)
		$(use_enable cdda)
		$(use_enable uchardet)
		$(use_enable rubberband)
		$(use_enable lcms lcms2)
		$(use_enable vapoursynth)
		$(use_enable archive libarchive)

		--enable-libavdevice

		# Audio outputs:
		$(use_enable sdl sdl2) # Listed under audio, but also includes video.
		$(use_enable pulseaudio pulse)
		$(use_enable jack)
		$(use_enable openal)
		--disable-opensles
		$(use_enable alsa)
		$(use_enable coreaudio)

		# Video outputs:
		$(use_enable aqua cocoa)
		$(use_enable drm)
		$(use_enable gbm)
		$(use_enable wayland wayland-scanner)
		$(use_enable wayland wayland-protocols)
		$(use_enable wayland)
		$(use_enable X x11)
		$(use_enable xv)
		$(usex opengl "$(use_enable aqua gl-cocoa)" '--disable-gl-cocoa')
		$(usex opengl "$(use_enable X gl-x11)" '--disable-gl-x11')
		$(usex egl "$(use_enable X egl-x11)" '--disable-egl-x11')
		$(usex egl "$(use_enable gbm egl-drm)" '--disable-egl-drm')
		$(usex opengl "$(use_enable wayland gl-wayland)" '--disable-gl-wayland')
		$(use_enable vdpau)
		$(usex vdpau "$(use_enable opengl vdpau-gl-x11)" '--disable-vdpau-gl-x11')
		$(use_enable vaapi) # See below for vaapi-glx, vaapi-x-egl.
		$(usex vaapi "$(use_enable X vaapi-x11)" '--disable-vaapi-x11')
		$(usex vaapi "$(use_enable wayland vaapi-wayland)" '--disable-vaapi-wayland')
		$(usex vaapi "$(use_enable gbm vaapi-drm)" '--disable-vaapi-drm')
		$(use_enable libcaca caca)
		$(use_enable jpeg)
		$(use_enable vulkan shaderc)
		$(use_enable vulkan libplacebo)
		$(use_enable raspberry-pi rpi)
		$(usex libmpv "$(use_enable opengl plain-gl)" '--disable-plain-gl')
		$(usex opengl '' '--disable-gl')
		$(use_enable vulkan)
		$(use_enable gamepad sdl2-gamepad)

		# HWaccels:
		# Automagic Video Toolbox HW acceleration. See Gentoo bug 577332.
		$(use_enable cuda cuda-hwaccel)
		$(use_enable cuda cuda-interop)

		# TV features:
		$(use_enable dvb dvbin)

		# Miscellaneous features:
		$(use_enable zimg)
	)
	if use lua; then
		if use lua_single_target_luajit; then
			mywafargs+=( --lua="luajit" )
		else
			# Because it would be too simple to just let the user directly
			# specify the package name to check, wouldn't it.
			mywafargs+=( --lua="$(ver_rs 1 '' $(ver_cut 1-2 $(lua_get_version)))" )
		fi
	fi

	if use vaapi && use X; then
		mywafargs+=(
			$(use_enable egl vaapi-x-egl)
		)
	fi

	# Not for us
	mywafargs+=(
		--disable-android
		--disable-egl-android
		--disable-uwp
		--disable-audiounit
		--disable-macos-media-player
		--disable-wasapi
		--disable-ios-gl
		--disable-macos-touchbar
		--disable-macos-cocoa-cb
		--disable-tvos
		--disable-egl-angle-win32
	)

	mywafargs+=(
		--bashdir="$(get_bashcompdir)"
		--zshdir="${EPREFIX}"/usr/share/zsh/site-functions
)

	# Create reproducible non-live builds.
	[[ ${PV} != *9999* ]] && mywafargs+=(--disable-build-date)

	waf-utils_src_configure "${mywafargs[@]}"
}

src_install() {
	waf-utils_src_install

	if use lua; then
		insinto /usr/share/${PN}
		doins -r TOOLS/lua
	fi

	if use cli && use lua_single_target_luajit; then
		pax-mark -m "${ED}"/usr/bin/${PN}
	fi

	if use tools; then
		dobin TOOLS/{mpv_identify.sh,umpv}
		newbin TOOLS/idet.sh mpv_idet.sh
		python_replicate_script "${ED}"/usr/bin/umpv
	fi
}

pkg_postinst() {
	local rv softvol_0_18_1=0 osc_0_21_0=0 txtsubs_0_24_0=0 opengl_0_25_0=0

	for rv in ${REPLACING_VERSIONS}; do
		ver_test ${rv} -lt 0.18.1 && softvol_0_18_1=1
		ver_test ${rv} -lt 0.21.0 && osc_0_21_0=1
		ver_test ${rv} -lt 0.24.0 && txtsubs_0_24_0=1
		ver_test ${rv} -lt 0.25.0 && ! use opengl && opengl_0_25_0=1
	done

	if [[ ${softvol_0_18_1} -eq 1 ]]; then
		elog "Since version 0.18.1 the software volume control is always enabled."
		elog "This means that volume controls don't change the system volume,"
		elog "e.g. per-application volume with PulseAudio."
		elog "If you want to restore the previous behaviour, please refer to"
		elog
		elog "https://wiki.gentoo.org/wiki/Mpv#Volume_in_0.18.1"
		elog
	fi

	if [[ ${osc_0_21_0} -eq 1 ]]; then
		elog "In version 0.21.0 the default OSC layout was changed."
		elog "If you want to restore the previous layout, please refer to"
		elog
		elog "https://wiki.gentoo.org/wiki/Mpv#OSC_in_0.21.0"
		elog
	fi

	if [[ ${txtsubs_0_24_0} -eq 1 ]]; then
		elog "Since version 0.24.0 subtitles with .txt extension aren't autoloaded."
		elog "If you want to restore the previous behaviour, please refer to"
		elog
		elog "https://wiki.gentoo.org/wiki/Mpv#Subtitles_with_.txt_extension_in_0.24.0"
		elog
	fi

	if [[ ${opengl_0_25_0} -eq 1 ]]; then
		elog "Since version 0.25.0 the 'opengl' USE flag is mapped to"
		elog "the 'opengl' video output and no longer explicitly requires"
		elog "X11 or Mac OS Aqua. Consider enabling the 'opengl' USE flag."
	fi

	optfeature "URL support" net-misc/youtube-dl

	xdg_icon_cache_update
	xdg_desktop_database_update
}

pkg_postrm() {
	xdg_icon_cache_update
	xdg_desktop_database_update
}

src_test() {
	cd "${S}"/build/test || die
	local test
	for test in *; do
		if [[ -x ${test} ]]; then
			./"${test}" || die "Test suite failed"
		fi
	done
}

A net-misc/yt-dlp/metadata.xml => net-misc/yt-dlp/metadata.xml +11 -0
@@ 0,0 1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
	<maintainer type="person">
		<email>slashbeast@gentoo.org</email>
		<name>Piotr Karbowski</name>
	</maintainer>
	<upstream>
		<remote-id type="github">yt-dlp/yt-dlp</remote-id>
	</upstream>
</pkgmetadata>

A net-misc/yt-dlp/yt-dlp-2021.10.22.ebuild => net-misc/yt-dlp/yt-dlp-2021.10.22.ebuild +50 -0
@@ 0,0 1,50 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

PYTHON_COMPAT=( python3_{8..10} )
inherit bash-completion-r1 distutils-r1 readme.gentoo-r1

DESCRIPTION="A youtube-dl fork with additional features and fixes"
HOMEPAGE="https://github.com/yt-dlp/yt-dlp"
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
KEYWORDS="~amd64 ~riscv ~x86"
LICENSE="public-domain"
SLOT="0"
IUSE="+minimal"

RDEPEND="
	!minimal? (
		dev-python/pycryptodome[${PYTHON_USEDEP}]
		media-libs/mutagen[${PYTHON_USEDEP}]
		dev-python/websockets[${PYTHON_USEDEP}]
		dev-python/keyring[${PYTHON_USEDEP}]
	)
	media-video/ffmpeg

"

distutils_enable_tests nose

python_test() {
	# make_lazy_extractors.py tries to rename it out, so fails if it does not exists.
	mkdir ytdlp_plugins
	epytest -k 'not download'
}

python_install_all() {
	doman yt-dlp.1

	newbashcomp completions/bash/yt-dlp yt-dlp

	insinto /usr/share/zsh/site-functions
	newins completions/zsh/_yt-dlp _yt-dlp

	insinto /usr/share/fish/vendor_completions.d
	doins completions/fish/yt-dlp.fish

	distutils-r1_python_install_all

	rm -rf "${ED}"/usr/share/doc/yt_dlp || die
}

A net-p2p/nicotine+/metadata.xml => net-p2p/nicotine+/metadata.xml +11 -0
@@ 0,0 1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
	<maintainer type="person">
		<email>slashbeast@gentoo.org</email>
		<name>Piotr Karbowski</name>
	</maintainer>
	<upstream>
		<remote-id type="github">Nicotine-Plus/nicotine-plus</remote-id>
	</upstream>
</pkgmetadata>

A net-p2p/nicotine+/nicotine+-3.1.1.ebuild => net-p2p/nicotine+/nicotine+-3.1.1.ebuild +41 -0
@@ 0,0 1,41 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

PYTHON_COMPAT=( python3_{7,8,9} )

inherit distutils-r1 xdg-utils

DESCRIPTION="A fork of nicotine, a Soulseek client in Python"
HOMEPAGE="https://github.com/Nicotine-Plus/nicotine-plus"
SRC_URI="https://github.com/Nicotine-Plus/nicotine-plus/archive/${PV}.tar.gz -> ${P}.tar.gz"

LICENSE="GPL-3 LGPL-3"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~x86"
IUSE=""

DEPEND="${PYTHON_DEPS}"
RDEPEND="
	dev-python/pygobject:3[${PYTHON_USEDEP}]
	x11-libs/gtk+:3[introspection]
	${DEPEND}
"

DEPEND="${RDEPEND}"

S="${WORKDIR}/nicotine-plus-${PV}"

src_install() {
	distutils-r1_src_install
	mv "${ED}/usr/share/doc/nicotine" "${ED}/usr/share/doc/${PF}" || die
}

pkg_postinst() {
	xdg_icon_cache_update
}

pkg_postrm() {
	xdg_icon_cache_update
}

R sys-apps/busybox/busybox-1.33.0.ebuild => sys-apps/busybox/busybox-1.34.1.ebuild +40 -28
@@ 1,4 1,4 @@
# Copyright 1999-2020 Gentoo Authors
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

# See `man savedconfig.eclass` for info on how to use USE=savedconfig.


@@ 10,11 10,11 @@ inherit flag-o-matic savedconfig toolchain-funcs
DESCRIPTION="Utilities for rescue and embedded systems"
HOMEPAGE="https://www.busybox.net/"
if [[ ${PV} == "9999" ]] ; then
	MY_P=${P}
	MY_P="${P}"
	EGIT_REPO_URI="https://git.busybox.net/busybox"
	inherit git-r3
else
	MY_P=${PN}-${PV/_/-}
	MY_P="${PN}-${PV/_/-}"
	SRC_URI="https://www.busybox.net/downloads/${MY_P}.tar.bz2"
	KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
fi


@@ 25,17 25,19 @@ IUSE="debug ipv6 livecd make-symlinks math mdev pam selinux sep-usr static syslo
REQUIRED_USE="pam? ( !static )"
RESTRICT="test"

COMMON_DEPEND="!static? ( selinux? ( sys-libs/libselinux ) )
# TODO: Could make pkgconfig conditional on selinux? bug #782829
RDEPEND="
	virtual/libcrypt:=
	!static? ( selinux? ( sys-libs/libselinux ) )
	pam? ( sys-libs/pam )
	virtual/libcrypt:="
DEPEND="${COMMON_DEPEND}
"
DEPEND="${RDEPEND}
	static? (
		virtual/libcrypt[static-libs]
		selinux? ( sys-libs/libselinux[static-libs(+)] )
	)
	>=sys-kernel/linux-headers-2.6.39"
RDEPEND="${COMMON_DEPEND}
	mdev? ( !<sys-apps/openrc-0.13 )"
	sys-kernel/linux-headers"
BDEPEND="virtual/pkgconfig"

S="${WORKDIR}/${MY_P}"



@@ 139,6 141,14 @@ src_configure() {
		busybox_config_option n FEATURE_VI_REGEX_SEARCH
	fi

	# Disable standalone shell mode when using make-symlinks, else Busybox calls its
	# applets by default without looking up in PATH.
	# This also enables users to disable a builtin by deleting the corresponding symlink.
	if use make-symlinks; then
		busybox_config_option n FEATURE_PREFER_APPLETS
		busybox_config_option n FEATURE_SH_STANDALONE
	fi

	# If these are not set and we are using a uclibc/busybox setup
	# all calls to system() will fail.
	busybox_config_option y ASH


@@ 217,6 227,8 @@ src_compile() {
	export SKIP_STRIP=y

	emake V=1 busybox

	# bug #701512
	emake V=1 doc
}



@@ 251,29 263,29 @@ src_install() {
	fi

	# add busybox daemon's, bug #444718
	if busybox_config_enabled FEATURE_NTPD_SERVER; then
		newconfd "${FILESDIR}/ntpd.confd" "busybox-ntpd"
		newinitd "${FILESDIR}/ntpd.initd" "busybox-ntpd"
	fi
	if busybox_config_enabled HTTPD; then
		newconfd "${FILESDIR}/httpd.confd" "busybox-httpd"
		newinitd "${FILESDIR}/httpd.initd" "busybox-httpd"
		newconfd "${FILESDIR}/httpd.confd" busybox-httpd
		newinitd "${FILESDIR}/httpd.initd" busybox-httpd
		docinto txt
		sed -En '/httpd implementation for busybox/,/\*\//s#^ \*( |$)##p' \
			networking/httpd.c >httpd.txt
		dodoc httpd.txt
	fi
	if busybox_config_enabled FEATURE_NTPD_SERVER; then
		newconfd "${FILESDIR}"/ntpd.confd busybox-ntpd
		newinitd "${FILESDIR}"/ntpd.initd busybox-ntpd
	fi
	if busybox_config_enabled SYSLOGD; then
		newconfd "${FILESDIR}/syslogd.confd" "busybox-syslogd"
		newinitd "${FILESDIR}/syslogd.initd" "busybox-syslogd"
		newconfd "${FILESDIR}"/syslogd.confd busybox-syslogd
		newinitd "${FILESDIR}"/syslogd.initd busybox-syslogd
	fi
	if busybox_config_enabled KLOGD; then
		newconfd "${FILESDIR}/klogd.confd" "busybox-klogd"
		newinitd "${FILESDIR}/klogd.initd" "busybox-klogd"
		newconfd "${FILESDIR}"/klogd.confd busybox-klogd
		newinitd "${FILESDIR}"/klogd.initd busybox-klogd
	fi
	if busybox_config_enabled WATCHDOG; then
		newconfd "${FILESDIR}/watchdog.confd" "busybox-watchdog"
		newinitd "${FILESDIR}/watchdog.initd" "busybox-watchdog"
		newconfd "${FILESDIR}"/watchdog.confd busybox-watchdog
		newinitd "${FILESDIR}"/watchdog.initd busybox-watchdog
	fi
	if busybox_config_enabled UDHCPC; then
		local path=$(busybox_config_enabled UDHCPC_DEFAULT_SCRIPT)


@@ 287,17 299,17 @@ src_install() {

	# bundle up the symlink files for use later
	emake DESTDIR="${ED}" install
	rm _install/bin/busybox
	rm _install/bin/busybox || die
	# for compatibility, provide /usr/bin/env
	mkdir -p _install/usr/bin
	ln -s /bin/env _install/usr/bin/env
	mkdir -p _install/usr/bin || die
	ln -s /bin/env _install/usr/bin/env || die
	tar cf busybox-links.tar -C _install . || : #;die
	insinto /usr/share/${PN}
	use make-symlinks && doins busybox-links.tar

	dodoc AUTHORS README TODO

	cd docs
	cd docs || die
	doman busybox.1
	docinto txt
	dodoc *.txt


@@ 306,13 318,13 @@ src_install() {
	docinto html
	dodoc *.html

	cd ../examples
	cd ../examples || die
	docinto examples
	dodoc inittab depmod.pl *.conf *.script undeb unrpm
}

pkg_preinst() {
	if use make-symlinks && [[ ! ${VERY_BRAVE_OR_VERY_DUMB} == "yes" ]] && [[ ${ROOT} == "/" ]] ; then
	if use make-symlinks && [[ ! ${VERY_BRAVE_OR_VERY_DUMB} == "yes" ]] && [[ -z "${ROOT}" ]] ; then
		ewarn "setting USE=make-symlinks and emerging to / is very dangerous."
		ewarn "it WILL overwrite lots of system programs like: ls bash awk grep (bug 60805 for full list)."
		ewarn "If you are creating a binary only and not merging this is probably ok."


@@ 332,7 344,7 @@ pkg_postinst() {
		cd "${T}" || die
		mkdir _install
		tar xf busybox-links.tar -C _install || die
		cp -vpPR _install/* "${ROOT}"/ || die "copying links for ${x} failed"
		echo n | cp -ivpPR _install/* "${ROOT}"/ || die "copying links for ${x} failed"
	fi

	if use sep-usr ; then

A x11-libs/gtk+/files/gtk+-3.24.25-update-icon-cache.patch => x11-libs/gtk+/files/gtk+-3.24.25-update-icon-cache.patch +121 -0
@@ 0,0 1,121 @@
From ce23725d2b25b61a4eec8db0899d49d5a9dbcc6d Mon Sep 17 00:00:00 2001
From: Gilles Dartiguelongue <eva@gentoo.org>
Date: Tue, 1 Nov 2016 15:24:22 +0100
Subject: [PATCH] Always use external gtk-update-icon-cache

Check for gtk-update-icon-cache to install demos, otherwise it is not
used when building.
---
 configure.ac                     |  2 ++
 demos/gtk-demo/Makefile.am       |  2 +-
 demos/widget-factory/Makefile.am |  2 +-
 docs/reference/gtk/Makefile.am   |  1 -
 gtk/Makefile.am                  | 27 ---------------------------
 5 files changed, 4 insertions(+), 30 deletions(-)

diff --git a/configure.ac b/configure.ac
index 36dda2ebaf..df9d9b0e9b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -974,6 +974,8 @@ dnl Look for a host system's gdk-pixbuf-csource if we are cross-compiling
 
 AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
 
+AC_PATH_PROG(GTK_UPDATE_ICON_CACHE, [gtk-update-icon-cache], [no])
+
 ########################################
 # Windowing system checks
 ########################################
diff --git a/demos/gtk-demo/Makefile.am b/demos/gtk-demo/Makefile.am
index 4a2f827469..369ba5d3cc 100644
--- a/demos/gtk-demo/Makefile.am
+++ b/demos/gtk-demo/Makefile.am
@@ -174,7 +174,7 @@ dist_appsicon32_DATA = data/32x32/gtk3-demo.png data/32x32/gtk3-demo-symbolic.sy
 dist_appsicon48_DATA = data/48x48/gtk3-demo.png data/48x48/gtk3-demo-symbolic.symbolic.png
 dist_appsicon256_DATA = data/256x256/gtk3-demo.png data/256x256/gtk3-demo-symbolic.symbolic.png
 
-update_icon_cache = $(top_builddir)/gtk/gtk-update-icon-cache$(EXEEXT) --ignore-theme-index --force
+update_icon_cache = $(GTK_UPDATE_ICON_CACHE) --ignore-theme-index --force
 
 install-data-hook: install-update-icon-cache
 uninstall-hook: uninstall-update-icon-cache
diff --git a/demos/widget-factory/Makefile.am b/demos/widget-factory/Makefile.am
index c33a6d0a95..291f389f53 100644
--- a/demos/widget-factory/Makefile.am
+++ b/demos/widget-factory/Makefile.am
@@ -47,7 +47,7 @@ dist_appsicon32_DATA = data/32x32/gtk3-widget-factory.png data/32x32/gtk3-widget
 dist_appsicon48_DATA = data/48x48/gtk3-widget-factory.png data/48x48/gtk3-widget-factory-symbolic.symbolic.png
 dist_appsicon256_DATA = data/256x256/gtk3-widget-factory.png data/256x256/gtk3-widget-factory-symbolic.symbolic.png
 
-update_icon_cache = $(top_builddir)/gtk/gtk-update-icon-cache$(EXEEXT) --ignore-theme-index --force
+update_icon_cache = $(GTK_UPDATE_ICON_CACHE) --ignore-theme-index --force
 
 install-data-hook: install-update-icon-cache
 uninstall-hook: uninstall-update-icon-cache
diff --git a/docs/reference/gtk/Makefile.am b/docs/reference/gtk/Makefile.am
index dc9b80c6c5..bcaa4032c9 100644
--- a/docs/reference/gtk/Makefile.am
+++ b/docs/reference/gtk/Makefile.am
@@ -502,7 +502,6 @@ EXTRA_DIST += version.xml.in gtk3.types.in getting_started.xml.in
 
 man_MANS = 				\
 	gtk-query-immodules-3.0.1	\
-	gtk-update-icon-cache.1		\
 	gtk-encode-symbolic-svg.1	\
 	gtk-launch.1			\
 	gtk3-demo.1			\
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index 9608ab3355..74792a4b40 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -1658,7 +1658,6 @@ endif
 #
 bin_PROGRAMS = \
 	gtk-query-immodules-3.0	\
-	gtk-update-icon-cache \
 	gtk-encode-symbolic-svg \
 	gtk-builder-tool \
 	gtk-query-settings \
@@ -1671,9 +1670,6 @@ gtk_query_immodules_3_0_LDADD = 		\
 	$(GMODULE_LIBS)				\
 	$(GTK_DEP_LIBS)
 
-gtk_update_icon_cache_SOURCES = updateiconcache.c
-gtk_update_icon_cache_LDADD = $(GDK_PIXBUF_LIBS)
-
 gtk_encode_symbolic_svg_SOURCES = encodesymbolic.c
 gtk_encode_symbolic_svg_LDADD =			\
 	$(GDK_PIXBUF_LIBS)			\
@@ -1698,29 +1694,6 @@ gtk_launch_LDADD =				\
 	$(top_builddir)/gdk/libgdk-3.la		\
 	$(GTK_DEP_LIBS)
 
-if OS_WIN32
-
-# Workaround for UAC silliness: programs with "update" in their name
-# are believed to be installers and require elevated privileges to be
-# used... Embed a manifest file into executable to tell Windows that
-# gtk-update-icon-cache.exe doesn't require any special privileges.
-
-GTK_UPDATE_ICON_CACHE_MANIFEST = gtk-update-icon-cache.exe.manifest
-GTK_UPDATE_ICON_CACHE_RC = gtk-update-icon-cache.rc
-GTK_UPDATE_ICON_CACHE_MANIFEST_OBJECT = gtk-update-icon-cache_manifest.o
-
-$(GTK_UPDATE_ICON_CACHE_MANIFEST): Makefile generate-uac-manifest.py
-	$(PYTHON) $(srcdir)/generate-uac-manifest.py -p=gtk3 -n=gtk-update-icon-cache --pkg-version=$(GTK_VERSION) --output-dir=$(builddir)
-
-$(GTK_UPDATE_ICON_CACHE_RC): $(GTK_UPDATE_ICON_CACHE_MANIFEST)
-
-$(GTK_UPDATE_ICON_CACHE_MANIFEST_OBJECT): $(GTK_UPDATE_ICON_CACHE_RC) $(GTK_UPDATE_ICON_CACHE_MANIFEST)
-	$(WINDRES) --input $< --output $@ --output-format=coff
-
-gtk_update_icon_cache_LDADD += $(GTK_UPDATE_ICON_CACHE_MANIFEST_OBJECT)
-
-endif
-
 .PHONY: files
 
 files:
-- 
2.30.0


A x11-libs/gtk+/gtk+-3.24.24-r1.ebuild => x11-libs/gtk+/gtk+-3.24.24-r1.ebuild +256 -0
@@ 0,0 1,256 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7
GNOME2_EAUTORECONF="yes"

inherit gnome2 multilib multilib-minimal virtualx

DESCRIPTION="Gimp ToolKit +"
HOMEPAGE="https://www.gtk.org/"

LICENSE="LGPL-2+"
SLOT="3"
IUSE="aqua atk-bridge broadway cloudprint colord cups examples gtk-doc +introspection sysprof test vim-syntax wayland +X xinerama"
REQUIRED_USE="
	|| ( aqua wayland X )
	xinerama? ( X )
"

KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"

# Upstream wants us to do their job:
# https://bugzilla.gnome.org/show_bug.cgi?id=768662#c1
RESTRICT="test"

# FIXME: introspection data is built against system installation of gtk+:3,
# bug #????
COMMON_DEPEND="
	>=dev-libs/atk-2.32.0[introspection?,${MULTILIB_USEDEP}]
	>=dev-libs/fribidi-0.19.7[${MULTILIB_USEDEP}]
	>=dev-libs/glib-2.57.2:2[${MULTILIB_USEDEP}]
	media-libs/fontconfig[${MULTILIB_USEDEP}]
	>=media-libs/harfbuzz-0.9:=
	>=media-libs/libepoxy-1.4[X(+)?,${MULTILIB_USEDEP}]
	virtual/libintl[${MULTILIB_USEDEP}]
	>=x11-libs/cairo-1.14[aqua?,glib,svg,X?,${MULTILIB_USEDEP}]
	>=x11-libs/gdk-pixbuf-2.30:2[introspection?,${MULTILIB_USEDEP}]
	>=x11-libs/pango-1.41.0[introspection?,${MULTILIB_USEDEP}]
	x11-misc/shared-mime-info

	cloudprint? (
		>=dev-libs/json-glib-1.0[${MULTILIB_USEDEP}]
		>=net-libs/rest-0.7[${MULTILIB_USEDEP}]
	)
	colord? ( >=x11-misc/colord-0.1.9:0=[${MULTILIB_USEDEP}] )
	cups? ( >=net-print/cups-2.0[${MULTILIB_USEDEP}] )
	introspection? ( >=dev-libs/gobject-introspection-1.39:= )
	sysprof? ( >=dev-util/sysprof-capture-3.33.2:3[${MULTILIB_USEDEP}] )
	wayland? (
		>=dev-libs/wayland-1.14.91[${MULTILIB_USEDEP}]
		>=dev-libs/wayland-protocols-1.17
		media-libs/mesa[wayland,${MULTILIB_USEDEP}]
		>=x11-libs/libxkbcommon-0.2[${MULTILIB_USEDEP}]
	)
	X? (
		atk-bridge? ( >=app-accessibility/at-spi2-atk-2.15.1[${MULTILIB_USEDEP}] )
		media-libs/mesa[X(+),${MULTILIB_USEDEP}]
		x11-libs/libX11[${MULTILIB_USEDEP}]
		x11-libs/libXcomposite[${MULTILIB_USEDEP}]
		x11-libs/libXcursor[${MULTILIB_USEDEP}]
		x11-libs/libXdamage[${MULTILIB_USEDEP}]
		x11-libs/libXext[${MULTILIB_USEDEP}]
		x11-libs/libXfixes[${MULTILIB_USEDEP}]
		>=x11-libs/libXi-1.3[${MULTILIB_USEDEP}]
		>=x11-libs/libXrandr-1.5[${MULTILIB_USEDEP}]
		xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
	)
"
DEPEND="${COMMON_DEPEND}
	test? (
		media-fonts/font-cursor-misc
		media-fonts/font-misc-misc
	)
	X? ( x11-base/xorg-proto )
"
# gtk+-3.2.2 breaks Alt key handling in <=x11-libs/vte-0.30.1:2.90
# gtk+-3.3.18 breaks scrolling in <=x11-libs/vte-0.31.0:2.90
RDEPEND="${COMMON_DEPEND}
	>=dev-util/gtk-update-icon-cache-3
	!<gnome-base/gail-1000
	!<x11-libs/vte-0.31.0:2.90
"
# librsvg for svg icons (PDEPEND to avoid circular dep), bug #547710
PDEPEND="
	gnome-base/librsvg[${MULTILIB_USEDEP}]
	>=x11-themes/adwaita-icon-theme-3.14
	vim-syntax? ( app-vim/gtk-syntax )
"
BDEPEND="
	app-text/docbook-xml-dtd:4.1.2
	app-text/docbook-xsl-stylesheets
	dev-libs/gobject-introspection-common
	dev-libs/libxslt
	>=dev-util/gdbus-codegen-2.48
	dev-util/glib-utils
	>=dev-util/gtk-doc-am-1.20
	>=sys-devel/gettext-0.19.7
	virtual/pkgconfig
	gtk-doc? (
		app-text/docbook-xml-dtd:4.3
		>=dev-util/gtk-doc-1.20
	)
"

MULTILIB_CHOST_TOOLS=(
	/usr/bin/gtk-query-immodules-3.0$(get_exeext)
)

PATCHES=(
	# gtk-update-icon-cache is installed by dev-util/gtk-update-icon-cache
	"${FILESDIR}"/${PN}-3.24.8-update-icon-cache.patch

	# Fix broken autotools logic
	"${FILESDIR}"/${PN}-3.22.20-libcloudproviders-automagic.patch

	"${FILESDIR}"/${PN}-3.22.30.atk-bridge.patch
)

strip_builddir() {
	local rule=$1
	shift
	local directory=$1
	shift
	sed -e "s/^\(${rule} =.*\)${directory}\(.*\)$/\1\2/" -i $@ \
		|| die "Could not strip director ${directory} from build."
}

src_prepare() {
	if ! use test ; then
		# don't waste time building tests
		strip_builddir SRC_SUBDIRS testsuite Makefile.{am,in}

		# the tests dir needs to be build now because since commit
		# 7ff3c6df80185e165e3bf6aa31bd014d1f8bf224 tests/gtkgears.o needs to be there
		# strip_builddir SRC_SUBDIRS tests Makefile.{am,in}
	fi

	if ! use examples; then
		# don't waste time building demos
		strip_builddir SRC_SUBDIRS demos Makefile.{am,in}
		strip_builddir SRC_SUBDIRS examples Makefile.{am,in}
	fi

	gnome2_src_prepare
}

multilib_src_configure() {
	local myconf=(
		$(use_enable aqua quartz-backend)
		$(use_with atk-bridge)
		$(use_enable broadway broadway-backend)
		$(use_enable cloudprint)
		$(use_enable colord)
		$(use_enable cups cups auto)
		$(multilib_native_use_enable gtk-doc)
		$(multilib_native_use_enable introspection)
		$(use_enable sysprof profiler)
		$(use_enable wayland wayland-backend)
		$(use_enable X x11-backend)
		$(use_enable X xcomposite)
		$(use_enable X xdamage)
		$(use_enable X xfixes)
		$(use_enable X xkb)
		$(use_enable X xrandr)
		$(use_enable xinerama)
		# cloudprovider is not packaged in Gentoo yet
		--disable-cloudproviders
		--disable-papi
		--enable-man
		--with-xml-catalog="${EPREFIX}"/etc/xml/catalog
		# need libdir here to avoid a double slash in a path that libtool doesn't
		# grok so well during install (// between $EPREFIX and usr ...)
		# TODO: Is this still the case?
		--libdir="${EPREFIX}"/usr/$(get_libdir)
		CUPS_CONFIG="${EPREFIX}/usr/bin/${CHOST}-cups-config"
	)

	if use wayland; then
		myconf+=(
			# Include wayland immodule into gtk itself, to avoid problems like
			# https://gitlab.gnome.org/GNOME/gnome-shell/issues/109 from a
			# user overridden GTK_IM_MODULE envvar
			--with-included-immodules=wayland
		)
	fi;

	ECONF_SOURCE=${S} gnome2_src_configure "${myconf[@]}"

	# work-around gtk-doc out-of-source brokedness
	if multilib_is_native_abi; then
		local d
		for d in gdk gtk libgail-util; do
			ln -s "${S}"/docs/reference/${d}/html docs/reference/${d}/html || die
		done
	fi
}

multilib_src_test() {
	"${EROOT}${GLIB_COMPILE_SCHEMAS}" --allow-any-name "${S}/gtk" || die
	GSETTINGS_SCHEMA_DIR="${S}/gtk" virtx emake check
}

multilib_src_install() {
	gnome2_src_install
}

multilib_src_install_all() {
	insinto /etc/gtk-3.0
	doins "${FILESDIR}"/settings.ini
	# Skip README.{in,commits,win32} that would get installed by default
	DOCS=( AUTHORS ChangeLog NEWS README )
	einstalldocs
}

pkg_preinst() {
	gnome2_pkg_preinst

	multilib_pkg_preinst() {
		# Make immodules.cache belongs to gtk+ alone
		local cache="/usr/$(get_libdir)/gtk-3.0/3.0.0/immodules.cache"

		if [[ -e ${EROOT}${cache} ]]; then
			cp "${EROOT}${cache}" "${ED}${cache}" || die
		else
			touch "${ED}${cache}" || die
		fi
	}
	multilib_parallel_foreach_abi multilib_pkg_preinst
}

pkg_postinst() {
	gnome2_pkg_postinst

	multilib_pkg_postinst() {
		gnome2_query_immodules_gtk3 \
			|| die "Update immodules cache failed (for ${ABI})"
	}
	multilib_parallel_foreach_abi multilib_pkg_postinst

	if ! has_version "app-text/evince"; then
		elog "Please install app-text/evince for print preview functionality."
		elog "Alternatively, check \"gtk-print-preview-command\" documentation and"
		elog "add it to your settings.ini file."
	fi
}

pkg_postrm() {
	gnome2_pkg_postrm

	if [[ -z ${REPLACED_BY_VERSION} ]]; then
		multilib_pkg_postrm() {
			rm -f "${EROOT}/usr/$(get_libdir)/gtk-3.0/3.0.0/immodules.cache"
		}
		multilib_foreach_abi multilib_pkg_postrm
	fi
}

A x11-libs/gtk+/gtk+-3.24.29.ebuild => x11-libs/gtk+/gtk+-3.24.29.ebuild +256 -0
@@ 0,0 1,256 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7
GNOME2_EAUTORECONF="yes"

inherit gnome2 multilib multilib-minimal virtualx

DESCRIPTION="Gimp ToolKit +"
HOMEPAGE="https://www.gtk.org/"

LICENSE="LGPL-2+"
SLOT="3"
IUSE="aqua atk-bridge broadway cloudprint colord cups examples gtk-doc +introspection sysprof test vim-syntax wayland +X xinerama"
REQUIRED_USE="
	|| ( aqua wayland X )
	xinerama? ( X )
"

KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"

# Upstream wants us to do their job:
# https://bugzilla.gnome.org/show_bug.cgi?id=768662#c1
RESTRICT="test"

# FIXME: introspection data is built against system installation of gtk+:3,
# bug #????
COMMON_DEPEND="
	>=dev-libs/atk-2.32.0[introspection?,${MULTILIB_USEDEP}]
	>=dev-libs/fribidi-0.19.7[${MULTILIB_USEDEP}]
	>=dev-libs/glib-2.57.2:2[${MULTILIB_USEDEP}]
	media-libs/fontconfig[${MULTILIB_USEDEP}]
	>=media-libs/harfbuzz-0.9:=
	>=media-libs/libepoxy-1.4[X(+)?,${MULTILIB_USEDEP}]
	virtual/libintl[${MULTILIB_USEDEP}]
	>=x11-libs/cairo-1.14[aqua?,glib,svg,X?,${MULTILIB_USEDEP}]
	>=x11-libs/gdk-pixbuf-2.30:2[introspection?,${MULTILIB_USEDEP}]
	>=x11-libs/pango-1.41.0[introspection?,${MULTILIB_USEDEP}]
	x11-misc/shared-mime-info

	cloudprint? (
		>=dev-libs/json-glib-1.0[${MULTILIB_USEDEP}]
		>=net-libs/rest-0.7[${MULTILIB_USEDEP}]
	)
	colord? ( >=x11-misc/colord-0.1.9:0=[${MULTILIB_USEDEP}] )
	cups? ( >=net-print/cups-2.0[${MULTILIB_USEDEP}] )
	introspection? ( >=dev-libs/gobject-introspection-1.39:= )
	sysprof? ( >=dev-util/sysprof-capture-3.33.2:3[${MULTILIB_USEDEP}] )
	wayland? (
		>=dev-libs/wayland-1.14.91[${MULTILIB_USEDEP}]
		>=dev-libs/wayland-protocols-1.17
		media-libs/mesa[wayland,${MULTILIB_USEDEP}]
		>=x11-libs/libxkbcommon-0.2[${MULTILIB_USEDEP}]
	)
	X? (
		atk-bridge? ( >=app-accessibility/at-spi2-atk-2.15.1[${MULTILIB_USEDEP}] )
		media-libs/mesa[X(+),${MULTILIB_USEDEP}]
		x11-libs/libX11[${MULTILIB_USEDEP}]
		x11-libs/libXcomposite[${MULTILIB_USEDEP}]
		x11-libs/libXcursor[${MULTILIB_USEDEP}]
		x11-libs/libXdamage[${MULTILIB_USEDEP}]
		x11-libs/libXext[${MULTILIB_USEDEP}]
		x11-libs/libXfixes[${MULTILIB_USEDEP}]
		>=x11-libs/libXi-1.3[${MULTILIB_USEDEP}]
		>=x11-libs/libXrandr-1.5[${MULTILIB_USEDEP}]
		xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
	)
"
DEPEND="${COMMON_DEPEND}
	test? (
		media-fonts/font-cursor-misc
		media-fonts/font-misc-misc
	)
	X? ( x11-base/xorg-proto )
"
# gtk+-3.2.2 breaks Alt key handling in <=x11-libs/vte-0.30.1:2.90
# gtk+-3.3.18 breaks scrolling in <=x11-libs/vte-0.31.0:2.90
RDEPEND="${COMMON_DEPEND}
	>=dev-util/gtk-update-icon-cache-3
	!<x11-libs/vte-0.31.0:2.90
"
# librsvg for svg icons (PDEPEND to avoid circular dep), bug #547710
PDEPEND="
	gnome-base/librsvg[${MULTILIB_USEDEP}]
	>=x11-themes/adwaita-icon-theme-3.14
	vim-syntax? ( app-vim/gtk-syntax )
"
BDEPEND="
	app-text/docbook-xml-dtd:4.1.2
	app-text/docbook-xsl-stylesheets
	dev-libs/gobject-introspection-common
	dev-libs/libxslt
	>=dev-util/gdbus-codegen-2.48
	dev-util/glib-utils
	>=dev-util/gtk-doc-am-1.20
	>=sys-devel/gettext-0.19.7
	virtual/pkgconfig
	x11-libs/gdk-pixbuf:2
	gtk-doc? (
		app-text/docbook-xml-dtd:4.3
		>=dev-util/gtk-doc-1.20
	)
"

MULTILIB_CHOST_TOOLS=(
	/usr/bin/gtk-query-immodules-3.0$(get_exeext)
)

PATCHES=(
	# gtk-update-icon-cache is installed by dev-util/gtk-update-icon-cache
	"${FILESDIR}"/${PN}-3.24.25-update-icon-cache.patch

	# Fix broken autotools logic
	"${FILESDIR}"/${PN}-3.22.20-libcloudproviders-automagic.patch

	"${FILESDIR}"/${PN}-3.22.30.atk-bridge.patch
)

strip_builddir() {
	local rule=$1
	shift
	local directory=$1
	shift
	sed -e "s/^\(${rule} =.*\)${directory}\(.*\)$/\1\2/" -i $@ \
		|| die "Could not strip director ${directory} from build."
}

src_prepare() {
	if ! use test ; then
		# don't waste time building tests
		strip_builddir SRC_SUBDIRS testsuite Makefile.{am,in}

		# the tests dir needs to be build now because since commit
		# 7ff3c6df80185e165e3bf6aa31bd014d1f8bf224 tests/gtkgears.o needs to be there
		# strip_builddir SRC_SUBDIRS tests Makefile.{am,in}
	fi

	if ! use examples; then
		# don't waste time building demos
		strip_builddir SRC_SUBDIRS demos Makefile.{am,in}
		strip_builddir SRC_SUBDIRS examples Makefile.{am,in}
	fi

	gnome2_src_prepare
}

multilib_src_configure() {
	local myconf=(
		$(use_enable aqua quartz-backend)
		$(use_with atk-bridge)
		$(use_enable broadway broadway-backend)
		$(use_enable cloudprint)
		$(use_enable colord)
		$(use_enable cups cups auto)
		$(multilib_native_use_enable gtk-doc)
		$(multilib_native_use_enable introspection)
		$(use_enable sysprof profiler)
		$(use_enable wayland wayland-backend)
		$(use_enable X x11-backend)
		$(use_enable X xcomposite)
		$(use_enable X xdamage)
		$(use_enable X xfixes)
		$(use_enable X xkb)
		$(use_enable X xrandr)
		$(use_enable xinerama)
		# cloudprovider is not packaged in Gentoo yet
		--disable-cloudproviders
		--disable-papi
		--enable-man
		--with-xml-catalog="${EPREFIX}"/etc/xml/catalog
		# need libdir here to avoid a double slash in a path that libtool doesn't
		# grok so well during install (// between $EPREFIX and usr ...)
		# TODO: Is this still the case?
		--libdir="${EPREFIX}"/usr/$(get_libdir)
		CUPS_CONFIG="${EPREFIX}/usr/bin/${CHOST}-cups-config"
	)

	if use wayland; then
		myconf+=(
			# Include wayland immodule into gtk itself, to avoid problems like
			# https://gitlab.gnome.org/GNOME/gnome-shell/issues/109 from a
			# user overridden GTK_IM_MODULE envvar
			--with-included-immodules=wayland
		)
	fi;

	ECONF_SOURCE=${S} gnome2_src_configure "${myconf[@]}"

	# work-around gtk-doc out-of-source brokedness
	if multilib_is_native_abi; then
		local d
		for d in gdk gtk libgail-util; do
			ln -s "${S}"/docs/reference/${d}/html docs/reference/${d}/html || die
		done
	fi
}

multilib_src_test() {
	"${EROOT}${GLIB_COMPILE_SCHEMAS}" --allow-any-name "${S}/gtk" || die
	GSETTINGS_SCHEMA_DIR="${S}/gtk" virtx emake check
}

multilib_src_install() {
	gnome2_src_install
}

multilib_src_install_all() {
	insinto /etc/gtk-3.0
	doins "${FILESDIR}"/settings.ini
	# Skip README.{in,commits,win32} that would get installed by default
	DOCS=( AUTHORS ChangeLog NEWS README )
	einstalldocs
}

pkg_preinst() {
	gnome2_pkg_preinst

	multilib_pkg_preinst() {
		# Make immodules.cache belongs to gtk+ alone
		local cache="/usr/$(get_libdir)/gtk-3.0/3.0.0/immodules.cache"

		if [[ -e ${EROOT}${cache} ]]; then
			cp "${EROOT}${cache}" "${ED}${cache}" || die
		else
			touch "${ED}${cache}" || die
		fi
	}
	multilib_parallel_foreach_abi multilib_pkg_preinst
}

pkg_postinst() {
	gnome2_pkg_postinst

	multilib_pkg_postinst() {
		gnome2_query_immodules_gtk3 \
			|| die "Update immodules cache failed (for ${ABI})"
	}
	multilib_parallel_foreach_abi multilib_pkg_postinst

	if ! has_version "app-text/evince"; then
		elog "Please install app-text/evince for print preview functionality."
		elog "Alternatively, check \"gtk-print-preview-command\" documentation and"
		elog "add it to your settings.ini file."
	fi
}

pkg_postrm() {
	gnome2_pkg_postrm

	if [[ -z ${REPLACED_BY_VERSION} ]]; then
		multilib_pkg_postrm() {
			rm -f "${EROOT}/usr/$(get_libdir)/gtk-3.0/3.0.0/immodules.cache"
		}
		multilib_foreach_abi multilib_pkg_postrm
	fi
}