Compare commits
17 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dc21781e07 |
||
|
|
3a764068e0 |
||
|
|
307cb5d136 |
||
|
|
f2e90931b0 |
||
|
|
41b36c93a4 |
||
|
|
5886322d24 |
||
|
|
ba3e6329c7 |
||
|
|
0a7e2e162c |
||
|
|
eb26f5222b |
||
|
|
f54334cda4 |
||
|
35ef5736a2 |
|||
|
|
a57f888361 |
||
|
|
1e5c89290f |
||
|
|
bcaf1e0c2a |
||
|
|
cc6bd153ea |
||
|
|
a5315fda7c |
||
|
|
b1256e12ce |
9 changed files with 180 additions and 129 deletions
2
.git-blame-ignore-revs
Normal file
2
.git-blame-ignore-revs
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
# Line out sections
|
||||
53d45d3de51c20d134e62146a0ff82a3114cdeda
|
||||
62
.gitignore
vendored
62
.gitignore
vendored
|
|
@ -1,60 +1,2 @@
|
|||
/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
|
||||
/Bottles-51.6.tar.gz
|
||||
/Bottles*tar.gz
|
||||
require*.txt
|
||||
|
|
|
|||
17
.packit.yaml
Normal file
17
.packit.yaml
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
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
|
||||
3
README.packit
Normal file
3
README.packit
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
This repository is maintained by packit.
|
||||
https://packit.dev/
|
||||
The file was generated using packit 0.91.0.post1.dev4+ge6fd4a25.
|
||||
138
bottles.spec
138
bottles.spec
|
|
@ -1,91 +1,93 @@
|
|||
%global uuid pm.mirko.%{name}
|
||||
%global gh_name Bottles
|
||||
|
||||
%global forgeurl https://github.com/bottlesdevs/%{gh_name}
|
||||
%global tag 51.6
|
||||
%global forgeurl https://github.com/bottlesdevs/Bottles
|
||||
|
||||
Name: bottles
|
||||
Epoch: 1
|
||||
Version: %{tag}
|
||||
Version: 51.11
|
||||
Release: %autorelease
|
||||
BuildArch: noarch
|
||||
Summary: Run Windows in a Bottle
|
||||
|
||||
%global tag %{version}
|
||||
%forgemeta
|
||||
|
||||
License: GPL-3.0-or-later
|
||||
Summary: Easily manage Wine prefix in a new way
|
||||
# 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
|
||||
Patch: ensure_bottles_dir_exists.patch
|
||||
# Don't fail on AttributeError
|
||||
Patch: catch_exception_in_set_manager.patch
|
||||
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: libappstream-glib
|
||||
BuildRequires: meson
|
||||
BuildRequires: python3
|
||||
# blueprint-compiler does not work on s390x:
|
||||
# https://gitlab.gnome.org/jwestman/blueprint-compiler/-/issues/96
|
||||
ExcludeArch: s390x
|
||||
BuildArch: noarch
|
||||
|
||||
BuildRequires: pkgconfig(glib-2.0)
|
||||
BuildRequires: pkgconfig(gtk4)
|
||||
BuildRequires: pkgconfig(libadwaita-1) >= 1.1.99
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: libappstream-glib
|
||||
BuildRequires: meson
|
||||
BuildRequires: python3
|
||||
BuildRequires: pkgconfig(glib-2.0)
|
||||
BuildRequires: pkgconfig(gtk4)
|
||||
BuildRequires: pkgconfig(libadwaita-1) >= 1.1.99
|
||||
BuildRequires: blueprint-compiler
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
Requires: python3-pathvalidate
|
||||
Requires: python3-fvs
|
||||
Requires: python3-vkbasalt-cli
|
||||
# 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)
|
||||
|
||||
%description
|
||||
Easily manage Wine prefix in a new way! (Run Windows software and games on
|
||||
Linux).
|
||||
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.
|
||||
|
||||
Features:
|
||||
|
||||
* 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!
|
||||
|
||||
- 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
|
||||
|
||||
%prep
|
||||
%autosetup -n %{gh_name}-%{version}
|
||||
%forgeautosetup -p1
|
||||
|
||||
|
||||
%build
|
||||
|
|
|
|||
28
catch_exception_in_set_manager.patch
Normal file
28
catch_exception_in_set_manager.patch
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
commit 3e1db3c75fee5eedb2190e7dba71239e923affb7
|
||||
Author: Sandro <devel@penguinpee.nl>
|
||||
Date: Mon Mar 4 21:45:51 2024 +0100
|
||||
|
||||
Catch AttributeError in set_manager()
|
||||
|
||||
Return empty list if AttributeError is raised.
|
||||
|
||||
diff --git a/bottles/frontend/windows/main_window.py b/bottles/frontend/windows/main_window.py
|
||||
index 5fb9a15c..cd26408b 100644
|
||||
--- a/bottles/frontend/windows/main_window.py
|
||||
+++ b/bottles/frontend/windows/main_window.py
|
||||
@@ -178,9 +178,12 @@ class MainWindow(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()
|
||||
|
||||
29
ensure_bottles_dir_exists.patch
Normal file
29
ensure_bottles_dir_exists.patch
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
commit 7eed7bbfa5d1da924b4c4e0659f0bf86b0fd7d7b
|
||||
Author: Sandro <devel@penguinpee.nl>
|
||||
Date: Mon Mar 4 20:28:49 2024 +0100
|
||||
|
||||
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.
|
||||
|
||||
diff --git a/bottles/backend/managers/manager.py b/bottles/backend/managers/manager.py
|
||||
index 01b0039e..9d8ef000 100644
|
||||
--- a/bottles/backend/managers/manager.py
|
||||
+++ b/bottles/backend/managers/manager.py
|
||||
@@ -811,7 +811,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 = {}
|
||||
28
generate_requires.sh
Executable file
28
generate_requires.sh
Executable file
|
|
@ -0,0 +1,28 @@
|
|||
#!/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
|
||||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
SHA512 (Bottles-51.6.tar.gz) = 0190744b3a99d791ffbd1b7a104565c2fd1f5aa110afe329897d4b29f0f5d669a6ec145468fea85e88b2f20bb2f7f075522760fd7ced94eea1afc0667780b288
|
||||
SHA512 (Bottles-51.11.tar.gz) = 42c503a4910a8e6c408caecd723edf1405aa034558d61313937a69c7d5ffb20ba4675fc9022775491cbbe6ba4a35ffac508b4721f9c971c57cbcb888345d546b
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue