Compare commits

..

15 commits

Author SHA1 Message Date
Sandro
b252aa1495
Rebase patches
Drop patch that has been merged upstream.
Add patch reverting adoption of AdwWrapBox since it needs at least
libadwaita 1.7.

[skip changelog]
2025-03-22 17:32:35 +01:00
Packit
635db2c02f
Update to 51.21 upstream release
- Resolves: rhbz#2338098

Upstream tag: 51.21
Upstream commit: c0d6737a

Commit authored by Packit automation (https://packit.dev/)
2025-03-22 17:32:28 +01:00
Sandro
98a0351048
Do not require Xdp (RHBZ#2336311)
Xdp is used for Flatpak introspection. Since we are distributing this as
an RPM package, we do not need to check for Flatpak environment.
2025-01-08 10:32:30 +01:00
Sandro
8d2e9ed40c
Lower required Meson version
F40 currently has 1.4.1 and probably won't see an update.

[skip changelog]
2024-12-19 09:44:49 +01:00
Sandro
4b07b383c8
Update to 51.17 (RHBZ#2332212) 2024-12-19 09:44:49 +01:00
Sandro
48aba414ba
Add patches reverting denial of service
Upstream decided to slam the door shut for non Flatpak users. This will
pry it open again, allowing us to continue shipping Bottles as RPM.

[skip changelog]
2024-12-19 09:44:49 +01:00
Sandro
13922b6965
Group forge macros
[skip changelog]
2024-12-19 09:44:49 +01:00
Packit
a47f19c525
Update to 51.16 upstream release
- Resolves: rhbz#2332212

Upstream tag: 51.16
Upstream commit: d5f626ed

Commit authored by Packit automation (https://packit.dev/)
2024-12-19 09:44:43 +01:00
Sandro
4558235636
Handle exceptions from file pickers (RHBZ#2296214) 2024-11-09 23:11:27 +01:00
Sandro
b489ab7187
Apply patch for AttributeError (RHBZ#2313567) 2024-11-09 23:11:27 +01:00
Sandro
270d92f8e5
Rename and rebase existing patches
For ease of rebasing onto new releases.

[skip changelog]
2024-11-09 23:11:27 +01:00
Packit
6f4306eea7
Update to 51.15 upstream release
- Resolves: rhbz#2318429

Upstream tag: 51.15
Upstream commit: e93cd189

Commit authored by Packit automation (https://packit.dev/)
2024-11-09 23:11:19 +01:00
Sandro
83556ee081
Add optional 32-bit dependencies (RHBZ#2277098)
Those may be required fir running 32-bit bottles.
2024-08-18 13:45:59 +02:00
Packit
d43e685d30
Update to 51.13 upstream release
- Resolves: rhbz#2297253

Upstream tag: 51.13
Upstream commit: 7e60ede5

Commit authored by Packit automation (https://packit.dev/)
2024-08-18 13:45:58 +02:00
Lyes Saadi
a3168e9072
Removing ExcludeArch s390x 2024-08-18 13:45:38 +02:00
12 changed files with 147 additions and 112 deletions

View file

@ -1,4 +1,4 @@
From 7e820512cffc4f709a2d00e341306f57d91ddda5 Mon Sep 17 00:00:00 2001
From f43e05d590e21634e05b5ff836c874237eddede1 Mon Sep 17 00:00:00 2001
From: Sandro <devel@penguinpee.nl>
Date: Mon, 4 Mar 2024 20:28:49 +0100
Subject: [PATCH 1/3] Make sure Paths.bottles exists
@ -13,10 +13,10 @@ It seems check_app_dirs() is never called in that situation.
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
index 8b04c30e..970df26d 100644
--- a/bottles/backend/managers/manager.py
+++ b/bottles/backend/managers/manager.py
@@ -888,7 +888,11 @@ class Manager(metaclass=Singleton):
@@ -813,7 +813,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
"""
@ -30,5 +30,5 @@ index 5569b663..799ce8c3 100644
# Empty local bottles
self.local_bottles = {}
--
2.51.0
2.47.0

View file

@ -1,4 +1,4 @@
From 602f3b45095fc63728850ba1d636ac52e4a6f156 Mon Sep 17 00:00:00 2001
From 202a3cd999e8685549aee4b9c206bdcfa003c82a Mon Sep 17 00:00:00 2001
From: Sandro <devel@penguinpee.nl>
Date: Mon, 4 Mar 2024 21:45:51 +0100
Subject: [PATCH 2/3] Catch AttributeError in set_manager()
@ -9,10 +9,10 @@ Return empty list if AttributeError is raised.
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
index bddd3f34..c5cf2b37 100644
--- a/bottles/frontend/windows/window.py
+++ b/bottles/frontend/windows/window.py
@@ -262,9 +262,12 @@ class BottlesWindow(Adw.ApplicationWindow):
@@ -213,9 +213,12 @@ class BottlesWindow(Adw.ApplicationWindow):
def set_manager(result: Manager, error=None):
self.manager = result
@ -29,5 +29,5 @@ index 26d90728..ce76ab42 100644
self.show_onboard_view()
--
2.51.0
2.47.0

View file

@ -1,4 +1,4 @@
From 3001aaba2b1ea6488b69f8714171eff635043b53 Mon Sep 17 00:00:00 2001
From e2ce1892c557f1f81ba5883eee1d19a120abb2c2 Mon Sep 17 00:00:00 2001
From: Sandro <devel@penguinpee.nl>
Date: Sat, 9 Nov 2024 13:42:00 +0100
Subject: [PATCH 3/3] Catch AttributeError when window is closed
@ -29,5 +29,5 @@ index f6a07b15..ea3d7ad1 100644
@staticmethod
--
2.51.0
2.47.0

View file

@ -1,4 +1,4 @@
From 43278894bd9f1277da14ac187ba7b42ece5cf483 Mon Sep 17 00:00:00 2001
From 387213dd5c1179f1dbf8352ac389cbf8323a0d6f Mon Sep 17 00:00:00 2001
From: Sandro <devel@penguinpee.nl>
Date: Sun, 8 Dec 2024 11:11:27 +0100
Subject: [PATCH 1001/1005] Revert "meson: Add check for Flatpak"
@ -29,5 +29,5 @@ index 6ff7c011..c26ea0b9 100644
'__init__.py',
'main.py',
--
2.51.0
2.49.0

View file

@ -1,4 +1,4 @@
From 6daaf8a10f2678f1325546992aa27552f0407c1e Mon Sep 17 00:00:00 2001
From bd5ebc6dc6ae529c933ae2655b27f9ee04a1dc44 Mon Sep 17 00:00:00 2001
From: Sandro <devel@penguinpee.nl>
Date: Sun, 8 Dec 2024 11:22:42 +0100
Subject: [PATCH 1002/1005] Change issue URL to Bugzilla
@ -10,7 +10,7 @@ users, direct them to Bugzilla instead.
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
index 52f33b91..d4c1e49d 100644
--- a/data/com.usebottles.bottles.metainfo.xml.in.in
+++ b/data/com.usebottles.bottles.metainfo.xml.in.in
@@ -70,7 +70,7 @@
@ -23,5 +23,5 @@ index c380c823..fd2261d9 100644
<url type="donation">https://usebottles.com/funding</url>
<url type="translate">https://hosted.weblate.org/engage/bottles</url>
--
2.51.0
2.49.0

View file

@ -1,4 +1,4 @@
From 96e3ec53fe9819cf23bc8369e397d12ef1f06b51 Mon Sep 17 00:00:00 2001
From 946114f3aba1913d4cd9c9498a35cee2da1d0cf0 Mon Sep 17 00:00:00 2001
From: Sandro <devel@penguinpee.nl>
Date: Sun, 8 Dec 2024 12:21:57 +0100
Subject: [PATCH 1003/1005] Display warning regarding issue tracker
@ -10,10 +10,10 @@ Bottles. Revert upstream's outright denial of usage.
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
index 802b08b5..d31d0cf7 100644
--- a/bottles/frontend/windows/window.py
+++ b/bottles/frontend/windows/window.py
@@ -116,29 +116,26 @@ class BottlesWindow(Adw.ApplicationWindow):
@@ -102,29 +102,26 @@ class BottlesWindow(Adw.ApplicationWindow):
def response(dialog, response, *args):
if response == "close":
@ -22,7 +22,7 @@ index ce76ab42..05c20092 100644
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"
+ "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"
@ -54,5 +54,5 @@ index ce76ab42..05c20092 100644
# Loading view
self.page_loading = LoadingView()
--
2.51.0
2.49.0

View file

@ -1,40 +1,33 @@
From fc49b2eecc0526ac58c029a011b3fb90383f98c7 Mon Sep 17 00:00:00 2001
From e1c62b61b00b89d0ce39c68cf62556fa38ddc1a3 Mon Sep 17 00:00:00 2001
From: Sandro <devel@penguinpee.nl>
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(-)
bottles/frontend/main.py | 1 -
bottles/frontend/views/bottle_details.py | 16 +-------
bottles/frontend/views/bottle_preferences.py | 4 +-
bottles/frontend/views/list.py | 5 +--
bottles/frontend/views/new_bottle_dialog.py | 4 +-
bottles/frontend/windows/window.py | 42 ++++++++++----------
6 files changed, 27 insertions(+), 45 deletions(-)
diff --git a/bottles/frontend/main.py b/bottles/frontend/main.py
index ea3d7ad1..5a8ecd20 100644
index f6a07b15..5bbf548c 100644
--- a/bottles/frontend/main.py
+++ b/bottles/frontend/main.py
@@ -34,8 +34,6 @@ from bottles.frontend.params import (
@@ -34,7 +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")
# 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
index 65667ea9..ebf7079a 100644
--- a/bottles/frontend/views/bottle_details.py
+++ b/bottles/frontend/views/bottle_details.py
@@ -21,7 +21,7 @@ from datetime import datetime
@ -46,11 +39,10 @@ index 65667ea9..b4f151ea 100644
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)
@@ -437,19 +437,7 @@ class BottleView(Adw.PreferencesPage):
dialog.show()
- if Xdp.Portal.running_under_sandbox():
if Xdp.Portal.running_under_sandbox():
- if self.window.settings.get_boolean("show-sandbox-warning"):
- dialog = Adw.MessageDialog.new(
- self.window,
@ -64,12 +56,12 @@ index 65667ea9..b4f151ea 100644
- dialog.present()
- else:
- show_chooser()
+ 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
index 288e693b..4e989fb2 100644
--- a/bottles/frontend/views/bottle_preferences.py
+++ b/bottles/frontend/views/bottle_preferences.py
@@ -20,7 +20,7 @@ import os
@ -81,16 +73,15 @@ index 0d450f29..eb67714a 100644
from bottles.backend.globals import (
gamemode_available,
@@ -139,9 +139,6 @@ class PreferencesView(Adw.PreferencesPage):
@@ -139,7 +139,7 @@ class PreferencesView(Adw.PreferencesPage):
self.queue = details.queue
self.details = details
- if not gamemode_available or not Xdp.Portal.running_under_sandbox():
- return
-
+ if not gamemode_available:
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
@ -115,19 +106,19 @@ index 43ab9c22..a8f6c587 100644
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
index a8b007d4..81fa102e 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
@@ -17,7 +17,7 @@
from bottles.backend.state import Task, TaskManager
from gettext import gettext as _
from typing import Any, Optional
-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):
@@ -80,7 +80,7 @@ class BottlesNewBottleDialog(Adw.Dialog):
super().__init__(**kwargs)
# common variables and references
self.window = GtkUtils.get_parent_window()
@ -137,7 +128,7 @@ index 6774b10b..a34957eb 100644
self.app = self.window.get_application()
diff --git a/bottles/frontend/windows/window.py b/bottles/frontend/windows/window.py
index 05c20092..f9625016 100644
index d31d0cf7..c8adde1c 100644
--- a/bottles/frontend/windows/window.py
+++ b/bottles/frontend/windows/window.py
@@ -21,7 +21,7 @@ import webbrowser
@ -149,27 +140,37 @@ index 05c20092..f9625016 100644
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()
@@ -98,30 +98,28 @@ class BottlesWindow(Adw.ApplicationWindow):
manager.set_color_scheme(Adw.ColorScheme.FORCE_DARK)
- # Be VERY explicit that non-sandboxed environments are unsupported
# 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
- 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"
- "Bottles developers (upstream) only support Flatpak. Please report any issues with the RPM package in"
- )
- bug_url = "bugz.fedoraproject.org/bottles"
-
+ 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} <a href='https://{bug_url}' title='https://{bug_url}'>Bugzilla.</a>"
- )
-
+ error_dialog = Adw.AlertDialog.new(
+ _("RPM Package Note"),
+ f"{body} <a href='https://{bug_url}' title='https://{bug_url}'>Bugzilla.</a>"
+ )
- error_dialog.add_response("close", _("Understood"))
- error_dialog.set_body_use_markup(True)
- error_dialog.connect("response", response)
@ -178,10 +179,17 @@ index 05c20092..f9625016 100644
- logging.warn("https://usebottles.com/download/")
- logging.warn(_("Please report any issues using the RPM package to:"))
- logging.warn("https://bugz.fedoraproject.org/bottles")
-
+ 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
2.49.0

View file

@ -0,0 +1,68 @@
From 4c4f5f2274bfe174e82d7c68627fb6c95b04fd8b Mon Sep 17 00:00:00 2001
From: Sandro <devel@penguinpee.nl>
Date: Wed, 15 Jan 2025 20:59:47 +0100
Subject: [PATCH 1005/1005] Revert "bottle-row: Port to AdwWrapBox"
AdwWrapBox is still deemed unstable and only available since 1.7.
This reverts commit eb81c0306ef20aa5e4c0104a0a6d55779996b027.
---
bottles/frontend/ui/bottle-row.blp | 16 ++++++++++------
bottles/frontend/views/list.py | 6 +++---
2 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/bottles/frontend/ui/bottle-row.blp b/bottles/frontend/ui/bottle-row.blp
index 163900ea..2598ed52 100644
--- a/bottles/frontend/ui/bottle-row.blp
+++ b/bottles/frontend/ui/bottle-row.blp
@@ -5,13 +5,17 @@ template $BottlesBottleRow: Adw.ActionRow {
activatable: true;
use-markup: false;
- Adw.WrapBox wrap_box {
- valign: center;
+ Box {
+ spacing: 6;
- styles [
- "tag",
- "caption",
- ]
+ Label label_env {
+ valign: center;
+
+ styles [
+ "tag",
+ "caption",
+ ]
+ }
}
Button button_run {
diff --git a/bottles/frontend/views/list.py b/bottles/frontend/views/list.py
index a8f6c587..91a52e2b 100644
--- a/bottles/frontend/views/list.py
+++ b/bottles/frontend/views/list.py
@@ -37,7 +37,7 @@ class BottlesBottleRow(Adw.ActionRow):
# region Widgets
button_run = Gtk.Template.Child()
- wrap_box = Gtk.Template.Child()
+ label_env = Gtk.Template.Child()
# endregion
@@ -74,8 +74,8 @@ class BottlesBottleRow(Adw.ActionRow):
self.set_title(self.config.Name)
if self.window.settings.get_boolean("update-date"):
self.set_subtitle(update_date)
-
- self.wrap_box.append(Gtk.Label.new(self.config.Environment))
+ self.label_env.set_text(_(self.config.Environment))
+ self.label_env.add_css_class("tag-%s" % self.config.Environment.lower())
# Set tooltip text
self.button_run.set_tooltip_text(_(f"Run executable in “{self.config.Name}”"))
--
2.49.0

View file

@ -1,30 +0,0 @@
From 9874f7e6d9289c1dd398c26eb9f8c585412aacff Mon Sep 17 00:00:00 2001
From: Sandro <devel@penguinpee.nl>
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

View file

@ -1,3 +1,3 @@
This repository is maintained by packit.
https://packit.dev/
The file was generated using packit 1.12.0.
The file was generated using packit 1.2.0.post1.dev13+g55ed4527.

View file

@ -1,6 +1,6 @@
Name: bottles
Epoch: 2
Version: 52.0
Epoch: 1
Version: 51.21
Release: %autorelease
Summary: Run Windows in a Bottle
@ -29,13 +29,14 @@ 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
Patch: 1005-Revert-bottle-row-Port-to-AdwWrapBox.patch
BuildArch: noarch
BuildRequires: desktop-file-utils
BuildRequires: libappstream-glib
BuildRequires: meson
BuildRequires: python3-devel
BuildRequires: python3
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gtk4)
BuildRequires: pkgconfig(libadwaita-1) >= 1.1.99
@ -91,18 +92,6 @@ 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
%description
Bottles lets you run Windows software on Linux, such as applications
and games. It introduces a workflow that helps you organize by

View file

@ -1 +1 @@
SHA512 (Bottles-52.0.tar.gz) = d133cf07a224c7f1848786f7b6f90e9e834fec7e855e5c48b4413657a7566f148f8ceece958a2cce575ae5ba66dea0963c19a79a893900b88c0c6af6c8bb1c41
SHA512 (Bottles-51.21.tar.gz) = cfeea2b3ce46305638d2ad7b0778b8a821793e476fc220040469da51b6454547a5189de93d05c7c0bf1d4ec58fabd8a491ab75dd226510e50637ad00c170414a