diff --git a/app-emulation/bottles/Manifest b/app-emulation/bottles/Manifest index 8cf8629..4da1193 100644 --- a/app-emulation/bottles/Manifest +++ b/app-emulation/bottles/Manifest @@ -1,2 +1,3 @@ DIST bottles-20211128.tar.gz 1179583 BLAKE2B f2e366a03c6d60ea43c6e89aa8ad901a28003a023f4d71b994fce8d9f499c5fa45bd93bbdf7ce7bcb4f3f909b1f7a79ed785360770eb3679a200b8c93a76e5f7 SHA512 f97203ba5e1a18241f2c29de8a8294cd962975878cf29e151fc16f07bd35c7786bc4173f1d4a372cc5d8c2659d6b33486ed10317bb65efadf9e15d57be658803 DIST bottles-20220314_p3.tar.gz 1576626 BLAKE2B afd2f5d226f9d3ea396fdbbb2dd2d0325951f5a6a76f958c557f5ae295b5e706358fd4f31030b558d1e5448d437cd8e295bd61b944a5754d4f16a32495ae1d9b SHA512 20619e772edd58384e145187cbd3651585abfba4c18c4d3db5a536c69ad76e30a3c0f686bd6c4387d7890132ea02b91c89f58bdba7516f49e04602a5fde178ab +DIST bottles-20221214_p1.tar.gz 2063797 BLAKE2B 9f0e606b6c040549bdfd1aa91f21edbebd3bb07fd9cb323f73541a23d950ec55351ecf9ad491666cc7509a6907b66d26bcbb8e1d5319bcc6d82b024dd70e04fa SHA512 2eae013a5143f5cb2b9e70b094d160c036ff099b311ecc508721fecf4369bef98f7f7e37a1071a45ccb276371acf3b92fdc1b129d6986aa80d443c6883efc7e1 diff --git a/app-emulation/bottles/bottles-20221214_p1.ebuild b/app-emulation/bottles/bottles-20221214_p1.ebuild new file mode 100644 index 0000000..65742b0 --- /dev/null +++ b/app-emulation/bottles/bottles-20221214_p1.ebuild @@ -0,0 +1,125 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..10} ) +inherit optfeature gnome2-utils python-single-r1 meson xdg + +DESCRIPTION="Easily manage WINE prefixes in a new way" +HOMEPAGE=" + https://usebottles.com/ + https://github.com/bottlesdevs/Bottles +" + +LICENSE="GPL-3+" +SLOT="0" + +if [[ "${PV}" == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/bottlesdevs/${PN^}.git" +else + year="${PV::4}" month="${PV:4:2}" day="${PV:6:2}" patch="${PV:10:1}" + MY_PV="${year}.${month}.${day}${patch:+".${patch}"}" + SRC_URI="https://github.com/bottlesdevs/${PN^}/archive/refs/tags/${MY_PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="-* ~amd64" + S="${WORKDIR}/${PN^}-${MY_PV}" +fi + +# Appstream file fails to validate, upstream issue +RESTRICT="test" +#RESTRICT="!test? ( test )" +PROPERTIES="test_network" +IUSE="test" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +# 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/pygobject[${PYTHON_USEDEP}] + dev-python/icoextract[${PYTHON_USEDEP}] + dev-python/markdown[${PYTHON_USEDEP}] + dev-python/orjson[${PYTHON_USEDEP}] + dev-python/pefile[${PYTHON_USEDEP}] + dev-python/pycurl[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + dev-python/vkbasalt-cli[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + ') +" +BDEPEND=" + ${PYTHON_DEPS} + app-text/blueprint-compiler + dev-libs/glib:2 + sys-devel/gettext + test? ( + dev-libs/appstream + dev-libs/glib + dev-util/desktop-file-utils + ) +" + +pkg_setup() { + python-single-r1_pkg_setup +} + +src_prepare() { + eapply_user + + if [[ "${PV}" == *9999* ]]; then + # https://github.com/bottlesdevs/Bottles#notices-for-package-maintainers + sed -i "s/\(.*\)/\1-$(git rev-parse --short HEAD)/" "${S}/VERSION" || die + fi +} + +src_install() { + meson_src_install + python_optimize "${D}/usr/share/bottles/" + python_fix_shebang "${D}/usr/" +} + +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 +}