Compare commits

..

No commits in common. "rawhide" and "f34" have entirely different histories.

16 changed files with 304 additions and 803 deletions

View file

@ -1,2 +0,0 @@
# Line out sections
53d45d3de51c20d134e62146a0ff82a3114cdeda

56
.gitignore vendored
View file

@ -1,2 +1,54 @@
/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

View file

@ -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

View file

@ -1,34 +0,0 @@
From 7e820512cffc4f709a2d00e341306f57d91ddda5 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
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

View file

@ -1,33 +0,0 @@
From 602f3b45095fc63728850ba1d636ac52e4a6f156 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()
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

View file

@ -1,33 +0,0 @@
From 3001aaba2b1ea6488b69f8714171eff635043b53 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
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

View file

@ -1,33 +0,0 @@
From 43278894bd9f1277da14ac187ba7b42ece5cf483 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"
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

View file

@ -1,27 +0,0 @@
From 6daaf8a10f2678f1325546992aa27552f0407c1e 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
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 @@
<translation type="gettext">@APP_ID@</translation>
<content_rating type="oars-1.1"/>
<url type="homepage">https://usebottles.com</url>
- <url type="bugtracker">https://github.com/bottlesdevs/Bottles/issues</url>
+ <url type="bugtracker">https://bugz.fedoraproject.org/bottles</url>
<url type="help">https://docs.usebottles.com</url>
<url type="donation">https://usebottles.com/funding</url>
<url type="translate">https://hosted.weblate.org/engage/bottles</url>
--
2.51.0

View file

@ -1,58 +0,0 @@
From 96e3ec53fe9819cf23bc8369e397d12ef1f06b51 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
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} <a href='https://{download_url}' title='https://{download_url}'>{download_url}.</a>",
+ _("RPM Package Note"),
+ f"{body} <a href='https://{bug_url}' title='https://{bug_url}'>Bugzilla.</a>"
)
- 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

View file

@ -1,187 +0,0 @@
From fc49b2eecc0526ac58c029a011b3fb90383f98c7 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(-)
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} <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)
- 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

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 +0,0 @@
This repository is maintained by packit.
https://packit.dev/
The file was generated using packit 1.12.0.

View file

@ -1,130 +1,74 @@
%global uuid pm.mirko.%{name}
%global suf trento
Name: bottles
Epoch: 2
Version: 52.0
Release: %autorelease
Summary: Run Windows in a Bottle
Version: 2022.4.28
Release: 1%{?dist}
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}.tar.gz#/%{name}-%{version}.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(gtk+-3.0)
BuildRequires: pkgconfig(libhandy-1) >= 1.5
Requires: cabextract
Requires: glibc(x86-32) %dnl # https://github.com/bottlesdevs/Bottles/issues/601#issuecomment-936772762
Requires: gtk3
Requires: gtksourceview4
Requires: hicolor-icon-theme
Requires: libhandy1
Requires: python3-gobject
Requires: python3-markdown
Requires: python3-patool
Requires: python3-pyyaml
%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} -p1
%build
@ -143,7 +87,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
@ -155,4 +99,192 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
%changelog
%autochangelog
* Wed Apr 27 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 2022.4.28-1
- chore(update): 2022.4.28
* Wed Apr 13 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 2022.4.14-1
- chore(update): 2022.4.14
* Mon Mar 28 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 2022.3.28-1
- chore(update): 2022.3.28
* Mon Mar 14 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 2022.3.14-1
- chore(update): 2022.3.14
* Sat Mar 12 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 2022.2.28-2
- build: Add gtksourceview4 dep
* Sun Feb 27 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 2022.2.28-1
- chore(update): 2022.2.28
* Mon Feb 14 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 2022.2.14-1
- chore(update): 2022.2.14
* Fri Jan 28 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 2022.1.28-1
- chore(update): 2022.1.28
* Mon Jan 24 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 2022.1.14-3
- build(add dep): cabextract
* Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2022.1.14-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Jan 13 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 2022.1.14-1
- chore(update): 2022.1.14
* Tue Dec 28 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.12.28-1
- chore(update): 2021.12.28
* Tue Dec 14 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.12.14-1
- chore(update): 2021.12.14
* Sun Nov 28 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.11.28-1
- chore(update): 2021.11.28
* Sat Nov 13 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.11.14-1
- chore(update): 2021.11.14
* Wed Oct 27 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.10.28-1
- chore(update): 2021.10.28
* Wed Oct 13 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.10.14-1
- chore(update): 2021.10.14
* Thu Oct 07 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.9.28-3
- fix: Multilib dep
* Wed Oct 06 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.9.28-2
- build(add dep): glibc.i686
See: https://github.com/bottlesdevs/Bottles/issues/601#issuecomment-936772762
* Mon Sep 27 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.9.28-1
- build(update): 2021.9.28
* Tue Sep 14 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.9.14-1
- build(update): 2021.9.14
* Sat Aug 28 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.8.28-1
- build(update): 2021.8.28
* Sun Aug 15 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.8.14-2
- fix: Add new dep python3-patool
* Sun Aug 15 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.8.14-1
- build(update): 2021.8.14
* Wed Jul 28 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.7.28-1
- build(update): 2021.7.28
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2021.7.14-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Wed Jul 14 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.7.14-1
- build(update): 2021.7.14
* Wed Jul 14 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.7.3-2
- build(add dep): python3-pyyaml
* Sun Jul 04 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.7.3-1
- build(update): 2021.7.3
* Sat Jun 19 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.15-1
- build(update): 3.1.15
* Fri Jun 11 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.14-1
- build(update): 3.1.14
* Wed Jun 09 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.13-1
- build(update): 3.1.13
* Tue May 25 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.12-1
- build(update): 3.1.12
* Sat May 22 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.11-1
- build(update): 3.1.11
* Sat May 22 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.10-1
- build(update): 3.1.10
* Thu May 20 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.9-1
- build(update): 3.1.9
* Wed May 05 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.8-1
- build(update): 3.1.8
* Sun May 02 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.7-1
- build(update): 3.1.7
* Mon Apr 26 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.6-1
- build(update): 3.1.6
* Tue Apr 20 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.5-1
- build(update): 3.1.5
* Thu Apr 08 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.4-1
- build(update): 3.1.4
* Wed Mar 31 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.3-1
- build(update): 3.1.3
* Fri Mar 26 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.2-1
- build(update): 3.1.2
* Sun Mar 21 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.1-1
- build(update): 3.1.1
* Fri Mar 19 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.0-1
- build(update): 3.1.0
* Sat Mar 13 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.0.9-1
- build(update): 3.0.9
* Mon Mar 08 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.0.8-1
- build(update): 3.0.8
* Sun Mar 07 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.0.6-1
- build(update): 3.0.6
* Wed Mar 03 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.0.5-1
- build(update): 3.0.5
* Fri Feb 26 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.0.2-1
- build(update): 3.0.2
* Fri Feb 26 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.0.1.1-2
- build: Add libhandy1 dep
* Fri Feb 26 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.0.1.1-1
- build(update): 3.0.1.1
* Mon Feb 22 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2.1.2-1
- build(update): 2.1.2
* Fri Feb 19 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2.1.1-1
- build(update): 2.1.1
* Thu Feb 18 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2.1.0.7-1
- build(update): 2.1.0.7
* Thu Feb 04 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2.1.0.6-1
- build(update): 2.1.0.6
* Tue Jan 26 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2.1.0.5-1
- build(update): 2.1.0.5
* Wed Jan 20 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2.1.0.4-1
- build(update): 2.1.0.4
* Mon Jan 18 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2.1.0.2-1
- build(update): 2.1.0.2
* Tue Jan 12 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2.1.0-1
- build(update): 2.1.0
* Sun Jan 10 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2.0.9.9-1
- build(update): 2.0.9.9
* Sat Jan 9 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2.0.9.8-1
- build(update): 2.0.9.8
* Thu Jan 7 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2.0.9.7-1
- Initial package

198
changelog
View file

