126 lines
3.4 KiB
Bash
126 lines
3.4 KiB
Bash
|
# 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
|
||
|
}
|