app-emulation/bottles: add 51.10

Signed-off-by: Alfred Wingate <parona@protonmail.com>
This commit is contained in:
Alfred Wingate 2023-12-23 23:20:15 +02:00
parent 6250bf189c
commit 3d2e70d3e2
No known key found for this signature in database
GPG Key ID: A12750536B5E7010
3 changed files with 159 additions and 4 deletions

View File

@ -1 +1,2 @@
DIST bottles-51.10.tar.gz 2264902 BLAKE2B b299ec05212a7a42dba97e257e4a55b31aeffd57f49daa162b96b8c5790ba806892d728baaa5536273ee6e5387fc6b3cb2da86036445ac8d79590e87ffc2da61 SHA512 a5d27f70d580cc115f797370437a41a0eeb7335e8278618415f7ba7268aae8102ba9ee8417723a731f677b7bf346773e5851f9021ff12bdec4305b436e589c24
DIST bottles-51.9.tar.gz 2218393 BLAKE2B dcc372b9ba0cc999bf5918e8c620671aa47e0f6615fcc7b7b3899bbbc7c91bfdd0b0c91f4475bc58b29f44bed051576006dc63b20b826c5820fd70879ac6b049 SHA512 81a77f0b02e2ea775bef5591d6be296372544a91fb92c4f39c3cab310887f88d8d9abd1d4b4854dcf8837bd2dc3f6d54c0693b55c60b60d6901e68dda82da1b4 DIST bottles-51.9.tar.gz 2218393 BLAKE2B dcc372b9ba0cc999bf5918e8c620671aa47e0f6615fcc7b7b3899bbbc7c91bfdd0b0c91f4475bc58b29f44bed051576006dc63b20b826c5820fd70879ac6b049 SHA512 81a77f0b02e2ea775bef5591d6be296372544a91fb92c4f39c3cab310887f88d8d9abd1d4b4854dcf8837bd2dc3f6d54c0693b55c60b60d6901e68dda82da1b4

View File