@ -1,198 +0,0 @@
* Sun May 29 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 2022.5.28-1
- chore(update): 2022.5.28
* Sat May 14 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 2022.5.14-1
- chore(update): 2022.5.14
* Mon May 02 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 2022.5.2-1
- chore(update): 2022.5.2
* Wed Apr 27 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 2022.4.28-1
- chore(update): 2022.4.28
* Wed Apr 13 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 2022.4.14-1
- chore(update): 2022.4.14
* Mon Mar 28 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 2022.3.28-1
- chore(update): 2022.3.28
* Mon Mar 14 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 2022.3.14-1
- chore(update): 2022.3.14
* Sat Mar 12 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 2022.2.28-2
- build: Add gtksourceview4 dep
* Sun Feb 27 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 2022.2.28-1
- chore(update): 2022.2.28
* Mon Feb 14 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 2022.2.14-1
- chore(update): 2022.2.14
* Fri Jan 28 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 2022.1.28-1
- chore(update): 2022.1.28
* Mon Jan 24 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 2022.1.14-3
- build(add dep): cabextract
* Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2022.1.14-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Jan 13 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 2022.1.14-1
- chore(update): 2022.1.14
* Tue Dec 28 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.12.28-1
- chore(update): 2021.12.28
* Tue Dec 14 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.12.14-1
- chore(update): 2021.12.14
* Sun Nov 28 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.11.28-1
- chore(update): 2021.11.28
* Sat Nov 13 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.11.14-1
- chore(update): 2021.11.14
* Wed Oct 27 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.10.28-1
- chore(update): 2021.10.28
* Wed Oct 13 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.10.14-1
- chore(update): 2021.10.14
* Thu Oct 07 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.9.28-3
- fix: Multilib dep
* Wed Oct 06 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.9.28-2
- build(add dep): glibc.i686
See: https://github.com/bottlesdevs/Bottles/issues/601#issuecomment-936772762
* Mon Sep 27 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.9.28-1
- build(update): 2021.9.28
* Tue Sep 14 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.9.14-1
- build(update): 2021.9.14
* Sat Aug 28 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.8.28-1
- build(update): 2021.8.28
* Sun Aug 15 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.8.14-2
- fix: Add new dep python3-patool
* Sun Aug 15 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.8.14-1
- build(update): 2021.8.14
* Wed Jul 28 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.7.28-1
- build(update): 2021.7.28
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2021.7.14-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Wed Jul 14 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.7.14-1
- build(update): 2021.7.14
* Wed Jul 14 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.7.3-2
- build(add dep): python3-pyyaml
* Sun Jul 04 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2021.7.3-1
- build(update): 2021.7.3
* Sat Jun 19 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.15-1
- build(update): 3.1.15
* Fri Jun 11 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.14-1
- build(update): 3.1.14
* Wed Jun 09 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.13-1
- build(update): 3.1.13
* Tue May 25 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.12-1
- build(update): 3.1.12
* Sat May 22 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.11-1
- build(update): 3.1.11
* Sat May 22 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.10-1
- build(update): 3.1.10
* Thu May 20 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.9-1
- build(update): 3.1.9
* Wed May 05 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.8-1
- build(update): 3.1.8
* Sun May 02 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.7-1
- build(update): 3.1.7
* Mon Apr 26 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.6-1
- build(update): 3.1.6
* Tue Apr 20 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.5-1
- build(update): 3.1.5
* Thu Apr 08 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.4-1
- build(update): 3.1.4
* Wed Mar 31 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.3-1
- build(update): 3.1.3
* Fri Mar 26 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.2-1
- build(update): 3.1.2
* Sun Mar 21 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.1-1
- build(update): 3.1.1
* Fri Mar 19 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.1.0-1
- build(update): 3.1.0
* Sat Mar 13 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.0.9-1
- build(update): 3.0.9
* Mon Mar 08 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.0.8-1
- build(update): 3.0.8
* Sun Mar 07 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.0.6-1
- build(update): 3.0.6
* Wed Mar 03 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.0.5-1
- build(update): 3.0.5
* Fri Feb 26 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.0.2-1
- build(update): 3.0.2
* Fri Feb 26 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.0.1.1-2
- build: Add libhandy1 dep
* Fri Feb 26 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 3.0.1.1-1
- build(update): 3.0.1.1
* Mon Feb 22 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2.1.2-1
- build(update): 2.1.2
* Fri Feb 19 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2.1.1-1
- build(update): 2.1.1
* Thu Feb 18 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2.1.0.7-1
- build(update): 2.1.0.7
* Thu Feb 04 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2.1.0.6-1
- build(update): 2.1.0.6
* Tue Jan 26 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2.1.0.5-1
- build(update): 2.1.0.5
* Wed Jan 20 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2.1.0.4-1
- build(update): 2.1.0.4
* Mon Jan 18 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2.1.0.2-1
- build(update): 2.1.0.2
* Tue Jan 12 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2.1.0-1
- build(update): 2.1.0
* Sun Jan 10 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2.0.9.9-1
- build(update): 2.0.9.9
* Sat Jan 9 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2.0.9.8-1
- build(update): 2.0.9.8
* Thu Jan 7 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 2.0.9.7-1
- Initial package

View file

@ -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

View file

@ -1 +1 @@
SHA512 (Bottles-52.0.tar.gz) = d133cf07a224c7f1848786f7b6f90e9e834fec7e855e5c48b4413657a7566f148f8ceece958a2cce575ae5ba66dea0963c19a79a893900b88c0c6af6c8bb1c41
SHA512 (bottles-2022.4.28.tar.gz) = 739cb1a6909c703293daf0178ac72a49c6e20275408d310715991097b00081c086e0c3f9ec03275da50bd819c9e8adda04b47cec43703e98e1c64c02434c76fa