diff --git a/app-emulation/bottles/Manifest b/app-emulation/bottles/Manifest index bb87b24..7255835 100644 --- a/app-emulation/bottles/Manifest +++ b/app-emulation/bottles/Manifest @@ -1 +1,2 @@ DIST bottles-51.5.tar.gz 2168592 BLAKE2B 5aee4a6db1f066cfed10262e7af5ec8ec3416583d92095c69e5bc9c8f0c17f083c2eee44dedf79b2405f442e7433b58209cb1b73f47a95ed51aacb24115c54b1 SHA512 5d238d62053d2bdb6ba17cc0e2903b45c9c87f08b0d737264a4d1efa7e10ca9d77fc722333ae91ad4929a5b742a628692601dcc915d4553815d1361d1a0a110e +DIST bottles-51.6.tar.gz 2216016 BLAKE2B f023fea67bbc862148ac7f8d9db76cb48bfd291db8999d9a8d6415e2c5b895434bb097663b957e9714617635390eabeeb990e8981eded9f05892c36f97b2cd1c SHA512 0190744b3a99d791ffbd1b7a104565c2fd1f5aa110afe329897d4b29f0f5d669a6ec145468fea85e88b2f20bb2f7f075522760fd7ced94eea1afc0667780b288 diff --git a/app-emulation/bottles/bottles-51.6.ebuild b/app-emulation/bottles/bottles-51.6.ebuild new file mode 100644 index 0000000..61d865a --- /dev/null +++ b/app-emulation/bottles/bottles-51.6.ebuild @@ -0,0 +1,124 @@ +# Copyright 2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..11} ) +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" +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 + virtual/wine + x11-apps/xdpyinfo + $(python_gen_cond_dep ' + app-arch/patool[${PYTHON_USEDEP}] + dev-python/FVS[${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/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}] + ') + ) +" + +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 +} diff --git a/app-emulation/bottles/bottles-9999.ebuild b/app-emulation/bottles/bottles-9999.ebuild index 4e08857..61d865a 100644 --- a/app-emulation/bottles/bottles-9999.ebuild +++ b/app-emulation/bottles/bottles-9999.ebuild @@ -3,8 +3,7 @@ EAPI=8 -# todo patool, icoextract -PYTHON_COMPAT=( python3_{9..10} ) +PYTHON_COMPAT=( python3_{10..11} ) inherit gnome2-utils python-single-r1 meson xdg optfeature DESCRIPTION="Run Windows software and games on Linux" @@ -24,8 +23,7 @@ SLOT="0" IUSE="test" REQUIRED_USE="${PYTHON_REQUIRED_USE}" -# tests are quite pointless as they check static files and releases are tagged with them still failing -RESTRICT="test" +RESTRICT="!test? ( test )" # Very annoying to figure out the deps # Script for getting python modules: @@ -61,16 +59,18 @@ RDEPEND=" $(python_gen_cond_dep ' app-arch/patool[${PYTHON_USEDEP}] dev-python/FVS[${PYTHON_USEDEP}] - dev-python/pygobject[${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/vkbasalt-cli[${PYTHON_USEDEP}] - dev-python/pyyaml[${PYTHON_USEDEP}] + dev-python/wheel[${PYTHON_USEDEP}] ') " BDEPEND=" @@ -79,9 +79,9 @@ BDEPEND=" dev-libs/glib:2 sys-devel/gettext test? ( - dev-libs/appstream - dev-libs/glib - dev-util/desktop-file-utils + $(python_gen_cond_dep ' + dev-python/pytest[${PYTHON_USEDEP}] + ') ) " @@ -104,6 +104,10 @@ src_install() { python_fix_shebang "${D}/usr/" } +src_test() { + epytest +} + pkg_preinst() { xdg_pkg_preinst gnome2_schemas_savelist