From 5f4a682ee82e1255697284dd9059538bfc9f43dc Mon Sep 17 00:00:00 2001 From: Artem Polishchuk Date: Tue, 3 May 2022 01:51:03 +0300 Subject: [PATCH 01/57] chore(update): 2022.5.2 --- .gitignore | 1 + bottles.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index ef48681..57629e7 100644 --- a/.gitignore +++ b/.gitignore @@ -52,3 +52,4 @@ /bottles-2022.3.28.tar.gz /bottles-2022.4.14.tar.gz /bottles-2022.4.28.tar.gz +/bottles-2022.5.2.tar.gz diff --git a/bottles.spec b/bottles.spec index e409970..92ca5d2 100644 --- a/bottles.spec +++ b/bottles.spec @@ -2,7 +2,7 @@ %global suf trento Name: bottles -Version: 2022.4.28 +Version: 2022.5.2 Release: 1%{?dist} BuildArch: noarch @@ -99,6 +99,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop %changelog +* Mon May 02 2022 Artem Polishchuk - 2022.5.2-1 +- chore(update): 2022.5.2 + * Wed Apr 27 2022 Artem Polishchuk - 2022.4.28-1 - chore(update): 2022.4.28 diff --git a/sources b/sources index 025563b..2759a7b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (bottles-2022.4.28.tar.gz) = 739cb1a6909c703293daf0178ac72a49c6e20275408d310715991097b00081c086e0c3f9ec03275da50bd819c9e8adda04b47cec43703e98e1c64c02434c76fa +SHA512 (bottles-2022.5.2.tar.gz) = a69699935a7c985aef135562b59061f7c0a4cf6ea4188a8ddc9163fe03e70485ee9bbe918ad518c2d469a24cf5c09f6744ae40e7fc5211f843929b0131bc4a7a From 50b61e26bd47ab7497502e9118c1bf62262b7b3f Mon Sep 17 00:00:00 2001 From: Artem Polishchuk Date: Sat, 14 May 2022 14:38:06 +0300 Subject: [PATCH 02/57] chore(update): 2022.5.14 --- .gitignore | 1 + bottles.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 57629e7..673632c 100644 --- a/.gitignore +++ b/.gitignore @@ -53,3 +53,4 @@ /bottles-2022.4.14.tar.gz /bottles-2022.4.28.tar.gz /bottles-2022.5.2.tar.gz +/bottles-2022.5.14.tar.gz diff --git a/bottles.spec b/bottles.spec index 92ca5d2..c94da08 100644 --- a/bottles.spec +++ b/bottles.spec @@ -2,7 +2,7 @@ %global suf trento Name: bottles -Version: 2022.5.2 +Version: 2022.5.14 Release: 1%{?dist} BuildArch: noarch @@ -26,7 +26,7 @@ Requires: glibc(x86-32) %dnl # https://github.com/bottlesdevs/Bottles/issues/ Requires: gtk3 Requires: gtksourceview4 Requires: hicolor-icon-theme -Requires: libhandy1 +Requires: libhandy1 >= 1.5 Requires: python3-gobject Requires: python3-markdown Requires: python3-patool @@ -99,6 +99,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop %changelog +* Sat May 14 2022 Artem Polishchuk - 2022.5.14-1 +- chore(update): 2022.5.14 + * Mon May 02 2022 Artem Polishchuk - 2022.5.2-1 - chore(update): 2022.5.2 diff --git a/sources b/sources index 2759a7b..74c5fe1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (bottles-2022.5.2.tar.gz) = a69699935a7c985aef135562b59061f7c0a4cf6ea4188a8ddc9163fe03e70485ee9bbe918ad518c2d469a24cf5c09f6744ae40e7fc5211f843929b0131bc4a7a +SHA512 (bottles-2022.5.14.tar.gz) = 83947ccb69258170c4fbf3594decb6658e8893ed5e4a80fd8cc05319592b89ee984bd0c8d443694dfe7040dbe21f8cd325e6cd50f0d3bd5422fd2a18cfd1fe92 From e9663574a37368878333f43d0d9afa44212f1e6b Mon Sep 17 00:00:00 2001 From: Artem Polishchuk Date: Sun, 29 May 2022 20:59:50 +0300 Subject: [PATCH 03/57] chore(update): 2022.5.28 --- .gitignore | 1 + bottles.spec | 14 ++++++++++---- sources | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 673632c..2b39a00 100644 --- a/.gitignore +++ b/.gitignore @@ -54,3 +54,4 @@ /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 diff --git a/bottles.spec b/bottles.spec index c94da08..5701943 100644 --- a/bottles.spec +++ b/bottles.spec @@ -1,15 +1,15 @@ %global uuid pm.mirko.%{name} -%global suf trento +%global suf trento-3 Name: bottles -Version: 2022.5.14 +Version: 2022.5.28 Release: 1%{?dist} BuildArch: noarch 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 +Source0: %{url}/archive/%{version}-%{suf}.tar.gz#/%{name}-%{version}-%{suf}.tar.gz BuildRequires: desktop-file-utils BuildRequires: libappstream-glib @@ -82,7 +82,10 @@ Features: %check -appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.xml +# ? tag-invalid : type invalid [unknown] +# https://github.com/bottlesdevs/Bottles/commit/95b451d152c5a8609c2a46fd173514f2cbd6fb54 +%dnl appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.xml + desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop @@ -99,6 +102,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop %changelog +* Sun May 29 2022 Artem Polishchuk - 2022.5.28-1 +- chore(update): 2022.5.28 + * Sat May 14 2022 Artem Polishchuk - 2022.5.14-1 - chore(update): 2022.5.14 diff --git a/sources b/sources index 74c5fe1..3068b76 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (bottles-2022.5.14.tar.gz) = 83947ccb69258170c4fbf3594decb6658e8893ed5e4a80fd8cc05319592b89ee984bd0c8d443694dfe7040dbe21f8cd325e6cd50f0d3bd5422fd2a18cfd1fe92 +SHA512 (bottles-2022.5.28-trento-3.tar.gz) = 634390005c21d881a7dca6007bf43cc5fade694a0aa779ddb030711948028bb92cdab0df2b4fb7eaa8a2df3d01463042b9401f2b9935f2f3e4dd9f0c9f81edca From 9f499a0c0df947a753720b2e41b9f10c1599a977 Mon Sep 17 00:00:00 2001 From: Artem Polishchuk Date: Sun, 29 May 2022 21:00:13 +0300 Subject: [PATCH 04/57] Convert to rpmautospec --- bottles.spec | 201 +-------------------------------------------------- changelog | 198 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 200 insertions(+), 199 deletions(-) create mode 100644 changelog diff --git a/bottles.spec b/bottles.spec index 5701943..abacb28 100644 --- a/bottles.spec +++ b/bottles.spec @@ -3,7 +3,7 @@ Name: bottles Version: 2022.5.28 -Release: 1%{?dist} +Release: %autorelease BuildArch: noarch License: GPLv3+ @@ -102,201 +102,4 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop %changelog -* Sun May 29 2022 Artem Polishchuk - 2022.5.28-1 -- chore(update): 2022.5.28 - -* Sat May 14 2022 Artem Polishchuk - 2022.5.14-1 -- chore(update): 2022.5.14 - -* Mon May 02 2022 Artem Polishchuk - 2022.5.2-1 -- chore(update): 2022.5.2 - -* Wed Apr 27 2022 Artem Polishchuk - 2022.4.28-1 -- chore(update): 2022.4.28 - -* Wed Apr 13 2022 Artem Polishchuk - 2022.4.14-1 -- chore(update): 2022.4.14 - -* Mon Mar 28 2022 Artem Polishchuk - 2022.3.28-1 -- chore(update): 2022.3.28 - -* Mon Mar 14 2022 Artem Polishchuk - 2022.3.14-1 -- chore(update): 2022.3.14 - -* Sat Mar 12 2022 Artem Polishchuk - 2022.2.28-2 -- build: Add gtksourceview4 dep - -* Sun Feb 27 2022 Artem Polishchuk - 2022.2.28-1 -- chore(update): 2022.2.28 - -* Mon Feb 14 2022 Artem Polishchuk - 2022.2.14-1 -- chore(update): 2022.2.14 - -* Fri Jan 28 2022 Artem Polishchuk - 2022.1.28-1 -- chore(update): 2022.1.28 - -* Mon Jan 24 2022 Artem Polishchuk - 2022.1.14-3 -- build(add dep): cabextract - -* Wed Jan 19 2022 Fedora Release Engineering - 2022.1.14-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Thu Jan 13 2022 Artem Polishchuk - 2022.1.14-1 -- chore(update): 2022.1.14 - -* Tue Dec 28 2021 Artem Polishchuk - 2021.12.28-1 -- chore(update): 2021.12.28 - -* Tue Dec 14 2021 Artem Polishchuk - 2021.12.14-1 -- chore(update): 2021.12.14 - -* Sun Nov 28 2021 Artem Polishchuk - 2021.11.28-1 -- chore(update): 2021.11.28 - -* Sat Nov 13 2021 Artem Polishchuk - 2021.11.14-1 -- chore(update): 2021.11.14 - -* Wed Oct 27 2021 Artem Polishchuk - 2021.10.28-1 -- chore(update): 2021.10.28 - -* Wed Oct 13 2021 Artem Polishchuk - 2021.10.14-1 -- chore(update): 2021.10.14 - -* Thu Oct 07 2021 Artem Polishchuk - 2021.9.28-3 -- fix: Multilib dep - -* Wed Oct 06 2021 Artem Polishchuk - 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 - 2021.9.28-1 -- build(update): 2021.9.28 - -* Tue Sep 14 2021 Artem Polishchuk - 2021.9.14-1 -- build(update): 2021.9.14 - -* Sat Aug 28 2021 Artem Polishchuk - 2021.8.28-1 -- build(update): 2021.8.28 - -* Sun Aug 15 2021 Artem Polishchuk - 2021.8.14-2 -- fix: Add new dep python3-patool - -* Sun Aug 15 2021 Artem Polishchuk - 2021.8.14-1 -- build(update): 2021.8.14 - -* Wed Jul 28 2021 Artem Polishchuk - 2021.7.28-1 -- build(update): 2021.7.28 - -* Wed Jul 21 2021 Fedora Release Engineering - 2021.7.14-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Wed Jul 14 2021 Artem Polishchuk - 2021.7.14-1 -- build(update): 2021.7.14 - -* Wed Jul 14 2021 Artem Polishchuk - 2021.7.3-2 -- build(add dep): python3-pyyaml - -* Sun Jul 04 2021 Artem Polishchuk - 2021.7.3-1 -- build(update): 2021.7.3 - -* Sat Jun 19 2021 Artem Polishchuk - 3.1.15-1 -- build(update): 3.1.15 - -* Fri Jun 11 2021 Artem Polishchuk - 3.1.14-1 -- build(update): 3.1.14 - -* Wed Jun 09 2021 Artem Polishchuk - 3.1.13-1 -- build(update): 3.1.13 - -* Tue May 25 2021 Artem Polishchuk - 3.1.12-1 -- build(update): 3.1.12 - -* Sat May 22 2021 Artem Polishchuk - 3.1.11-1 -- build(update): 3.1.11 - -* Sat May 22 2021 Artem Polishchuk - 3.1.10-1 -- build(update): 3.1.10 - -* Thu May 20 2021 Artem Polishchuk - 3.1.9-1 -- build(update): 3.1.9 - -* Wed May 05 2021 Artem Polishchuk - 3.1.8-1 -- build(update): 3.1.8 - -* Sun May 02 2021 Artem Polishchuk - 3.1.7-1 -- build(update): 3.1.7 - -* Mon Apr 26 2021 Artem Polishchuk - 3.1.6-1 -- build(update): 3.1.6 - -* Tue Apr 20 2021 Artem Polishchuk - 3.1.5-1 -- build(update): 3.1.5 - -* Thu Apr 08 2021 Artem Polishchuk - 3.1.4-1 -- build(update): 3.1.4 - -* Wed Mar 31 2021 Artem Polishchuk - 3.1.3-1 -- build(update): 3.1.3 - -* Fri Mar 26 2021 Artem Polishchuk - 3.1.2-1 -- build(update): 3.1.2 - -* Sun Mar 21 2021 Artem Polishchuk - 3.1.1-1 -- build(update): 3.1.1 - -* Fri Mar 19 2021 Artem Polishchuk - 3.1.0-1 -- build(update): 3.1.0 - -* Sat Mar 13 2021 Artem Polishchuk - 3.0.9-1 -- build(update): 3.0.9 - -* Mon Mar 08 2021 Artem Polishchuk - 3.0.8-1 -- build(update): 3.0.8 - -* Sun Mar 07 2021 Artem Polishchuk - 3.0.6-1 -- build(update): 3.0.6 - -* Wed Mar 03 2021 Artem Polishchuk - 3.0.5-1 -- build(update): 3.0.5 - -* Fri Feb 26 2021 Artem Polishchuk - 3.0.2-1 -- build(update): 3.0.2 - -* Fri Feb 26 2021 Artem Polishchuk - 3.0.1.1-2 -- build: Add libhandy1 dep - -* Fri Feb 26 2021 Artem Polishchuk - 3.0.1.1-1 -- build(update): 3.0.1.1 - -* Mon Feb 22 2021 Artem Polishchuk - 2.1.2-1 -- build(update): 2.1.2 - -* Fri Feb 19 2021 Artem Polishchuk - 2.1.1-1 -- build(update): 2.1.1 - -* Thu Feb 18 2021 Artem Polishchuk - 2.1.0.7-1 -- build(update): 2.1.0.7 - -* Thu Feb 04 2021 Artem Polishchuk - 2.1.0.6-1 -- build(update): 2.1.0.6 - -* Tue Jan 26 2021 Artem Polishchuk - 2.1.0.5-1 -- build(update): 2.1.0.5 - -* Wed Jan 20 2021 Artem Polishchuk - 2.1.0.4-1 -- build(update): 2.1.0.4 - -* Mon Jan 18 2021 Artem Polishchuk - 2.1.0.2-1 -- build(update): 2.1.0.2 - -* Tue Jan 12 2021 Artem Polishchuk - 2.1.0-1 -- build(update): 2.1.0 - -* Sun Jan 10 2021 Artem Polishchuk - 2.0.9.9-1 -- build(update): 2.0.9.9 - -* Sat Jan 9 2021 Artem Polishchuk - 2.0.9.8-1 -- build(update): 2.0.9.8 - -* Thu Jan 7 2021 Artem Polishchuk - 2.0.9.7-1 -- Initial package +%autochangelog diff --git a/changelog b/changelog new file mode 100644 index 0000000..155c514 --- /dev/null +++ b/changelog @@ -0,0 +1,198 @@ +* Sun May 29 2022 Artem Polishchuk - 2022.5.28-1 +- chore(update): 2022.5.28 + +* Sat May 14 2022 Artem Polishchuk - 2022.5.14-1 +- chore(update): 2022.5.14 + +* Mon May 02 2022 Artem Polishchuk - 2022.5.2-1 +- chore(update): 2022.5.2 + +* Wed Apr 27 2022 Artem Polishchuk - 2022.4.28-1 +- chore(update): 2022.4.28 + +* Wed Apr 13 2022 Artem Polishchuk - 2022.4.14-1 +- chore(update): 2022.4.14 + +* Mon Mar 28 2022 Artem Polishchuk - 2022.3.28-1 +- chore(update): 2022.3.28 + +* Mon Mar 14 2022 Artem Polishchuk - 2022.3.14-1 +- chore(update): 2022.3.14 + +* Sat Mar 12 2022 Artem Polishchuk - 2022.2.28-2 +- build: Add gtksourceview4 dep + +* Sun Feb 27 2022 Artem Polishchuk - 2022.2.28-1 +- chore(update): 2022.2.28 + +* Mon Feb 14 2022 Artem Polishchuk - 2022.2.14-1 +- chore(update): 2022.2.14 + +* Fri Jan 28 2022 Artem Polishchuk - 2022.1.28-1 +- chore(update): 2022.1.28 + +* Mon Jan 24 2022 Artem Polishchuk - 2022.1.14-3 +- build(add dep): cabextract + +* Wed Jan 19 2022 Fedora Release Engineering - 2022.1.14-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Jan 13 2022 Artem Polishchuk - 2022.1.14-1 +- chore(update): 2022.1.14 + +* Tue Dec 28 2021 Artem Polishchuk - 2021.12.28-1 +- chore(update): 2021.12.28 + +* Tue Dec 14 2021 Artem Polishchuk - 2021.12.14-1 +- chore(update): 2021.12.14 + +* Sun Nov 28 2021 Artem Polishchuk - 2021.11.28-1 +- chore(update): 2021.11.28 + +* Sat Nov 13 2021 Artem Polishchuk - 2021.11.14-1 +- chore(update): 2021.11.14 + +* Wed Oct 27 2021 Artem Polishchuk - 2021.10.28-1 +- chore(update): 2021.10.28 + +* Wed Oct 13 2021 Artem Polishchuk - 2021.10.14-1 +- chore(update): 2021.10.14 + +* Thu Oct 07 2021 Artem Polishchuk - 2021.9.28-3 +- fix: Multilib dep + +* Wed Oct 06 2021 Artem Polishchuk - 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 - 2021.9.28-1 +- build(update): 2021.9.28 + +* Tue Sep 14 2021 Artem Polishchuk - 2021.9.14-1 +- build(update): 2021.9.14 + +* Sat Aug 28 2021 Artem Polishchuk - 2021.8.28-1 +- build(update): 2021.8.28 + +* Sun Aug 15 2021 Artem Polishchuk - 2021.8.14-2 +- fix: Add new dep python3-patool + +* Sun Aug 15 2021 Artem Polishchuk - 2021.8.14-1 +- build(update): 2021.8.14 + +* Wed Jul 28 2021 Artem Polishchuk - 2021.7.28-1 +- build(update): 2021.7.28 + +* Wed Jul 21 2021 Fedora Release Engineering - 2021.7.14-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Jul 14 2021 Artem Polishchuk - 2021.7.14-1 +- build(update): 2021.7.14 + +* Wed Jul 14 2021 Artem Polishchuk - 2021.7.3-2 +- build(add dep): python3-pyyaml + +* Sun Jul 04 2021 Artem Polishchuk - 2021.7.3-1 +- build(update): 2021.7.3 + +* Sat Jun 19 2021 Artem Polishchuk - 3.1.15-1 +- build(update): 3.1.15 + +* Fri Jun 11 2021 Artem Polishchuk - 3.1.14-1 +- build(update): 3.1.14 + +* Wed Jun 09 2021 Artem Polishchuk - 3.1.13-1 +- build(update): 3.1.13 + +* Tue May 25 2021 Artem Polishchuk - 3.1.12-1 +- build(update): 3.1.12 + +* Sat May 22 2021 Artem Polishchuk - 3.1.11-1 +- build(update): 3.1.11 + +* Sat May 22 2021 Artem Polishchuk - 3.1.10-1 +- build(update): 3.1.10 + +* Thu May 20 2021 Artem Polishchuk - 3.1.9-1 +- build(update): 3.1.9 + +* Wed May 05 2021 Artem Polishchuk - 3.1.8-1 +- build(update): 3.1.8 + +* Sun May 02 2021 Artem Polishchuk - 3.1.7-1 +- build(update): 3.1.7 + +* Mon Apr 26 2021 Artem Polishchuk - 3.1.6-1 +- build(update): 3.1.6 + +* Tue Apr 20 2021 Artem Polishchuk - 3.1.5-1 +- build(update): 3.1.5 + +* Thu Apr 08 2021 Artem Polishchuk - 3.1.4-1 +- build(update): 3.1.4 + +* Wed Mar 31 2021 Artem Polishchuk - 3.1.3-1 +- build(update): 3.1.3 + +* Fri Mar 26 2021 Artem Polishchuk - 3.1.2-1 +- build(update): 3.1.2 + +* Sun Mar 21 2021 Artem Polishchuk - 3.1.1-1 +- build(update): 3.1.1 + +* Fri Mar 19 2021 Artem Polishchuk - 3.1.0-1 +- build(update): 3.1.0 + +* Sat Mar 13 2021 Artem Polishchuk - 3.0.9-1 +- build(update): 3.0.9 + +* Mon Mar 08 2021 Artem Polishchuk - 3.0.8-1 +- build(update): 3.0.8 + +* Sun Mar 07 2021 Artem Polishchuk - 3.0.6-1 +- build(update): 3.0.6 + +* Wed Mar 03 2021 Artem Polishchuk - 3.0.5-1 +- build(update): 3.0.5 + +* Fri Feb 26 2021 Artem Polishchuk - 3.0.2-1 +- build(update): 3.0.2 + +* Fri Feb 26 2021 Artem Polishchuk - 3.0.1.1-2 +- build: Add libhandy1 dep + +* Fri Feb 26 2021 Artem Polishchuk - 3.0.1.1-1 +- build(update): 3.0.1.1 + +* Mon Feb 22 2021 Artem Polishchuk - 2.1.2-1 +- build(update): 2.1.2 + +* Fri Feb 19 2021 Artem Polishchuk - 2.1.1-1 +- build(update): 2.1.1 + +* Thu Feb 18 2021 Artem Polishchuk - 2.1.0.7-1 +- build(update): 2.1.0.7 + +* Thu Feb 04 2021 Artem Polishchuk - 2.1.0.6-1 +- build(update): 2.1.0.6 + +* Tue Jan 26 2021 Artem Polishchuk - 2.1.0.5-1 +- build(update): 2.1.0.5 + +* Wed Jan 20 2021 Artem Polishchuk - 2.1.0.4-1 +- build(update): 2.1.0.4 + +* Mon Jan 18 2021 Artem Polishchuk - 2.1.0.2-1 +- build(update): 2.1.0.2 + +* Tue Jan 12 2021 Artem Polishchuk - 2.1.0-1 +- build(update): 2.1.0 + +* Sun Jan 10 2021 Artem Polishchuk - 2.0.9.9-1 +- build(update): 2.0.9.9 + +* Sat Jan 9 2021 Artem Polishchuk - 2.0.9.8-1 +- build(update): 2.0.9.8 + +* Thu Jan 7 2021 Artem Polishchuk - 2.0.9.7-1 +- Initial package From f4e5c414306aa60425d3ead2adf0b73fceb58cb0 Mon Sep 17 00:00:00 2001 From: Artem Polishchuk Date: Sat, 18 Jun 2022 04:55:55 +0300 Subject: [PATCH 05/57] build: Add missing deps --- .gitignore | 1 + bottles.spec | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 2b39a00..1f47030 100644 --- a/.gitignore +++ b/.gitignore @@ -55,3 +55,4 @@ /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 diff --git a/bottles.spec b/bottles.spec index abacb28..fba1c2e 100644 --- a/bottles.spec +++ b/bottles.spec @@ -21,16 +21,20 @@ 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: glibc(x86-32) %dnl # https://github.com/bottlesdevs/Bottles/issues/601#issuecomment-936772762 Requires: gtk3 Requires: gtksourceview4 Requires: hicolor-icon-theme Requires: libhandy1 >= 1.5 +Requires: p7zip %dnl # needed by the dependencies manager Requires: python3-gobject Requires: python3-markdown Requires: python3-patool +Requires: python3-pefile %dnl # icons support | 'icoextract' not packaged 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 Easily manage Wine prefix in a new way! (Run Windows software and games on From e01d727204f0c63824be0922c4b7b73f62526809 Mon Sep 17 00:00:00 2001 From: Artem Polishchuk Date: Mon, 20 Jun 2022 05:37:33 +0300 Subject: [PATCH 06/57] build: Retrieve cabextract dep --- bottles.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/bottles.spec b/bottles.spec index fba1c2e..542babc 100644 --- a/bottles.spec +++ b/bottles.spec @@ -21,6 +21,7 @@ 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 From d188cc46dd03dd877b3f81ec2d17a4f5bc6455ec Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 20 Jul 2022 22:12:34 +0000 Subject: [PATCH 07/57] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering From 65dd57c9f46f3af9bcf38f25955e6482b82eafdc Mon Sep 17 00:00:00 2001 From: Artem Polishchuk Date: Sat, 22 Oct 2022 15:09:16 +0300 Subject: [PATCH 08/57] build(update): 2022.7.14 --- .gitignore | 1 + bottles.spec | 27 +++++++++++++-------------- sources | 2 +- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index 1f47030..421857e 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,4 @@ /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/bottles.spec b/bottles.spec index 542babc..059447e 100644 --- a/bottles.spec +++ b/bottles.spec @@ -1,15 +1,15 @@ %global uuid pm.mirko.%{name} -%global suf trento-3 +%global suf brescia-3 Name: bottles -Version: 2022.5.28 +Version: 2022.7.14 Release: %autorelease BuildArch: noarch 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}-%{suf}.tar.gz +Source0: %{url}/archive/%{version}-%{suf}/%{name}-%{version}-%{suf}.tar.gz BuildRequires: desktop-file-utils BuildRequires: libappstream-glib @@ -18,20 +18,22 @@ BuildRequires: python3 BuildRequires: python3-gobject BuildRequires: pkgconfig(glib-2.0) -BuildRequires: pkgconfig(gtk+-3.0) -BuildRequires: pkgconfig(libhandy-1) >= 1.5 +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: gtk3 +Requires: gtk4 Requires: gtksourceview4 Requires: hicolor-icon-theme -Requires: libhandy1 >= 1.5 -Requires: p7zip %dnl # needed by the dependencies manager +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 | 'icoextract' not packaged +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 @@ -73,7 +75,7 @@ Features: %prep -%autosetup -n Bottles-%{version}-%{suf} -p1 +%autosetup -n Bottles-%{version}-%{suf} %build @@ -87,10 +89,7 @@ Features: %check -# ? tag-invalid : type invalid [unknown] -# https://github.com/bottlesdevs/Bottles/commit/95b451d152c5a8609c2a46fd173514f2cbd6fb54 -%dnl appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.xml - +appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.xml desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop diff --git a/sources b/sources index 3068b76..df71b71 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (bottles-2022.5.28-trento-3.tar.gz) = 634390005c21d881a7dca6007bf43cc5fade694a0aa779ddb030711948028bb92cdab0df2b4fb7eaa8a2df3d01463042b9401f2b9935f2f3e4dd9f0c9f81edca +SHA512 (bottles-2022.7.14-brescia-3.tar.gz) = 787d1e73554bf22e2614d31fd3692b97de25483ecd7929d59407053cdcbe1fd5cc66f0dd52d92bce0dedad2b6d1f9e4b90ef631c18273f12f86a9c73ed6bab0c From c5fa70d43993c0abf2e75ec94f2f9d7fc7676973 Mon Sep 17 00:00:00 2001 From: Cristian Le Date: Thu, 17 Nov 2022 09:47:31 +0100 Subject: [PATCH 09/57] Update dependency In the port to gtk4 [1], they have bumped the requirement of GtkSource5 [1] https://github.com/bottlesdevs/Bottles/pull/1426 Signed-off-by: Cristian Le --- bottles.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bottles.spec b/bottles.spec index 059447e..4be00b8 100644 --- a/bottles.spec +++ b/bottles.spec @@ -24,7 +24,7 @@ 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: gtksourceview4 +Requires: gtksourceview5 Requires: hicolor-icon-theme Requires: libadwaita >= 1.1.99 Requires: p7zip p7zip-plugins %dnl # needed by the dependencies manager From 1fa60ef6f82f96e87558bfb88b1b1f56f3b80b6d Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 18 Jan 2023 23:06:38 +0000 Subject: [PATCH 10/57] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering From e3258818f1ba99022d666ae2d4fc9b32115b99a3 Mon Sep 17 00:00:00 2001 From: Sandro Date: Sat, 20 May 2023 13:12:18 +0200 Subject: [PATCH 11/57] Update to 51.6 (RHBZ#2143460) - bug fixes and enhancements - https://github.com/bottlesdevs/Bottles/releases/tag/51.6 - Update depdendencies - Set epoch due to new version scheme - Migrate to SPDX license - Close RHBZ#2160007 --- .gitignore | 1 + bottles.spec | 26 ++++++++++++++++++-------- sources | 2 +- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 421857e..0ffe0dd 100644 --- a/.gitignore +++ b/.gitignore @@ -57,3 +57,4 @@ /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 diff --git a/bottles.spec b/bottles.spec index 4be00b8..6d29669 100644 --- a/bottles.spec +++ b/bottles.spec @@ -1,26 +1,33 @@ %global uuid pm.mirko.%{name} -%global suf brescia-3 +%global gh_name Bottles + +%global forgeurl https://github.com/bottlesdevs/%{gh_name} +%global tag 51.6 Name: bottles -Version: 2022.7.14 +Epoch: 1 +Version: %{tag} Release: %autorelease BuildArch: noarch -License: GPLv3+ +%forgemeta + +License: GPL-3.0-or-later 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 +URL: %{forgeurl} +Source0: %{forgesource} BuildRequires: desktop-file-utils BuildRequires: libappstream-glib BuildRequires: meson BuildRequires: python3 -BuildRequires: python3-gobject 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 @@ -38,6 +45,9 @@ 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 %description Easily manage Wine prefix in a new way! (Run Windows software and games on @@ -75,7 +85,7 @@ Features: %prep -%autosetup -n Bottles-%{version}-%{suf} +%autosetup -n %{gh_name}-%{version} %build @@ -94,7 +104,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop %files -f %{name}.lang -%license LICENSE +%license COPYING.md %doc README.md %{_bindir}/%{name} %{_bindir}/%{name}-cli diff --git a/sources b/sources index df71b71..a7c74ce 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (bottles-2022.7.14-brescia-3.tar.gz) = 787d1e73554bf22e2614d31fd3692b97de25483ecd7929d59407053cdcbe1fd5cc66f0dd52d92bce0dedad2b6d1f9e4b90ef631c18273f12f86a9c73ed6bab0c +SHA512 (Bottles-51.6.tar.gz) = 0190744b3a99d791ffbd1b7a104565c2fd1f5aa110afe329897d4b29f0f5d669a6ec145468fea85e88b2f20bb2f7f075522760fd7ced94eea1afc0667780b288 From 7505e89d74c5d943cc44da3f83d35d59d58d3474 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jul 2023 14:51:45 +0000 Subject: [PATCH 12/57] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering From 5aa56f318181e55d5c69b93ee590e909088ae6d8 Mon Sep 17 00:00:00 2001 From: Lyes Saadi Date: Tue, 12 Sep 2023 18:36:25 +0200 Subject: [PATCH 13/57] blueprint-compiler: ExcludeArch s390x --- bottles.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bottles.spec b/bottles.spec index 6d29669..9de5be6 100644 --- a/bottles.spec +++ b/bottles.spec @@ -10,6 +10,10 @@ Version: %{tag} Release: %autorelease BuildArch: noarch +# blueprint-compiler does not work on s390x: +# https://gitlab.gnome.org/jwestman/blueprint-compiler/-/issues/96 +ExcludeArch: s390x + %forgemeta License: GPL-3.0-or-later From de205398c813e4b1139c3a8aca9d0af4815dbcfb Mon Sep 17 00:00:00 2001 From: Sandro Date: Sat, 9 Sep 2023 15:36:37 +0200 Subject: [PATCH 14/57] Update to 51.9 (RHBZ#2233358) - Update License: value - Update requirements - Close RHBZ#2229175 RHBZ#2227538 RHBZ#2224722 RHBZ#2222906 - Close RHBZ#2221500 --- .gitignore | 1 + bottles.spec | 10 +++++++--- sources | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 0ffe0dd..79e799b 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,4 @@ /bottles-2022.6.14-brescia-1.tar.gz /bottles-2022.7.14-brescia-3.tar.gz /Bottles-51.6.tar.gz +/Bottles-51.9.tar.gz diff --git a/bottles.spec b/bottles.spec index 9de5be6..649ac37 100644 --- a/bottles.spec +++ b/bottles.spec @@ -2,11 +2,10 @@ %global gh_name Bottles %global forgeurl https://github.com/bottlesdevs/%{gh_name} -%global tag 51.6 Name: bottles Epoch: 1 -Version: %{tag} +Version: 51.9 Release: %autorelease BuildArch: noarch @@ -14,9 +13,13 @@ BuildArch: noarch # https://gitlab.gnome.org/jwestman/blueprint-compiler/-/issues/96 ExcludeArch: s390x +%global tag %{version} %forgemeta -License: GPL-3.0-or-later +# 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 Summary: Easily manage Wine prefix in a new way URL: %{forgeurl} Source0: %{forgesource} @@ -52,6 +55,7 @@ Requires: xdpyinfo %dnl # needed by the display util Requires: python3-pathvalidate Requires: python3-fvs Requires: python3-vkbasalt-cli +Requires: ImageMagick %dnl # https://bugzilla.redhat.com/show_bug.cgi?id=2227538 %description Easily manage Wine prefix in a new way! (Run Windows software and games on diff --git a/sources b/sources index a7c74ce..7ec3991 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (Bottles-51.6.tar.gz) = 0190744b3a99d791ffbd1b7a104565c2fd1f5aa110afe329897d4b29f0f5d669a6ec145468fea85e88b2f20bb2f7f075522760fd7ced94eea1afc0667780b288 +SHA512 (Bottles-51.9.tar.gz) = 81a77f0b02e2ea775bef5591d6be296372544a91fb92c4f39c3cab310887f88d8d9abd1d4b4854dcf8837bd2dc3f6d54c0693b55c60b60d6901e68dda82da1b4 From 6750913f6703bc050a5635b0cdacbe6e4d0dc277 Mon Sep 17 00:00:00 2001 From: Sandro Date: Sat, 30 Sep 2023 14:00:12 +0200 Subject: [PATCH 15/57] Use forge macros properly No need to define tag since we have releases on GitHub. That makes the `gh_name` macro obsolete. Also setup using forge magic. --- bottles.spec | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/bottles.spec b/bottles.spec index 649ac37..7e73bab 100644 --- a/bottles.spec +++ b/bottles.spec @@ -1,7 +1,6 @@ %global uuid pm.mirko.%{name} -%global gh_name Bottles -%global forgeurl https://github.com/bottlesdevs/%{gh_name} +%global forgeurl https://github.com/bottlesdevs/Bottles Name: bottles Epoch: 1 @@ -13,7 +12,6 @@ BuildArch: noarch # https://gitlab.gnome.org/jwestman/blueprint-compiler/-/issues/96 ExcludeArch: s390x -%global tag %{version} %forgemeta # The following two files are licensed as MIT: @@ -93,7 +91,7 @@ Features: %prep -%autosetup -n %{gh_name}-%{version} +%forgeautosetup -p1 %build From 03ddd95a9668155e3bec2ba3d40bae01e4902de7 Mon Sep 17 00:00:00 2001 From: Sandro Date: Sat, 30 Sep 2023 14:03:19 +0200 Subject: [PATCH 16/57] Drop obsolete macro --- bottles.spec | 2 -- 1 file changed, 2 deletions(-) diff --git a/bottles.spec b/bottles.spec index 7e73bab..94a6c85 100644 --- a/bottles.spec +++ b/bottles.spec @@ -1,5 +1,3 @@ -%global uuid pm.mirko.%{name} - %global forgeurl https://github.com/bottlesdevs/Bottles Name: bottles From cc1bcc46da229ecd38391b482e636ea3b9c4022b Mon Sep 17 00:00:00 2001 From: Sandro Date: Sat, 30 Sep 2023 14:06:48 +0200 Subject: [PATCH 17/57] Add python3-chardet (RHBZ#2240292) --- bottles.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/bottles.spec b/bottles.spec index 94a6c85..a4cf6f0 100644 --- a/bottles.spec +++ b/bottles.spec @@ -52,6 +52,7 @@ Requires: python3-pathvalidate Requires: python3-fvs Requires: python3-vkbasalt-cli Requires: ImageMagick %dnl # https://bugzilla.redhat.com/show_bug.cgi?id=2227538 +Requires: python3-chardet %dnl # https://bugzilla.redhat.com/show_bug.cgi?id=2240292 %description Easily manage Wine prefix in a new way! (Run Windows software and games on From 05fed040e000280e2f978d65b8ce86c76de8c4d8 Mon Sep 17 00:00:00 2001 From: Sandro Date: Sat, 30 Sep 2023 14:11:28 +0200 Subject: [PATCH 18/57] Add Packit config --- .packit.yaml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .packit.yaml diff --git a/.packit.yaml b/.packit.yaml new file mode 100644 index 0000000..2e9373e --- /dev/null +++ b/.packit.yaml @@ -0,0 +1,16 @@ +upstream_project_url: https://github.com/bottlesdevs/Bottles +upstream_package_name: Bottles +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 From 893a1fbfccc7d22f83bdbf7fe9a867bed0fb2640 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nikola=20Forr=C3=B3?= Date: Sun, 24 Dec 2023 09:31:16 +0100 Subject: [PATCH 19/57] Fix %forgesource MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Nikola Forró --- bottles.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bottles.spec b/bottles.spec index a4cf6f0..1a1924d 100644 --- a/bottles.spec +++ b/bottles.spec @@ -10,6 +10,8 @@ BuildArch: noarch # https://gitlab.gnome.org/jwestman/blueprint-compiler/-/issues/96 ExcludeArch: s390x +%global tag %{version} + %forgemeta # The following two files are licensed as MIT: From e64a882879c7e8dcc12c3e0d7c4307222c4a2205 Mon Sep 17 00:00:00 2001 From: Sandro Date: Sun, 24 Dec 2023 12:24:56 +0100 Subject: [PATCH 20/57] Fix Packit configuration Bottles doesn't munge version ('v' prefix). Tell packit to use the plain version for computing the download URL. --- .packit.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.packit.yaml b/.packit.yaml index 2e9373e..7659433 100644 --- a/.packit.yaml +++ b/.packit.yaml @@ -1,5 +1,6 @@ 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 From 17ba7c76aa880a4060f2b78b20aa99a2b8a2141f Mon Sep 17 00:00:00 2001 From: Sandro Date: Sun, 24 Dec 2023 12:37:58 +0100 Subject: [PATCH 21/57] [packit] 51.10 upstream release Upstream tag: 51.10 Upstream commit: 28ab196b --- .gitignore | 1 + README.packit | 3 +++ bottles.spec | 2 +- sources | 2 +- 4 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 README.packit diff --git a/.gitignore b/.gitignore index 79e799b..0c75929 100644 --- a/.gitignore +++ b/.gitignore @@ -59,3 +59,4 @@ /bottles-2022.7.14-brescia-3.tar.gz /Bottles-51.6.tar.gz /Bottles-51.9.tar.gz +/Bottles-51.10.tar.gz diff --git a/README.packit b/README.packit new file mode 100644 index 0000000..5998f60 --- /dev/null +++ b/README.packit @@ -0,0 +1,3 @@ +This repository is maintained by packit. +https://packit.dev/ +The file was generated using packit 0.85.0. diff --git a/bottles.spec b/bottles.spec index 1a1924d..431d784 100644 --- a/bottles.spec +++ b/bottles.spec @@ -2,7 +2,7 @@ Name: bottles Epoch: 1 -Version: 51.9 +Version: 51.10 Release: %autorelease BuildArch: noarch diff --git a/sources b/sources index 7ec3991..e89f76e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (Bottles-51.9.tar.gz) = 81a77f0b02e2ea775bef5591d6be296372544a91fb92c4f39c3cab310887f88d8d9abd1d4b4854dcf8837bd2dc3f6d54c0693b55c60b60d6901e68dda82da1b4 +SHA512 (Bottles-51.10.tar.gz) = a5d27f70d580cc115f797370437a41a0eeb7335e8278618415f7ba7268aae8102ba9ee8417723a731f677b7bf346773e5851f9021ff12bdec4305b436e589c24 From 0fb7f417395625fb73f59de67c3f20d0bdfa9dbd Mon Sep 17 00:00:00 2001 From: Sandro Date: Sun, 24 Dec 2023 12:39:21 +0100 Subject: [PATCH 22/57] Revert "[packit] 51.10 upstream release" Mishap. I was playing with Packit and didn't expect it to push right away. Revert, revert! This reverts commit 17ba7c76aa880a4060f2b78b20aa99a2b8a2141f. --- .gitignore | 1 - README.packit | 3 --- bottles.spec | 2 +- sources | 2 +- 4 files changed, 2 insertions(+), 6 deletions(-) delete mode 100644 README.packit diff --git a/.gitignore b/.gitignore index 0c75929..79e799b 100644 --- a/.gitignore +++ b/.gitignore @@ -59,4 +59,3 @@ /bottles-2022.7.14-brescia-3.tar.gz /Bottles-51.6.tar.gz /Bottles-51.9.tar.gz -/Bottles-51.10.tar.gz diff --git a/README.packit b/README.packit deleted file mode 100644 index 5998f60..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 0.85.0. diff --git a/bottles.spec b/bottles.spec index 431d784..1a1924d 100644 --- a/bottles.spec +++ b/bottles.spec @@ -2,7 +2,7 @@ Name: bottles Epoch: 1 -Version: 51.10 +Version: 51.9 Release: %autorelease BuildArch: noarch diff --git a/sources b/sources index e89f76e..7ec3991 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (Bottles-51.10.tar.gz) = a5d27f70d580cc115f797370437a41a0eeb7335e8278618415f7ba7268aae8102ba9ee8417723a731f677b7bf346773e5851f9021ff12bdec4305b436e589c24 +SHA512 (Bottles-51.9.tar.gz) = 81a77f0b02e2ea775bef5591d6be296372544a91fb92c4f39c3cab310887f88d8d9abd1d4b4854dcf8837bd2dc3f6d54c0693b55c60b60d6901e68dda82da1b4 From ce6b7342d9550aaa08df8cc660dab59508b40432 Mon Sep 17 00:00:00 2001 From: Sandro Date: Sun, 24 Dec 2023 12:52:33 +0100 Subject: [PATCH 23/57] Update to 51.10 (RHBZ#2255734) - Close RHBZ#2247856 RHBZ#2249922 RHBZ#2254894 --- .gitignore | 1 + bottles.spec | 2 +- sources | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 79e799b..0c75929 100644 --- a/.gitignore +++ b/.gitignore @@ -59,3 +59,4 @@ /bottles-2022.7.14-brescia-3.tar.gz /Bottles-51.6.tar.gz /Bottles-51.9.tar.gz +/Bottles-51.10.tar.gz diff --git a/bottles.spec b/bottles.spec index 1a1924d..431d784 100644 --- a/bottles.spec +++ b/bottles.spec @@ -2,7 +2,7 @@ Name: bottles Epoch: 1 -Version: 51.9 +Version: 51.10 Release: %autorelease BuildArch: noarch diff --git a/sources b/sources index 7ec3991..e89f76e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (Bottles-51.9.tar.gz) = 81a77f0b02e2ea775bef5591d6be296372544a91fb92c4f39c3cab310887f88d8d9abd1d4b4854dcf8837bd2dc3f6d54c0693b55c60b60d6901e68dda82da1b4 +SHA512 (Bottles-51.10.tar.gz) = a5d27f70d580cc115f797370437a41a0eeb7335e8278618415f7ba7268aae8102ba9ee8417723a731f677b7bf346773e5851f9021ff12bdec4305b436e589c24 From 20f69f45ed39067f1f1c2fc6b92d0336865e774c Mon Sep 17 00:00:00 2001 From: Sandro Date: Sun, 24 Dec 2023 13:04:55 +0100 Subject: [PATCH 24/57] Update meta info (summary, description) Also re-order spec file a little (pedantic). --- bottles.spec | 55 +++++++++++++++++----------------------------------- 1 file changed, 18 insertions(+), 37 deletions(-) diff --git a/bottles.spec b/bottles.spec index 431d784..c94071a 100644 --- a/bottles.spec +++ b/bottles.spec @@ -4,24 +4,23 @@ Name: bottles Epoch: 1 Version: 51.10 Release: %autorelease -BuildArch: noarch - -# blueprint-compiler does not work on s390x: -# https://gitlab.gnome.org/jwestman/blueprint-compiler/-/issues/96 -ExcludeArch: s390x +Summary: Run Windows in a Bottle %global tag %{version} - %forgemeta # 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 -Summary: Easily manage Wine prefix in a new way URL: %{forgeurl} Source0: %{forgesource} +BuildArch: noarch +# blueprint-compiler does not work on s390x: +# https://gitlab.gnome.org/jwestman/blueprint-compiler/-/issues/96 +ExcludeArch: s390x + BuildRequires: desktop-file-utils BuildRequires: libappstream-glib BuildRequires: meson @@ -57,39 +56,21 @@ Requires: ImageMagick %dnl # https://bugzilla.redhat.com/show_bug. Requires: python3-chardet %dnl # https://bugzilla.redhat.com/show_bug.cgi?id=2240292 %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 %forgeautosetup -p1 From cbbd713fd5ef235a24e494a9fb4cef276f67c428 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 19 Jan 2024 14:38:18 +0000 Subject: [PATCH 25/57] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From c2861db149329232569c4e3cfd94d564eeedea88 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 23 Jan 2024 00:43:58 +0000 Subject: [PATCH 26/57] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 31eb88079becb5131c602ce3753e58ca8e8d36c2 Mon Sep 17 00:00:00 2001 From: Packit Date: Mon, 19 Feb 2024 08:01:08 +0000 Subject: [PATCH 27/57] [packit] 51.11 upstream release - Resolves rhbz#2264828 Upstream tag: 51.11 Upstream commit: 89abf684 --- .gitignore | 1 + README.packit | 3 +++ bottles.spec | 2 +- sources | 2 +- 4 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 README.packit diff --git a/.gitignore b/.gitignore index 0c75929..b657454 100644 --- a/.gitignore +++ b/.gitignore @@ -60,3 +60,4 @@ /Bottles-51.6.tar.gz /Bottles-51.9.tar.gz /Bottles-51.10.tar.gz +/Bottles-51.11.tar.gz diff --git a/README.packit b/README.packit new file mode 100644 index 0000000..f592284 --- /dev/null +++ b/README.packit @@ -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. diff --git a/bottles.spec b/bottles.spec index c94071a..529fec2 100644 --- a/bottles.spec +++ b/bottles.spec @@ -2,7 +2,7 @@ Name: bottles Epoch: 1 -Version: 51.10 +Version: 51.11 Release: %autorelease Summary: Run Windows in a Bottle diff --git a/sources b/sources index e89f76e..8baf231 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (Bottles-51.10.tar.gz) = a5d27f70d580cc115f797370437a41a0eeb7335e8278618415f7ba7268aae8102ba9ee8417723a731f677b7bf346773e5851f9021ff12bdec4305b436e589c24 +SHA512 (Bottles-51.11.tar.gz) = 42c503a4910a8e6c408caecd723edf1405aa034558d61313937a69c7d5ffb20ba4675fc9022775491cbbe6ba4a35ffac508b4721f9c971c57cbcb888345d546b From e95581f20351c1e860167f5db51f30866f42af44 Mon Sep 17 00:00:00 2001 From: Sandro Date: Mon, 4 Mar 2024 20:36:49 +0100 Subject: [PATCH 28/57] Make sure Paths.bottles exists Fixes a FileNotFoundError when opening an executable directly in Bottles (RHBZ#2257180). Earlier reported in RHBZ#2249922, RHBZ#2252369 and RHBZ#2249986. --- bottles.spec | 2 ++ ensure_bottles_dir_exists.patch | 29 +++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 ensure_bottles_dir_exists.patch diff --git a/bottles.spec b/bottles.spec index 529fec2..abc37bf 100644 --- a/bottles.spec +++ b/bottles.spec @@ -15,6 +15,8 @@ Summary: Run Windows in a Bottle 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 BuildArch: noarch # blueprint-compiler does not work on s390x: diff --git a/ensure_bottles_dir_exists.patch b/ensure_bottles_dir_exists.patch new file mode 100644 index 0000000..12ac255 --- /dev/null +++ b/ensure_bottles_dir_exists.patch @@ -0,0 +1,29 @@ +commit 7eed7bbfa5d1da924b4c4e0659f0bf86b0fd7d7b +Author: Sandro +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 = {} From 37d5da1a25e999c48a44e9816331d954bdf7e5ad Mon Sep 17 00:00:00 2001 From: Sandro Date: Mon, 4 Mar 2024 21:51:22 +0100 Subject: [PATCH 29/57] Catch AttributeError in set_manager() Return empty list if AttributeError is raised (RHBZ#2260135). --- bottles.spec | 2 ++ catch_exception_in_set_manager.patch | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 catch_exception_in_set_manager.patch diff --git a/bottles.spec b/bottles.spec index abc37bf..492310e 100644 --- a/bottles.spec +++ b/bottles.spec @@ -17,6 +17,8 @@ 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 BuildArch: noarch # blueprint-compiler does not work on s390x: diff --git a/catch_exception_in_set_manager.patch b/catch_exception_in_set_manager.patch new file mode 100644 index 0000000..08c1794 --- /dev/null +++ b/catch_exception_in_set_manager.patch @@ -0,0 +1,28 @@ +commit 3e1db3c75fee5eedb2190e7dba71239e923affb7 +Author: Sandro +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() + From 60f51c6b152e4b7031aee46626bfc18ea7257de4 Mon Sep 17 00:00:00 2001 From: Sandro Date: Sun, 21 Apr 2024 15:01:53 +0200 Subject: [PATCH 30/57] Generate Python requirements - Fix RHBZ#2276256 Use upstream's `requirements.txt` to generate Python runtime requirements. Meson isn't helping us in keeping the list of requirements complete and up to date. With the added script this becomes semi automated. --- .gitignore | 65 ++------------------------------------------ bottles.spec | 33 ++++++++++++++-------- generate_requires.sh | 28 +++++++++++++++++++ 3 files changed, 51 insertions(+), 75 deletions(-) create mode 100755 generate_requires.sh diff --git a/.gitignore b/.gitignore index b657454..c1a85b6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,63 +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-51.9.tar.gz -/Bottles-51.10.tar.gz -/Bottles-51.11.tar.gz +/Bottles*tar.gz +require*.txt diff --git a/bottles.spec b/bottles.spec index 492310e..b7dca6e 100644 --- a/bottles.spec +++ b/bottles.spec @@ -44,20 +44,29 @@ 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 Requires: ImageMagick %dnl # https://bugzilla.redhat.com/show_bug.cgi?id=2227538 -Requires: python3-chardet %dnl # https://bugzilla.redhat.com/show_bug.cgi?id=2240292 + +# 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) %description Bottles lets you run Windows software on Linux, such as applications diff --git a/generate_requires.sh b/generate_requires.sh new file mode 100755 index 0000000..99fe46e --- /dev/null +++ b/generate_requires.sh @@ -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 From 53d45d3de51c20d134e62146a0ff82a3114cdeda Mon Sep 17 00:00:00 2001 From: Sandro Date: Sun, 21 Apr 2024 15:16:53 +0200 Subject: [PATCH 31/57] Properly line out sections Whitespace changes only. [skip changelog] --- bottles.spec | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/bottles.spec b/bottles.spec index b7dca6e..fed8a5d 100644 --- a/bottles.spec +++ b/bottles.spec @@ -20,32 +20,30 @@ Patch: ensure_bottles_dir_exists.patch # Don't fail on AttributeError Patch: catch_exception_in_set_manager.patch -BuildArch: noarch # blueprint-compiler does not work on s390x: # https://gitlab.gnome.org/jwestman/blueprint-compiler/-/issues/96 ExcludeArch: s390x +BuildArch: noarch -BuildRequires: desktop-file-utils -BuildRequires: libappstream-glib -BuildRequires: meson -BuildRequires: python3 +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: 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 +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, From 1242dd24f7fa2c6ffba2ef4c0efc11b25ab93c7b Mon Sep 17 00:00:00 2001 From: Sandro Date: Sun, 21 Apr 2024 15:23:47 +0200 Subject: [PATCH 32/57] Add .git-blame-ignore-revs Use with `git blame --ignore-revs-file` or set the git config option `blame.ignoreRevsFile`. [skip changelog] --- .git-blame-ignore-revs | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .git-blame-ignore-revs diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 0000000..56e3a87 --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1,2 @@ +# Line out sections +53d45d3de51c20d134e62146a0ff82a3114cdeda From bc81bad996a1889f4736378933ec90f800bc0abf Mon Sep 17 00:00:00 2001 From: Sandro Date: Thu, 25 Apr 2024 18:31:09 +0200 Subject: [PATCH 33/57] Add vkbasalt-cli dependency (RHBZ#2277182) It was accidentally dropped when switching to generated dependencies in commit 60f51c6. --- bottles.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bottles.spec b/bottles.spec index fed8a5d..63c38f3 100644 --- a/bottles.spec +++ b/bottles.spec @@ -66,6 +66,9 @@ Requires: python3dist(urllib3) Requires: python3dist(certifi) Requires: python3dist(pefile) +# Requirements not listed in upstream's `requirements.txt` +Requires: python3dist(vkbasalt-cli) + %description Bottles lets you run Windows software on Linux, such as applications and games. It introduces a workflow that helps you organize by From 97ea33fdf1477111f1781fc9ddb5d6740ce32356 Mon Sep 17 00:00:00 2001 From: Lyes Saadi Date: Tue, 16 Jul 2024 20:57:20 +0000 Subject: [PATCH 34/57] Removing ExcludeArch s390x --- bottles.spec | 3 --- 1 file changed, 3 deletions(-) diff --git a/bottles.spec b/bottles.spec index 63c38f3..826bc7e 100644 --- a/bottles.spec +++ b/bottles.spec @@ -20,9 +20,6 @@ Patch: ensure_bottles_dir_exists.patch # Don't fail on AttributeError Patch: catch_exception_in_set_manager.patch -# blueprint-compiler does not work on s390x: -# https://gitlab.gnome.org/jwestman/blueprint-compiler/-/issues/96 -ExcludeArch: s390x BuildArch: noarch BuildRequires: desktop-file-utils From 9b727ed7055c1c1a050ce8cde96c99fdb54663b0 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 17 Jul 2024 18:32:24 +0000 Subject: [PATCH 35/57] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From 4a1d20d3b2194847c4a12a32cd453f5dabc3367d Mon Sep 17 00:00:00 2001 From: Packit Date: Thu, 11 Jul 2024 01:55:55 +0000 Subject: [PATCH 36/57] Update to 51.13 upstream release - Resolves: rhbz#2297253 Upstream tag: 51.13 Upstream commit: 7e60ede5 Commit authored by Packit automation (https://packit.dev/) --- README.packit | 2 +- bottles.spec | 2 +- sources | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.packit b/README.packit index f592284..2499381 100644 --- a/README.packit +++ b/README.packit @@ -1,3 +1,3 @@ This repository is maintained by packit. https://packit.dev/ -The file was generated using packit 0.91.0.post1.dev4+ge6fd4a25. +The file was generated using packit 0.98.0. diff --git a/bottles.spec b/bottles.spec index 826bc7e..3f9dd96 100644 --- a/bottles.spec +++ b/bottles.spec @@ -2,7 +2,7 @@ Name: bottles Epoch: 1 -Version: 51.11 +Version: 51.13 Release: %autorelease Summary: Run Windows in a Bottle diff --git a/sources b/sources index 8baf231..428f608 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (Bottles-51.11.tar.gz) = 42c503a4910a8e6c408caecd723edf1405aa034558d61313937a69c7d5ffb20ba4675fc9022775491cbbe6ba4a35ffac508b4721f9c971c57cbcb888345d546b +SHA512 (Bottles-51.13.tar.gz) = a23b64275721ac890cce5d66ecf8b1a4cb85d00e18b372c27adc9190a1d9314eaed594a16833a5b44f77214c1c183f5e9bf739ee54e722a6997145ddaf8f1e59 From 8168ceb27e745ae13f4df4fa5da211b66b689836 Mon Sep 17 00:00:00 2001 From: Sandro Date: Sat, 27 Jul 2024 15:23:17 +0200 Subject: [PATCH 37/57] Add optional 32-bit dependencies (RHBZ#2277098) Those may be required fir running 32-bit bottles. --- bottles.spec | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/bottles.spec b/bottles.spec index 3f9dd96..a3b0beb 100644 --- a/bottles.spec +++ b/bottles.spec @@ -66,6 +66,21 @@ 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 + %description Bottles lets you run Windows software on Linux, such as applications and games. It introduces a workflow that helps you organize by From 3d96f3d87dafbd737c3089203988cf92f8716338 Mon Sep 17 00:00:00 2001 From: Packit Date: Thu, 17 Oct 2024 02:23:50 +0000 Subject: [PATCH 38/57] Update to 51.15 upstream release - Resolves: rhbz#2318429 Upstream tag: 51.15 Upstream commit: e93cd189 Commit authored by Packit automation (https://packit.dev/) --- README.packit | 2 +- bottles.spec | 2 +- sources | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.packit b/README.packit index 2499381..2bd3f40 100644 --- a/README.packit +++ b/README.packit @@ -1,3 +1,3 @@ This repository is maintained by packit. https://packit.dev/ -The file was generated using packit 0.98.0. +The file was generated using packit 0.102.1.post1.dev6+g64f7460b. diff --git a/bottles.spec b/bottles.spec index a3b0beb..6fc86e4 100644 --- a/bottles.spec +++ b/bottles.spec @@ -2,7 +2,7 @@ Name: bottles Epoch: 1 -Version: 51.13 +Version: 51.15 Release: %autorelease Summary: Run Windows in a Bottle diff --git a/sources b/sources index 428f608..a420eac 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (Bottles-51.13.tar.gz) = a23b64275721ac890cce5d66ecf8b1a4cb85d00e18b372c27adc9190a1d9314eaed594a16833a5b44f77214c1c183f5e9bf739ee54e722a6997145ddaf8f1e59 +SHA512 (Bottles-51.15.tar.gz) = 8917e519c6b537e54a2492b8b0955589e3d0ee2eddf59ba801e84a9f9790187e9f9d3dce990b90a7eb4fe612aaa59f98bc3368e9f43a298a59825b74b74e7ac2 From bd93f182600684c8f01594cb765f6f69bf0811a0 Mon Sep 17 00:00:00 2001 From: Sandro Date: Sat, 9 Nov 2024 13:56:43 +0100 Subject: [PATCH 39/57] Rename and rebase existing patches For ease of rebasing onto new releases. [skip changelog] --- 0001-Make-sure-Paths.bottles-exists.patch | 34 +++++++++++++++++++ ...-Catch-AttributeError-in-set_manager.patch | 17 ++++++---- bottles.spec | 7 ++-- ensure_bottles_dir_exists.patch | 29 ---------------- 4 files changed, 50 insertions(+), 37 deletions(-) create mode 100644 0001-Make-sure-Paths.bottles-exists.patch rename catch_exception_in_set_manager.patch => 0002-Catch-AttributeError-in-set_manager.patch (68%) delete mode 100644 ensure_bottles_dir_exists.patch diff --git a/0001-Make-sure-Paths.bottles-exists.patch b/0001-Make-sure-Paths.bottles-exists.patch new file mode 100644 index 0000000..6f75c95 --- /dev/null +++ b/0001-Make-sure-Paths.bottles-exists.patch @@ -0,0 +1,34 @@ +From cb8cd4567cd34aac692672362cb87e5f021660cf Mon Sep 17 00:00:00 2001 +From: Sandro +Date: Mon, 4 Mar 2024 20:28:49 +0100 +Subject: [PATCH 1/2] 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 2a923ec8..42a87167 100644 +--- a/bottles/backend/managers/manager.py ++++ b/bottles/backend/managers/manager.py +@@ -812,7 +812,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.47.0 + diff --git a/catch_exception_in_set_manager.patch b/0002-Catch-AttributeError-in-set_manager.patch similarity index 68% rename from catch_exception_in_set_manager.patch rename to 0002-Catch-AttributeError-in-set_manager.patch index 08c1794..8e93336 100644 --- a/catch_exception_in_set_manager.patch +++ b/0002-Catch-AttributeError-in-set_manager.patch @@ -1,10 +1,12 @@ -commit 3e1db3c75fee5eedb2190e7dba71239e923affb7 -Author: Sandro -Date: Mon Mar 4 21:45:51 2024 +0100 +From 5302231bc20db5912349bd3bce27df5a4acf9256 Mon Sep 17 00:00:00 2001 +From: Sandro +Date: Mon, 4 Mar 2024 21:45:51 +0100 +Subject: [PATCH 2/2] Catch AttributeError in set_manager() - Catch AttributeError in set_manager() - - Return empty list if AttributeError is raised. +Return empty list if AttributeError is raised. +--- + bottles/frontend/windows/main_window.py | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/bottles/frontend/windows/main_window.py b/bottles/frontend/windows/main_window.py index 5fb9a15c..cd26408b 100644 @@ -26,3 +28,6 @@ index 5fb9a15c..cd26408b 100644 if len(tmp_runners) == 0: self.show_onboard_view() +-- +2.47.0 + diff --git a/bottles.spec b/bottles.spec index 6fc86e4..bc4e1be 100644 --- a/bottles.spec +++ b/bottles.spec @@ -16,9 +16,12 @@ 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 +# 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 -Patch: catch_exception_in_set_manager.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=2260135 +Patch: 0002-Catch-AttributeError-in-set_manager.patch BuildArch: noarch diff --git a/ensure_bottles_dir_exists.patch b/ensure_bottles_dir_exists.patch deleted file mode 100644 index 12ac255..0000000 --- a/ensure_bottles_dir_exists.patch +++ /dev/null @@ -1,29 +0,0 @@ -commit 7eed7bbfa5d1da924b4c4e0659f0bf86b0fd7d7b -Author: Sandro -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 = {} From 1c71961579d4d5371aeaff11a74f112e969e280e Mon Sep 17 00:00:00 2001 From: Sandro Date: Sat, 9 Nov 2024 14:14:45 +0100 Subject: [PATCH 40/57] Apply patch for AttributeError (RHBZ#2313567) --- ...AttributeError-when-window-is-closed.patch | 33 +++++++++++++++++++ bottles.spec | 3 ++ 2 files changed, 36 insertions(+) create mode 100644 0003-Catch-AttributeError-when-window-is-closed.patch diff --git a/0003-Catch-AttributeError-when-window-is-closed.patch b/0003-Catch-AttributeError-when-window-is-closed.patch new file mode 100644 index 0000000..da815cb --- /dev/null +++ b/0003-Catch-AttributeError-when-window-is-closed.patch @@ -0,0 +1,33 @@ +From 25ca897f6a04187cec0e06e4740abf8378cf0d43 Mon Sep 17 00:00:00 2001 +From: Sandro +Date: Sat, 9 Nov 2024 13:42:00 +0100 +Subject: [PATCH] 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 5616ab22..7c44b585 100644 +--- a/bottles/frontend/main.py ++++ b/bottles/frontend/main.py +@@ -260,7 +260,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.47.0 + diff --git a/bottles.spec b/bottles.spec index bc4e1be..a0ba6c4 100644 --- a/bottles.spec +++ b/bottles.spec @@ -22,6 +22,9 @@ 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 BuildArch: noarch From ad48cd194b7b2b3e115d75161c52108818bf6def Mon Sep 17 00:00:00 2001 From: Sandro Date: Sat, 9 Nov 2024 18:49:37 +0100 Subject: [PATCH 41/57] Handle exceptions from file pickers (RHBZ#2296214) --- ...FileDialog-for-all-file-path-pickers.patch | 79 +++++++++++++++++++ bottles.spec | 3 + 2 files changed, 82 insertions(+) create mode 100644 0004-Use-FileDialog-for-all-file-path-pickers.patch diff --git a/0004-Use-FileDialog-for-all-file-path-pickers.patch b/0004-Use-FileDialog-for-all-file-path-pickers.patch new file mode 100644 index 0000000..31fa7f0 --- /dev/null +++ b/0004-Use-FileDialog-for-all-file-path-pickers.patch @@ -0,0 +1,79 @@ +From 77bc57c6a2468d4c28f9c8e80ca20fd4e2e48dfb Mon Sep 17 00:00:00 2001 +From: Sandro +Date: Sat, 9 Nov 2024 16:59:50 +0100 +Subject: [PATCH] Use FileDialog for all file/path pickers + +- Use `FileDialog` throughout +- Handle whatever `GLib.Error` throws our way +- Handle it the same way regardless of dialog +--- + bottles/frontend/windows/launchoptions.py | 43 ++++++++++++++--------- + 1 file changed, 27 insertions(+), 16 deletions(-) + +diff --git a/bottles/frontend/windows/launchoptions.py b/bottles/frontend/windows/launchoptions.py +index adb122a3..79dbedd6 100644 +--- a/bottles/frontend/windows/launchoptions.py ++++ b/bottles/frontend/windows/launchoptions.py +@@ -279,6 +279,7 @@ class LaunchOptionsDialog(Adw.Window): + else: + # something else happened... + logging.warning("Error selecting post-run script: %s" % error) ++ pass + + dialog = Gtk.FileDialog.new() + dialog.set_title("Select Post-run Script") +@@ -296,25 +297,35 @@ class LaunchOptionsDialog(Adw.Window): + self.btn_post_script_reset.set_visible(False) + + def __choose_cwd(self, *_args): +- def set_path(dialog, response): +- if response != Gtk.ResponseType.ACCEPT: +- self.action_cwd.set_subtitle(self.__default_cwd_msg) +- return +- +- directory_path = dialog.get_file().get_path() +- self.program["folder"] = directory_path +- self.action_cwd.set_subtitle(directory_path) +- self.btn_cwd_reset.set_visible(True) ++ def set_path(dialog, result): + +- dialog = Gtk.FileChooserNative.new( +- title=_("Select Working Directory"), +- parent=self.window, +- action=Gtk.FileChooserAction.SELECT_FOLDER, +- ) ++ try: ++ directory = dialog.select_folder_finish(result) ++ ++ if directory is None: ++ self.action_cwd.set_subtitle( ++ self.__default_cwd_msg) ++ return + ++ directory_path = directory.get_path() ++ self.program["folder"] = directory_path ++ self.action_cwd.set_subtitle(directory_path) ++ self.btn_cwd_reset.set_visible(True) ++ except GLib.Error as error: ++ # also thrown when dialog has been cancelled ++ if error.code == 2: ++ # error 2 seems to be 'dismiss' or 'cancel' ++ if self.program["folder"] is None or self.program["folder"] == "": ++ self.action_cwd.set_subtitle(self.__default_cwd_msg) ++ else: ++ # something else happened... ++ logging.warning("Error selecting folder: %s" % error) ++ raise ++ ++ dialog = Gtk.FileDialog.new() ++ dialog.set_title("Select Working Directory") + dialog.set_modal(True) +- dialog.connect("response", set_path) +- dialog.show() ++ dialog.select_folder(parent=self.window, callback=set_path) + + def __reset_cwd(self, *_args): + """ +-- +2.47.0 + diff --git a/bottles.spec b/bottles.spec index a0ba6c4..7392373 100644 --- a/bottles.spec +++ b/bottles.spec @@ -25,6 +25,9 @@ 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 +# Attempt to prevent segfaults when picking files +# https://bugzilla.redhat.com/show_bug.cgi?id=2296214 +Patch: 0004-Use-FileDialog-for-all-file-path-pickers.patch BuildArch: noarch From aefeeba83df4086003b50a453f2a836d72b9de01 Mon Sep 17 00:00:00 2001 From: Packit Date: Fri, 13 Dec 2024 01:53:41 +0000 Subject: [PATCH 42/57] Update to 51.16 upstream release - Resolves: rhbz#2332212 Upstream tag: 51.16 Upstream commit: d5f626ed Commit authored by Packit automation (https://packit.dev/) --- README.packit | 2 +- bottles.spec | 2 +- sources | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.packit b/README.packit index 2bd3f40..5c0e101 100644 --- a/README.packit +++ b/README.packit @@ -1,3 +1,3 @@ This repository is maintained by packit. https://packit.dev/ -The file was generated using packit 0.102.1.post1.dev6+g64f7460b. +The file was generated using packit 0.105.0.post1.dev2+g4453c0ec. diff --git a/bottles.spec b/bottles.spec index 7392373..e22e414 100644 --- a/bottles.spec +++ b/bottles.spec @@ -2,7 +2,7 @@ Name: bottles Epoch: 1 -Version: 51.15 +Version: 51.16 Release: %autorelease Summary: Run Windows in a Bottle diff --git a/sources b/sources index a420eac..93e98e4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (Bottles-51.15.tar.gz) = 8917e519c6b537e54a2492b8b0955589e3d0ee2eddf59ba801e84a9f9790187e9f9d3dce990b90a7eb4fe612aaa59f98bc3368e9f43a298a59825b74b74e7ac2 +SHA512 (Bottles-51.16.tar.gz) = 1383f531eb77848c9a444571ed9de0f209a346ff4457b7e64dbb324c05cee894f8309ef5c7f140e2004f007852f60b22e7112f2188b666216fe03452030f63c3 From 761aded1f7950eb382385adedcaa6ebdd29b5d32 Mon Sep 17 00:00:00 2001 From: Sandro Date: Sun, 8 Dec 2024 10:57:44 +0100 Subject: [PATCH 43/57] Group forge macros [skip changelog] --- bottles.spec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/bottles.spec b/bottles.spec index e22e414..956f8e6 100644 --- a/bottles.spec +++ b/bottles.spec @@ -1,11 +1,10 @@ -%global forgeurl https://github.com/bottlesdevs/Bottles - Name: bottles Epoch: 1 Version: 51.16 Release: %autorelease Summary: Run Windows in a Bottle +%global forgeurl https://github.com/bottlesdevs/Bottles %global tag %{version} %forgemeta From be5193d7762020f45b2efb7c9cf32b44727cef24 Mon Sep 17 00:00:00 2001 From: Sandro Date: Sun, 8 Dec 2024 12:29:54 +0100 Subject: [PATCH 44/57] 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] --- 1001-Revert-meson-Add-check-for-Flatpak.patch | 33 +++++++++++ 1002-Change-issue-URL-to-Bugzilla.patch | 34 +++++++++++ ...play-warning-regarding-issue-tracker.patch | 58 +++++++++++++++++++ bottles.spec | 4 ++ 4 files changed, 129 insertions(+) create mode 100644 1001-Revert-meson-Add-check-for-Flatpak.patch create mode 100644 1002-Change-issue-URL-to-Bugzilla.patch create mode 100644 1003-Display-warning-regarding-issue-tracker.patch diff --git a/1001-Revert-meson-Add-check-for-Flatpak.patch b/1001-Revert-meson-Add-check-for-Flatpak.patch new file mode 100644 index 0000000..424dd72 --- /dev/null +++ b/1001-Revert-meson-Add-check-for-Flatpak.patch @@ -0,0 +1,33 @@ +From eeb64140ebb693642c1c27689d8f99772bb00106 Mon Sep 17 00:00:00 2001 +From: Sandro +Date: Sun, 8 Dec 2024 11:11:27 +0100 +Subject: [PATCH 1001/1003] 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.47.0 + diff --git a/1002-Change-issue-URL-to-Bugzilla.patch b/1002-Change-issue-URL-to-Bugzilla.patch new file mode 100644 index 0000000..3b20c02 --- /dev/null +++ b/1002-Change-issue-URL-to-Bugzilla.patch @@ -0,0 +1,34 @@ +From 979dce37851de94d1e82ac5486089c5b67cf5583 Mon Sep 17 00:00:00 2001 +From: Sandro +Date: Sun, 8 Dec 2024 11:22:42 +0100 +Subject: [PATCH 1002/1003] 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 | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/data/com.usebottles.bottles.metainfo.xml.in.in b/data/com.usebottles.bottles.metainfo.xml.in.in +index ee38f806..1b306002 100644 +--- a/data/com.usebottles.bottles.metainfo.xml.in.in ++++ b/data/com.usebottles.bottles.metainfo.xml.in.in +@@ -52,7 +52,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 +@@ -246,4 +246,4 @@ + + + +- +\ No newline at end of file ++ +-- +2.47.0 + diff --git a/1003-Display-warning-regarding-issue-tracker.patch b/1003-Display-warning-regarding-issue-tracker.patch new file mode 100644 index 0000000..a6e02e7 --- /dev/null +++ b/1003-Display-warning-regarding-issue-tracker.patch @@ -0,0 +1,58 @@ +From 723cdc6bc58c65a4aa6672971ba0f22f2b3523f6 Mon Sep 17 00:00:00 2001 +From: Sandro +Date: Sun, 8 Dec 2024 12:21:57 +0100 +Subject: [PATCH 1003/1003] 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/main_window.py | 23 ++++++++++------------- + 1 file changed, 10 insertions(+), 13 deletions(-) + +diff --git a/bottles/frontend/windows/main_window.py b/bottles/frontend/windows/main_window.py +index 79bf0d72..48321e2a 100644 +--- a/bottles/frontend/windows/main_window.py ++++ b/bottles/frontend/windows/main_window.py +@@ -104,29 +104,26 @@ class MainWindow(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 format. 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.47.0 + diff --git a/bottles.spec b/bottles.spec index 956f8e6..f3b1cae 100644 --- a/bottles.spec +++ b/bottles.spec @@ -27,6 +27,10 @@ Patch: 0003-Catch-AttributeError-when-window-is-closed.patch # Attempt to prevent segfaults when picking files # https://bugzilla.redhat.com/show_bug.cgi?id=2296214 Patch: 0004-Use-FileDialog-for-all-file-path-pickers.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 BuildArch: noarch From a483153cfe7f5018114ae3488fc13a0cf5408ef8 Mon Sep 17 00:00:00 2001 From: Sandro Date: Sun, 15 Dec 2024 09:41:05 +0100 Subject: [PATCH 45/57] Update to 51.17 (RHBZ#2332212) --- bottles.spec | 2 +- sources | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bottles.spec b/bottles.spec index f3b1cae..a05405c 100644 --- a/bottles.spec +++ b/bottles.spec @@ -1,6 +1,6 @@ Name: bottles Epoch: 1 -Version: 51.16 +Version: 51.17 Release: %autorelease Summary: Run Windows in a Bottle diff --git a/sources b/sources index 93e98e4..0f2d1a8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (Bottles-51.16.tar.gz) = 1383f531eb77848c9a444571ed9de0f209a346ff4457b7e64dbb324c05cee894f8309ef5c7f140e2004f007852f60b22e7112f2188b666216fe03452030f63c3 +SHA512 (Bottles-51.17.tar.gz) = ea083cd08cefe6963cd23ef3861427d958fc4da00efda7f8b7d24b8914b3b28c6984a6d4198ebc0dd7e6390693134f082989721ba82325387be4dabc191a82a6 From 29e7aa2a2c95b6d263104174724716fa1c567b80 Mon Sep 17 00:00:00 2001 From: Sandro Date: Mon, 16 Dec 2024 18:54:38 +0100 Subject: [PATCH 46/57] Lower required Meson version F40 currently has 1.4.1 and probably won't see an update. [skip changelog] --- bottles.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bottles.spec b/bottles.spec index a05405c..a9cc9ef 100644 --- a/bottles.spec +++ b/bottles.spec @@ -113,6 +113,9 @@ Features: %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 + %build %meson From 81a90e9c6a443639157060a49dd6d1f061c7c9a0 Mon Sep 17 00:00:00 2001 From: Sandro Date: Wed, 8 Jan 2025 09:57:06 +0100 Subject: [PATCH 47/57] 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. --- 1004-Do-not-require-Xdp.patch | 93 +++++++++++++++++++++++++++++++++++ bottles.spec | 1 + 2 files changed, 94 insertions(+) create mode 100644 1004-Do-not-require-Xdp.patch diff --git a/1004-Do-not-require-Xdp.patch b/1004-Do-not-require-Xdp.patch new file mode 100644 index 0000000..74d6ba1 --- /dev/null +++ b/1004-Do-not-require-Xdp.patch @@ -0,0 +1,93 @@ +From c198a4c289b16a88c55d90d078ea46d538450947 Mon Sep 17 00:00:00 2001 +From: Sandro +Date: Wed, 8 Jan 2025 09:44:32 +0100 +Subject: [PATCH] Do not require Xdp + +This was used for Flatpak introspection. No need to depend on Xdp in the +RPM package. +--- + bottles/frontend/main.py | 1 - + bottles/frontend/windows/main_window.py | 46 ++++++++++++------------- + 2 files changed, 23 insertions(+), 24 deletions(-) + +diff --git a/bottles/frontend/main.py b/bottles/frontend/main.py +index 9f4a5525..fe1053d8 100644 +--- a/bottles/frontend/main.py ++++ b/bottles/frontend/main.py +@@ -26,7 +26,6 @@ from os import path + 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") + + from gi.repository import Gtk, Gio, GLib, GObject, Adw # type: ignore +diff --git a/bottles/frontend/windows/main_window.py b/bottles/frontend/windows/main_window.py +index 48321e2a..fe28d46b 100644 +--- a/bottles/frontend/windows/main_window.py ++++ b/bottles/frontend/windows/main_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 +@@ -100,30 +100,30 @@ class MainWindow(Adw.ApplicationWindow): + 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" ++ # Flatpak introspection using Xdp removed for RPM package. ++ # https://bugzilla.redhat.com/show_bug.cgi?id=2336311 ++ 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 = 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 format. 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") ++ 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 format. 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.47.0 + diff --git a/bottles.spec b/bottles.spec index a9cc9ef..b4f5ead 100644 --- a/bottles.spec +++ b/bottles.spec @@ -31,6 +31,7 @@ Patch: 0004-Use-FileDialog-for-all-file-path-pickers.patch 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 BuildArch: noarch From 37216f2454457db493092887863a8e703af7d570 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 16 Jan 2025 12:47:53 +0000 Subject: [PATCH 48/57] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 1908e7dc66b9d5b0b1073625ce33602592f5983f Mon Sep 17 00:00:00 2001 From: Packit Date: Mon, 17 Mar 2025 07:02:14 +0000 Subject: [PATCH 49/57] Update to 51.21 upstream release - Resolves: rhbz#2338098 Upstream tag: 51.21 Upstream commit: c0d6737a Commit authored by Packit automation (https://packit.dev/) --- README.packit | 2 +- bottles.spec | 2 +- sources | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.packit b/README.packit index 5c0e101..f5cc99f 100644 --- a/README.packit +++ b/README.packit @@ -1,3 +1,3 @@ This repository is maintained by packit. https://packit.dev/ -The file was generated using packit 0.105.0.post1.dev2+g4453c0ec. +The file was generated using packit 1.2.0.post1.dev13+g55ed4527. diff --git a/bottles.spec b/bottles.spec index b4f5ead..681669d 100644 --- a/bottles.spec +++ b/bottles.spec @@ -1,6 +1,6 @@ Name: bottles Epoch: 1 -Version: 51.17 +Version: 51.21 Release: %autorelease Summary: Run Windows in a Bottle diff --git a/sources b/sources index 0f2d1a8..cd90561 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (Bottles-51.17.tar.gz) = ea083cd08cefe6963cd23ef3861427d958fc4da00efda7f8b7d24b8914b3b28c6984a6d4198ebc0dd7e6390693134f082989721ba82325387be4dabc191a82a6 +SHA512 (Bottles-51.21.tar.gz) = cfeea2b3ce46305638d2ad7b0778b8a821793e476fc220040469da51b6454547a5189de93d05c7c0bf1d4ec58fabd8a491ab75dd226510e50637ad00c170414a From 84a03b4251dfe076a645f171a7f7d5e2c385b35d Mon Sep 17 00:00:00 2001 From: Sandro Date: Wed, 15 Jan 2025 10:22:24 +0100 Subject: [PATCH 50/57] 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] --- 0001-Make-sure-Paths.bottles-exists.patch | 8 +- ...-Catch-AttributeError-in-set_manager.patch | 16 +- ...AttributeError-when-window-is-closed.patch | 8 +- ...FileDialog-for-all-file-path-pickers.patch | 79 --------- 1001-Revert-meson-Add-check-for-Flatpak.patch | 6 +- 1002-Change-issue-URL-to-Bugzilla.patch | 21 +-- ...play-warning-regarding-issue-tracker.patch | 20 +-- 1004-Do-not-require-Xdp.patch | 152 +++++++++++++++--- ...Revert-bottle-row-Port-to-AdwWrapBox.patch | 68 ++++++++ bottles.spec | 4 +- 10 files changed, 232 insertions(+), 150 deletions(-) delete mode 100644 0004-Use-FileDialog-for-all-file-path-pickers.patch create mode 100644 1005-Revert-bottle-row-Port-to-AdwWrapBox.patch diff --git a/0001-Make-sure-Paths.bottles-exists.patch b/0001-Make-sure-Paths.bottles-exists.patch index 6f75c95..1507b65 100644 --- a/0001-Make-sure-Paths.bottles-exists.patch +++ b/0001-Make-sure-Paths.bottles-exists.patch @@ -1,7 +1,7 @@ -From cb8cd4567cd34aac692672362cb87e5f021660cf Mon Sep 17 00:00:00 2001 +From f43e05d590e21634e05b5ff836c874237eddede1 Mon Sep 17 00:00:00 2001 From: Sandro Date: Mon, 4 Mar 2024 20:28:49 +0100 -Subject: [PATCH 1/2] Make sure Paths.bottles exists +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 @@ -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 2a923ec8..42a87167 100644 +index 8b04c30e..970df26d 100644 --- a/bottles/backend/managers/manager.py +++ b/bottles/backend/managers/manager.py -@@ -812,7 +812,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 """ diff --git a/0002-Catch-AttributeError-in-set_manager.patch b/0002-Catch-AttributeError-in-set_manager.patch index 8e93336..34537a0 100644 --- a/0002-Catch-AttributeError-in-set_manager.patch +++ b/0002-Catch-AttributeError-in-set_manager.patch @@ -1,18 +1,18 @@ -From 5302231bc20db5912349bd3bce27df5a4acf9256 Mon Sep 17 00:00:00 2001 +From 202a3cd999e8685549aee4b9c206bdcfa003c82a Mon Sep 17 00:00:00 2001 From: Sandro Date: Mon, 4 Mar 2024 21:45:51 +0100 -Subject: [PATCH 2/2] Catch AttributeError in set_manager() +Subject: [PATCH 2/3] Catch AttributeError in set_manager() Return empty list if AttributeError is raised. --- - bottles/frontend/windows/main_window.py | 9 ++++++--- + bottles/frontend/windows/window.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) -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): +diff --git a/bottles/frontend/windows/window.py b/bottles/frontend/windows/window.py +index bddd3f34..c5cf2b37 100644 +--- a/bottles/frontend/windows/window.py ++++ b/bottles/frontend/windows/window.py +@@ -213,9 +213,12 @@ class BottlesWindow(Adw.ApplicationWindow): def set_manager(result: Manager, error=None): self.manager = result diff --git a/0003-Catch-AttributeError-when-window-is-closed.patch b/0003-Catch-AttributeError-when-window-is-closed.patch index da815cb..2777d9e 100644 --- a/0003-Catch-AttributeError-when-window-is-closed.patch +++ b/0003-Catch-AttributeError-when-window-is-closed.patch @@ -1,7 +1,7 @@ -From 25ca897f6a04187cec0e06e4740abf8378cf0d43 Mon Sep 17 00:00:00 2001 +From e2ce1892c557f1f81ba5883eee1d19a120abb2c2 Mon Sep 17 00:00:00 2001 From: Sandro Date: Sat, 9 Nov 2024 13:42:00 +0100 -Subject: [PATCH] Catch AttributeError when window is closed +Subject: [PATCH 3/3] Catch AttributeError when window is closed In certain situations Bottles crashes with: @@ -13,10 +13,10 @@ This should allow Bottles to exit without error. 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bottles/frontend/main.py b/bottles/frontend/main.py -index 5616ab22..7c44b585 100644 +index f6a07b15..ea3d7ad1 100644 --- a/bottles/frontend/main.py +++ b/bottles/frontend/main.py -@@ -260,7 +260,10 @@ class Bottles(Adw.Application): +@@ -267,7 +267,10 @@ class Bottles(Adw.Application): logging.info( _("[Quit] request received."), ) diff --git a/0004-Use-FileDialog-for-all-file-path-pickers.patch b/0004-Use-FileDialog-for-all-file-path-pickers.patch deleted file mode 100644 index 31fa7f0..0000000 --- a/0004-Use-FileDialog-for-all-file-path-pickers.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 77bc57c6a2468d4c28f9c8e80ca20fd4e2e48dfb Mon Sep 17 00:00:00 2001 -From: Sandro -Date: Sat, 9 Nov 2024 16:59:50 +0100 -Subject: [PATCH] Use FileDialog for all file/path pickers - -- Use `FileDialog` throughout -- Handle whatever `GLib.Error` throws our way -- Handle it the same way regardless of dialog ---- - bottles/frontend/windows/launchoptions.py | 43 ++++++++++++++--------- - 1 file changed, 27 insertions(+), 16 deletions(-) - -diff --git a/bottles/frontend/windows/launchoptions.py b/bottles/frontend/windows/launchoptions.py -index adb122a3..79dbedd6 100644 ---- a/bottles/frontend/windows/launchoptions.py -+++ b/bottles/frontend/windows/launchoptions.py -@@ -279,6 +279,7 @@ class LaunchOptionsDialog(Adw.Window): - else: - # something else happened... - logging.warning("Error selecting post-run script: %s" % error) -+ pass - - dialog = Gtk.FileDialog.new() - dialog.set_title("Select Post-run Script") -@@ -296,25 +297,35 @@ class LaunchOptionsDialog(Adw.Window): - self.btn_post_script_reset.set_visible(False) - - def __choose_cwd(self, *_args): -- def set_path(dialog, response): -- if response != Gtk.ResponseType.ACCEPT: -- self.action_cwd.set_subtitle(self.__default_cwd_msg) -- return -- -- directory_path = dialog.get_file().get_path() -- self.program["folder"] = directory_path -- self.action_cwd.set_subtitle(directory_path) -- self.btn_cwd_reset.set_visible(True) -+ def set_path(dialog, result): - -- dialog = Gtk.FileChooserNative.new( -- title=_("Select Working Directory"), -- parent=self.window, -- action=Gtk.FileChooserAction.SELECT_FOLDER, -- ) -+ try: -+ directory = dialog.select_folder_finish(result) -+ -+ if directory is None: -+ self.action_cwd.set_subtitle( -+ self.__default_cwd_msg) -+ return - -+ directory_path = directory.get_path() -+ self.program["folder"] = directory_path -+ self.action_cwd.set_subtitle(directory_path) -+ self.btn_cwd_reset.set_visible(True) -+ except GLib.Error as error: -+ # also thrown when dialog has been cancelled -+ if error.code == 2: -+ # error 2 seems to be 'dismiss' or 'cancel' -+ if self.program["folder"] is None or self.program["folder"] == "": -+ self.action_cwd.set_subtitle(self.__default_cwd_msg) -+ else: -+ # something else happened... -+ logging.warning("Error selecting folder: %s" % error) -+ raise -+ -+ dialog = Gtk.FileDialog.new() -+ dialog.set_title("Select Working Directory") - dialog.set_modal(True) -- dialog.connect("response", set_path) -- dialog.show() -+ dialog.select_folder(parent=self.window, callback=set_path) - - def __reset_cwd(self, *_args): - """ --- -2.47.0 - diff --git a/1001-Revert-meson-Add-check-for-Flatpak.patch b/1001-Revert-meson-Add-check-for-Flatpak.patch index 424dd72..7f1eb50 100644 --- a/1001-Revert-meson-Add-check-for-Flatpak.patch +++ b/1001-Revert-meson-Add-check-for-Flatpak.patch @@ -1,7 +1,7 @@ -From eeb64140ebb693642c1c27689d8f99772bb00106 Mon Sep 17 00:00:00 2001 +From 387213dd5c1179f1dbf8352ac389cbf8323a0d6f Mon Sep 17 00:00:00 2001 From: Sandro Date: Sun, 8 Dec 2024 11:11:27 +0100 -Subject: [PATCH 1001/1003] Revert "meson: Add check for Flatpak" +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. @@ -29,5 +29,5 @@ index 6ff7c011..c26ea0b9 100644 '__init__.py', 'main.py', -- -2.47.0 +2.49.0 diff --git a/1002-Change-issue-URL-to-Bugzilla.patch b/1002-Change-issue-URL-to-Bugzilla.patch index 3b20c02..9806185 100644 --- a/1002-Change-issue-URL-to-Bugzilla.patch +++ b/1002-Change-issue-URL-to-Bugzilla.patch @@ -1,19 +1,19 @@ -From 979dce37851de94d1e82ac5486089c5b67cf5583 Mon Sep 17 00:00:00 2001 +From bd5ebc6dc6ae529c933ae2655b27f9ee04a1dc44 Mon Sep 17 00:00:00 2001 From: Sandro Date: Sun, 8 Dec 2024 11:22:42 +0100 -Subject: [PATCH 1002/1003] Change issue URL to Bugzilla +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 | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) + 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 ee38f806..1b306002 100644 +index 52f33b91..d4c1e49d 100644 --- a/data/com.usebottles.bottles.metainfo.xml.in.in +++ b/data/com.usebottles.bottles.metainfo.xml.in.in -@@ -52,7 +52,7 @@ +@@ -70,7 +70,7 @@ @APP_ID@ https://usebottles.com @@ -22,13 +22,6 @@ index ee38f806..1b306002 100644 https://docs.usebottles.com https://usebottles.com/funding https://hosted.weblate.org/engage/bottles -@@ -246,4 +246,4 @@ - - - -- -\ No newline at end of file -+ -- -2.47.0 +2.49.0 diff --git a/1003-Display-warning-regarding-issue-tracker.patch b/1003-Display-warning-regarding-issue-tracker.patch index a6e02e7..eb29c08 100644 --- a/1003-Display-warning-regarding-issue-tracker.patch +++ b/1003-Display-warning-regarding-issue-tracker.patch @@ -1,19 +1,19 @@ -From 723cdc6bc58c65a4aa6672971ba0f22f2b3523f6 Mon Sep 17 00:00:00 2001 +From 946114f3aba1913d4cd9c9498a35cee2da1d0cf0 Mon Sep 17 00:00:00 2001 From: Sandro Date: Sun, 8 Dec 2024 12:21:57 +0100 -Subject: [PATCH 1003/1003] Display warning regarding issue tracker +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/main_window.py | 23 ++++++++++------------- + bottles/frontend/windows/window.py | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) -diff --git a/bottles/frontend/windows/main_window.py b/bottles/frontend/windows/main_window.py -index 79bf0d72..48321e2a 100644 ---- a/bottles/frontend/windows/main_window.py -+++ b/bottles/frontend/windows/main_window.py -@@ -104,29 +104,26 @@ class MainWindow(Adw.ApplicationWindow): +diff --git a/bottles/frontend/windows/window.py b/bottles/frontend/windows/window.py +index 802b08b5..d31d0cf7 100644 +--- a/bottles/frontend/windows/window.py ++++ b/bottles/frontend/windows/window.py +@@ -102,29 +102,26 @@ class BottlesWindow(Adw.ApplicationWindow): def response(dialog, response, *args): if response == "close": @@ -46,7 +46,7 @@ index 79bf0d72..48321e2a 100644 - ) - logging.error("https://usebottles.com/download/") - return -+ logging.warn(_("Bottles is only supported within a sandboxed format. Official sources of Bottles are available at:")) ++ 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") @@ -54,5 +54,5 @@ index 79bf0d72..48321e2a 100644 # Loading view self.page_loading = LoadingView() -- -2.47.0 +2.49.0 diff --git a/1004-Do-not-require-Xdp.patch b/1004-Do-not-require-Xdp.patch index 74d6ba1..806637c 100644 --- a/1004-Do-not-require-Xdp.patch +++ b/1004-Do-not-require-Xdp.patch @@ -1,31 +1,136 @@ -From c198a4c289b16a88c55d90d078ea46d538450947 Mon Sep 17 00:00:00 2001 +From e1c62b61b00b89d0ce39c68cf62556fa38ddc1a3 Mon Sep 17 00:00:00 2001 From: Sandro Date: Wed, 8 Jan 2025 09:44:32 +0100 -Subject: [PATCH] Do not require Xdp +Subject: [PATCH 1004/1005] Do not require Xdp -This was used for Flatpak introspection. No need to depend on Xdp in the -RPM package. +This is used for Flatpak introspection. No need to depend on Xdp in the +RPM package. We will never run in a sandboxed environment. --- - bottles/frontend/main.py | 1 - - bottles/frontend/windows/main_window.py | 46 ++++++++++++------------- - 2 files changed, 23 insertions(+), 24 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 9f4a5525..fe1053d8 100644 +index f6a07b15..5bbf548c 100644 --- a/bottles/frontend/main.py +++ b/bottles/frontend/main.py -@@ -26,7 +26,6 @@ from os import path +@@ -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") - from gi.repository import Gtk, Gio, GLib, GObject, Adw # type: ignore -diff --git a/bottles/frontend/windows/main_window.py b/bottles/frontend/windows/main_window.py -index 48321e2a..fe28d46b 100644 ---- a/bottles/frontend/windows/main_window.py -+++ b/bottles/frontend/windows/main_window.py + # ruff: noqa: E402 +diff --git a/bottles/frontend/views/bottle_details.py b/bottles/frontend/views/bottle_details.py +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 + 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 +@@ -437,19 +437,7 @@ class BottleView(Adw.PreferencesPage): + 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 288e693b..4e989fb2 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,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(): ++ if not gamemode_available: + return + + _not_available = _("This feature is unavailable on your system.") +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 a8b007d4..81fa102e 100644 +--- a/bottles/frontend/views/new_bottle_dialog.py ++++ b/bottles/frontend/views/new_bottle_dialog.py +@@ -17,7 +17,7 @@ + + 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 +@@ -80,7 +80,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 d31d0cf7..c8adde1c 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 @@ -35,12 +140,15 @@ index 48321e2a..fe28d46b 100644 from bottles.backend.globals import Paths from bottles.backend.health import HealthChecker -@@ -100,30 +100,30 @@ class MainWindow(Adw.ApplicationWindow): +@@ -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 - 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 @@ -49,12 +157,6 @@ index 48321e2a..fe28d46b 100644 - "Bottles developers (upstream) only support Flatpak. Please report any issues with the RPM package in" - ) - bug_url = "bugz.fedoraproject.org/bottles" -+ # Flatpak introspection using Xdp removed for RPM package. -+ # https://bugzilla.redhat.com/show_bug.cgi?id=2336311 -+ 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" + ) @@ -73,7 +175,7 @@ index 48321e2a..fe28d46b 100644 - 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 format. Official sources of Bottles are available at:")) +- 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") @@ -81,7 +183,7 @@ index 48321e2a..fe28d46b 100644 + 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 format. Official sources of Bottles are available at:")) ++ 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") @@ -89,5 +191,5 @@ index 48321e2a..fe28d46b 100644 # Loading view self.page_loading = LoadingView() -- -2.47.0 +2.49.0 diff --git a/1005-Revert-bottle-row-Port-to-AdwWrapBox.patch b/1005-Revert-bottle-row-Port-to-AdwWrapBox.patch new file mode 100644 index 0000000..00e97f8 --- /dev/null +++ b/1005-Revert-bottle-row-Port-to-AdwWrapBox.patch @@ -0,0 +1,68 @@ +From 4c4f5f2274bfe174e82d7c68627fb6c95b04fd8b Mon Sep 17 00:00:00 2001 +From: Sandro +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 + diff --git a/bottles.spec b/bottles.spec index 681669d..f5edbfb 100644 --- a/bottles.spec +++ b/bottles.spec @@ -24,14 +24,12 @@ 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 -# Attempt to prevent segfaults when picking files -# https://bugzilla.redhat.com/show_bug.cgi?id=2296214 -Patch: 0004-Use-FileDialog-for-all-file-path-pickers.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 +Patch: 1005-Revert-bottle-row-Port-to-AdwWrapBox.patch BuildArch: noarch From ebf4b65add71a4d2ad940ed3c8b1cdbbc5d728d5 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 23 Jul 2025 17:50:44 +0000 Subject: [PATCH 51/57] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From 9355bf474731ba836398f100ecc88234b2bdb2cd Mon Sep 17 00:00:00 2001 From: Sandro Date: Sat, 1 Nov 2025 16:34:18 +0100 Subject: [PATCH 52/57] Revert "Rebase patches" This reverts commit 84a03b4251dfe076a645f171a7f7d5e2c385b35d. --- 0001-Make-sure-Paths.bottles-exists.patch | 8 +- ...-Catch-AttributeError-in-set_manager.patch | 16 +- ...AttributeError-when-window-is-closed.patch | 8 +- ...FileDialog-for-all-file-path-pickers.patch | 79 +++++++++ 1001-Revert-meson-Add-check-for-Flatpak.patch | 6 +- 1002-Change-issue-URL-to-Bugzilla.patch | 21 ++- ...play-warning-regarding-issue-tracker.patch | 20 +-- 1004-Do-not-require-Xdp.patch | 152 +++--------------- ...Revert-bottle-row-Port-to-AdwWrapBox.patch | 68 -------- bottles.spec | 4 +- 10 files changed, 150 insertions(+), 232 deletions(-) create mode 100644 0004-Use-FileDialog-for-all-file-path-pickers.patch delete mode 100644 1005-Revert-bottle-row-Port-to-AdwWrapBox.patch diff --git a/0001-Make-sure-Paths.bottles-exists.patch b/0001-Make-sure-Paths.bottles-exists.patch index 1507b65..6f75c95 100644 --- a/0001-Make-sure-Paths.bottles-exists.patch +++ b/0001-Make-sure-Paths.bottles-exists.patch @@ -1,7 +1,7 @@ -From f43e05d590e21634e05b5ff836c874237eddede1 Mon Sep 17 00:00:00 2001 +From cb8cd4567cd34aac692672362cb87e5f021660cf 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 +Subject: [PATCH 1/2] 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 @@ -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 8b04c30e..970df26d 100644 +index 2a923ec8..42a87167 100644 --- a/bottles/backend/managers/manager.py +++ b/bottles/backend/managers/manager.py -@@ -813,7 +813,11 @@ class Manager(metaclass=Singleton): +@@ -812,7 +812,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 """ diff --git a/0002-Catch-AttributeError-in-set_manager.patch b/0002-Catch-AttributeError-in-set_manager.patch index 34537a0..8e93336 100644 --- a/0002-Catch-AttributeError-in-set_manager.patch +++ b/0002-Catch-AttributeError-in-set_manager.patch @@ -1,18 +1,18 @@ -From 202a3cd999e8685549aee4b9c206bdcfa003c82a Mon Sep 17 00:00:00 2001 +From 5302231bc20db5912349bd3bce27df5a4acf9256 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() +Subject: [PATCH 2/2] Catch AttributeError in set_manager() Return empty list if AttributeError is raised. --- - bottles/frontend/windows/window.py | 9 ++++++--- + bottles/frontend/windows/main_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 bddd3f34..c5cf2b37 100644 ---- a/bottles/frontend/windows/window.py -+++ b/bottles/frontend/windows/window.py -@@ -213,9 +213,12 @@ class BottlesWindow(Adw.ApplicationWindow): +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 diff --git a/0003-Catch-AttributeError-when-window-is-closed.patch b/0003-Catch-AttributeError-when-window-is-closed.patch index 2777d9e..da815cb 100644 --- a/0003-Catch-AttributeError-when-window-is-closed.patch +++ b/0003-Catch-AttributeError-when-window-is-closed.patch @@ -1,7 +1,7 @@ -From e2ce1892c557f1f81ba5883eee1d19a120abb2c2 Mon Sep 17 00:00:00 2001 +From 25ca897f6a04187cec0e06e4740abf8378cf0d43 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 +Subject: [PATCH] Catch AttributeError when window is closed In certain situations Bottles crashes with: @@ -13,10 +13,10 @@ This should allow Bottles to exit without error. 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bottles/frontend/main.py b/bottles/frontend/main.py -index f6a07b15..ea3d7ad1 100644 +index 5616ab22..7c44b585 100644 --- a/bottles/frontend/main.py +++ b/bottles/frontend/main.py -@@ -267,7 +267,10 @@ class Bottles(Adw.Application): +@@ -260,7 +260,10 @@ class Bottles(Adw.Application): logging.info( _("[Quit] request received."), ) diff --git a/0004-Use-FileDialog-for-all-file-path-pickers.patch b/0004-Use-FileDialog-for-all-file-path-pickers.patch new file mode 100644 index 0000000..31fa7f0 --- /dev/null +++ b/0004-Use-FileDialog-for-all-file-path-pickers.patch @@ -0,0 +1,79 @@ +From 77bc57c6a2468d4c28f9c8e80ca20fd4e2e48dfb Mon Sep 17 00:00:00 2001 +From: Sandro +Date: Sat, 9 Nov 2024 16:59:50 +0100 +Subject: [PATCH] Use FileDialog for all file/path pickers + +- Use `FileDialog` throughout +- Handle whatever `GLib.Error` throws our way +- Handle it the same way regardless of dialog +--- + bottles/frontend/windows/launchoptions.py | 43 ++++++++++++++--------- + 1 file changed, 27 insertions(+), 16 deletions(-) + +diff --git a/bottles/frontend/windows/launchoptions.py b/bottles/frontend/windows/launchoptions.py +index adb122a3..79dbedd6 100644 +--- a/bottles/frontend/windows/launchoptions.py ++++ b/bottles/frontend/windows/launchoptions.py +@@ -279,6 +279,7 @@ class LaunchOptionsDialog(Adw.Window): + else: + # something else happened... + logging.warning("Error selecting post-run script: %s" % error) ++ pass + + dialog = Gtk.FileDialog.new() + dialog.set_title("Select Post-run Script") +@@ -296,25 +297,35 @@ class LaunchOptionsDialog(Adw.Window): + self.btn_post_script_reset.set_visible(False) + + def __choose_cwd(self, *_args): +- def set_path(dialog, response): +- if response != Gtk.ResponseType.ACCEPT: +- self.action_cwd.set_subtitle(self.__default_cwd_msg) +- return +- +- directory_path = dialog.get_file().get_path() +- self.program["folder"] = directory_path +- self.action_cwd.set_subtitle(directory_path) +- self.btn_cwd_reset.set_visible(True) ++ def set_path(dialog, result): + +- dialog = Gtk.FileChooserNative.new( +- title=_("Select Working Directory"), +- parent=self.window, +- action=Gtk.FileChooserAction.SELECT_FOLDER, +- ) ++ try: ++ directory = dialog.select_folder_finish(result) ++ ++ if directory is None: ++ self.action_cwd.set_subtitle( ++ self.__default_cwd_msg) ++ return + ++ directory_path = directory.get_path() ++ self.program["folder"] = directory_path ++ self.action_cwd.set_subtitle(directory_path) ++ self.btn_cwd_reset.set_visible(True) ++ except GLib.Error as error: ++ # also thrown when dialog has been cancelled ++ if error.code == 2: ++ # error 2 seems to be 'dismiss' or 'cancel' ++ if self.program["folder"] is None or self.program["folder"] == "": ++ self.action_cwd.set_subtitle(self.__default_cwd_msg) ++ else: ++ # something else happened... ++ logging.warning("Error selecting folder: %s" % error) ++ raise ++ ++ dialog = Gtk.FileDialog.new() ++ dialog.set_title("Select Working Directory") + dialog.set_modal(True) +- dialog.connect("response", set_path) +- dialog.show() ++ dialog.select_folder(parent=self.window, callback=set_path) + + def __reset_cwd(self, *_args): + """ +-- +2.47.0 + diff --git a/1001-Revert-meson-Add-check-for-Flatpak.patch b/1001-Revert-meson-Add-check-for-Flatpak.patch index 7f1eb50..424dd72 100644 --- a/1001-Revert-meson-Add-check-for-Flatpak.patch +++ b/1001-Revert-meson-Add-check-for-Flatpak.patch @@ -1,7 +1,7 @@ -From 387213dd5c1179f1dbf8352ac389cbf8323a0d6f Mon Sep 17 00:00:00 2001 +From eeb64140ebb693642c1c27689d8f99772bb00106 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" +Subject: [PATCH 1001/1003] 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. @@ -29,5 +29,5 @@ index 6ff7c011..c26ea0b9 100644 '__init__.py', 'main.py', -- -2.49.0 +2.47.0 diff --git a/1002-Change-issue-URL-to-Bugzilla.patch b/1002-Change-issue-URL-to-Bugzilla.patch index 9806185..3b20c02 100644 --- a/1002-Change-issue-URL-to-Bugzilla.patch +++ b/1002-Change-issue-URL-to-Bugzilla.patch @@ -1,19 +1,19 @@ -From bd5ebc6dc6ae529c933ae2655b27f9ee04a1dc44 Mon Sep 17 00:00:00 2001 +From 979dce37851de94d1e82ac5486089c5b67cf5583 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 +Subject: [PATCH 1002/1003] 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(-) + data/com.usebottles.bottles.metainfo.xml.in.in | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/com.usebottles.bottles.metainfo.xml.in.in b/data/com.usebottles.bottles.metainfo.xml.in.in -index 52f33b91..d4c1e49d 100644 +index ee38f806..1b306002 100644 --- a/data/com.usebottles.bottles.metainfo.xml.in.in +++ b/data/com.usebottles.bottles.metainfo.xml.in.in -@@ -70,7 +70,7 @@ +@@ -52,7 +52,7 @@ @APP_ID@ https://usebottles.com @@ -22,6 +22,13 @@ index 52f33b91..d4c1e49d 100644 https://docs.usebottles.com https://usebottles.com/funding https://hosted.weblate.org/engage/bottles +@@ -246,4 +246,4 @@ + + + +- +\ No newline at end of file ++ -- -2.49.0 +2.47.0 diff --git a/1003-Display-warning-regarding-issue-tracker.patch b/1003-Display-warning-regarding-issue-tracker.patch index eb29c08..a6e02e7 100644 --- a/1003-Display-warning-regarding-issue-tracker.patch +++ b/1003-Display-warning-regarding-issue-tracker.patch @@ -1,19 +1,19 @@ -From 946114f3aba1913d4cd9c9498a35cee2da1d0cf0 Mon Sep 17 00:00:00 2001 +From 723cdc6bc58c65a4aa6672971ba0f22f2b3523f6 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 +Subject: [PATCH 1003/1003] 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 ++++++++++------------- + bottles/frontend/windows/main_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 802b08b5..d31d0cf7 100644 ---- a/bottles/frontend/windows/window.py -+++ b/bottles/frontend/windows/window.py -@@ -102,29 +102,26 @@ class BottlesWindow(Adw.ApplicationWindow): +diff --git a/bottles/frontend/windows/main_window.py b/bottles/frontend/windows/main_window.py +index 79bf0d72..48321e2a 100644 +--- a/bottles/frontend/windows/main_window.py ++++ b/bottles/frontend/windows/main_window.py +@@ -104,29 +104,26 @@ class MainWindow(Adw.ApplicationWindow): def response(dialog, response, *args): if response == "close": @@ -46,7 +46,7 @@ index 802b08b5..d31d0cf7 100644 - ) - 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(_("Bottles is only supported within a sandboxed format. 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") @@ -54,5 +54,5 @@ index 802b08b5..d31d0cf7 100644 # Loading view self.page_loading = LoadingView() -- -2.49.0 +2.47.0 diff --git a/1004-Do-not-require-Xdp.patch b/1004-Do-not-require-Xdp.patch index 806637c..74d6ba1 100644 --- a/1004-Do-not-require-Xdp.patch +++ b/1004-Do-not-require-Xdp.patch @@ -1,136 +1,31 @@ -From e1c62b61b00b89d0ce39c68cf62556fa38ddc1a3 Mon Sep 17 00:00:00 2001 +From c198a4c289b16a88c55d90d078ea46d538450947 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 +Subject: [PATCH] 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. +This was used for Flatpak introspection. No need to depend on Xdp in the +RPM package. --- - 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(-) + bottles/frontend/main.py | 1 - + bottles/frontend/windows/main_window.py | 46 ++++++++++++------------- + 2 files changed, 23 insertions(+), 24 deletions(-) diff --git a/bottles/frontend/main.py b/bottles/frontend/main.py -index f6a07b15..5bbf548c 100644 +index 9f4a5525..fe1053d8 100644 --- a/bottles/frontend/main.py +++ b/bottles/frontend/main.py -@@ -34,7 +34,6 @@ from bottles.frontend.params import ( +@@ -26,7 +26,6 @@ from os import path 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 -diff --git a/bottles/frontend/views/bottle_details.py b/bottles/frontend/views/bottle_details.py -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 - 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 -@@ -437,19 +437,7 @@ class BottleView(Adw.PreferencesPage): - 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 288e693b..4e989fb2 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,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(): -+ if not gamemode_available: - return - - _not_available = _("This feature is unavailable on your system.") -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 a8b007d4..81fa102e 100644 ---- a/bottles/frontend/views/new_bottle_dialog.py -+++ b/bottles/frontend/views/new_bottle_dialog.py -@@ -17,7 +17,7 @@ - - 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 -@@ -80,7 +80,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 d31d0cf7..c8adde1c 100644 ---- a/bottles/frontend/windows/window.py -+++ b/bottles/frontend/windows/window.py + from gi.repository import Gtk, Gio, GLib, GObject, Adw # type: ignore +diff --git a/bottles/frontend/windows/main_window.py b/bottles/frontend/windows/main_window.py +index 48321e2a..fe28d46b 100644 +--- a/bottles/frontend/windows/main_window.py ++++ b/bottles/frontend/windows/main_window.py @@ -21,7 +21,7 @@ import webbrowser from gettext import gettext as _ from typing import Optional @@ -140,15 +35,12 @@ index d31d0cf7..c8adde1c 100644 from bottles.backend.globals import Paths from bottles.backend.health import HealthChecker -@@ -98,30 +98,28 @@ class BottlesWindow(Adw.ApplicationWindow): +@@ -100,30 +100,30 @@ class MainWindow(Adw.ApplicationWindow): 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 - +- - def response(dialog, response, *args): - if response == "close": - return @@ -157,6 +49,12 @@ index d31d0cf7..c8adde1c 100644 - "Bottles developers (upstream) only support Flatpak. Please report any issues with the RPM package in" - ) - bug_url = "bugz.fedoraproject.org/bottles" ++ # Flatpak introspection using Xdp removed for RPM package. ++ # https://bugzilla.redhat.com/show_bug.cgi?id=2336311 ++ 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" + ) @@ -175,7 +73,7 @@ index d31d0cf7..c8adde1c 100644 - 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(_("Bottles is only supported within a sandboxed format. 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") @@ -183,7 +81,7 @@ index d31d0cf7..c8adde1c 100644 + 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(_("Bottles is only supported within a sandboxed format. 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") @@ -191,5 +89,5 @@ index d31d0cf7..c8adde1c 100644 # Loading view self.page_loading = LoadingView() -- -2.49.0 +2.47.0 diff --git a/1005-Revert-bottle-row-Port-to-AdwWrapBox.patch b/1005-Revert-bottle-row-Port-to-AdwWrapBox.patch deleted file mode 100644 index 00e97f8..0000000 --- a/1005-Revert-bottle-row-Port-to-AdwWrapBox.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 4c4f5f2274bfe174e82d7c68627fb6c95b04fd8b Mon Sep 17 00:00:00 2001 -From: Sandro -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 - diff --git a/bottles.spec b/bottles.spec index f5edbfb..681669d 100644 --- a/bottles.spec +++ b/bottles.spec @@ -24,12 +24,14 @@ 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 +# Attempt to prevent segfaults when picking files +# https://bugzilla.redhat.com/show_bug.cgi?id=2296214 +Patch: 0004-Use-FileDialog-for-all-file-path-pickers.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 -Patch: 1005-Revert-bottle-row-Port-to-AdwWrapBox.patch BuildArch: noarch From 2f5239ff0e42cc042fa6471810ec733423485629 Mon Sep 17 00:00:00 2001 From: Sandro Date: Sat, 1 Nov 2025 16:34:35 +0100 Subject: [PATCH 53/57] Revert "Update to 51.21 upstream release" This reverts commit 1908e7dc66b9d5b0b1073625ce33602592f5983f. --- README.packit | 2 +- bottles.spec | 2 +- sources | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.packit b/README.packit index f5cc99f..5c0e101 100644 --- a/README.packit +++ b/README.packit @@ -1,3 +1,3 @@ This repository is maintained by packit. https://packit.dev/ -The file was generated using packit 1.2.0.post1.dev13+g55ed4527. +The file was generated using packit 0.105.0.post1.dev2+g4453c0ec. diff --git a/bottles.spec b/bottles.spec index 681669d..b4f5ead 100644 --- a/bottles.spec +++ b/bottles.spec @@ -1,6 +1,6 @@ Name: bottles Epoch: 1 -Version: 51.21 +Version: 51.17 Release: %autorelease Summary: Run Windows in a Bottle diff --git a/sources b/sources index cd90561..0f2d1a8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (Bottles-51.21.tar.gz) = cfeea2b3ce46305638d2ad7b0778b8a821793e476fc220040469da51b6454547a5189de93d05c7c0bf1d4ec58fabd8a491ab75dd226510e50637ad00c170414a +SHA512 (Bottles-51.17.tar.gz) = ea083cd08cefe6963cd23ef3861427d958fc4da00efda7f8b7d24b8914b3b28c6984a6d4198ebc0dd7e6390693134f082989721ba82325387be4dabc191a82a6 From 031f8725528e01978de68238b271be0f8a8df818 Mon Sep 17 00:00:00 2001 From: Sandro Date: Sat, 1 Nov 2025 16:38:02 +0100 Subject: [PATCH 54/57] Downgrade package to 51.17 This is the last version known to work for GNOME as well as KDE. Subsequent releases are broken for KDE. The breakage manifests as not being able to open bottles in the UI. --- bottles.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bottles.spec b/bottles.spec index b4f5ead..abbb8c8 100644 --- a/bottles.spec +++ b/bottles.spec @@ -1,5 +1,5 @@ Name: bottles -Epoch: 1 +Epoch: 2 Version: 51.17 Release: %autorelease Summary: Run Windows in a Bottle @@ -38,7 +38,7 @@ BuildArch: noarch BuildRequires: desktop-file-utils BuildRequires: libappstream-glib BuildRequires: meson -BuildRequires: python3 +BuildRequires: python3-devel BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(gtk4) BuildRequires: pkgconfig(libadwaita-1) >= 1.1.99 From 2ab74455887b08bbd2bfdd57ca8fefd96508daf9 Mon Sep 17 00:00:00 2001 From: Packit Date: Sun, 2 Nov 2025 20:26:03 +0000 Subject: [PATCH 55/57] Update to 52.0 upstream release - Resolves: rhbz#2380406 Upstream tag: 52.0 Upstream commit: 560695f0 Commit authored by Packit automation (https://packit.dev/) --- README.packit | 2 +- bottles.spec | 2 +- sources | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.packit b/README.packit index 5c0e101..2511bf4 100644 --- a/README.packit +++ b/README.packit @@ -1,3 +1,3 @@ This repository is maintained by packit. https://packit.dev/ -The file was generated using packit 0.105.0.post1.dev2+g4453c0ec. +The file was generated using packit 1.12.0. diff --git a/bottles.spec b/bottles.spec index abbb8c8..22a97c5 100644 --- a/bottles.spec +++ b/bottles.spec @@ -1,6 +1,6 @@ Name: bottles Epoch: 2 -Version: 51.17 +Version: 52.0 Release: %autorelease Summary: Run Windows in a Bottle diff --git a/sources b/sources index 0f2d1a8..3837af0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (Bottles-51.17.tar.gz) = ea083cd08cefe6963cd23ef3861427d958fc4da00efda7f8b7d24b8914b3b28c6984a6d4198ebc0dd7e6390693134f082989721ba82325387be4dabc191a82a6 +SHA512 (Bottles-52.0.tar.gz) = d133cf07a224c7f1848786f7b6f90e9e834fec7e855e5c48b4413657a7566f148f8ceece958a2cce575ae5ba66dea0963c19a79a893900b88c0c6af6c8bb1c41 From 361bdb8c5c3b9c11cb12923901d2779805135d9b Mon Sep 17 00:00:00 2001 From: Sandro Date: Sat, 8 Nov 2025 12:17:34 +0100 Subject: [PATCH 56/57] Review / rebase patches --- 0001-Make-sure-Paths.bottles-exists.patch | 10 +- ...-Catch-AttributeError-in-set_manager.patch | 18 +- ...AttributeError-when-window-is-closed.patch | 10 +- ...FileDialog-for-all-file-path-pickers.patch | 79 -------- 1001-Revert-meson-Add-check-for-Flatpak.patch | 6 +- 1002-Change-issue-URL-to-Bugzilla.patch | 21 +- ...play-warning-regarding-issue-tracker.patch | 22 +-- 1004-Do-not-require-Xdp.patch | 184 +++++++++++++----- ...Search-for-system-installed-vkBasalt.patch | 30 +++ bottles.spec | 3 - 10 files changed, 209 insertions(+), 174 deletions(-) delete mode 100644 0004-Use-FileDialog-for-all-file-path-pickers.patch create mode 100644 1005-Search-for-system-installed-vkBasalt.patch diff --git a/0001-Make-sure-Paths.bottles-exists.patch b/0001-Make-sure-Paths.bottles-exists.patch index 6f75c95..2dd5612 100644 --- a/0001-Make-sure-Paths.bottles-exists.patch +++ b/0001-Make-sure-Paths.bottles-exists.patch @@ -1,7 +1,7 @@ -From cb8cd4567cd34aac692672362cb87e5f021660cf Mon Sep 17 00:00:00 2001 +From 7e820512cffc4f709a2d00e341306f57d91ddda5 Mon Sep 17 00:00:00 2001 From: Sandro Date: Mon, 4 Mar 2024 20:28:49 +0100 -Subject: [PATCH 1/2] Make sure Paths.bottles exists +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 @@ -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 2a923ec8..42a87167 100644 +index 5569b663..799ce8c3 100644 --- a/bottles/backend/managers/manager.py +++ b/bottles/backend/managers/manager.py -@@ -812,7 +812,11 @@ class Manager(metaclass=Singleton): +@@ -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 """ @@ -30,5 +30,5 @@ index 2a923ec8..42a87167 100644 # Empty local bottles self.local_bottles = {} -- -2.47.0 +2.51.0 diff --git a/0002-Catch-AttributeError-in-set_manager.patch b/0002-Catch-AttributeError-in-set_manager.patch index 8e93336..960b3c7 100644 --- a/0002-Catch-AttributeError-in-set_manager.patch +++ b/0002-Catch-AttributeError-in-set_manager.patch @@ -1,18 +1,18 @@ -From 5302231bc20db5912349bd3bce27df5a4acf9256 Mon Sep 17 00:00:00 2001 +From 602f3b45095fc63728850ba1d636ac52e4a6f156 Mon Sep 17 00:00:00 2001 From: Sandro Date: Mon, 4 Mar 2024 21:45:51 +0100 -Subject: [PATCH 2/2] Catch AttributeError in set_manager() +Subject: [PATCH 2/3] Catch AttributeError in set_manager() Return empty list if AttributeError is raised. --- - bottles/frontend/windows/main_window.py | 9 ++++++--- + bottles/frontend/windows/window.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) -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): +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 @@ -29,5 +29,5 @@ index 5fb9a15c..cd26408b 100644 self.show_onboard_view() -- -2.47.0 +2.51.0 diff --git a/0003-Catch-AttributeError-when-window-is-closed.patch b/0003-Catch-AttributeError-when-window-is-closed.patch index da815cb..eaff8a1 100644 --- a/0003-Catch-AttributeError-when-window-is-closed.patch +++ b/0003-Catch-AttributeError-when-window-is-closed.patch @@ -1,7 +1,7 @@ -From 25ca897f6a04187cec0e06e4740abf8378cf0d43 Mon Sep 17 00:00:00 2001 +From 3001aaba2b1ea6488b69f8714171eff635043b53 Mon Sep 17 00:00:00 2001 From: Sandro Date: Sat, 9 Nov 2024 13:42:00 +0100 -Subject: [PATCH] Catch AttributeError when window is closed +Subject: [PATCH 3/3] Catch AttributeError when window is closed In certain situations Bottles crashes with: @@ -13,10 +13,10 @@ This should allow Bottles to exit without error. 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bottles/frontend/main.py b/bottles/frontend/main.py -index 5616ab22..7c44b585 100644 +index f6a07b15..ea3d7ad1 100644 --- a/bottles/frontend/main.py +++ b/bottles/frontend/main.py -@@ -260,7 +260,10 @@ class Bottles(Adw.Application): +@@ -267,7 +267,10 @@ class Bottles(Adw.Application): logging.info( _("[Quit] request received."), ) @@ -29,5 +29,5 @@ index 5616ab22..7c44b585 100644 @staticmethod -- -2.47.0 +2.51.0 diff --git a/0004-Use-FileDialog-for-all-file-path-pickers.patch b/0004-Use-FileDialog-for-all-file-path-pickers.patch deleted file mode 100644 index 31fa7f0..0000000 --- a/0004-Use-FileDialog-for-all-file-path-pickers.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 77bc57c6a2468d4c28f9c8e80ca20fd4e2e48dfb Mon Sep 17 00:00:00 2001 -From: Sandro -Date: Sat, 9 Nov 2024 16:59:50 +0100 -Subject: [PATCH] Use FileDialog for all file/path pickers - -- Use `FileDialog` throughout -- Handle whatever `GLib.Error` throws our way -- Handle it the same way regardless of dialog ---- - bottles/frontend/windows/launchoptions.py | 43 ++++++++++++++--------- - 1 file changed, 27 insertions(+), 16 deletions(-) - -diff --git a/bottles/frontend/windows/launchoptions.py b/bottles/frontend/windows/launchoptions.py -index adb122a3..79dbedd6 100644 ---- a/bottles/frontend/windows/launchoptions.py -+++ b/bottles/frontend/windows/launchoptions.py -@@ -279,6 +279,7 @@ class LaunchOptionsDialog(Adw.Window): - else: - # something else happened... - logging.warning("Error selecting post-run script: %s" % error) -+ pass - - dialog = Gtk.FileDialog.new() - dialog.set_title("Select Post-run Script") -@@ -296,25 +297,35 @@ class LaunchOptionsDialog(Adw.Window): - self.btn_post_script_reset.set_visible(False) - - def __choose_cwd(self, *_args): -- def set_path(dialog, response): -- if response != Gtk.ResponseType.ACCEPT: -- self.action_cwd.set_subtitle(self.__default_cwd_msg) -- return -- -- directory_path = dialog.get_file().get_path() -- self.program["folder"] = directory_path -- self.action_cwd.set_subtitle(directory_path) -- self.btn_cwd_reset.set_visible(True) -+ def set_path(dialog, result): - -- dialog = Gtk.FileChooserNative.new( -- title=_("Select Working Directory"), -- parent=self.window, -- action=Gtk.FileChooserAction.SELECT_FOLDER, -- ) -+ try: -+ directory = dialog.select_folder_finish(result) -+ -+ if directory is None: -+ self.action_cwd.set_subtitle( -+ self.__default_cwd_msg) -+ return - -+ directory_path = directory.get_path() -+ self.program["folder"] = directory_path -+ self.action_cwd.set_subtitle(directory_path) -+ self.btn_cwd_reset.set_visible(True) -+ except GLib.Error as error: -+ # also thrown when dialog has been cancelled -+ if error.code == 2: -+ # error 2 seems to be 'dismiss' or 'cancel' -+ if self.program["folder"] is None or self.program["folder"] == "": -+ self.action_cwd.set_subtitle(self.__default_cwd_msg) -+ else: -+ # something else happened... -+ logging.warning("Error selecting folder: %s" % error) -+ raise -+ -+ dialog = Gtk.FileDialog.new() -+ dialog.set_title("Select Working Directory") - dialog.set_modal(True) -- dialog.connect("response", set_path) -- dialog.show() -+ dialog.select_folder(parent=self.window, callback=set_path) - - def __reset_cwd(self, *_args): - """ --- -2.47.0 - diff --git a/1001-Revert-meson-Add-check-for-Flatpak.patch b/1001-Revert-meson-Add-check-for-Flatpak.patch index 424dd72..e871f2d 100644 --- a/1001-Revert-meson-Add-check-for-Flatpak.patch +++ b/1001-Revert-meson-Add-check-for-Flatpak.patch @@ -1,7 +1,7 @@ -From eeb64140ebb693642c1c27689d8f99772bb00106 Mon Sep 17 00:00:00 2001 +From 43278894bd9f1277da14ac187ba7b42ece5cf483 Mon Sep 17 00:00:00 2001 From: Sandro Date: Sun, 8 Dec 2024 11:11:27 +0100 -Subject: [PATCH 1001/1003] Revert "meson: Add check for Flatpak" +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. @@ -29,5 +29,5 @@ index 6ff7c011..c26ea0b9 100644 '__init__.py', 'main.py', -- -2.47.0 +2.51.0 diff --git a/1002-Change-issue-URL-to-Bugzilla.patch b/1002-Change-issue-URL-to-Bugzilla.patch index 3b20c02..1ee76f0 100644 --- a/1002-Change-issue-URL-to-Bugzilla.patch +++ b/1002-Change-issue-URL-to-Bugzilla.patch @@ -1,19 +1,19 @@ -From 979dce37851de94d1e82ac5486089c5b67cf5583 Mon Sep 17 00:00:00 2001 +From 6daaf8a10f2678f1325546992aa27552f0407c1e Mon Sep 17 00:00:00 2001 From: Sandro Date: Sun, 8 Dec 2024 11:22:42 +0100 -Subject: [PATCH 1002/1003] Change issue URL to Bugzilla +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 | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) + 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 ee38f806..1b306002 100644 +index c380c823..fd2261d9 100644 --- a/data/com.usebottles.bottles.metainfo.xml.in.in +++ b/data/com.usebottles.bottles.metainfo.xml.in.in -@@ -52,7 +52,7 @@ +@@ -70,7 +70,7 @@ @APP_ID@ https://usebottles.com @@ -22,13 +22,6 @@ index ee38f806..1b306002 100644 https://docs.usebottles.com https://usebottles.com/funding https://hosted.weblate.org/engage/bottles -@@ -246,4 +246,4 @@ - - - -- -\ No newline at end of file -+ -- -2.47.0 +2.51.0 diff --git a/1003-Display-warning-regarding-issue-tracker.patch b/1003-Display-warning-regarding-issue-tracker.patch index a6e02e7..13451be 100644 --- a/1003-Display-warning-regarding-issue-tracker.patch +++ b/1003-Display-warning-regarding-issue-tracker.patch @@ -1,19 +1,19 @@ -From 723cdc6bc58c65a4aa6672971ba0f22f2b3523f6 Mon Sep 17 00:00:00 2001 +From 96e3ec53fe9819cf23bc8369e397d12ef1f06b51 Mon Sep 17 00:00:00 2001 From: Sandro Date: Sun, 8 Dec 2024 12:21:57 +0100 -Subject: [PATCH 1003/1003] Display warning regarding issue tracker +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/main_window.py | 23 ++++++++++------------- + bottles/frontend/windows/window.py | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) -diff --git a/bottles/frontend/windows/main_window.py b/bottles/frontend/windows/main_window.py -index 79bf0d72..48321e2a 100644 ---- a/bottles/frontend/windows/main_window.py -+++ b/bottles/frontend/windows/main_window.py -@@ -104,29 +104,26 @@ class MainWindow(Adw.ApplicationWindow): +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": @@ -22,7 +22,7 @@ index 79bf0d72..48321e2a 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" @@ -46,7 +46,7 @@ index 79bf0d72..48321e2a 100644 - ) - logging.error("https://usebottles.com/download/") - return -+ logging.warn(_("Bottles is only supported within a sandboxed format. Official sources of Bottles are available at:")) ++ 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") @@ -54,5 +54,5 @@ index 79bf0d72..48321e2a 100644 # Loading view self.page_loading = LoadingView() -- -2.47.0 +2.51.0 diff --git a/1004-Do-not-require-Xdp.patch b/1004-Do-not-require-Xdp.patch index 74d6ba1..e0edd1f 100644 --- a/1004-Do-not-require-Xdp.patch +++ b/1004-Do-not-require-Xdp.patch @@ -1,31 +1,145 @@ -From c198a4c289b16a88c55d90d078ea46d538450947 Mon Sep 17 00:00:00 2001 +From fc49b2eecc0526ac58c029a011b3fb90383f98c7 Mon Sep 17 00:00:00 2001 From: Sandro Date: Wed, 8 Jan 2025 09:44:32 +0100 -Subject: [PATCH] Do not require Xdp +Subject: [PATCH 1004/1005] Do not require Xdp -This was used for Flatpak introspection. No need to depend on Xdp in the -RPM package. +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 | 1 - - bottles/frontend/windows/main_window.py | 46 ++++++++++++------------- - 2 files changed, 23 insertions(+), 24 deletions(-) + 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 9f4a5525..fe1053d8 100644 +index ea3d7ad1..5a8ecd20 100644 --- a/bottles/frontend/main.py +++ b/bottles/frontend/main.py -@@ -26,7 +26,6 @@ from os import path +@@ -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") +-# gi.require_version("XdpGtk4", "1.0") - from gi.repository import Gtk, Gio, GLib, GObject, Adw # type: ignore -diff --git a/bottles/frontend/windows/main_window.py b/bottles/frontend/windows/main_window.py -index 48321e2a..fe28d46b 100644 ---- a/bottles/frontend/windows/main_window.py -+++ b/bottles/frontend/windows/main_window.py + # 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 @@ -35,10 +149,11 @@ index 48321e2a..fe28d46b 100644 from bottles.backend.globals import Paths from bottles.backend.health import HealthChecker -@@ -100,30 +100,30 @@ class MainWindow(Adw.ApplicationWindow): +@@ -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 +- # Be VERY explicit that non-sandboxed environments are unsupported - if not Xdp.Portal.running_under_sandbox(): - - def response(dialog, response, *args): @@ -46,48 +161,27 @@ index 48321e2a..fe28d46b 100644 - 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" -+ # Flatpak introspection using Xdp removed for RPM package. -+ # https://bugzilla.redhat.com/show_bug.cgi?id=2336311 -+ 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 = 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 format. Official sources of Bottles are available at:")) +- 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") -+ 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 format. 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.47.0 +2.51.0 diff --git a/1005-Search-for-system-installed-vkBasalt.patch b/1005-Search-for-system-installed-vkBasalt.patch new file mode 100644 index 0000000..2eea87f --- /dev/null +++ b/1005-Search-for-system-installed-vkBasalt.patch @@ -0,0 +1,30 @@ +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/bottles.spec b/bottles.spec index 22a97c5..c04f792 100644 --- a/bottles.spec +++ b/bottles.spec @@ -24,9 +24,6 @@ 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 -# Attempt to prevent segfaults when picking files -# https://bugzilla.redhat.com/show_bug.cgi?id=2296214 -Patch: 0004-Use-FileDialog-for-all-file-path-pickers.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 From 1c9a0354c35302fc36fb5567021298b7f51d93a1 Mon Sep 17 00:00:00 2001 From: Sandro Date: Sat, 8 Nov 2025 12:19:50 +0100 Subject: [PATCH 57/57] Add additional weak dependencies --- bottles.spec | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/bottles.spec b/bottles.spec index c04f792..5973e13 100644 --- a/bottles.spec +++ b/bottles.spec @@ -91,6 +91,18 @@ 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