Apocrypha

wl-screenrec-0.2.0guru

# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

# Autogenerated by pycargoebuild 0.15.0

EAPI=8

CRATES="
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]+1.3.281
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]+wasi-snapshot-preview1
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
	[email protected]
"

declare -A GIT_CRATES=(
	[ffmpeg-sys-next]='https://github.com/russelltg/rust-ffmpeg-sys;ff4b564de3c3cca2c5e3dac955482ae81c9e12f5;rust-ffmpeg-sys-%commit%'
)

RUST_MIN_VER="1.85.0"
LLVM_COMPAT=( {19..22} )

inherit cargo shell-completion llvm-r2

DESCRIPTION="High performance screen/audio recorder for wlroots"
HOMEPAGE="https://github.com/russelltg/wl-screenrec"
SRC_URI="
	https://github.com/russelltg/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz
	${CARGO_CRATE_URIS}
"

LICENSE="Apache-2.0 BSD ISC MIT Unicode-3.0 WTFPL-2"
SLOT="0"
KEYWORDS="~amd64"
# We need a running Wayland compositor for the tests to work
RESTRICT="test"

PATCHES=("${FILESDIR}/${P}-custom_ffmpeg.patch")

BDEPEND="
	$(llvm_gen_dep '
		llvm-core/clang:${LLVM_SLOT}
	')
"
RDEPEND="
	media-video/ffmpeg:=[vaapi]
	x11-libs/libdrm
"
DEPEND="
	${RDEPEND}
"

QA_FLAGS_IGNORED="usr/bin/${PN}"

pkg_setup() {
	llvm-r2_pkg_setup
	rust_pkg_setup
}

src_prepare() {
	default

	CUSTOM_FFMPEG="rust-ffmpeg-sys-ff4b564de3c3cca2c5e3dac955482ae81c9e12f5"
	PACKAGE_HASH="7a2a9eb3135a9ec64df9164b15781df2d8bb7a52ad76738bf0c2d65df3f36df3"
	FFMPEG_VENDOR="${ECARGO_VENDOR}/ffmpeg-sys-next-8.0.1"

	# ${ECARGO_VENDOR} is defined in cargo.eclass
	cp -r "${WORKDIR}/${CUSTOM_FFMPEG}" "${FFMPEG_VENDOR}" || \
		die "Could not move the patched version of ffmpeg-sys-next into the vendor directory"
	echo "{\"package\": \"${PACKAGE_HASH}\", \"files\": {}}" > "${FFMPEG_VENDOR}/.cargo-checksum.json"
}

src_compile() {
	cargo_src_compile

	./"$(cargo_target_dir)/${PN}" --generate-completions bash > "${S}/wl-screenrec" || \
		die "Could not generate bash completion"
	./"$(cargo_target_dir)/${PN}" --generate-completions fish > "${S}/wl-screenrec.fish" || \
		die "Could not generate fish completion"
	./"$(cargo_target_dir)/${PN}" --generate-completions zsh > "${S}/_wl-screenrec" || \
		die "Could not generate zsh completion"
}

src_install() {
	cargo_src_install

	dobashcomp "${S}/wl-screenrec" || die "Could not install bash completion"
	dofishcomp "${S}/wl-screenrec.fish" || die "Could not install fish completion"
	dozshcomp "${S}/_wl-screenrec" || die "Could not install zsh completion"
}

pkg_postinst() {
	elog "You need a wayland compositor that supports the"
	elog "following unstable protocols:"
	elog "  - wlr-output-management-unstable-v1"
	elog "  - wlr-screencopy-unstable-v1"
	elog "You should also make sure you have the correct librairies"
	elog "installed. See: https://trac.ffmpeg.org/wiki/Hardware/VAAPI"
}