diff options
| author | root <root@alpha.trunkmasters.com> | 2026-08-12 07:05:33 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-08-12 07:05:33 -0500 |
| commit | ec560e4b511b5d7cb09adbd406de3ddb8386156f (patch) | |
| tree | 903cc6d65549c358295c50cd521f3fb699dff0b0 /games-util/bottles | |
| parent | 7a6681ba59ffb2de9993c9bda64f6cdd414990b7 (diff) | |
| download | baldeagleos-repo-ec560e4b511b5d7cb09adbd406de3ddb8386156f.tar.gz baldeagleos-repo-ec560e4b511b5d7cb09adbd406de3ddb8386156f.tar.xz baldeagleos-repo-ec560e4b511b5d7cb09adbd406de3ddb8386156f.zip | |
Adding metadata
Diffstat (limited to 'games-util/bottles')
| -rw-r--r-- | games-util/bottles/Manifest | 1 | ||||
| -rw-r--r-- | games-util/bottles/bottles-65.4.ebuild | 148 | ||||
| -rw-r--r-- | games-util/bottles/files/bottles-65.4-remove-Flatpak-related-checks.patch | 118 |
3 files changed, 267 insertions, 0 deletions
diff --git a/games-util/bottles/Manifest b/games-util/bottles/Manifest index 87ef865163ec..9cc6ab9acc7a 100644 --- a/games-util/bottles/Manifest +++ b/games-util/bottles/Manifest @@ -1 +1,2 @@ DIST bottles-64.1.tar.gz 2758708 BLAKE2B 77b8dd6c4164b832bf1a5c073f2262c96c1877b01b9e6e69212201fac58a0c427559c3b3929ae6b6c1e3bb2952245cd11f9ca89c75d80d85371b248b33dc4652 SHA512 a5a4e5d0f06eadd9461901b29a168be91627fae014dc8f6f99210d0882301e9e34cbeaf5193107e77f4b01cdf8f5d50afa692e5916889e829f080b37c9d7a2c1 +DIST bottles-65.4.tar.gz 5463050 BLAKE2B dea90e876c9ed49ac47a56787b519d367124d4ea511915f59cff60764d6dbf097cb68ae98d21b2fcfd863c9c0d868762591f6c602943ca0ec355f78052efa00c SHA512 2929beca726021eaf3ad85213629bfd75cd627c00f3cc6b4eb248586e912df18de1068ee2e9fde990460c65885c82a4cec284e9ab35c504d1c5e39ab3d3d90c1 diff --git a/games-util/bottles/bottles-65.4.ebuild b/games-util/bottles/bottles-65.4.ebuild new file mode 100644 index 000000000000..3aac1a396a18 --- /dev/null +++ b/games-util/bottles/bottles-65.4.ebuild @@ -0,0 +1,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 + 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 +} diff --git a/games-util/bottles/files/bottles-65.4-remove-Flatpak-related-checks.patch b/games-util/bottles/files/bottles-65.4-remove-Flatpak-related-checks.patch new file mode 100644 index 000000000000..c67da68d70c3 --- /dev/null +++ b/games-util/bottles/files/bottles-65.4-remove-Flatpak-related-checks.patch @@ -0,0 +1,118 @@ +From: Pavel Sobolev <contact@paveloom.dev> +Subject: [PATCH] Remove Flatpak-related checks + +Signed-off-by: Pavel Sobolev <contact@paveloom.dev> + +--- a/bottles/frontend/meson.build ++++ b/bottles/frontend/meson.build +@@ -23,12 +23,6 @@ params_file = configure_file( + configuration: conf + ) + +-fs = import('fs') +- +-if not fs.is_file('/' + '.flatpak-info') +- error('file does not exist') +-endif +- + bottles_sources = [ + '__init__.py', + 'main.py', +--- a/bottles/frontend/views/bottle_details.py ++++ b/bottles/frontend/views/bottle_details.py +@@ -713,22 +713,7 @@ class BottleView(Adw.PreferencesPage): + dialog.connect("response", execute) + dialog.show() + +- if Xdp.Portal.running_under_sandbox(): +- if self.window.settings.get_boolean("show-sandbox-warning"): +- dialog = Adw.MessageDialog.new( +- self.window, +- _("Be Aware of Sandbox"), +- _( +- "Bottles is running in a sandbox, a restricted permission environment needed to keep you safe. If the program won't run, consider moving inside the bottle (3 dots icon on the top), then launch from there." +- ), +- ) +- dialog.add_response("dismiss", _("_Dismiss")) +- dialog.connect("response", lambda *args: show_chooser()) +- dialog.present() +- else: +- show_chooser() +- else: +- show_chooser() ++ show_chooser() + + def analyze_with_eagle(self, path): + """Open the Eagle analysis view and scan the given executable.""" +--- a/bottles/frontend/views/bottle_preferences.py ++++ b/bottles/frontend/views/bottle_preferences.py +@@ -173,9 +173,6 @@ class PreferencesView(Adw.PreferencesPage): + ) + ) + +- if 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 +@@ -126,9 +126,6 @@ class BottlesBottleRow(Adw.ActionRow): + + def run_executable(self, *_args): + """Display file dialog for executable""" +- if not Xdp.Portal.running_under_sandbox(): +- return +- + def set_path(_dialog, response): + if response != Gtk.ResponseType.ACCEPT: + return +--- a/bottles/frontend/views/new_bottle_dialog.py ++++ b/bottles/frontend/views/new_bottle_dialog.py +@@ -92,7 +92,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: + return + + self.app = self.window.get_application() +--- a/bottles/frontend/windows/window.py ++++ b/bottles/frontend/windows/window.py +@@ -131,35 +131,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(): +- +- def response(dialog, response, *args): +- if response == "close": +- quit(1) +- +- body = _( +- "Bottles is only supported within a sandboxed environment. Official sources of Bottles are available at" +- ) +- download_url = "usebottles.com/download" +- +- error_dialog = Adw.AlertDialog.new( +- _("Unsupported Environment"), +- f"{body} <a href='https://{download_url}' title='https://{download_url}'>{download_url}.</a>", +- ) +- +- error_dialog.add_response("close", _("Close")) +- error_dialog.set_body_use_markup(True) +- error_dialog.connect("response", response) +- error_dialog.present(self) +- logging.error( +- _( +- "Bottles is only supported within a sandboxed format. Official sources of Bottles are available at:" +- ) +- ) +- logging.error("https://usebottles.com/download/") +- return +- + # Loading view + self.page_loading = LoadingView() |
