summaryrefslogtreecommitdiff
path: root/games-util
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-08-21 19:49:14 -0500
committerroot <root@alpha.trunkmasters.com>2026-08-21 19:49:14 -0500
commite96e88fa0d43a67ac8a6eda8bc6819000d1604f4 (patch)
tree60e8906df2f4fcee674fd28f7c16c33fee5dc1b9 /games-util
parentc9507d3d8ce89d8bdf4e6a04c8c7511523082acc (diff)
downloadbaldeagleos-repo-e96e88fa0d43a67ac8a6eda8bc6819000d1604f4.tar.gz
baldeagleos-repo-e96e88fa0d43a67ac8a6eda8bc6819000d1604f4.tar.xz
baldeagleos-repo-e96e88fa0d43a67ac8a6eda8bc6819000d1604f4.zip
Adding metadata
Diffstat (limited to 'games-util')
-rw-r--r--games-util/bottles/Manifest2
-rw-r--r--games-util/bottles/bottles-64.1.ebuild121
-rw-r--r--games-util/bottles/bottles-66.6-r1.ebuild173
-rw-r--r--games-util/bottles/files/bottles-66.6-r1-use-unresolved-path-to-umu-run.patch17
-rw-r--r--games-util/bottles/files/bottles-66.6-remove-Flatpak-related-checks.patch (renamed from games-util/bottles/files/bottles-64.1-remove-Flatpak-related-checks.patch)33
5 files changed, 209 insertions, 137 deletions
diff --git a/games-util/bottles/Manifest b/games-util/bottles/Manifest
index 9cc6ab9acc7a..d3ede5bf1a42 100644
--- a/games-util/bottles/Manifest
+++ b/games-util/bottles/Manifest
@@ -1,2 +1,2 @@
-DIST bottles-64.1.tar.gz 2758708 BLAKE2B 77b8dd6c4164b832bf1a5c073f2262c96c1877b01b9e6e69212201fac58a0c427559c3b3929ae6b6c1e3bb2952245cd11f9ca89c75d80d85371b248b33dc4652 SHA512 a5a4e5d0f06eadd9461901b29a168be91627fae014dc8f6f99210d0882301e9e34cbeaf5193107e77f4b01cdf8f5d50afa692e5916889e829f080b37c9d7a2c1
DIST bottles-65.4.tar.gz 5463050 BLAKE2B dea90e876c9ed49ac47a56787b519d367124d4ea511915f59cff60764d6dbf097cb68ae98d21b2fcfd863c9c0d868762591f6c602943ca0ec355f78052efa00c SHA512 2929beca726021eaf3ad85213629bfd75cd627c00f3cc6b4eb248586e912df18de1068ee2e9fde990460c65885c82a4cec284e9ab35c504d1c5e39ab3d3d90c1
+DIST bottles-66.6.tar.gz 5563577 BLAKE2B 9925976c9bb4d9a06656443e37117aabd4e82c08cf8c13f8b4e7232e4de20ade19dba6068fe7e312a89dc7a13802b919ed092cdc504db58cc4018fad99b92200 SHA512 a56e21f31ff6af1216b80e2b28fcc3f85e2398b47ce57f0bc793e93aff5259331f05bbaf577fd8ba1cc229670cfeb037381a60cd85815b3497f6146ab29e15eb
diff --git a/games-util/bottles/bottles-64.1.ebuild b/games-util/bottles/bottles-64.1.ebuild
deleted file mode 100644
index f439b15a20f0..000000000000
--- a/games-util/bottles/bottles-64.1.ebuild
+++ /dev/null
@@ -1,121 +0,0 @@
-# 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
- 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}-64.1-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/wine/test_executor.py::test_run_program_substitutes_placeholders
-)
-
-EPYTEST_PLUGINS=( pytest-mock )
-distutils_enable_tests pytest
-
-src_test() {
- 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
-}
diff --git a/games-util/bottles/bottles-66.6-r1.ebuild b/games-util/bottles/bottles-66.6-r1.ebuild
new file mode 100644
index 000000000000..0a0fc938d84c
--- /dev/null
+++ b/games-util/bottles/bottles-66.6-r1.ebuild
@@ -0,0 +1,173 @@
+# 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}-66.6-remove-Flatpak-related-checks.patch"
+ "${FILESDIR}/${PN}-66.6-r1-use-unresolved-path-to-umu-run.patch"
+)
+
+EPYTEST_DESELECT=(
+ bottles/tests/backend/integration/playtime/test_aggregation.py::test_different_programs_separate_rows
+ bottles/tests/backend/integration/playtime/test_aggregation.py::test_same_program_aggregates_into_one_row
+ bottles/tests/backend/integration/playtime/test_disabled_tracking.py::test_disabled_tracking_smoke
+ bottles/tests/backend/integration/playtime/test_failure_run.py::test_failure_run_marks_unknown_and_updates_totals
+ bottles/tests/backend/integration/playtime/test_failure_run.py::test_multiple_failures_different_bottles
+ bottles/tests/backend/integration/playtime/test_failure_run.py::test_multiple_failures_same_bottle_different_programs
+ bottles/tests/backend/integration/playtime/test_playtime_signals.py::test_signals_flow_success
+ bottles/tests/backend/integration/playtime/test_playtime_signals.py::test_signals_flow_unknown_failure
+ bottles/tests/backend/integration/playtime/test_recovery.py::test_cli_manager_init_does_not_recover_live_sessions
+ bottles/tests/backend/integration/playtime/test_recovery.py::test_recovery_different_bottles
+ bottles/tests/backend/integration/playtime/test_recovery.py::test_recovery_same_bottle_different_programs
+ bottles/tests/backend/integration/playtime/test_recovery.py::test_recovery_smoke
+ bottles/tests/backend/integration/playtime/test_schema_meta.py::test_schema_meta_smoke
+ bottles/tests/backend/integration/playtime/test_successful_run.py::test_success_multiple_apps_two_same_bottle_one_other
+ bottles/tests/backend/integration/playtime/test_successful_run.py::test_successful_run_finalizes_and_updates_totals
+ bottles/tests/backend/integration/playtime/test_uniqueness_retry.py::test_uniqueness_retry_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_bottle_details.py::test_flatpak_system_runner_uses_builtin_label
+ bottles/tests/frontend/test_bottle_details.py::test_missing_runner_dialog_waits_for_versioning_upgrade
+ 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_dependency_row_activates_batch_selection
+ bottles/tests/frontend/test_dependency_entry.py::test_installed_dependency_actions_use_recorded_uninstaller
+ bottles/tests/frontend/test_dependency_entry.py::test_installed_dependency_row_shows_its_name
+ bottles/tests/frontend/test_dependency_entry.py::test_installed_dependency_without_uninstaller_cannot_be_removed
+ 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_library_entry_resolves_steam_game_without_wine_program
+ bottles/tests/frontend/test_steam_library.py::test_program_widget_extracts_its_own_icon
+ 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/frontend/test_umu_ui.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
+ optfeature "UMU game prefixes" games-util/umu-launcher
+}
+
+pkg_postrm() {
+ xdg_pkg_postrm
+ gnome2_schemas_update
+}
diff --git a/games-util/bottles/files/bottles-66.6-r1-use-unresolved-path-to-umu-run.patch b/games-util/bottles/files/bottles-66.6-r1-use-unresolved-path-to-umu-run.patch
new file mode 100644
index 000000000000..bd5a0ea6445a
--- /dev/null
+++ b/games-util/bottles/files/bottles-66.6-r1-use-unresolved-path-to-umu-run.patch
@@ -0,0 +1,17 @@
+From: Pavel Sobolev <contact@paveloom.dev>
+Subject: [PATCH] Use unresolved path to `umu-run`
+
+Otherwise, it will try to run `python-exec2` directly.
+
+Signed-off-by: Pavel Sobolev <contact@paveloom.dev>
+--- a/bottles/backend/umu/provider.py
++++ b/bottles/backend/umu/provider.py
+@@ -44,7 +44,7 @@ class UmuProvider:
+
+ def _inspect(self, path: Path, source: UmuProviderSource) -> UmuInstallation:
+ try:
+- resolved = path.expanduser().resolve(strict=True)
++ resolved = path.expanduser().absolute()
+ except OSError as error:
+ raise UmuProviderError(f"UMU launcher does not exist: {path}") from error
+ if not resolved.is_file() or not os.access(resolved, os.X_OK):
diff --git a/games-util/bottles/files/bottles-64.1-remove-Flatpak-related-checks.patch b/games-util/bottles/files/bottles-66.6-remove-Flatpak-related-checks.patch
index 55469b0ed4a2..577efb628036 100644
--- a/games-util/bottles/files/bottles-64.1-remove-Flatpak-related-checks.patch
+++ b/games-util/bottles/files/bottles-66.6-remove-Flatpak-related-checks.patch
@@ -20,7 +20,7 @@ Signed-off-by: Pavel Sobolev <contact@paveloom.dev>
'main.py',
--- a/bottles/frontend/views/bottle_details.py
+++ b/bottles/frontend/views/bottle_details.py
-@@ -692,22 +692,7 @@ class BottleView(Adw.PreferencesPage):
+@@ -727,22 +727,7 @@ class BottleView(Adw.PreferencesPage):
dialog.connect("response", execute)
dialog.show()
@@ -46,22 +46,23 @@ Signed-off-by: Pavel Sobolev <contact@paveloom.dev>
"""Open the Eagle analysis view and scan the given executable."""
--- a/bottles/frontend/views/bottle_preferences.py
+++ b/bottles/frontend/views/bottle_preferences.py
-@@ -141,7 +141,7 @@ class PreferencesView(Adw.PreferencesPage):
- self.queue = details.queue
- self.details = details
-
-- if not gamemode_available or not Xdp.Portal.running_under_sandbox():
-+ if not gamemode_available:
- return
+@@ -185,9 +185,6 @@ class PreferencesView(Adw.PreferencesPage):
+ )
+ )
+- if not is_cpak() and not Xdp.Portal.running_under_sandbox():
+- return
+-
_not_available = _("This feature is unavailable on your system.")
+ _flatpak_not_available = _("{} To add this feature, please run").format(
+ _not_available
--- a/bottles/frontend/views/list.py
+++ b/bottles/frontend/views/list.py
-@@ -83,9 +83,6 @@ class BottlesBottleRow(Adw.ActionRow):
+@@ -130,9 +130,6 @@ class BottlesBottleRow(Adw.ActionRow):
def run_executable(self, *_args):
"""Display file dialog for executable"""
-- if not Xdp.Portal.running_under_sandbox():
+- if not is_cpak() and not Xdp.Portal.running_under_sandbox():
- return
-
def set_path(_dialog, response):
@@ -69,23 +70,25 @@ Signed-off-by: Pavel Sobolev <contact@paveloom.dev>
return
--- a/bottles/frontend/views/new_bottle_dialog.py
+++ b/bottles/frontend/views/new_bottle_dialog.py
-@@ -86,7 +86,7 @@ class BottlesNewBottleDialog(Adw.Dialog):
- super().__init__(**kwargs)
+@@ -93,9 +93,7 @@ class BottlesNewBottleDialog(Adw.Dialog):
+ )
# common variables and references
self.window = GtkUtils.get_parent_window()
-- if not self.window or not Xdp.Portal.running_under_sandbox():
+- if not self.window or (
+- not is_cpak() and not Xdp.Portal.running_under_sandbox()
+- ):
+ if not self.window:
return
self.app = self.window.get_application()
--- a/bottles/frontend/windows/window.py
+++ b/bottles/frontend/windows/window.py
-@@ -125,35 +125,6 @@ class BottlesWindow(Adw.ApplicationWindow):
+@@ -143,35 +143,6 @@ class BottlesWindow(Adw.ApplicationWindow):
manager = Adw.StyleManager.get_default()
manager.set_color_scheme(Adw.ColorScheme.FORCE_DARK)
- # Be VERY explicit that non-sandboxed environments are unsupported
-- if not Xdp.Portal.running_under_sandbox():
+- if not os.environ.get("CPAK_CONTAINER_ID") and not Xdp.Portal.running_under_sandbox():
-
- def response(dialog, response, *args):
- if response == "close":