blob: 393b12eb7aaf40e4541565687d4b5fb80622af6f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=no
DISTUTILS_SINGLE_IMPL=1
PYTHON_COMPAT=( python3_{13..14} )
inherit distutils-r1 gnome2-utils meson optfeature xdg
DESCRIPTION="Run Windows software and games on Linux"
HOMEPAGE="
https://usebottles.com
https://github.com/bottlesdevs/Bottles
"
SRC_URI="https://github.com/bottlesdevs/Bottles/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/Bottles-${PV}"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64"
RDEPEND="
dev-libs/glib:2
dev-libs/libportal[gtk]
gui-libs/gtk:4
gui-libs/gtksourceview:5
gui-libs/libadwaita:1
dev-vcs/fvs2
$(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/icoextract[${PYTHON_USEDEP}]
dev-python/idna[${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/pyxdg[${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
dev-python/urllib3[${PYTHON_USEDEP}]
dev-python/wheel[${PYTHON_USEDEP}]
dev-python/yara-python[${PYTHON_USEDEP}]
media-gfx/vkbasalt-cli[${PYTHON_USEDEP}]
')
"
DEPEND="${RDEPEND}"
BDEPEND="
dev-libs/appstream-glib
dev-libs/glib:2
dev-util/blueprint-compiler
dev-util/desktop-file-utils
dev-util/gtk-update-icon-cache
sys-devel/gettext
test? (
$(python_gen_cond_dep '
dev-python/freezegun[${PYTHON_USEDEP}]
')
)
"
PATCHES=(
"${FILESDIR}/${PN}-64.1-dont-stub-gi.repository.patch"
"${FILESDIR}/${PN}-64.1-relax-AppStream-file-validation.patch"
"${FILESDIR}/${PN}-65.4-remove-Flatpak-related-checks.patch"
)
EPYTEST_DESELECT=(
bottles/tests/backend/integration/playtime/test_disabled_tracking.py::test_disabled_tracking_smoke
bottles/tests/backend/integration/playtime/test_wine_executor_playtime.py::test_wine_executor_emits_and_updates_totals
bottles/tests/backend/manager/test_manager.py::test_manager_cli_skips_connection_check
bottles/tests/backend/manager/test_playtime.py::test_disable_tracking_method
bottles/tests/backend/manager/test_playtime.py::test_disabled_tracker_is_noop
bottles/tests/backend/manager/test_sandbox_creation.py::test_create_bottle_rejects_profile_link_outside_prefix
bottles/tests/backend/test_network_timeouts.py::test_default_repository_fallbacks_are_commit_pinned
bottles/tests/backend/wine/test_executor.py::test_run_program_substitutes_placeholders
bottles/tests/frontend/test_cli_setup.py::test_list_components_prepares_directories
bottles/tests/frontend/test_cli_setup.py::test_new_bottle_reports_creation_failure
bottles/tests/frontend/test_cli_setup.py::test_new_bottle_waits_for_catalogs_before_installing
bottles/tests/frontend/test_common.py::test_runner_dropdown_uses_display_names_without_changing_ids
bottles/tests/frontend/test_dependency_entry.py::test_cache_lookup_is_skipped_without_installed_dependencies
bottles/tests/frontend/test_dependency_entry.py::test_cache_lookup_only_runs_offline
bottles/tests/frontend/test_dependency_entry.py::test_installed_dependency_row_shows_its_name
bottles/tests/frontend/test_details_view.py::test_unload_view_empties_the_page_stack
bottles/tests/frontend/test_drive_dialog.py::test_device_drive_shows_eject_action
bottles/tests/frontend/test_external_runner_component.py::test_external_runner_cannot_be_removed_from_bottles
bottles/tests/frontend/test_gtk_utils.py::test_full_width_string_list_factory_uses_unellipsized_labels
bottles/tests/frontend/test_steam_library.py::test_program_widget_switches_desktop_entry_action
bottles/tests/frontend/test_steam_library.py::test_program_widget_uses_library_icon
bottles/tests/frontend/test_steam_library.py::test_steam_library_widget_launches_through_steam
bottles/tests/frontend/test_steam_library.py::test_steam_program_widget_exposes_library_action
bottles/tests/frontend/test_steam_runtime.py::test_steam_runtime_row_explains_availability
bottles/tests/frontend/test_ui_language.py::test_ui_languages_match_shipped_catalogs
)
EPYTEST_IGNORE=(
bottles/tests/frontend/test_open_uri.py
bottles/tests/fvs/test_repo.py
)
EPYTEST_PLUGINS=( pytest-mock )
distutils_enable_tests pytest
src_test() {
find bottles/tests -type f -exec \
sed -i "s|/app/share/bottles/bottles.gresource|${BUILD_DIR}/bottles/frontend/ui/bottles.gresource|" {} \;
meson_src_test
distutils-r1_src_test
}
src_install() {
meson_src_install
python_fix_shebang "${ED}/usr/bin"
}
pkg_postinst() {
xdg_pkg_postinst
gnome2_schemas_update
optfeature "extracting files from .cab files" app-arch/cabextract
optfeature "7-Zip archiver support" app-arch/p7zip
optfeature "Vulkan support" dev-util/vulkan-tools
optfeature "icon/image convertion" media-gfx/imagemagick
optfeature "display information support" x11-apps/xdpyinfo
optfeature "preloading game files into memory" dev-util/vmtouch
optfeature "optimizing Linux system performance on demand" games-util/gamemode
optfeature "an efficient micro-compositor for running games" gui-wm/gamescope
optfeature "monitoring FPS, temperatures, CPU/GPU load and more" games-util/mangohud
}
pkg_postrm() {
xdg_pkg_postrm
gnome2_schemas_update
}
|