@ -0,0 +1,154 @@
# Copyright 2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..12} )
inherit gnome2-utils python-single-r1 meson xdg optfeature
DESCRIPTION="Run Windows software and games on Linux"
HOMEPAGE="https://usebottles.com/"
if [[ "${PV}" == "9999" ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/bottlesdevs/Bottles/"
else
SRC_URI="https://github.com/bottlesdevs/Bottles/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/Bottles-${PV}"
KEYWORDS="~amd64"
fi
LICENSE="GPL-3"
SLOT="0"
IUSE="test llvm-libunwind"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RESTRICT="!test? ( test )"
# Very annoying to figure out the deps
# Script for getting python modules:
# https://gitlab.com/Parona/my-scripts/-/blob/master/scripts/python_deps.sh
# Runtime programs needed can be quickly found with:
# grep -r "shutil.which"
# But look at context to gauge if they are optional or not
#
# BDPEPEND dependencies can be thankfully gathered from the meson.build files
# DEPEND are instrospection files which can be found as such
# find . -name "*.blp" -exec grep -Eh "^using " {} + | sed 's/using \([A-Za-z]*\) \([0-9.]*\);/\1-\2.typelib/'
# And in similar vein find runtime required introspection files, similar deal with getting typelib file as above
# grep -r "gi.require_version
# vkbasalt could be optional but vkbasalt-cli isnt
# It could work without wine but(!) it still requires all the runtime dependencies for wine
# so easier to depend on wine to get it for free
DEPEND="
gui-libs/gtk:4[introspection]
gui-libs/libadwaita[introspection]
"
RDEPEND="
${PYTHON_DEPS}
${DEPEND}
app-arch/cabextract
app-arch/p7zip
gui-libs/gtksourceview[introspection]
media-gfx/imagemagick
>=sys-libs/glibc-2.32
x11-apps/xdpyinfo
llvm-libunwind? (
|| (
app-emulation/wine-vanilla[X,llvm-libunwind]
app-emulation/wine-staging[X,llvm-libunwind]
)
)
!llvm-libunwind? (
|| (
app-emulation/wine-vanilla[X,-llvm-libunwind]
app-emulation/wine-staging[X,-llvm-libunwind]
app-emulation/wine-proton[X(+),-llvm-libunwind]
)
)
$(python_gen_cond_dep '
app-arch/patool[${PYTHON_USEDEP}]
dev-python/certifi[${PYTHON_USEDEP}]
dev-python/chardet[${PYTHON_USEDEP}]
dev-python/charset-normalizer[${PYTHON_USEDEP}]
dev-python/FVS[${PYTHON_USEDEP}]
dev-python/idna[${PYTHON_USEDEP}]
dev-python/icoextract[${PYTHON_USEDEP}]
dev-python/markdown[${PYTHON_USEDEP}]
dev-python/orjson[${PYTHON_USEDEP}]
dev-python/pathvalidate[${PYTHON_USEDEP}]
dev-python/pefile[${PYTHON_USEDEP}]
dev-python/pycairo[${PYTHON_USEDEP}]
dev-python/pycurl[${PYTHON_USEDEP}]
dev-python/pygobject[${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
dev-python/urllib3[${PYTHON_USEDEP}]
dev-python/vkbasalt-cli[${PYTHON_USEDEP}]
dev-python/wheel[${PYTHON_USEDEP}]
')
"
BDEPEND="
${PYTHON_DEPS}
dev-util/blueprint-compiler
dev-libs/glib:2
sys-devel/gettext
test? (
$(python_gen_cond_dep '
dev-python/pytest[${PYTHON_USEDEP}]
')
)
"
EPYTEST_DESELECT=(
# tests that check execution time are flaky in the right circumstances
# (like compiling llvm at the same time type circumstance)
"bottles/tests/backend/state/test_events.py::test_set_reset"
"bottles/tests/backend/state/test_events.py::test_simple_event"
"bottles/tests/backend/state/test_events.py::test_wait_after_done_event"
)
pkg_setup() {
python-single-r1_pkg_setup
}
src_configure() {
if [[ "${PV}" == "9999" ]]; then
local emesonargs=(
-Ddevel=true
)
fi
meson_src_configure
}
src_install() {
meson_src_install
python_optimize "${D}/usr/share/bottles/"
python_fix_shebang "${D}/usr/"
}
src_test() {
epytest
}
pkg_preinst() {
xdg_pkg_preinst
gnome2_schemas_savelist
}
pkg_postinst() {
xdg_pkg_postinst
gnome2_schemas_update
optfeature "gamemode support" games-util/gamemode
optfeature "gamescope support" games-util/gamescope
optfeature "vmtouch support" dev-utils/vmtouch
#optfeature "MangoHub support" games-util/mangohub
#optfeature "obs-vkcapture support" media-video/obs-vkcapture
if use llvm-libunwind; then
ewarn "When using llvm-libunwind useflag all wine version besides wine-vanilla and wine-staging are broken"
ewarn "(including the runners downloaded from bottles itself)"
ewarn "So when using llvm-libunwind system wide is recommended to stick only to system wine mentioned above."
fi
}

View File

@ -146,9 +146,9 @@ pkg_postinst() {
optfeature "vmtouch support" dev-utils/vmtouch optfeature "vmtouch support" dev-utils/vmtouch
#optfeature "MangoHub support" games-util/mangohub #optfeature "MangoHub support" games-util/mangohub
#optfeature "obs-vkcapture support" media-video/obs-vkcapture #optfeature "obs-vkcapture support" media-video/obs-vkcapture
if ! use llvm-libunwind; then if use llvm-libunwind; then
ewarn "When using llvm-libunwind useflag all wine version besides\n" ewarn "When using llvm-libunwind useflag all wine version besides wine-vanilla and wine-staging are broken"
ewarn "wine-vanilla and wine-staging are broken (including the runner dowloading from bottles itself)\n" ewarn "(including the runners downloaded from bottles itself)"
ewarn "So when using llvm-libunwind system wide is recommended to stick only to system wine mentioned above\n" ewarn "So when using llvm-libunwind system wide is recommended to stick only to system wine mentioned above."
fi fi
} }