diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs deleted file mode 100644 index 56e3a87..0000000 --- a/.git-blame-ignore-revs +++ /dev/null @@ -1,2 +0,0 @@ -# Line out sections -53d45d3de51c20d134e62146a0ff82a3114cdeda diff --git a/.gitignore b/.gitignore index c1a85b6..421857e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,59 @@ -/Bottles*tar.gz -require*.txt +/bottles-2.0.9.7.tar.gz +/bottles-2.0.9.8.tar.gz +/bottles-2.0.9.9.tar.gz +/bottles-2.1.0.tar.gz +/bottles-2.1.0.2.tar.gz +/bottles-2.1.0.4.tar.gz +/bottles-2.1.0.5.tar.gz +/bottles-2.1.0.6.tar.gz +/bottles-2.1.0.7.tar.gz +/bottles-2.1.1.tar.gz +/bottles-2.1.2.tar.gz +/bottles-3.0.1.1.tar.gz +/bottles-3.0.2.tar.gz +/bottles-3.0.5.tar.gz +/bottles-3.0.6.tar.gz +/bottles-3.0.8.tar.gz +/bottles-3.0.9.tar.gz +/bottles-3.1.0.tar.gz +/bottles-3.1.1.tar.gz +/bottles-3.1.2.tar.gz +/bottles-3.1.3.tar.gz +/bottles-3.1.4.tar.gz +/bottles-3.1.5.tar.gz +/bottles-3.1.6.tar.gz +/bottles-3.1.7.tar.gz +/bottles-3.1.8.tar.gz +/bottles-3.1.9.tar.gz +/bottles-3.1.10.tar.gz +/bottles-3.1.11.tar.gz +/bottles-3.1.12.tar.gz +/bottles-3.1.13.tar.gz +/bottles-3.1.14.tar.gz +/bottles-3.1.15.tar.gz +/bottles-2021.7.3.tar.gz +/bottles-2021.7.14.tar.gz +/bottles-2021.7.28.tar.gz +/bottles-2021.8.14.tar.gz +/bottles-2021.8.28.tar.gz +/bottles-2021.9.14.tar.gz +/bottles-2021.9.28.tar.gz +/bottles-2021.10.14.tar.gz +/bottles-2021.10.28.tar.gz +/bottles-2021.11.14.tar.gz +/bottles-2021.11.28.tar.gz +/bottles-2021.12.14.tar.gz +/bottles-2021.12.28.tar.gz +/bottles-2022.1.14.tar.gz +/bottles-2022.1.28.tar.gz +/bottles-2022.2.14.tar.gz +/bottles-2022.2.28.tar.gz +/bottles-2022.3.14.tar.gz +/bottles-2022.3.28.tar.gz +/bottles-2022.4.14.tar.gz +/bottles-2022.4.28.tar.gz +/bottles-2022.5.2.tar.gz +/bottles-2022.5.14.tar.gz +/bottles-2022.5.28-trento-3.tar.gz +/bottles-2022.6.14-brescia-1.tar.gz +/bottles-2022.7.14-brescia-3.tar.gz diff --git a/.packit.yaml b/.packit.yaml deleted file mode 100644 index 7659433..0000000 --- a/.packit.yaml +++ /dev/null @@ -1,17 +0,0 @@ -upstream_project_url: https://github.com/bottlesdevs/Bottles -upstream_package_name: Bottles -upstream_tag_template: "{version}" -downstream_package_name: bottles - -copy_upstream_release_description: false - -jobs: - - job: pull_from_upstream - trigger: release - dist_git_branches: - - fedora-rawhide - - job: koji_build - - trigger: commit - dist_git_branches: - - fedora-all diff --git a/0001-Make-sure-Paths.bottles-exists.patch b/0001-Make-sure-Paths.bottles-exists.patch deleted file mode 100644 index 2dd5612..0000000 --- a/0001-Make-sure-Paths.bottles-exists.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 7e820512cffc4f709a2d00e341306f57d91ddda5 Mon Sep 17 00:00:00 2001 -From: Sandro -Date: Mon, 4 Mar 2024 20:28:49 +0100 -Subject: [PATCH 1/3] Make sure Paths.bottles exists - -When calling `bottles foo.exe` either from the command line or by -opening the executable from the file browser with Bottles, Bottles will -throw a FileNotFoundError if Paths.bottles does not exist. - -It seems check_app_dirs() is never called in that situation. ---- - bottles/backend/managers/manager.py | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/bottles/backend/managers/manager.py b/bottles/backend/managers/manager.py -index 5569b663..799ce8c3 100644 ---- a/bottles/backend/managers/manager.py -+++ b/bottles/backend/managers/manager.py -@@ -888,7 +888,11 @@ class Manager(metaclass=Singleton): - Check for local bottles and update the local_bottles list. - Will also mark the broken ones if the configuration file is missing - """ -- bottles = os.listdir(Paths.bottles) -+ try: -+ bottles = os.listdir(Paths.bottles) -+ except FileNotFoundError: -+ self.check_app_dirs() -+ bottles = [] - - # Empty local bottles - self.local_bottles = {} --- -2.51.0 - diff --git a/0002-Catch-AttributeError-in-set_manager.patch b/0002-Catch-AttributeError-in-set_manager.patch deleted file mode 100644 index 960b3c7..0000000 --- a/0002-Catch-AttributeError-in-set_manager.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 602f3b45095fc63728850ba1d636ac52e4a6f156 Mon Sep 17 00:00:00 2001 -From: Sandro -Date: Mon, 4 Mar 2024 21:45:51 +0100 -Subject: [PATCH 2/3] Catch AttributeError in set_manager() - -Return empty list if AttributeError is raised. ---- - bottles/frontend/windows/window.py | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -diff --git a/bottles/frontend/windows/window.py b/bottles/frontend/windows/window.py -index 26d90728..ce76ab42 100644 ---- a/bottles/frontend/windows/window.py -+++ b/bottles/frontend/windows/window.py -@@ -262,9 +262,12 @@ class BottlesWindow(Adw.ApplicationWindow): - def set_manager(result: Manager, error=None): - self.manager = result - -- tmp_runners = [ -- x for x in self.manager.runners_available if not x.startswith("sys-") -- ] -+ try: -+ tmp_runners = [ -+ x for x in self.manager.runners_available if not x.startswith("sys-") -+ ] -+ except AttributeError: -+ tmp_runners = [] - if len(tmp_runners) == 0: - self.show_onboard_view() - --- -2.51.0 - diff --git a/0003-Catch-AttributeError-when-window-is-closed.patch b/0003-Catch-AttributeError-when-window-is-closed.patch deleted file mode 100644 index eaff8a1..0000000 --- a/0003-Catch-AttributeError-when-window-is-closed.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 3001aaba2b1ea6488b69f8714171eff635043b53 Mon Sep 17 00:00:00 2001 -From: Sandro -Date: Sat, 9 Nov 2024 13:42:00 +0100 -Subject: [PATCH 3/3] Catch AttributeError when window is closed - -In certain situations Bottles crashes with: - -__quit:AttributeError: 'Bottles' object has no attribute 'win' - -This should allow Bottles to exit without error. ---- - bottles/frontend/main.py | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/bottles/frontend/main.py b/bottles/frontend/main.py -index f6a07b15..ea3d7ad1 100644 ---- a/bottles/frontend/main.py -+++ b/bottles/frontend/main.py -@@ -267,7 +267,10 @@ class Bottles(Adw.Application): - logging.info( - _("[Quit] request received."), - ) -- self.win.on_close_request() -+ try: -+ self.win.on_close_request() -+ except AttributeError: -+ pass - quit() - - @staticmethod --- -2.51.0 - diff --git a/1001-Revert-meson-Add-check-for-Flatpak.patch b/1001-Revert-meson-Add-check-for-Flatpak.patch deleted file mode 100644 index e871f2d..0000000 --- a/1001-Revert-meson-Add-check-for-Flatpak.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 43278894bd9f1277da14ac187ba7b42ece5cf483 Mon Sep 17 00:00:00 2001 -From: Sandro -Date: Sun, 8 Dec 2024 11:11:27 +0100 -Subject: [PATCH 1001/1005] Revert "meson: Add check for Flatpak" - -We still want to package Bottle as RPM for our users, despite upstream -having a very strong, almost hostile, preference for Flatpak. - -This reverts commit 6206301992c3218060761e5b574b83da485b759a. ---- - bottles/frontend/meson.build | 6 ------ - 1 file changed, 6 deletions(-) - -diff --git a/bottles/frontend/meson.build b/bottles/frontend/meson.build -index 6ff7c011..c26ea0b9 100644 ---- 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', --- -2.51.0 - diff --git a/1002-Change-issue-URL-to-Bugzilla.patch b/1002-Change-issue-URL-to-Bugzilla.patch deleted file mode 100644 index 1ee76f0..0000000 --- a/1002-Change-issue-URL-to-Bugzilla.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 6daaf8a10f2678f1325546992aa27552f0407c1e Mon Sep 17 00:00:00 2001 -From: Sandro -Date: Sun, 8 Dec 2024 11:22:42 +0100 -Subject: [PATCH 1002/1005] Change issue URL to Bugzilla - -Since upstream does not whish to receive bug reports from non-Flatpak -users, direct them to Bugzilla instead. ---- - data/com.usebottles.bottles.metainfo.xml.in.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/data/com.usebottles.bottles.metainfo.xml.in.in b/data/com.usebottles.bottles.metainfo.xml.in.in -index c380c823..fd2261d9 100644 ---- a/data/com.usebottles.bottles.metainfo.xml.in.in -+++ b/data/com.usebottles.bottles.metainfo.xml.in.in -@@ -70,7 +70,7 @@ - @APP_ID@ - - https://usebottles.com -- https://github.com/bottlesdevs/Bottles/issues -+ https://bugz.fedoraproject.org/bottles - https://docs.usebottles.com - https://usebottles.com/funding - https://hosted.weblate.org/engage/bottles --- -2.51.0 - diff --git a/1003-Display-warning-regarding-issue-tracker.patch b/1003-Display-warning-regarding-issue-tracker.patch deleted file mode 100644 index 13451be..0000000 --- a/1003-Display-warning-regarding-issue-tracker.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 96e3ec53fe9819cf23bc8369e397d12ef1f06b51 Mon Sep 17 00:00:00 2001 -From: Sandro -Date: Sun, 8 Dec 2024 12:21:57 +0100 -Subject: [PATCH 1003/1005] Display warning regarding issue tracker - -Make sure users know where to report bugs regarding the RPM package of -Bottles. Revert upstream's outright denial of usage. ---- - bottles/frontend/windows/window.py | 23 ++++++++++------------- - 1 file changed, 10 insertions(+), 13 deletions(-) - -diff --git a/bottles/frontend/windows/window.py b/bottles/frontend/windows/window.py -index ce76ab42..05c20092 100644 ---- a/bottles/frontend/windows/window.py -+++ b/bottles/frontend/windows/window.py -@@ -116,29 +116,26 @@ class BottlesWindow(Adw.ApplicationWindow): - - def response(dialog, response, *args): - if response == "close": -- quit(1) -+ return - - body = _( -- "Bottles is only supported within a sandboxed environment. Official sources of Bottles are available at" -+ "Bottles developers (upstream) only support Flatpak. Please report any issues with the RPM package in" - ) -- download_url = "usebottles.com/download" -+ bug_url = "bugz.fedoraproject.org/bottles" - - error_dialog = Adw.AlertDialog.new( -- _("Unsupported Environment"), -- f"{body} {download_url}.", -+ _("RPM Package Note"), -+ f"{body} Bugzilla." - ) - -- error_dialog.add_response("close", _("Close")) -+ error_dialog.add_response("close", _("Understood")) - 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 -+ logging.warn(_("Bottles is only supported within a sandboxed environment. Official sources of Bottles are available at:")) -+ logging.warn("https://usebottles.com/download/") -+ logging.warn(_("Please report any issues using the RPM package to:")) -+ logging.warn("https://bugz.fedoraproject.org/bottles") - - # Loading view - self.page_loading = LoadingView() --- -2.51.0 - diff --git a/1004-Do-not-require-Xdp.patch b/1004-Do-not-require-Xdp.patch deleted file mode 100644 index e0edd1f..0000000 --- a/1004-Do-not-require-Xdp.patch +++ /dev/null @@ -1,187 +0,0 @@ -From fc49b2eecc0526ac58c029a011b3fb90383f98c7 Mon Sep 17 00:00:00 2001 -From: Sandro -Date: Wed, 8 Jan 2025 09:44:32 +0100 -Subject: [PATCH 1004/1005] Do not require Xdp - -This is used for Flatpak introspection. No need to depend on Xdp in the -RPM package. We will never run in a sandboxed environment. - -Upstream uses this for checking that Bottles is running inside a Flatpak -sandbox with `running_under_sandbox`. This patch removes the check, -allowing us to drop the dependency on Xdp. - -Unfortunately, we will have to review this with every release. ---- - bottles/frontend/main.py | 2 -- - bottles/frontend/views/bottle_details.py | 17 ++---------- - bottles/frontend/views/bottle_preferences.py | 5 +--- - bottles/frontend/views/list.py | 5 +--- - bottles/frontend/views/new_bottle_dialog.py | 4 +-- - bottles/frontend/windows/window.py | 28 +------------------- - 6 files changed, 7 insertions(+), 54 deletions(-) - -diff --git a/bottles/frontend/main.py b/bottles/frontend/main.py -index ea3d7ad1..5a8ecd20 100644 ---- a/bottles/frontend/main.py -+++ b/bottles/frontend/main.py -@@ -34,8 +34,6 @@ from bottles.frontend.params import ( - gi.require_version("Gtk", "4.0") - gi.require_version("Adw", "1") - gi.require_version("GtkSource", "5") --gi.require_version("Xdp", "1.0") --# gi.require_version("XdpGtk4", "1.0") - - # ruff: noqa: E402 - from gi.repository import Gio, GLib, GObject, Adw # type: ignore -diff --git a/bottles/frontend/views/bottle_details.py b/bottles/frontend/views/bottle_details.py -index 65667ea9..b4f151ea 100644 ---- a/bottles/frontend/views/bottle_details.py -+++ b/bottles/frontend/views/bottle_details.py -@@ -21,7 +21,7 @@ from datetime import datetime - from gettext import gettext as _ - from typing import List, Optional - --from gi.repository import Gtk, Gio, Adw, Gdk, GLib, Xdp -+from gi.repository import Gtk, Gio, Adw, Gdk, GLib - - from bottles.backend.managers.backup import BackupManager - from bottles.backend.models.config import BottleConfig -@@ -436,20 +436,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", show_chooser) -- dialog.present() -- else: -- show_chooser() -+ show_chooser() - - def __backup(self, widget, backup_type): - """ -diff --git a/bottles/frontend/views/bottle_preferences.py b/bottles/frontend/views/bottle_preferences.py -index 0d450f29..eb67714a 100644 ---- a/bottles/frontend/views/bottle_preferences.py -+++ b/bottles/frontend/views/bottle_preferences.py -@@ -20,7 +20,7 @@ import os - import re - from gettext import gettext as _ - --from gi.repository import Gtk, Adw, Xdp -+from gi.repository import Gtk, Adw - - from bottles.backend.globals import ( - gamemode_available, -@@ -139,9 +139,6 @@ class PreferencesView(Adw.PreferencesPage): - self.queue = details.queue - self.details = details - -- if not gamemode_available or 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 flatpak install" -diff --git a/bottles/frontend/views/list.py b/bottles/frontend/views/list.py -index 43ab9c22..a8f6c587 100644 ---- a/bottles/frontend/views/list.py -+++ b/bottles/frontend/views/list.py -@@ -18,7 +18,7 @@ - from datetime import datetime - from gettext import gettext as _ - --from gi.repository import Gtk, GLib, Adw, Xdp -+from gi.repository import Gtk, GLib, Adw - - from bottles.backend.models.config import BottleConfig - from bottles.backend.models.result import Result -@@ -82,9 +82,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 -diff --git a/bottles/frontend/views/new_bottle_dialog.py b/bottles/frontend/views/new_bottle_dialog.py -index 6774b10b..a34957eb 100644 ---- a/bottles/frontend/views/new_bottle_dialog.py -+++ b/bottles/frontend/views/new_bottle_dialog.py -@@ -21,7 +21,7 @@ from threading import Event - from typing import Any, Optional - - from bottles.backend.state import Task, TaskManager --from gi.repository import Gtk, Adw, Pango, Gio, Xdp, GObject, GLib -+from gi.repository import Gtk, Adw, Pango, Gio, GObject, GLib - - from bottles.backend.models.config import BottleConfig - from bottles.backend.utils.threading import RunAsync -@@ -86,7 +86,7 @@ class BottlesNewBottleDialog(Adw.Dialog): - super().__init__(**kwargs) - # 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() -diff --git a/bottles/frontend/windows/window.py b/bottles/frontend/windows/window.py -index 05c20092..f9625016 100644 ---- a/bottles/frontend/windows/window.py -+++ b/bottles/frontend/windows/window.py -@@ -21,7 +21,7 @@ import webbrowser - from gettext import gettext as _ - from typing import Optional - --from gi.repository import Gtk, GLib, Gio, Adw, GObject, Gdk, Xdp -+from gi.repository import Gtk, GLib, Gio, Adw, GObject, Gdk - - from bottles.backend.globals import Paths - from bottles.backend.health import HealthChecker -@@ -111,32 +111,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": -- return -- -- body = _( -- "Bottles developers (upstream) only support Flatpak. Please report any issues with the RPM package in" -- ) -- bug_url = "bugz.fedoraproject.org/bottles" -- -- error_dialog = Adw.AlertDialog.new( -- _("RPM Package Note"), -- f"{body} Bugzilla." -- ) -- -- error_dialog.add_response("close", _("Understood")) -- error_dialog.set_body_use_markup(True) -- error_dialog.connect("response", response) -- error_dialog.present(self) -- logging.warn(_("Bottles is only supported within a sandboxed environment. Official sources of Bottles are available at:")) -- logging.warn("https://usebottles.com/download/") -- logging.warn(_("Please report any issues using the RPM package to:")) -- logging.warn("https://bugz.fedoraproject.org/bottles") -- - # Loading view - self.page_loading = LoadingView() - --- -2.51.0 - diff --git a/1005-Search-for-system-installed-vkBasalt.patch b/1005-Search-for-system-installed-vkBasalt.patch deleted file mode 100644 index 2eea87f..0000000 --- a/1005-Search-for-system-installed-vkBasalt.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 9874f7e6d9289c1dd398c26eb9f8c585412aacff Mon Sep 17 00:00:00 2001 -From: Sandro -Date: Sat, 8 Nov 2025 12:06:54 +0100 -Subject: [PATCH 1005/1005] Search for system installed vkBasalt - -Also look in /usr/local in case a local install is present. ---- - bottles/backend/globals.py | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/bottles/backend/globals.py b/bottles/backend/globals.py -index 488acea3..d6a6a466 100644 ---- a/bottles/backend/globals.py -+++ b/bottles/backend/globals.py -@@ -52,9 +52,9 @@ class Paths: - @staticmethod - def is_vkbasalt_available(): - vkbasalt_paths = [ -- "/usr/lib/extensions/vulkan/vkBasalt/etc/vkBasalt", -- "/usr/local", -- "/usr/share/vkBasalt", -+ "/usr/lib64/vkbasalt/libvkbasalt.so", -+ "/usr/local/lib64/libvkbasalt.so", -+ "/usr/local/lib64/vkbasalt/libvkbasalt.so", - ] - for path in vkbasalt_paths: - if os.path.exists(path): --- -2.51.0 - diff --git a/README.packit b/README.packit deleted file mode 100644 index 2511bf4..0000000 --- a/README.packit +++ /dev/null @@ -1,3 +0,0 @@ -This repository is maintained by packit. -https://packit.dev/ -The file was generated using packit 1.12.0. diff --git a/bottles.spec b/bottles.spec index 5973e13..4be00b8 100644 --- a/bottles.spec +++ b/bottles.spec @@ -1,130 +1,81 @@ +%global uuid pm.mirko.%{name} +%global suf brescia-3 + Name: bottles -Epoch: 2 -Version: 52.0 +Version: 2022.7.14 Release: %autorelease -Summary: Run Windows in a Bottle +BuildArch: noarch -%global forgeurl https://github.com/bottlesdevs/Bottles -%global tag %{version} -%forgemeta +License: GPLv3+ +Summary: Easily manage Wine prefix in a new way +URL: https://github.com/bottlesdevs/Bottles +Source0: %{url}/archive/%{version}-%{suf}/%{name}-%{version}-%{suf}.tar.gz -# The following two files are licensed as MIT: -# bottles/backend/models/vdict.py -# bottles/backend/utils/vdf.py -License: GPL-3.0-or-later AND MIT -URL: %{forgeurl} -Source0: %{forgesource} -# Make sure bottles dir exists when opening executable directly -# https://bugzilla.redhat.com/show_bug.cgi?id=2249922 -# https://bugzilla.redhat.com/show_bug.cgi?id=2257180 -Patch: 0001-Make-sure-Paths.bottles-exists.patch -# Don't fail on AttributeError -# https://bugzilla.redhat.com/show_bug.cgi?id=2260135 -Patch: 0002-Catch-AttributeError-in-set_manager.patch -# Catch AttributeError when closing window -# https://bugzilla.redhat.com/show_bug.cgi?id=2313567 -Patch: 0003-Catch-AttributeError-when-window-is-closed.patch -# Downstream only patches counteracting upstream's enforcement of Flatpak -Patch: 1001-Revert-meson-Add-check-for-Flatpak.patch -Patch: 1002-Change-issue-URL-to-Bugzilla.patch -Patch: 1003-Display-warning-regarding-issue-tracker.patch -Patch: 1004-Do-not-require-Xdp.patch +BuildRequires: desktop-file-utils +BuildRequires: libappstream-glib +BuildRequires: meson +BuildRequires: python3 +BuildRequires: python3-gobject -BuildArch: noarch - -BuildRequires: desktop-file-utils -BuildRequires: libappstream-glib -BuildRequires: meson -BuildRequires: python3-devel -BuildRequires: pkgconfig(glib-2.0) -BuildRequires: pkgconfig(gtk4) -BuildRequires: pkgconfig(libadwaita-1) >= 1.1.99 -BuildRequires: blueprint-compiler - -Requires: cabextract -Requires: glibc(x86-32) %dnl # https://github.com/bottlesdevs/Bottles/issues/601#issuecomment-936772762 -Requires: gtk4 -Requires: gtksourceview5 -Requires: hicolor-icon-theme -Requires: libadwaita >= 1.1.99 -Requires: p7zip p7zip-plugins %dnl # needed by the dependencies manager -Requires: patool -Requires: xdpyinfo %dnl # needed by the display util -Requires: ImageMagick %dnl # https://bugzilla.redhat.com/show_bug.cgi?id=2227538 - -# Use `generate_requires.sh` to generate Python runtime dependencies -# using upstream's `requirements.txt`, which is included in the tarball, -# but not used by Meson. -Requires: python3dist(pyyaml) -Requires: python3dist(pycurl) -Requires: python3dist(chardet) -Requires: python3dist(requests) -Requires: python3dist(markdown) -Requires: python3dist(icoextract) -Requires: python3dist(patool) -Requires: python3dist(pathvalidate) -Requires: python3dist(fvs) -Requires: python3dist(orjson) -Requires: python3dist(pycairo) -Requires: python3dist(pygobject) -Requires: python3dist(charset-normalizer) -Requires: python3dist(idna) -Requires: python3dist(urllib3) -Requires: python3dist(certifi) -Requires: python3dist(pefile) - -# Requirements not listed in upstream's `requirements.txt` -Requires: python3dist(vkbasalt-cli) - -# Optional dependencies which may be required for running 32-bit bottles. -# We recommend those in order to allow users to opt out. -Recommends: freetype.i686 -Recommends: mesa-dri-drivers.i686 -Recommends: mesa-filesystem.i686 -Recommends: mesa-libEGL.i686 -Recommends: mesa-libgbm.i686 -Recommends: mesa-libglapi.i686 -Recommends: mesa-libGL.i686 -Recommends: mesa-libGLU.i686 -Recommends: mesa-va-drivers.i686 -Recommends: mesa-vulkan-drivers.i686 -Recommends: SDL2.i686 -Recommends: vulkan-loader.i686 - -# Optional dependencies that will provide extra features in Bottles -# when installed. -Recommends: gamemode -Recommends: gamescope -Recommends: mangohud -# Since this pulls in OBS Studio and is not generally required for gaming -# setups, we only suggest. -Suggests: obs-studio-plugin-vkcapture -Recommends: vkBasalt -Recommends: vmtouch +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(gtk4) +BuildRequires: pkgconfig(libadwaita-1) >= 1.1.99 +Requires: cabextract +Requires: glibc(x86-32) %dnl # https://github.com/bottlesdevs/Bottles/issues/601#issuecomment-936772762 +Requires: gtk4 +Requires: gtksourceview5 +Requires: hicolor-icon-theme +Requires: libadwaita >= 1.1.99 +Requires: p7zip p7zip-plugins %dnl # needed by the dependencies manager +Requires: patool +Requires: python3-gobject +Requires: python3-icoextract %dnl # icons support +Requires: python3-markdown +Requires: python3-patool +Requires: python3-pefile %dnl # icons support +Requires: python3-pyyaml +Requires: python3-requests %dnl # needed by the download manager +Requires: python3-urllib3 %dnl # needed by the download manager +Requires: xdpyinfo %dnl # needed by the display util %description -Bottles lets you run Windows software on Linux, such as applications -and games. It introduces a workflow that helps you organize by -categorizing each software to your liking. Bottles provides several -tools and integrations to help you manage and optimize your -applications. +Easily manage Wine prefix in a new way! (Run Windows software and games on +Linux). Features: -- Use pre-configured environments as a base -- Change runners for any bottle -- Various optimizations and options for gaming -- Repair in case software or bottle is broken -- Install various known dependencies -- Integrated task manager to manage and monitor processes -- Backup and restore + * Create bottles based on environments (a set of rule and dependencies for + better software compatibility) + * Access to a customizable environment for all your experiments + * Run every executable (.exe/.msi) in your bottles, using the context menu + in your file manager + * Integrated management and storage for executable file arguments + * Support for custom environment variables + * Simplified DLL overrides + * On-the-fly runner change for any Bottle + * Various optimizations for better gaming performance (esync, fsync, dxvk, + cache, shader compiler, offload .. and much more.) + * Tweak different wine prefix settings, without leaving Bottles + * Automated dxvk installation + * Automatic installation and management of Wine and Proton runners + * System for checking runner updates for the bottle and automatic repair in + case of breakage + * Integrated Dependencies installer with compatibility check based on a + community-driver repository + * Detection of installed programs + * Integrated Task manager for wine processes + * Easy access to ProtonDB and WineHQ for support + * Configurations update system across Bottles versions + * Backup bottles as configuration file or full archive + * Import backup archive + * Importer from Bottles v1 (and other wineprefix manager) + * Bottles versioning (experimental) + * .. and much more that you can find by installing Bottles! + %prep -%forgeautosetup -p1 - -# F40 only has meson 1.4.1. Lower requirement. -sed -r -i 's/(meson_version.*)1\.[0-9]\.[0-9]/\11.4.1/' meson.build +%autosetup -n Bottles-%{version}-%{suf} %build @@ -143,7 +94,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop %files -f %{name}.lang -%license COPYING.md +%license LICENSE %doc README.md %{_bindir}/%{name} %{_bindir}/%{name}-cli diff --git a/generate_requires.sh b/generate_requires.sh deleted file mode 100755 index 99fe46e..0000000 --- a/generate_requires.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -SPEC_FILE="bottles.spec" -REQUIREMENTS_FILE="requirements.txt" -REQUIREMENTS_SPEC="requires.txt" -# Remove file(s) from previous run -[ -f ${REQUIREMENTS_SPEC} ] && rm -vf ${REQUIREMENTS_SPEC} -[ -f ${REQUIREMENTS_FILE} ] && rm -vf ${REQUIREMENTS_FILE} -# Make sure sources are present -spectool -gSf ${SPEC_FILE} 2>/dev/null -TARBALL="$(rpmspec --parse bottles.spec 2>/dev/null | grep Source0 | sed -r 's/^.*(Bottles.*)/\1/')" -TAR_REQ_FILE="$(tar tzf ${TARBALL} | grep ${REQUIREMENTS_FILE})" -tar -x ${TAR_REQ_FILE} --strip-components=1 -zf ${TARBALL} - -# Remove version pinning from listed dependencies -# Require `requests`. The `use_chardet_on_py3` extra is not packaged in -# Fedora, but we have the required version of `chardet` present. -# Remove `wheel` from list - not a runtime requirement. -sed -r -i \ - -e 's/(^.*)==.*$/\1/g' \ - -e 's/(^requests)\[.*\]/\1/' \ - -e '/wheel/d' \ - requirements.txt - -# Transform requirements for inclusion in spec file -for REQ in $(grep -v '^#' ${REQUIREMENTS_FILE}); do - echo "Requires: python3dist(${REQ@L})" >> ${REQUIREMENTS_SPEC} -done diff --git a/sources b/sources index 3837af0..df71b71 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (Bottles-52.0.tar.gz) = d133cf07a224c7f1848786f7b6f90e9e834fec7e855e5c48b4413657a7566f148f8ceece958a2cce575ae5ba66dea0963c19a79a893900b88c0c6af6c8bb1c41 +SHA512 (bottles-2022.7.14-brescia-3.tar.gz) = 787d1e73554bf22e2614d31fd3692b97de25483ecd7929d59407053cdcbe1fd5cc66f0dd52d92bce0dedad2b6d1f9e4b90ef631c18273f12f86a9c73ed6bab0c