From 4b35b445f44c7d819947aa6707a1789271f7f62a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Tue, 26 May 2020 02:39:38 +0200 Subject: [PATCH 01/49] Rebuilt for Python 3.9 --- PySolFC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PySolFC.spec b/PySolFC.spec index 35addf5..293afeb 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -1,6 +1,6 @@ Name: PySolFC Version: 2.8.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A collection of solitaire card games License: GPLv2+ URL: https://pysolfc.sourceforge.io @@ -79,6 +79,9 @@ pathfix.py -pni "%{__python3} %{py3_shbang_opts}" $RPM_BUILD_ROOT%{_bindir}/* %changelog +* Tue May 26 2020 Miro Hrončok - 2.8.0-3 +- Rebuilt for Python 3.9 + * Sat Mar 28 2020 Shlomi Fish 2.8.0-2 - Fix or remove shebangs (RHBZ 1818150) - Correct the changelog From ef91c358d5d2c08f9d757210207ed204facb45ba Mon Sep 17 00:00:00 2001 From: Shlomi Fish Date: Tue, 23 Jun 2020 20:53:20 +0300 Subject: [PATCH 02/49] new version 2.10.0+setuptools --- .gitignore | 1 + PySolFC.spec | 14 +++++++++++--- sources | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index eac6254..52d936a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ PySolFC-2.0.tar.bz2 /PySolFC-2.6.4.tar.xz /PySolFC-Cardsets--Minimal-2.0.tar.xz /PySolFC-2.8.0.tar.xz +/PySolFC-2.10.0.tar.xz diff --git a/PySolFC.spec b/PySolFC.spec index 293afeb..e9b2fee 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -1,6 +1,6 @@ Name: PySolFC -Version: 2.8.0 -Release: 3%{?dist} +Version: 2.10.0 +Release: 1%{?dist} Summary: A collection of solitaire card games License: GPLv2+ URL: https://pysolfc.sourceforge.io @@ -11,10 +11,14 @@ Patch0: PySolFC-desktop-exec.patch BuildArch: noarch BuildRequires: python%{python3_pkgversion}-devel +BuildRequires: python%{python3_pkgversion}-setuptools BuildRequires: desktop-file-utils BuildRequires: perl-interpreter BuildRequires: /usr/bin/pathfix.py # optional but nice to have +Requires: freecell-solver +Requires: libfreecell-solver +Requires: python%{python3_pkgversion}-freecell_solver Requires: python%{python3_pkgversion}-imaging Requires: tile # used to get sound working with PulseAudio @@ -73,12 +77,16 @@ pathfix.py -pni "%{__python3} %{py3_shbang_opts}" $RPM_BUILD_ROOT%{_bindir}/* %{python3_sitelib}/*egg-info %{_bindir}/pysol %{_datadir}/%{name} -%{_datadir}/pixmaps/* %{_datadir}/icons/hicolor/*/apps/*.png %{_datadir}/applications/*.desktop %changelog +* Tue Jun 23 2020 Shlomi Fish 2.10.0-1 +- New upstream release +- Add BuildRequires on setuptools +- Add Requires on python3-freecell_solver + * Tue May 26 2020 Miro Hrončok - 2.8.0-3 - Rebuilt for Python 3.9 diff --git a/sources b/sources index bb77915..6b081c7 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ +SHA512 (PySolFC-2.10.0.tar.xz) = 847a18d856a68a099610cc3b1fb3da2562b02dcb783fc97eaae47cd9f277ae5ed7e9f8911a9d513f4d418499d22bf4c26716db6abadeca7707a00e52e731ce4e SHA512 (PySolFC-Cardsets--Minimal-2.0.tar.xz) = d6a499126b7cfdf14928a53756d4f6e67368546207fb6daa70cd0ef542ce8d0d3c1d813905c98971121de94e8a679df130bff1b1ee48d343906a4999af5d1860 -SHA512 (PySolFC-2.8.0.tar.xz) = 645b8436822e4173eb3041c6dec302554f57ed14940ba2bacab3e45b87458e932b8caa45e7d169fed78b2e591a2332589d4118566e615de13781fcd6253ddee6 From 0edd98e56de85e47097fe34172161bbee33c1610 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 27 Jul 2020 10:36:07 +0000 Subject: [PATCH 03/49] - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- PySolFC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PySolFC.spec b/PySolFC.spec index e9b2fee..5052ee4 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -1,6 +1,6 @@ Name: PySolFC Version: 2.10.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A collection of solitaire card games License: GPLv2+ URL: https://pysolfc.sourceforge.io @@ -82,6 +82,9 @@ pathfix.py -pni "%{__python3} %{py3_shbang_opts}" $RPM_BUILD_ROOT%{_bindir}/* %changelog +* Mon Jul 27 2020 Fedora Release Engineering - 2.10.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Tue Jun 23 2020 Shlomi Fish 2.10.0-1 - New upstream release - Add BuildRequires on setuptools From 14b0761d5bd08b1f2bfc67c1a9b5f9a50b913e02 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 25 Jan 2021 22:38:10 +0000 Subject: [PATCH 04/49] - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- PySolFC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PySolFC.spec b/PySolFC.spec index 5052ee4..1a59045 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -1,6 +1,6 @@ Name: PySolFC Version: 2.10.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A collection of solitaire card games License: GPLv2+ URL: https://pysolfc.sourceforge.io @@ -82,6 +82,9 @@ pathfix.py -pni "%{__python3} %{py3_shbang_opts}" $RPM_BUILD_ROOT%{_bindir}/* %changelog +* Mon Jan 25 2021 Fedora Release Engineering - 2.10.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + * Mon Jul 27 2020 Fedora Release Engineering - 2.10.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild From 1e9d0f3e55a72b0d0b52f19d47ab23066c741cd1 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 4 Jun 2021 20:17:42 +0200 Subject: [PATCH 05/49] Rebuilt for Python 3.10 --- PySolFC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PySolFC.spec b/PySolFC.spec index 1a59045..0a1be29 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -1,6 +1,6 @@ Name: PySolFC Version: 2.10.0 -Release: 3%{?dist} +Release: 4%{?dist} Summary: A collection of solitaire card games License: GPLv2+ URL: https://pysolfc.sourceforge.io @@ -82,6 +82,9 @@ pathfix.py -pni "%{__python3} %{py3_shbang_opts}" $RPM_BUILD_ROOT%{_bindir}/* %changelog +* Fri Jun 04 2021 Python Maint - 2.10.0-4 +- Rebuilt for Python 3.10 + * Mon Jan 25 2021 Fedora Release Engineering - 2.10.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild From c772afb290cadf44194d16d3216317377042e593 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 21 Jul 2021 11:07:14 +0000 Subject: [PATCH 06/49] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering From 36a6bc1498ef9f45119ae4e8dc79b55f4db9b377 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 21 Jul 2021 16:01:45 +0000 Subject: [PATCH 07/49] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- PySolFC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PySolFC.spec b/PySolFC.spec index 0a1be29..3e46fbf 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -1,6 +1,6 @@ Name: PySolFC Version: 2.10.0 -Release: 4%{?dist} +Release: 5%{?dist} Summary: A collection of solitaire card games License: GPLv2+ URL: https://pysolfc.sourceforge.io @@ -82,6 +82,9 @@ pathfix.py -pni "%{__python3} %{py3_shbang_opts}" $RPM_BUILD_ROOT%{_bindir}/* %changelog +* Wed Jul 21 2021 Fedora Release Engineering - 2.10.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + * Fri Jun 04 2021 Python Maint - 2.10.0-4 - Rebuilt for Python 3.10 From 810a027526d880d6e909c429372d6b98657dd41e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Thu, 12 Aug 2021 16:23:57 +0100 Subject: [PATCH 08/49] Update to 2.12.0 --- .gitignore | 2 ++ PySolFC.spec | 18 ++++++++++++------ sources | 4 ++-- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 52d936a..49eadd6 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ PySolFC-2.0.tar.bz2 /PySolFC-Cardsets--Minimal-2.0.tar.xz /PySolFC-2.8.0.tar.xz /PySolFC-2.10.0.tar.xz +/PySolFC-2.12.0.tar.xz +/PySolFC-Cardsets--Minimal-2.0.2.tar.xz diff --git a/PySolFC.spec b/PySolFC.spec index 3e46fbf..7943ca7 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -1,13 +1,14 @@ Name: PySolFC -Version: 2.10.0 -Release: 5%{?dist} +Version: 2.12.0 +Release: 1%{?dist} Summary: A collection of solitaire card games License: GPLv2+ URL: https://pysolfc.sourceforge.io Source0: https://downloads.sourceforge.net/pysolfc/%{name}-%{version}.tar.xz Source1: pysol-start-script -Source2: PySolFC-Cardsets--Minimal-2.0.tar.xz +Source2: https://downloads.sourceforge.net/pysolfc/PySolFC-Cardsets--Minimal-2.0.2.tar.xz Patch0: PySolFC-desktop-exec.patch +Patch1: 06d2fd5b90c29cbfe9b938676cc85c514cbbcca1.patch BuildArch: noarch BuildRequires: python%{python3_pkgversion}-devel @@ -44,8 +45,7 @@ statistics, a hint system, demo games, a solitaire wizard, support for user written plug-ins, an integrated HTML help browser, and lots of documentation. %prep -%setup -q -a2 -%patch0 -p1 -b .desktop-exec +%autosetup -p1 -a2 %build %py3_build @@ -64,7 +64,7 @@ desktop-file-install \ # install the startup wrapper mv $RPM_BUILD_ROOT%{_bindir}/pysol.py $RPM_BUILD_ROOT%{_datadir}/%{name} install -m755 %{SOURCE1} $RPM_BUILD_ROOT/%{_bindir}/pysol -cp -a PySolFC-Cardsets--Minimal-2.0/cardset-* $RPM_BUILD_ROOT%{_datadir}/PySolFC +cp -a PySolFC-Cardsets--Minimal-2.0.2/cardset-* $RPM_BUILD_ROOT%{_datadir}/PySolFC find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl -ln -i -E 'say if (not (($. == 1) and (m&^#![ \t]*/usr/&)))' pathfix.py -pni "%{__python3} %{py3_shbang_opts}" $RPM_BUILD_ROOT%{_bindir}/* @@ -82,6 +82,12 @@ pathfix.py -pni "%{__python3} %{py3_shbang_opts}" $RPM_BUILD_ROOT%{_bindir}/* %changelog +* Thu Aug 12 2021 Sérgio Basto - 2.12.0-1 +- Update to 2.12.0 + +* Thu Aug 12 2021 Sérgio Basto - 2.10.0-6 +- formatting.py deprecated fix for Pyhton 3.10 + * Wed Jul 21 2021 Fedora Release Engineering - 2.10.0-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild diff --git a/sources b/sources index 6b081c7..4213dd8 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (PySolFC-2.10.0.tar.xz) = 847a18d856a68a099610cc3b1fb3da2562b02dcb783fc97eaae47cd9f277ae5ed7e9f8911a9d513f4d418499d22bf4c26716db6abadeca7707a00e52e731ce4e -SHA512 (PySolFC-Cardsets--Minimal-2.0.tar.xz) = d6a499126b7cfdf14928a53756d4f6e67368546207fb6daa70cd0ef542ce8d0d3c1d813905c98971121de94e8a679df130bff1b1ee48d343906a4999af5d1860 +SHA512 (PySolFC-2.12.0.tar.xz) = 893012e93ca1cba72fac5f9f428c548af3aa59fa094aa9d027ed6740c91b34c5be62972e6522fb89264d1eb0f887234ddb07fa67a765573e105dbc25d885d1c5 +SHA512 (PySolFC-Cardsets--Minimal-2.0.2.tar.xz) = 5317866d6259b154219ec6efea349af3f9cb0fe9309a895ee55f7be87ebc8c34df12b81a08e1dee907a3f475f4e623c3609fdbd7e357890c2ade418ec5d68cb2 From bd65fb529e0afcb23029923da05ca33755f5a132 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Thu, 12 Aug 2021 16:47:08 +0100 Subject: [PATCH 09/49] git add 06d2fd5b90c29cbfe9b938676cc85c514cbbcca1.patch --- ...fd5b90c29cbfe9b938676cc85c514cbbcca1.patch | 657 ++++++++++++++++++ 1 file changed, 657 insertions(+) create mode 100644 06d2fd5b90c29cbfe9b938676cc85c514cbbcca1.patch diff --git a/06d2fd5b90c29cbfe9b938676cc85c514cbbcca1.patch b/06d2fd5b90c29cbfe9b938676cc85c514cbbcca1.patch new file mode 100644 index 0000000..d558b6c --- /dev/null +++ b/06d2fd5b90c29cbfe9b938676cc85c514cbbcca1.patch @@ -0,0 +1,657 @@ +From 06d2fd5b90c29cbfe9b938676cc85c514cbbcca1 Mon Sep 17 00:00:00 2001 +From: Shlomi Fish +Date: Wed, 11 Aug 2021 19:19:01 +0300 +Subject: [PATCH] issue217 : formatting.py deprecated fix. + +This file is derived from /usr/lib/python3.9/formatter.py . All changes +are placed under CC0. + +See: + +* https://github.com/shlomif/PySolFC/issues/217 + +* https://bugzilla.redhat.com/show_bug.cgi?id=1990043 +--- + pysollib/formatter.py | 474 +++++++++++++++++++++++++++++++++++ + pysollib/htmllib2.py | 10 +- + pysollib/kivy/tkhtml.py | 8 +- + pysollib/pysolgtk/tkhtml.py | 8 +- + pysollib/ui/tktile/tkhtml.py | 8 +- + 5 files changed, 492 insertions(+), 16 deletions(-) + create mode 100644 pysollib/formatter.py + +diff --git a/pysollib/formatter.py b/pysollib/formatter.py +new file mode 100644 +index 00000000..f572a7bb +--- /dev/null ++++ b/pysollib/formatter.py +@@ -0,0 +1,474 @@ ++""" ++ ++This file is derived from /usr/lib/python3.9/formatter.py . All changes ++are placed under CC0. ++ ++See: ++ ++* https://github.com/shlomif/PySolFC/issues/217 ++ ++* https://bugzilla.redhat.com/show_bug.cgi?id=1990043 ++ ++---- ++ ++Generic output formatting. ++ ++Formatter objects transform an abstract flow of formatting events into ++specific output events on writer objects. Formatters manage several stack ++structures to allow various properties of a writer object to be changed and ++restored; writers need not be able to handle relative changes nor any sort ++of ``change back'' operation. Specific writer properties which may be ++controlled via formatter objects are horizontal alignment, font, and left ++margin indentations. A mechanism is provided which supports providing ++arbitrary, non-exclusive style settings to a writer as well. Additional ++interfaces facilitate formatting events which are not reversible, such as ++paragraph separation. ++ ++Writer objects encapsulate device interfaces. Abstract devices, such as ++file formats, are supported as well as physical devices. The provided ++implementations all work with abstract devices. The interface makes ++available mechanisms for setting the properties which formatter objects ++manage and inserting data into the output. ++""" ++ ++import sys ++if False: ++ import warnings ++ warnings.warn('the formatter module is deprecated', DeprecationWarning, ++ stacklevel=2) ++ ++ ++AS_IS = None ++ ++ ++class NullFormatter: ++ """A formatter which does nothing. ++ ++ If the writer parameter is omitted, a NullWriter instance is created. ++ No methods of the writer are called by NullFormatter instances. ++ ++ Implementations should inherit from this class if implementing a writer ++ interface but don't need to inherit any implementation. ++ ++ """ ++ ++ def __init__(self, writer=None): ++ if writer is None: ++ writer = NullWriter() ++ self.writer = writer ++ ++ def end_paragraph(self, blankline): pass ++ def add_line_break(self): pass ++ def add_hor_rule(self, *args, **kw): pass ++ def add_label_data(self, format, counter, blankline=None): pass ++ def add_flowing_data(self, data): pass ++ def add_literal_data(self, data): pass ++ def flush_softspace(self): pass ++ def push_alignment(self, align): pass ++ def pop_alignment(self): pass ++ def push_font(self, x): pass ++ def pop_font(self): pass ++ def push_margin(self, margin): pass ++ def pop_margin(self): pass ++ def set_spacing(self, spacing): pass ++ def push_style(self, *styles): pass ++ def pop_style(self, n=1): pass ++ def assert_line_data(self, flag=1): pass ++ ++ ++class AbstractFormatter: ++ """The standard formatter. ++ ++ This implementation has demonstrated wide applicability to many writers, ++ and may be used directly in most circumstances. It has been used to ++ implement a full-featured World Wide Web browser. ++ ++ """ ++ ++ # Space handling policy: blank spaces at the boundary between elements ++ # are handled by the outermost context. "Literal" data is not checked ++ # to determine context, so spaces in literal data are handled directly ++ # in all circumstances. ++ ++ def __init__(self, writer): ++ self.writer = writer # Output device ++ self.align = None # Current alignment ++ self.align_stack = [] # Alignment stack ++ self.font_stack = [] # Font state ++ self.margin_stack = [] # Margin state ++ self.spacing = None # Vertical spacing state ++ self.style_stack = [] # Other state, e.g. color ++ self.nospace = 1 # Should leading space be suppressed ++ self.softspace = 0 # Should a space be inserted ++ self.para_end = 1 # Just ended a paragraph ++ self.parskip = 0 # Skipped space between paragraphs? ++ self.hard_break = 1 # Have a hard break ++ self.have_label = 0 ++ ++ def end_paragraph(self, blankline): ++ if not self.hard_break: ++ self.writer.send_line_break() ++ self.have_label = 0 ++ if self.parskip < blankline and not self.have_label: ++ self.writer.send_paragraph(blankline - self.parskip) ++ self.parskip = blankline ++ self.have_label = 0 ++ self.hard_break = self.nospace = self.para_end = 1 ++ self.softspace = 0 ++ ++ def add_line_break(self): ++ if not (self.hard_break or self.para_end): ++ self.writer.send_line_break() ++ self.have_label = self.parskip = 0 ++ self.hard_break = self.nospace = 1 ++ self.softspace = 0 ++ ++ def add_hor_rule(self, *args, **kw): ++ if not self.hard_break: ++ self.writer.send_line_break() ++ self.writer.send_hor_rule(*args, **kw) ++ self.hard_break = self.nospace = 1 ++ self.have_label = self.para_end = self.softspace = self.parskip = 0 ++ ++ def add_label_data(self, format, counter, blankline=None): ++ if self.have_label or not self.hard_break: ++ self.writer.send_line_break() ++ if not self.para_end: ++ self.writer.send_paragraph((blankline and 1) or 0) ++ if isinstance(format, str): ++ self.writer.send_label_data(self.format_counter(format, counter)) ++ else: ++ self.writer.send_label_data(format) ++ self.nospace = self.have_label = self.hard_break = self.para_end = 1 ++ self.softspace = self.parskip = 0 ++ ++ def format_counter(self, format, counter): ++ label = '' ++ for c in format: ++ if c == '1': ++ label = label + ('%d' % counter) ++ elif c in 'aA': ++ if counter > 0: ++ label = label + self.format_letter(c, counter) ++ elif c in 'iI': ++ if counter > 0: ++ label = label + self.format_roman(c, counter) ++ else: ++ label = label + c ++ return label ++ ++ def format_letter(self, case, counter): ++ label = '' ++ while counter > 0: ++ counter, x = divmod(counter-1, 26) ++ # This makes a strong assumption that lowercase letters ++ # and uppercase letters form two contiguous blocks, with ++ # letters in order! ++ s = chr(ord(case) + x) ++ label = s + label ++ return label ++ ++ def format_roman(self, case, counter): ++ ones = ['i', 'x', 'c', 'm'] ++ fives = ['v', 'l', 'd'] ++ label, index = '', 0 ++ # This will die of IndexError when counter is too big ++ while counter > 0: ++ counter, x = divmod(counter, 10) ++ if x == 9: ++ label = ones[index] + ones[index+1] + label ++ elif x == 4: ++ label = ones[index] + fives[index] + label ++ else: ++ if x >= 5: ++ s = fives[index] ++ x = x-5 ++ else: ++ s = '' ++ s = s + ones[index]*x ++ label = s + label ++ index = index + 1 ++ if case == 'I': ++ return label.upper() ++ return label ++ ++ def add_flowing_data(self, data): ++ if not data: ++ return ++ prespace = data[:1].isspace() ++ postspace = data[-1:].isspace() ++ data = " ".join(data.split()) ++ if self.nospace and not data: ++ return ++ elif prespace or self.softspace: ++ if not data: ++ if not self.nospace: ++ self.softspace = 1 ++ self.parskip = 0 ++ return ++ if not self.nospace: ++ data = ' ' + data ++ self.hard_break = self.nospace = self.para_end = \ ++ self.parskip = self.have_label = 0 ++ self.softspace = postspace ++ self.writer.send_flowing_data(data) ++ ++ def add_literal_data(self, data): ++ if not data: ++ return ++ if self.softspace: ++ self.writer.send_flowing_data(" ") ++ self.hard_break = data[-1:] == '\n' ++ self.nospace = self.para_end = self.softspace = \ ++ self.parskip = self.have_label = 0 ++ self.writer.send_literal_data(data) ++ ++ def flush_softspace(self): ++ if self.softspace: ++ self.hard_break = self.para_end = self.parskip = \ ++ self.have_label = self.softspace = 0 ++ self.nospace = 1 ++ self.writer.send_flowing_data(' ') ++ ++ def push_alignment(self, align): ++ if align and align != self.align: ++ self.writer.new_alignment(align) ++ self.align = align ++ self.align_stack.append(align) ++ else: ++ self.align_stack.append(self.align) ++ ++ def pop_alignment(self): ++ if self.align_stack: ++ del self.align_stack[-1] ++ if self.align_stack: ++ self.align = align = self.align_stack[-1] ++ self.writer.new_alignment(align) ++ else: ++ self.align = None ++ self.writer.new_alignment(None) ++ ++ def push_font(self, font): ++ size, i, b, tt = font ++ if self.softspace: ++ self.hard_break = self.para_end = self.softspace = 0 ++ self.nospace = 1 ++ self.writer.send_flowing_data(' ') ++ if self.font_stack: ++ csize, ci, cb, ctt = self.font_stack[-1] ++ if size is AS_IS: ++ size = csize ++ if i is AS_IS: ++ i = ci ++ if b is AS_IS: ++ b = cb ++ if tt is AS_IS: ++ tt = ctt ++ font = (size, i, b, tt) ++ self.font_stack.append(font) ++ self.writer.new_font(font) ++ ++ def pop_font(self): ++ if self.font_stack: ++ del self.font_stack[-1] ++ if self.font_stack: ++ font = self.font_stack[-1] ++ else: ++ font = None ++ self.writer.new_font(font) ++ ++ def push_margin(self, margin): ++ self.margin_stack.append(margin) ++ fstack = [m for m in self.margin_stack if m] ++ if not margin and fstack: ++ margin = fstack[-1] ++ self.writer.new_margin(margin, len(fstack)) ++ ++ def pop_margin(self): ++ if self.margin_stack: ++ del self.margin_stack[-1] ++ fstack = [m for m in self.margin_stack if m] ++ if fstack: ++ margin = fstack[-1] ++ else: ++ margin = None ++ self.writer.new_margin(margin, len(fstack)) ++ ++ def set_spacing(self, spacing): ++ self.spacing = spacing ++ self.writer.new_spacing(spacing) ++ ++ def push_style(self, *styles): ++ if self.softspace: ++ self.hard_break = self.para_end = self.softspace = 0 ++ self.nospace = 1 ++ self.writer.send_flowing_data(' ') ++ for style in styles: ++ self.style_stack.append(style) ++ self.writer.new_styles(tuple(self.style_stack)) ++ ++ def pop_style(self, n=1): ++ del self.style_stack[-n:] ++ self.writer.new_styles(tuple(self.style_stack)) ++ ++ def assert_line_data(self, flag=1): ++ self.nospace = self.hard_break = not flag ++ self.para_end = self.parskip = self.have_label = 0 ++ ++ ++class NullWriter: ++ """Minimal writer interface to use in testing & inheritance. ++ ++ A writer which only provides the interface definition; no actions are ++ taken on any methods. This should be the base class for all writers ++ which do not need to inherit any implementation methods. ++ ++ """ ++ def __init__(self): pass ++ def flush(self): pass ++ def new_alignment(self, align): pass ++ def new_font(self, font): pass ++ def new_margin(self, margin, level): pass ++ def new_spacing(self, spacing): pass ++ def new_styles(self, styles): pass ++ def send_paragraph(self, blankline): pass ++ def send_line_break(self): pass ++ def send_hor_rule(self, *args, **kw): pass ++ def send_label_data(self, data): pass ++ def send_flowing_data(self, data): pass ++ def send_literal_data(self, data): pass ++ ++ ++class AbstractWriter(NullWriter): ++ """A writer which can be used in debugging formatters, but not much else. ++ ++ Each method simply announces itself by printing its name and ++ arguments on standard output. ++ ++ """ ++ ++ def new_alignment(self, align): ++ print("new_alignment(%r)" % (align,)) ++ ++ def new_font(self, font): ++ print("new_font(%r)" % (font,)) ++ ++ def new_margin(self, margin, level): ++ print("new_margin(%r, %d)" % (margin, level)) ++ ++ def new_spacing(self, spacing): ++ print("new_spacing(%r)" % (spacing,)) ++ ++ def new_styles(self, styles): ++ print("new_styles(%r)" % (styles,)) ++ ++ def send_paragraph(self, blankline): ++ print("send_paragraph(%r)" % (blankline,)) ++ ++ def send_line_break(self): ++ print("send_line_break()") ++ ++ def send_hor_rule(self, *args, **kw): ++ print("send_hor_rule()") ++ ++ def send_label_data(self, data): ++ print("send_label_data(%r)" % (data,)) ++ ++ def send_flowing_data(self, data): ++ print("send_flowing_data(%r)" % (data,)) ++ ++ def send_literal_data(self, data): ++ print("send_literal_data(%r)" % (data,)) ++ ++ ++class DumbWriter(NullWriter): ++ """Simple writer class which writes output on the file object passed in ++ as the file parameter or, if file is omitted, on standard output. The ++ output is simply word-wrapped to the number of columns specified by ++ the maxcol parameter. This class is suitable for reflowing a sequence ++ of paragraphs. ++ ++ """ ++ ++ def __init__(self, file=None, maxcol=72): ++ self.file = file or sys.stdout ++ self.maxcol = maxcol ++ NullWriter.__init__(self) ++ self.reset() ++ ++ def reset(self): ++ self.col = 0 ++ self.atbreak = 0 ++ ++ def send_paragraph(self, blankline): ++ self.file.write('\n'*blankline) ++ self.col = 0 ++ self.atbreak = 0 ++ ++ def send_line_break(self): ++ self.file.write('\n') ++ self.col = 0 ++ self.atbreak = 0 ++ ++ def send_hor_rule(self, *args, **kw): ++ self.file.write('\n') ++ self.file.write('-'*self.maxcol) ++ self.file.write('\n') ++ self.col = 0 ++ self.atbreak = 0 ++ ++ def send_literal_data(self, data): ++ self.file.write(data) ++ i = data.rfind('\n') ++ if i >= 0: ++ self.col = 0 ++ data = data[i+1:] ++ data = data.expandtabs() ++ self.col = self.col + len(data) ++ self.atbreak = 0 ++ ++ def send_flowing_data(self, data): ++ if not data: ++ return ++ atbreak = self.atbreak or data[0].isspace() ++ col = self.col ++ maxcol = self.maxcol ++ write = self.file.write ++ for word in data.split(): ++ if atbreak: ++ if col + len(word) >= maxcol: ++ write('\n') ++ col = 0 ++ else: ++ write(' ') ++ col = col + 1 ++ write(word) ++ col = col + len(word) ++ atbreak = 1 ++ self.col = col ++ self.atbreak = data[-1].isspace() ++ ++ ++def test(file=None): ++ w = DumbWriter() ++ f = AbstractFormatter(w) ++ if file is not None: ++ fp = open(file) ++ elif sys.argv[1:]: ++ fp = open(sys.argv[1]) ++ else: ++ fp = sys.stdin ++ try: ++ for line in fp: ++ if line == '\n': ++ f.end_paragraph(1) ++ else: ++ f.add_flowing_data(line) ++ finally: ++ if fp is not sys.stdin: ++ fp.close() ++ f.end_paragraph(0) ++ ++ ++if __name__ == '__main__': ++ test() +diff --git a/pysollib/htmllib2.py b/pysollib/htmllib2.py +index 7ff6b2a9..dab753e7 100644 +--- a/pysollib/htmllib2.py ++++ b/pysollib/htmllib2.py +@@ -4,7 +4,7 @@ + http://www.w3.org/hypertext/WWW/MarkUp/html-spec/html-spec_toc.html + """ + +-from formatter import AS_IS ++from pysollib.formatter import AS_IS + + from six.moves import html_parser + +@@ -483,7 +483,7 @@ def unknown_endtag(self, tag): + + def test(args=None): + import sys +- import formatter ++ import pysollib.formatter + + if not args: + args = sys.argv[1:] +@@ -508,9 +508,11 @@ def test(args=None): + sys.exit(1) + + if silent: +- f = formatter.NullFormatter() ++ f = pysollib.formatter.NullFormatter() + else: +- f = formatter.AbstractFormatter(formatter.DumbWriter()) ++ f = pysollib.formatter.AbstractFormatter( ++ pysollib.formatter.DumbWriter() ++ ) + + p = HTMLParser(f) + p.feed(data) +diff --git a/pysollib/kivy/tkhtml.py b/pysollib/kivy/tkhtml.py +index 152b281c..54c0db0e 100644 +--- a/pysollib/kivy/tkhtml.py ++++ b/pysollib/kivy/tkhtml.py +@@ -21,7 +21,6 @@ + # + # ---------------------------------------------------------------------------# + +-import formatter + import os + import sys + +@@ -29,6 +28,7 @@ + from kivy.uix.button import Button + from kivy.uix.label import Label + ++import pysollib.formatter + import pysollib.htmllib2 as htmllib + from pysollib.kivy.LApp import LPopCommander + from pysollib.kivy.LApp import LScrollView +@@ -84,9 +84,9 @@ def cmp2(a, b): + return (a > b) - (a < b) + + +-class tkHTMLWriter(formatter.NullWriter): ++class tkHTMLWriter(pysollib.formatter.NullWriter): + def __init__(self, text, viewer, app): +- formatter.NullWriter.__init__(self) ++ pysollib.formatter.NullWriter.__init__(self) + + self.text = text + self.viewer = viewer +@@ -630,7 +630,7 @@ def display(self, url, add=1, relpath=1, xview=0, yview=0): + # self.images = {} + self.text.textbuffer = '' + writer = tkHTMLWriter(self.text, self, self.app) +- fmt = formatter.AbstractFormatter(writer) ++ fmt = pysollib.formatter.AbstractFormatter(writer) + parser = tkHTMLParser(fmt) + parser.feed(data) + parser.close() +diff --git a/pysollib/pysolgtk/tkhtml.py b/pysollib/pysolgtk/tkhtml.py +index 798efda2..f1c18659 100644 +--- a/pysollib/pysolgtk/tkhtml.py ++++ b/pysollib/pysolgtk/tkhtml.py +@@ -21,7 +21,6 @@ + # + # --------------------------------------------------------------------------- + +-import formatter + import htmllib + import os + import sys +@@ -34,6 +33,7 @@ + + import pango + ++import pysollib.formatter + from pysollib.mfxutil import Struct, openURL + from pysollib.mygettext import _ + from pysollib.settings import TITLE +@@ -55,9 +55,9 @@ + # * + # ************************************************************************ + +-class tkHTMLWriter(formatter.NullWriter): ++class tkHTMLWriter(pysollib.formatter.NullWriter): + def __init__(self, text, viewer, app): +- formatter.NullWriter.__init__(self) ++ pysollib.formatter.NullWriter.__init__(self) + + self.text = text # gtk.TextBuffer + self.viewer = viewer # HTMLViewer +@@ -489,7 +489,7 @@ def display(self, url, add=1, relpath=1, position=(0, 0)): + self.textbuffer.delete(start, end) + + writer = tkHTMLWriter(self.textbuffer, self, self.app) +- fmt = formatter.AbstractFormatter(writer) ++ fmt = pysollib.formatter.AbstractFormatter(writer) + parser = tkHTMLParser(fmt) + parser.feed(data) + parser.close() +diff --git a/pysollib/ui/tktile/tkhtml.py b/pysollib/ui/tktile/tkhtml.py +index acab5711..afcb7257 100644 +--- a/pysollib/ui/tktile/tkhtml.py ++++ b/pysollib/ui/tktile/tkhtml.py +@@ -21,10 +21,10 @@ + # + # --------------------------------------------------------------------------- + +-import formatter + import os + import sys + ++import pysollib.formatter + import pysollib.htmllib2 as htmllib + from pysollib.mfxutil import openURL + from pysollib.mygettext import _ +@@ -40,9 +40,9 @@ + # ************************************************************************ + + +-class tkHTMLWriter(formatter.NullWriter): ++class tkHTMLWriter(pysollib.formatter.NullWriter): + def __init__(self, text, viewer, app): +- formatter.NullWriter.__init__(self) ++ pysollib.formatter.NullWriter.__init__(self) + + self.text = text + self.viewer = viewer +@@ -379,7 +379,7 @@ def display(self, url, add=1, relpath=1, xview=0, yview=0): + self.text.delete("1.0", "end") + # self.images = {} + writer = tkHTMLWriter(self.text, self, self.app) +- fmt = formatter.AbstractFormatter(writer) ++ fmt = pysollib.formatter.AbstractFormatter(writer) + parser = tkHTMLParser(fmt) + parser.feed(data) + parser.close() From c0d035ccf0f375a501ba5d731a3799ccb0ba15df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Mon, 20 Sep 2021 10:30:03 +0100 Subject: [PATCH 10/49] Update to 2.14.0 (#2005720) --- .gitignore | 1 + ...fd5b90c29cbfe9b938676cc85c514cbbcca1.patch | 657 ------------------ PySolFC.spec | 9 +- sources | 2 +- 4 files changed, 6 insertions(+), 663 deletions(-) delete mode 100644 06d2fd5b90c29cbfe9b938676cc85c514cbbcca1.patch diff --git a/.gitignore b/.gitignore index 49eadd6..03b0761 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ PySolFC-2.0.tar.bz2 /PySolFC-2.10.0.tar.xz /PySolFC-2.12.0.tar.xz /PySolFC-Cardsets--Minimal-2.0.2.tar.xz +/PySolFC-2.14.0.tar.xz diff --git a/06d2fd5b90c29cbfe9b938676cc85c514cbbcca1.patch b/06d2fd5b90c29cbfe9b938676cc85c514cbbcca1.patch deleted file mode 100644 index d558b6c..0000000 --- a/06d2fd5b90c29cbfe9b938676cc85c514cbbcca1.patch +++ /dev/null @@ -1,657 +0,0 @@ -From 06d2fd5b90c29cbfe9b938676cc85c514cbbcca1 Mon Sep 17 00:00:00 2001 -From: Shlomi Fish -Date: Wed, 11 Aug 2021 19:19:01 +0300 -Subject: [PATCH] issue217 : formatting.py deprecated fix. - -This file is derived from /usr/lib/python3.9/formatter.py . All changes -are placed under CC0. - -See: - -* https://github.com/shlomif/PySolFC/issues/217 - -* https://bugzilla.redhat.com/show_bug.cgi?id=1990043 ---- - pysollib/formatter.py | 474 +++++++++++++++++++++++++++++++++++ - pysollib/htmllib2.py | 10 +- - pysollib/kivy/tkhtml.py | 8 +- - pysollib/pysolgtk/tkhtml.py | 8 +- - pysollib/ui/tktile/tkhtml.py | 8 +- - 5 files changed, 492 insertions(+), 16 deletions(-) - create mode 100644 pysollib/formatter.py - -diff --git a/pysollib/formatter.py b/pysollib/formatter.py -new file mode 100644 -index 00000000..f572a7bb ---- /dev/null -+++ b/pysollib/formatter.py -@@ -0,0 +1,474 @@ -+""" -+ -+This file is derived from /usr/lib/python3.9/formatter.py . All changes -+are placed under CC0. -+ -+See: -+ -+* https://github.com/shlomif/PySolFC/issues/217 -+ -+* https://bugzilla.redhat.com/show_bug.cgi?id=1990043 -+ -+---- -+ -+Generic output formatting. -+ -+Formatter objects transform an abstract flow of formatting events into -+specific output events on writer objects. Formatters manage several stack -+structures to allow various properties of a writer object to be changed and -+restored; writers need not be able to handle relative changes nor any sort -+of ``change back'' operation. Specific writer properties which may be -+controlled via formatter objects are horizontal alignment, font, and left -+margin indentations. A mechanism is provided which supports providing -+arbitrary, non-exclusive style settings to a writer as well. Additional -+interfaces facilitate formatting events which are not reversible, such as -+paragraph separation. -+ -+Writer objects encapsulate device interfaces. Abstract devices, such as -+file formats, are supported as well as physical devices. The provided -+implementations all work with abstract devices. The interface makes -+available mechanisms for setting the properties which formatter objects -+manage and inserting data into the output. -+""" -+ -+import sys -+if False: -+ import warnings -+ warnings.warn('the formatter module is deprecated', DeprecationWarning, -+ stacklevel=2) -+ -+ -+AS_IS = None -+ -+ -+class NullFormatter: -+ """A formatter which does nothing. -+ -+ If the writer parameter is omitted, a NullWriter instance is created. -+ No methods of the writer are called by NullFormatter instances. -+ -+ Implementations should inherit from this class if implementing a writer -+ interface but don't need to inherit any implementation. -+ -+ """ -+ -+ def __init__(self, writer=None): -+ if writer is None: -+ writer = NullWriter() -+ self.writer = writer -+ -+ def end_paragraph(self, blankline): pass -+ def add_line_break(self): pass -+ def add_hor_rule(self, *args, **kw): pass -+ def add_label_data(self, format, counter, blankline=None): pass -+ def add_flowing_data(self, data): pass -+ def add_literal_data(self, data): pass -+ def flush_softspace(self): pass -+ def push_alignment(self, align): pass -+ def pop_alignment(self): pass -+ def push_font(self, x): pass -+ def pop_font(self): pass -+ def push_margin(self, margin): pass -+ def pop_margin(self): pass -+ def set_spacing(self, spacing): pass -+ def push_style(self, *styles): pass -+ def pop_style(self, n=1): pass -+ def assert_line_data(self, flag=1): pass -+ -+ -+class AbstractFormatter: -+ """The standard formatter. -+ -+ This implementation has demonstrated wide applicability to many writers, -+ and may be used directly in most circumstances. It has been used to -+ implement a full-featured World Wide Web browser. -+ -+ """ -+ -+ # Space handling policy: blank spaces at the boundary between elements -+ # are handled by the outermost context. "Literal" data is not checked -+ # to determine context, so spaces in literal data are handled directly -+ # in all circumstances. -+ -+ def __init__(self, writer): -+ self.writer = writer # Output device -+ self.align = None # Current alignment -+ self.align_stack = [] # Alignment stack -+ self.font_stack = [] # Font state -+ self.margin_stack = [] # Margin state -+ self.spacing = None # Vertical spacing state -+ self.style_stack = [] # Other state, e.g. color -+ self.nospace = 1 # Should leading space be suppressed -+ self.softspace = 0 # Should a space be inserted -+ self.para_end = 1 # Just ended a paragraph -+ self.parskip = 0 # Skipped space between paragraphs? -+ self.hard_break = 1 # Have a hard break -+ self.have_label = 0 -+ -+ def end_paragraph(self, blankline): -+ if not self.hard_break: -+ self.writer.send_line_break() -+ self.have_label = 0 -+ if self.parskip < blankline and not self.have_label: -+ self.writer.send_paragraph(blankline - self.parskip) -+ self.parskip = blankline -+ self.have_label = 0 -+ self.hard_break = self.nospace = self.para_end = 1 -+ self.softspace = 0 -+ -+ def add_line_break(self): -+ if not (self.hard_break or self.para_end): -+ self.writer.send_line_break() -+ self.have_label = self.parskip = 0 -+ self.hard_break = self.nospace = 1 -+ self.softspace = 0 -+ -+ def add_hor_rule(self, *args, **kw): -+ if not self.hard_break: -+ self.writer.send_line_break() -+ self.writer.send_hor_rule(*args, **kw) -+ self.hard_break = self.nospace = 1 -+ self.have_label = self.para_end = self.softspace = self.parskip = 0 -+ -+ def add_label_data(self, format, counter, blankline=None): -+ if self.have_label or not self.hard_break: -+ self.writer.send_line_break() -+ if not self.para_end: -+ self.writer.send_paragraph((blankline and 1) or 0) -+ if isinstance(format, str): -+ self.writer.send_label_data(self.format_counter(format, counter)) -+ else: -+ self.writer.send_label_data(format) -+ self.nospace = self.have_label = self.hard_break = self.para_end = 1 -+ self.softspace = self.parskip = 0 -+ -+ def format_counter(self, format, counter): -+ label = '' -+ for c in format: -+ if c == '1': -+ label = label + ('%d' % counter) -+ elif c in 'aA': -+ if counter > 0: -+ label = label + self.format_letter(c, counter) -+ elif c in 'iI': -+ if counter > 0: -+ label = label + self.format_roman(c, counter) -+ else: -+ label = label + c -+ return label -+ -+ def format_letter(self, case, counter): -+ label = '' -+ while counter > 0: -+ counter, x = divmod(counter-1, 26) -+ # This makes a strong assumption that lowercase letters -+ # and uppercase letters form two contiguous blocks, with -+ # letters in order! -+ s = chr(ord(case) + x) -+ label = s + label -+ return label -+ -+ def format_roman(self, case, counter): -+ ones = ['i', 'x', 'c', 'm'] -+ fives = ['v', 'l', 'd'] -+ label, index = '', 0 -+ # This will die of IndexError when counter is too big -+ while counter > 0: -+ counter, x = divmod(counter, 10) -+ if x == 9: -+ label = ones[index] + ones[index+1] + label -+ elif x == 4: -+ label = ones[index] + fives[index] + label -+ else: -+ if x >= 5: -+ s = fives[index] -+ x = x-5 -+ else: -+ s = '' -+ s = s + ones[index]*x -+ label = s + label -+ index = index + 1 -+ if case == 'I': -+ return label.upper() -+ return label -+ -+ def add_flowing_data(self, data): -+ if not data: -+ return -+ prespace = data[:1].isspace() -+ postspace = data[-1:].isspace() -+ data = " ".join(data.split()) -+ if self.nospace and not data: -+ return -+ elif prespace or self.softspace: -+ if not data: -+ if not self.nospace: -+ self.softspace = 1 -+ self.parskip = 0 -+ return -+ if not self.nospace: -+ data = ' ' + data -+ self.hard_break = self.nospace = self.para_end = \ -+ self.parskip = self.have_label = 0 -+ self.softspace = postspace -+ self.writer.send_flowing_data(data) -+ -+ def add_literal_data(self, data): -+ if not data: -+ return -+ if self.softspace: -+ self.writer.send_flowing_data(" ") -+ self.hard_break = data[-1:] == '\n' -+ self.nospace = self.para_end = self.softspace = \ -+ self.parskip = self.have_label = 0 -+ self.writer.send_literal_data(data) -+ -+ def flush_softspace(self): -+ if self.softspace: -+ self.hard_break = self.para_end = self.parskip = \ -+ self.have_label = self.softspace = 0 -+ self.nospace = 1 -+ self.writer.send_flowing_data(' ') -+ -+ def push_alignment(self, align): -+ if align and align != self.align: -+ self.writer.new_alignment(align) -+ self.align = align -+ self.align_stack.append(align) -+ else: -+ self.align_stack.append(self.align) -+ -+ def pop_alignment(self): -+ if self.align_stack: -+ del self.align_stack[-1] -+ if self.align_stack: -+ self.align = align = self.align_stack[-1] -+ self.writer.new_alignment(align) -+ else: -+ self.align = None -+ self.writer.new_alignment(None) -+ -+ def push_font(self, font): -+ size, i, b, tt = font -+ if self.softspace: -+ self.hard_break = self.para_end = self.softspace = 0 -+ self.nospace = 1 -+ self.writer.send_flowing_data(' ') -+ if self.font_stack: -+ csize, ci, cb, ctt = self.font_stack[-1] -+ if size is AS_IS: -+ size = csize -+ if i is AS_IS: -+ i = ci -+ if b is AS_IS: -+ b = cb -+ if tt is AS_IS: -+ tt = ctt -+ font = (size, i, b, tt) -+ self.font_stack.append(font) -+ self.writer.new_font(font) -+ -+ def pop_font(self): -+ if self.font_stack: -+ del self.font_stack[-1] -+ if self.font_stack: -+ font = self.font_stack[-1] -+ else: -+ font = None -+ self.writer.new_font(font) -+ -+ def push_margin(self, margin): -+ self.margin_stack.append(margin) -+ fstack = [m for m in self.margin_stack if m] -+ if not margin and fstack: -+ margin = fstack[-1] -+ self.writer.new_margin(margin, len(fstack)) -+ -+ def pop_margin(self): -+ if self.margin_stack: -+ del self.margin_stack[-1] -+ fstack = [m for m in self.margin_stack if m] -+ if fstack: -+ margin = fstack[-1] -+ else: -+ margin = None -+ self.writer.new_margin(margin, len(fstack)) -+ -+ def set_spacing(self, spacing): -+ self.spacing = spacing -+ self.writer.new_spacing(spacing) -+ -+ def push_style(self, *styles): -+ if self.softspace: -+ self.hard_break = self.para_end = self.softspace = 0 -+ self.nospace = 1 -+ self.writer.send_flowing_data(' ') -+ for style in styles: -+ self.style_stack.append(style) -+ self.writer.new_styles(tuple(self.style_stack)) -+ -+ def pop_style(self, n=1): -+ del self.style_stack[-n:] -+ self.writer.new_styles(tuple(self.style_stack)) -+ -+ def assert_line_data(self, flag=1): -+ self.nospace = self.hard_break = not flag -+ self.para_end = self.parskip = self.have_label = 0 -+ -+ -+class NullWriter: -+ """Minimal writer interface to use in testing & inheritance. -+ -+ A writer which only provides the interface definition; no actions are -+ taken on any methods. This should be the base class for all writers -+ which do not need to inherit any implementation methods. -+ -+ """ -+ def __init__(self): pass -+ def flush(self): pass -+ def new_alignment(self, align): pass -+ def new_font(self, font): pass -+ def new_margin(self, margin, level): pass -+ def new_spacing(self, spacing): pass -+ def new_styles(self, styles): pass -+ def send_paragraph(self, blankline): pass -+ def send_line_break(self): pass -+ def send_hor_rule(self, *args, **kw): pass -+ def send_label_data(self, data): pass -+ def send_flowing_data(self, data): pass -+ def send_literal_data(self, data): pass -+ -+ -+class AbstractWriter(NullWriter): -+ """A writer which can be used in debugging formatters, but not much else. -+ -+ Each method simply announces itself by printing its name and -+ arguments on standard output. -+ -+ """ -+ -+ def new_alignment(self, align): -+ print("new_alignment(%r)" % (align,)) -+ -+ def new_font(self, font): -+ print("new_font(%r)" % (font,)) -+ -+ def new_margin(self, margin, level): -+ print("new_margin(%r, %d)" % (margin, level)) -+ -+ def new_spacing(self, spacing): -+ print("new_spacing(%r)" % (spacing,)) -+ -+ def new_styles(self, styles): -+ print("new_styles(%r)" % (styles,)) -+ -+ def send_paragraph(self, blankline): -+ print("send_paragraph(%r)" % (blankline,)) -+ -+ def send_line_break(self): -+ print("send_line_break()") -+ -+ def send_hor_rule(self, *args, **kw): -+ print("send_hor_rule()") -+ -+ def send_label_data(self, data): -+ print("send_label_data(%r)" % (data,)) -+ -+ def send_flowing_data(self, data): -+ print("send_flowing_data(%r)" % (data,)) -+ -+ def send_literal_data(self, data): -+ print("send_literal_data(%r)" % (data,)) -+ -+ -+class DumbWriter(NullWriter): -+ """Simple writer class which writes output on the file object passed in -+ as the file parameter or, if file is omitted, on standard output. The -+ output is simply word-wrapped to the number of columns specified by -+ the maxcol parameter. This class is suitable for reflowing a sequence -+ of paragraphs. -+ -+ """ -+ -+ def __init__(self, file=None, maxcol=72): -+ self.file = file or sys.stdout -+ self.maxcol = maxcol -+ NullWriter.__init__(self) -+ self.reset() -+ -+ def reset(self): -+ self.col = 0 -+ self.atbreak = 0 -+ -+ def send_paragraph(self, blankline): -+ self.file.write('\n'*blankline) -+ self.col = 0 -+ self.atbreak = 0 -+ -+ def send_line_break(self): -+ self.file.write('\n') -+ self.col = 0 -+ self.atbreak = 0 -+ -+ def send_hor_rule(self, *args, **kw): -+ self.file.write('\n') -+ self.file.write('-'*self.maxcol) -+ self.file.write('\n') -+ self.col = 0 -+ self.atbreak = 0 -+ -+ def send_literal_data(self, data): -+ self.file.write(data) -+ i = data.rfind('\n') -+ if i >= 0: -+ self.col = 0 -+ data = data[i+1:] -+ data = data.expandtabs() -+ self.col = self.col + len(data) -+ self.atbreak = 0 -+ -+ def send_flowing_data(self, data): -+ if not data: -+ return -+ atbreak = self.atbreak or data[0].isspace() -+ col = self.col -+ maxcol = self.maxcol -+ write = self.file.write -+ for word in data.split(): -+ if atbreak: -+ if col + len(word) >= maxcol: -+ write('\n') -+ col = 0 -+ else: -+ write(' ') -+ col = col + 1 -+ write(word) -+ col = col + len(word) -+ atbreak = 1 -+ self.col = col -+ self.atbreak = data[-1].isspace() -+ -+ -+def test(file=None): -+ w = DumbWriter() -+ f = AbstractFormatter(w) -+ if file is not None: -+ fp = open(file) -+ elif sys.argv[1:]: -+ fp = open(sys.argv[1]) -+ else: -+ fp = sys.stdin -+ try: -+ for line in fp: -+ if line == '\n': -+ f.end_paragraph(1) -+ else: -+ f.add_flowing_data(line) -+ finally: -+ if fp is not sys.stdin: -+ fp.close() -+ f.end_paragraph(0) -+ -+ -+if __name__ == '__main__': -+ test() -diff --git a/pysollib/htmllib2.py b/pysollib/htmllib2.py -index 7ff6b2a9..dab753e7 100644 ---- a/pysollib/htmllib2.py -+++ b/pysollib/htmllib2.py -@@ -4,7 +4,7 @@ - http://www.w3.org/hypertext/WWW/MarkUp/html-spec/html-spec_toc.html - """ - --from formatter import AS_IS -+from pysollib.formatter import AS_IS - - from six.moves import html_parser - -@@ -483,7 +483,7 @@ def unknown_endtag(self, tag): - - def test(args=None): - import sys -- import formatter -+ import pysollib.formatter - - if not args: - args = sys.argv[1:] -@@ -508,9 +508,11 @@ def test(args=None): - sys.exit(1) - - if silent: -- f = formatter.NullFormatter() -+ f = pysollib.formatter.NullFormatter() - else: -- f = formatter.AbstractFormatter(formatter.DumbWriter()) -+ f = pysollib.formatter.AbstractFormatter( -+ pysollib.formatter.DumbWriter() -+ ) - - p = HTMLParser(f) - p.feed(data) -diff --git a/pysollib/kivy/tkhtml.py b/pysollib/kivy/tkhtml.py -index 152b281c..54c0db0e 100644 ---- a/pysollib/kivy/tkhtml.py -+++ b/pysollib/kivy/tkhtml.py -@@ -21,7 +21,6 @@ - # - # ---------------------------------------------------------------------------# - --import formatter - import os - import sys - -@@ -29,6 +28,7 @@ - from kivy.uix.button import Button - from kivy.uix.label import Label - -+import pysollib.formatter - import pysollib.htmllib2 as htmllib - from pysollib.kivy.LApp import LPopCommander - from pysollib.kivy.LApp import LScrollView -@@ -84,9 +84,9 @@ def cmp2(a, b): - return (a > b) - (a < b) - - --class tkHTMLWriter(formatter.NullWriter): -+class tkHTMLWriter(pysollib.formatter.NullWriter): - def __init__(self, text, viewer, app): -- formatter.NullWriter.__init__(self) -+ pysollib.formatter.NullWriter.__init__(self) - - self.text = text - self.viewer = viewer -@@ -630,7 +630,7 @@ def display(self, url, add=1, relpath=1, xview=0, yview=0): - # self.images = {} - self.text.textbuffer = '' - writer = tkHTMLWriter(self.text, self, self.app) -- fmt = formatter.AbstractFormatter(writer) -+ fmt = pysollib.formatter.AbstractFormatter(writer) - parser = tkHTMLParser(fmt) - parser.feed(data) - parser.close() -diff --git a/pysollib/pysolgtk/tkhtml.py b/pysollib/pysolgtk/tkhtml.py -index 798efda2..f1c18659 100644 ---- a/pysollib/pysolgtk/tkhtml.py -+++ b/pysollib/pysolgtk/tkhtml.py -@@ -21,7 +21,6 @@ - # - # --------------------------------------------------------------------------- - --import formatter - import htmllib - import os - import sys -@@ -34,6 +33,7 @@ - - import pango - -+import pysollib.formatter - from pysollib.mfxutil import Struct, openURL - from pysollib.mygettext import _ - from pysollib.settings import TITLE -@@ -55,9 +55,9 @@ - # * - # ************************************************************************ - --class tkHTMLWriter(formatter.NullWriter): -+class tkHTMLWriter(pysollib.formatter.NullWriter): - def __init__(self, text, viewer, app): -- formatter.NullWriter.__init__(self) -+ pysollib.formatter.NullWriter.__init__(self) - - self.text = text # gtk.TextBuffer - self.viewer = viewer # HTMLViewer -@@ -489,7 +489,7 @@ def display(self, url, add=1, relpath=1, position=(0, 0)): - self.textbuffer.delete(start, end) - - writer = tkHTMLWriter(self.textbuffer, self, self.app) -- fmt = formatter.AbstractFormatter(writer) -+ fmt = pysollib.formatter.AbstractFormatter(writer) - parser = tkHTMLParser(fmt) - parser.feed(data) - parser.close() -diff --git a/pysollib/ui/tktile/tkhtml.py b/pysollib/ui/tktile/tkhtml.py -index acab5711..afcb7257 100644 ---- a/pysollib/ui/tktile/tkhtml.py -+++ b/pysollib/ui/tktile/tkhtml.py -@@ -21,10 +21,10 @@ - # - # --------------------------------------------------------------------------- - --import formatter - import os - import sys - -+import pysollib.formatter - import pysollib.htmllib2 as htmllib - from pysollib.mfxutil import openURL - from pysollib.mygettext import _ -@@ -40,9 +40,9 @@ - # ************************************************************************ - - --class tkHTMLWriter(formatter.NullWriter): -+class tkHTMLWriter(pysollib.formatter.NullWriter): - def __init__(self, text, viewer, app): -- formatter.NullWriter.__init__(self) -+ pysollib.formatter.NullWriter.__init__(self) - - self.text = text - self.viewer = viewer -@@ -379,7 +379,7 @@ def display(self, url, add=1, relpath=1, xview=0, yview=0): - self.text.delete("1.0", "end") - # self.images = {} - writer = tkHTMLWriter(self.text, self, self.app) -- fmt = formatter.AbstractFormatter(writer) -+ fmt = pysollib.formatter.AbstractFormatter(writer) - parser = tkHTMLParser(fmt) - parser.feed(data) - parser.close() diff --git a/PySolFC.spec b/PySolFC.spec index 7943ca7..8d97c83 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -1,5 +1,5 @@ Name: PySolFC -Version: 2.12.0 +Version: 2.14.0 Release: 1%{?dist} Summary: A collection of solitaire card games License: GPLv2+ @@ -8,7 +8,6 @@ Source0: https://downloads.sourceforge.net/pysolfc/%{name}-%{version}.tar Source1: pysol-start-script Source2: https://downloads.sourceforge.net/pysolfc/PySolFC-Cardsets--Minimal-2.0.2.tar.xz Patch0: PySolFC-desktop-exec.patch -Patch1: 06d2fd5b90c29cbfe9b938676cc85c514cbbcca1.patch BuildArch: noarch BuildRequires: python%{python3_pkgversion}-devel @@ -54,9 +53,6 @@ written plug-ins, an integrated HTML help browser, and lots of documentation. %py3_install # install desktop file desktop-file-install \ -%if 0%{?fedora} && 0%{?fedora} < 19 - --vendor="fedora" \ -%endif --delete-original \ --dir=$RPM_BUILD_ROOT/%{_datadir}/applications \ $RPM_BUILD_ROOT/%{_datadir}/applications/pysol.desktop @@ -82,6 +78,9 @@ pathfix.py -pni "%{__python3} %{py3_shbang_opts}" $RPM_BUILD_ROOT%{_bindir}/* %changelog +* Sun Sep 19 2021 Fedora Release Monitoring - 2.14.0-1 +- Update to 2.14.0 (#2005720) + * Thu Aug 12 2021 Sérgio Basto - 2.12.0-1 - Update to 2.12.0 diff --git a/sources b/sources index 4213dd8..5d88c5b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (PySolFC-2.12.0.tar.xz) = 893012e93ca1cba72fac5f9f428c548af3aa59fa094aa9d027ed6740c91b34c5be62972e6522fb89264d1eb0f887234ddb07fa67a765573e105dbc25d885d1c5 +SHA512 (PySolFC-2.14.0.tar.xz) = 0215276e5cc8caaefa0d7212d675af32e935b3ae4d4839624b34e8d68f0fc7e09accedf3b8e6428b349fe5c2ee7b4c128cd209d074b2c24311fa54f1c7b0c68f SHA512 (PySolFC-Cardsets--Minimal-2.0.2.tar.xz) = 5317866d6259b154219ec6efea349af3f9cb0fe9309a895ee55f7be87ebc8c34df12b81a08e1dee907a3f475f4e623c3609fdbd7e357890c2ade418ec5d68cb2 From 540b7cfc42f4303d69edcddfef462065a8709b2f Mon Sep 17 00:00:00 2001 From: Shlomi Fish Date: Sat, 11 Dec 2021 05:42:02 +0200 Subject: [PATCH 11/49] new upstream version --- .gitignore | 1 + PySolFC.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 03b0761..dc2ddb1 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ PySolFC-2.0.tar.bz2 /PySolFC-2.12.0.tar.xz /PySolFC-Cardsets--Minimal-2.0.2.tar.xz /PySolFC-2.14.0.tar.xz +/PySolFC-2.14.1.tar.xz diff --git a/PySolFC.spec b/PySolFC.spec index 8d97c83..d43776e 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -1,5 +1,5 @@ Name: PySolFC -Version: 2.14.0 +Version: 2.14.1 Release: 1%{?dist} Summary: A collection of solitaire card games License: GPLv2+ @@ -78,6 +78,9 @@ pathfix.py -pni "%{__python3} %{py3_shbang_opts}" $RPM_BUILD_ROOT%{_bindir}/* %changelog +* Sat Dec 11 2021 Shlomi Fish 2.14.1-1 +- Update to 2.14.1 (#2031331) + * Sun Sep 19 2021 Fedora Release Monitoring - 2.14.0-1 - Update to 2.14.0 (#2005720) diff --git a/sources b/sources index 5d88c5b..812cecc 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (PySolFC-2.14.0.tar.xz) = 0215276e5cc8caaefa0d7212d675af32e935b3ae4d4839624b34e8d68f0fc7e09accedf3b8e6428b349fe5c2ee7b4c128cd209d074b2c24311fa54f1c7b0c68f +SHA512 (PySolFC-2.14.1.tar.xz) = e1ef4024d61aa9d86fd5e54ccacf12466e05038ad46e814e066ac3e81839c7ff03a59ace6e50aed8c44887a3620c3b36d25b9916ea564fec8a579e473c3684c0 SHA512 (PySolFC-Cardsets--Minimal-2.0.2.tar.xz) = 5317866d6259b154219ec6efea349af3f9cb0fe9309a895ee55f7be87ebc8c34df12b81a08e1dee907a3f475f4e623c3609fdbd7e357890c2ade418ec5d68cb2 From cd8fccffebe7e5c270fe12ea9290be2d2ce8a66b Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jan 2022 19:37:08 +0000 Subject: [PATCH 12/49] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- PySolFC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PySolFC.spec b/PySolFC.spec index d43776e..ae1880f 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -1,6 +1,6 @@ Name: PySolFC Version: 2.14.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A collection of solitaire card games License: GPLv2+ URL: https://pysolfc.sourceforge.io @@ -78,6 +78,9 @@ pathfix.py -pni "%{__python3} %{py3_shbang_opts}" $RPM_BUILD_ROOT%{_bindir}/* %changelog +* Wed Jan 19 2022 Fedora Release Engineering - 2.14.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Sat Dec 11 2021 Shlomi Fish 2.14.1-1 - Update to 2.14.1 (#2031331) From cbcb47774e40c5db985f80634bd04cc3de3854d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Fri, 8 Apr 2022 13:10:50 +0100 Subject: [PATCH 13/49] Update PySolFC to 2.15.0 (#2063446) Update Cardsets Minimal to 2.1.0 --- .gitignore | 2 ++ PySolFC.spec | 14 ++++++++++---- sources | 4 ++-- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index dc2ddb1..2ea587b 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,5 @@ PySolFC-2.0.tar.bz2 /PySolFC-Cardsets--Minimal-2.0.2.tar.xz /PySolFC-2.14.0.tar.xz /PySolFC-2.14.1.tar.xz +/PySolFC-2.15.0.tar.xz +/PySolFC-Cardsets--Minimal-2.1.0.tar.xz diff --git a/PySolFC.spec b/PySolFC.spec index ae1880f..fbf2097 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -1,12 +1,14 @@ +%global cardsets_minimal_ver 2.1.0 + Name: PySolFC -Version: 2.14.1 -Release: 2%{?dist} +Version: 2.15.0 +Release: 1%{?dist} Summary: A collection of solitaire card games License: GPLv2+ URL: https://pysolfc.sourceforge.io Source0: https://downloads.sourceforge.net/pysolfc/%{name}-%{version}.tar.xz Source1: pysol-start-script -Source2: https://downloads.sourceforge.net/pysolfc/PySolFC-Cardsets--Minimal-2.0.2.tar.xz +Source2: https://downloads.sourceforge.net/pysolfc/PySolFC-Cardsets--Minimal-%{cardsets_minimal_ver}.tar.xz Patch0: PySolFC-desktop-exec.patch BuildArch: noarch @@ -60,7 +62,7 @@ desktop-file-install \ # install the startup wrapper mv $RPM_BUILD_ROOT%{_bindir}/pysol.py $RPM_BUILD_ROOT%{_datadir}/%{name} install -m755 %{SOURCE1} $RPM_BUILD_ROOT/%{_bindir}/pysol -cp -a PySolFC-Cardsets--Minimal-2.0.2/cardset-* $RPM_BUILD_ROOT%{_datadir}/PySolFC +cp -a PySolFC-Cardsets--Minimal-%{cardsets_minimal_ver}/cardset-* $RPM_BUILD_ROOT%{_datadir}/PySolFC find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl -ln -i -E 'say if (not (($. == 1) and (m&^#![ \t]*/usr/&)))' pathfix.py -pni "%{__python3} %{py3_shbang_opts}" $RPM_BUILD_ROOT%{_bindir}/* @@ -78,6 +80,10 @@ pathfix.py -pni "%{__python3} %{py3_shbang_opts}" $RPM_BUILD_ROOT%{_bindir}/* %changelog +* Fri Apr 08 2022 Sérgio Basto - 2.15.0-1 +- Update PySolFC to 2.15.0 (#2063446) +- Update Cardsets Minimal to 2.1.0 + * Wed Jan 19 2022 Fedora Release Engineering - 2.14.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild diff --git a/sources b/sources index 812cecc..5074c89 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (PySolFC-2.14.1.tar.xz) = e1ef4024d61aa9d86fd5e54ccacf12466e05038ad46e814e066ac3e81839c7ff03a59ace6e50aed8c44887a3620c3b36d25b9916ea564fec8a579e473c3684c0 -SHA512 (PySolFC-Cardsets--Minimal-2.0.2.tar.xz) = 5317866d6259b154219ec6efea349af3f9cb0fe9309a895ee55f7be87ebc8c34df12b81a08e1dee907a3f475f4e623c3609fdbd7e357890c2ade418ec5d68cb2 +SHA512 (PySolFC-2.15.0.tar.xz) = d50c416814beb1d9ef669923f87ea9493ad4aa30cf9c7dbc1e52c2f2fa89d9d6dcde9a7c4d4b8ab7d0fb36e5953ac27718fc7cc547ab3989cf2babc42844af9a +SHA512 (PySolFC-Cardsets--Minimal-2.1.0.tar.xz) = cc83a26470c2fb13e70741bd8caccb8bd3b0491672eae0caf7437cf38d57e324d225186dde3be49c091d6960dbaefaa23814bcdd7326b07f0f1e32dda15b251c From 10c2f69caf46d0dd337e381e6eaf3f13b189a406 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Wed, 4 May 2022 11:12:44 +0100 Subject: [PATCH 14/49] Fix install on EL where we don't have freecell-solver --- PySolFC.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/PySolFC.spec b/PySolFC.spec index fbf2097..539a581 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -2,7 +2,7 @@ Name: PySolFC Version: 2.15.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A collection of solitaire card games License: GPLv2+ URL: https://pysolfc.sourceforge.io @@ -17,10 +17,14 @@ BuildRequires: python%{python3_pkgversion}-setuptools BuildRequires: desktop-file-utils BuildRequires: perl-interpreter BuildRequires: /usr/bin/pathfix.py + +%if 0%{?fedora} # optional but nice to have Requires: freecell-solver Requires: libfreecell-solver Requires: python%{python3_pkgversion}-freecell_solver +%endif + Requires: python%{python3_pkgversion}-imaging Requires: tile # used to get sound working with PulseAudio @@ -80,6 +84,9 @@ pathfix.py -pni "%{__python3} %{py3_shbang_opts}" $RPM_BUILD_ROOT%{_bindir}/* %changelog +* Wed May 04 2022 Sérgio Basto - 2.15.0-2 +- Fix install on EL where we don't have freecell-solver + * Fri Apr 08 2022 Sérgio Basto - 2.15.0-1 - Update PySolFC to 2.15.0 (#2063446) - Update Cardsets Minimal to 2.1.0 From c0d4070bc5acc5f5666a6da0ba6ea7694adf9566 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Wed, 11 May 2022 02:03:53 +0100 Subject: [PATCH 15/49] More support to epel branches --- PySolFC.spec | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/PySolFC.spec b/PySolFC.spec index 539a581..7367bed 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -19,10 +19,10 @@ BuildRequires: perl-interpreter BuildRequires: /usr/bin/pathfix.py %if 0%{?fedora} -# optional but nice to have -Requires: freecell-solver -Requires: libfreecell-solver -Requires: python%{python3_pkgversion}-freecell_solver +# optional but nice to have but not available in any epel branch +# freecell-solver already requires libsfreecell-solver +Recommends: freecell-solver +Recommends: python%{python3_pkgversion}-freecell_solver %endif Requires: python%{python3_pkgversion}-imaging @@ -39,7 +39,13 @@ Requires: python%{python3_pkgversion}-random2 %if 0%{?fedora} || 0%{?rhel} > 7 Recommends: PySolFC-cardsets Recommends: PySolFC-music +%else +# el7 doesn't detect these dependencies +Requires: python%{python3_pkgversion}-pysol-cards +Requires: python3-configobj +Requires: python36-attrs %endif + Provides: pysol = %{version}-%{release} %description From a1119883fec0b49c6ea9e638748b1b6fd4d90953 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Mon, 13 Jun 2022 14:48:11 +0200 Subject: [PATCH 16/49] Rebuilt for Python 3.11 --- PySolFC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PySolFC.spec b/PySolFC.spec index 7367bed..b58347c 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -2,7 +2,7 @@ Name: PySolFC Version: 2.15.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A collection of solitaire card games License: GPLv2+ URL: https://pysolfc.sourceforge.io @@ -90,6 +90,9 @@ pathfix.py -pni "%{__python3} %{py3_shbang_opts}" $RPM_BUILD_ROOT%{_bindir}/* %changelog +* Mon Jun 13 2022 Python Maint - 2.15.0-3 +- Rebuilt for Python 3.11 + * Wed May 04 2022 Sérgio Basto - 2.15.0-2 - Fix install on EL where we don't have freecell-solver From 53cf324a8466c9d62a47c1d9e9575b775f307298 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 20 Jul 2022 18:58:36 +0000 Subject: [PATCH 17/49] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- PySolFC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PySolFC.spec b/PySolFC.spec index b58347c..362b325 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -2,7 +2,7 @@ Name: PySolFC Version: 2.15.0 -Release: 3%{?dist} +Release: 4%{?dist} Summary: A collection of solitaire card games License: GPLv2+ URL: https://pysolfc.sourceforge.io @@ -90,6 +90,9 @@ pathfix.py -pni "%{__python3} %{py3_shbang_opts}" $RPM_BUILD_ROOT%{_bindir}/* %changelog +* Wed Jul 20 2022 Fedora Release Engineering - 2.15.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Mon Jun 13 2022 Python Maint - 2.15.0-3 - Rebuilt for Python 3.11 From 94494260cc39650445e8b921c9ac93a85332ca3b Mon Sep 17 00:00:00 2001 From: Shlomi Fish Date: Wed, 12 Oct 2022 15:19:26 +0300 Subject: [PATCH 18/49] Update PySolFC to 2.18.0 --- .gitignore | 1 + PySolFC.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 2ea587b..6fc5b96 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ PySolFC-2.0.tar.bz2 /PySolFC-2.14.1.tar.xz /PySolFC-2.15.0.tar.xz /PySolFC-Cardsets--Minimal-2.1.0.tar.xz +/PySolFC-2.18.0.tar.xz diff --git a/PySolFC.spec b/PySolFC.spec index 362b325..4c43bb2 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -1,8 +1,8 @@ %global cardsets_minimal_ver 2.1.0 Name: PySolFC -Version: 2.15.0 -Release: 4%{?dist} +Version: 2.18.0 +Release: 1%{?dist} Summary: A collection of solitaire card games License: GPLv2+ URL: https://pysolfc.sourceforge.io @@ -90,6 +90,9 @@ pathfix.py -pni "%{__python3} %{py3_shbang_opts}" $RPM_BUILD_ROOT%{_bindir}/* %changelog +* Wed Oct 12 2022 Shlomi Fish 2.18.0-1 +- Update PySolFC to 2.18.0. + * Wed Jul 20 2022 Fedora Release Engineering - 2.15.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild diff --git a/sources b/sources index 5074c89..41dbeaf 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (PySolFC-2.15.0.tar.xz) = d50c416814beb1d9ef669923f87ea9493ad4aa30cf9c7dbc1e52c2f2fa89d9d6dcde9a7c4d4b8ab7d0fb36e5953ac27718fc7cc547ab3989cf2babc42844af9a +SHA512 (PySolFC-2.18.0.tar.xz) = 6e8b46cf3271f8695da6b6fd3090a32839beeed237d35a77f47ad95dfe1690ea471f35e722af65dba9d908f74ace109d1c06d7dd37889962ca0d610c62215397 SHA512 (PySolFC-Cardsets--Minimal-2.1.0.tar.xz) = cc83a26470c2fb13e70741bd8caccb8bd3b0491672eae0caf7437cf38d57e324d225186dde3be49c091d6960dbaefaa23814bcdd7326b07f0f1e32dda15b251c From 685e190368c898a74ed577f5984588c7538ea238 Mon Sep 17 00:00:00 2001 From: Lumir Balhar Date: Tue, 1 Nov 2022 06:57:20 +0100 Subject: [PATCH 19/49] Switch from pathfix.py to %py3_shebang_fix For more info see https://fedoraproject.org/wiki/Changes/Python3.12#pathfix.py_tool_will_be_removed --- PySolFC.spec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/PySolFC.spec b/PySolFC.spec index 4c43bb2..6c2429a 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -16,7 +16,6 @@ BuildRequires: python%{python3_pkgversion}-devel BuildRequires: python%{python3_pkgversion}-setuptools BuildRequires: desktop-file-utils BuildRequires: perl-interpreter -BuildRequires: /usr/bin/pathfix.py %if 0%{?fedora} # optional but nice to have but not available in any epel branch @@ -74,7 +73,7 @@ mv $RPM_BUILD_ROOT%{_bindir}/pysol.py $RPM_BUILD_ROOT%{_datadir}/%{name} install -m755 %{SOURCE1} $RPM_BUILD_ROOT/%{_bindir}/pysol cp -a PySolFC-Cardsets--Minimal-%{cardsets_minimal_ver}/cardset-* $RPM_BUILD_ROOT%{_datadir}/PySolFC find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl -ln -i -E 'say if (not (($. == 1) and (m&^#![ \t]*/usr/&)))' -pathfix.py -pni "%{__python3} %{py3_shbang_opts}" $RPM_BUILD_ROOT%{_bindir}/* +%py3_shebang_fix $RPM_BUILD_ROOT%{_bindir}/* %find_lang pysol From 9033dadd457f52942c127645804021b6a5009f2d Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 18 Jan 2023 20:02:45 +0000 Subject: [PATCH 20/49] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- PySolFC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PySolFC.spec b/PySolFC.spec index 6c2429a..26437d5 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -2,7 +2,7 @@ Name: PySolFC Version: 2.18.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A collection of solitaire card games License: GPLv2+ URL: https://pysolfc.sourceforge.io @@ -89,6 +89,9 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Wed Jan 18 2023 Fedora Release Engineering - 2.18.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Wed Oct 12 2022 Shlomi Fish 2.18.0-1 - Update PySolFC to 2.18.0. From ab181ca34eb609fbfd77b95f19cfe8b15bfeceef Mon Sep 17 00:00:00 2001 From: Shlomi Fish Date: Tue, 28 Feb 2023 14:54:07 +0200 Subject: [PATCH 21/49] update to upstream version 2.20.0 --- .gitignore | 1 + PySolFC.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 6fc5b96..918923a 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ PySolFC-2.0.tar.bz2 /PySolFC-2.15.0.tar.xz /PySolFC-Cardsets--Minimal-2.1.0.tar.xz /PySolFC-2.18.0.tar.xz +/PySolFC-2.20.0.tar.xz diff --git a/PySolFC.spec b/PySolFC.spec index 26437d5..2b745e9 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -1,8 +1,8 @@ %global cardsets_minimal_ver 2.1.0 Name: PySolFC -Version: 2.18.0 -Release: 2%{?dist} +Version: 2.20.0 +Release: 1%{?dist} Summary: A collection of solitaire card games License: GPLv2+ URL: https://pysolfc.sourceforge.io @@ -89,6 +89,9 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Tue Feb 28 2023 Shlomi Fish 2.20.0-1 +- Update PySolFC to 2.20.0. + * Wed Jan 18 2023 Fedora Release Engineering - 2.18.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild diff --git a/sources b/sources index 41dbeaf..635f5cb 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (PySolFC-2.18.0.tar.xz) = 6e8b46cf3271f8695da6b6fd3090a32839beeed237d35a77f47ad95dfe1690ea471f35e722af65dba9d908f74ace109d1c06d7dd37889962ca0d610c62215397 +SHA512 (PySolFC-2.20.0.tar.xz) = f100f4f23b112b6c9c6feca57c6c37f0f27dd662c841783fe2ec3d735c0c61a77bcbc5efba06fba2f809a8019912dc4e436bf4d74daabf358528821f7fb188be SHA512 (PySolFC-Cardsets--Minimal-2.1.0.tar.xz) = cc83a26470c2fb13e70741bd8caccb8bd3b0491672eae0caf7437cf38d57e324d225186dde3be49c091d6960dbaefaa23814bcdd7326b07f0f1e32dda15b251c From 6eca2af3584a1de42d772b00d56923556fb70aad Mon Sep 17 00:00:00 2001 From: Shlomi Fish Date: Mon, 17 Apr 2023 18:46:23 +0300 Subject: [PATCH 22/49] New upstream version 2.20.1 --- .gitignore | 1 + PySolFC.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 918923a..904cbe3 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ PySolFC-2.0.tar.bz2 /PySolFC-Cardsets--Minimal-2.1.0.tar.xz /PySolFC-2.18.0.tar.xz /PySolFC-2.20.0.tar.xz +/PySolFC-2.20.1.tar.xz diff --git a/PySolFC.spec b/PySolFC.spec index 2b745e9..7601676 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -1,7 +1,7 @@ %global cardsets_minimal_ver 2.1.0 Name: PySolFC -Version: 2.20.0 +Version: 2.20.1 Release: 1%{?dist} Summary: A collection of solitaire card games License: GPLv2+ @@ -89,6 +89,9 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Mon Apr 17 2023 Shlomi Fish 2.20.1-1 +- Update PySolFC to 2.20.1. + * Tue Feb 28 2023 Shlomi Fish 2.20.0-1 - Update PySolFC to 2.20.0. diff --git a/sources b/sources index 635f5cb..094d36e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (PySolFC-2.20.0.tar.xz) = f100f4f23b112b6c9c6feca57c6c37f0f27dd662c841783fe2ec3d735c0c61a77bcbc5efba06fba2f809a8019912dc4e436bf4d74daabf358528821f7fb188be +SHA512 (PySolFC-2.20.1.tar.xz) = f801dacfb3f538496a7dd2fd1777897681521928fe7ea8aec7ea514c1422e8d4ad6c0943ba534914d95544d8eb5e4868f860e6864a8e105f6cc0d16a3d678346 SHA512 (PySolFC-Cardsets--Minimal-2.1.0.tar.xz) = cc83a26470c2fb13e70741bd8caccb8bd3b0491672eae0caf7437cf38d57e324d225186dde3be49c091d6960dbaefaa23814bcdd7326b07f0f1e32dda15b251c From 2ade5423abe23afaaeae22da6fb2537b8e276d3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Thu, 18 May 2023 23:40:50 +0100 Subject: [PATCH 23/49] Update cardsets_minimal_ver to 2.2.0 --- .gitignore | 1 + PySolFC.spec | 4 ++-- sources | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 904cbe3..1444956 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ PySolFC-2.0.tar.bz2 /PySolFC-2.18.0.tar.xz /PySolFC-2.20.0.tar.xz /PySolFC-2.20.1.tar.xz +/PySolFC-Cardsets--Minimal-2.2.0.tar.xz diff --git a/PySolFC.spec b/PySolFC.spec index 7601676..b19d680 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -1,4 +1,4 @@ -%global cardsets_minimal_ver 2.1.0 +%global cardsets_minimal_ver 2.2.0 Name: PySolFC Version: 2.20.1 @@ -90,7 +90,7 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog * Mon Apr 17 2023 Shlomi Fish 2.20.1-1 -- Update PySolFC to 2.20.1. +- Update cardsets_minimal_ver to 2.2.0 * Tue Feb 28 2023 Shlomi Fish 2.20.0-1 - Update PySolFC to 2.20.0. diff --git a/sources b/sources index 094d36e..8f97175 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (PySolFC-2.20.1.tar.xz) = f801dacfb3f538496a7dd2fd1777897681521928fe7ea8aec7ea514c1422e8d4ad6c0943ba534914d95544d8eb5e4868f860e6864a8e105f6cc0d16a3d678346 -SHA512 (PySolFC-Cardsets--Minimal-2.1.0.tar.xz) = cc83a26470c2fb13e70741bd8caccb8bd3b0491672eae0caf7437cf38d57e324d225186dde3be49c091d6960dbaefaa23814bcdd7326b07f0f1e32dda15b251c +SHA512 (PySolFC-Cardsets--Minimal-2.2.0.tar.xz) = d5eb0753d14e0758f410d843f553ca6c03acc6d4283b447016e959c889c9dada29fa3facead44354782010b52ec51e0d095858d3b78243ad5280068ec6cd3e31 From 5fcd60a2aca42490ed4e0329678013a2d653da12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Thu, 18 May 2023 23:52:19 +0100 Subject: [PATCH 24/49] Fix changelog --- PySolFC.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PySolFC.spec b/PySolFC.spec index b19d680..866fca5 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -2,7 +2,7 @@ Name: PySolFC Version: 2.20.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A collection of solitaire card games License: GPLv2+ URL: https://pysolfc.sourceforge.io @@ -89,7 +89,7 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog -* Mon Apr 17 2023 Shlomi Fish 2.20.1-1 +* Thu May 18 2023 Sérgio Basto - 2.20.1-2 - Update cardsets_minimal_ver to 2.2.0 * Tue Feb 28 2023 Shlomi Fish 2.20.0-1 From 47eb1e2ed58a766e3d7d6df13d06826f6d4d343d Mon Sep 17 00:00:00 2001 From: Python Maint Date: Wed, 14 Jun 2023 00:17:14 +0200 Subject: [PATCH 25/49] Rebuilt for Python 3.12 --- PySolFC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PySolFC.spec b/PySolFC.spec index 866fca5..599da69 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -2,7 +2,7 @@ Name: PySolFC Version: 2.20.1 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A collection of solitaire card games License: GPLv2+ URL: https://pysolfc.sourceforge.io @@ -89,6 +89,9 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Tue Jun 13 2023 Python Maint - 2.20.1-3 +- Rebuilt for Python 3.12 + * Thu May 18 2023 Sérgio Basto - 2.20.1-2 - Update cardsets_minimal_ver to 2.2.0 From 31fd2243db001a16e221e9c8c6a7b065c3f4f02e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Sat, 24 Jun 2023 19:37:00 +0100 Subject: [PATCH 26/49] Migrate to SPDX license format --- PySolFC.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/PySolFC.spec b/PySolFC.spec index 599da69..c8d0572 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -2,9 +2,9 @@ Name: PySolFC Version: 2.20.1 -Release: 3%{?dist} +Release: 4%{?dist} Summary: A collection of solitaire card games -License: GPLv2+ +License: GPL-2.0-or-later URL: https://pysolfc.sourceforge.io Source0: https://downloads.sourceforge.net/pysolfc/%{name}-%{version}.tar.xz Source1: pysol-start-script @@ -89,6 +89,9 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Sat Jun 24 2023 Sérgio Basto - 2.20.1-4 +- Migrate to SPDX license format + * Tue Jun 13 2023 Python Maint - 2.20.1-3 - Rebuilt for Python 3.12 From e4e81f3695976087a2d356fab4a566271201afa4 Mon Sep 17 00:00:00 2001 From: Shlomi Fish Date: Wed, 12 Jul 2023 09:42:23 +0300 Subject: [PATCH 27/49] update to 2.21.0 --- .gitignore | 1 + PySolFC.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 1444956..e98eca8 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ PySolFC-2.0.tar.bz2 /PySolFC-2.20.0.tar.xz /PySolFC-2.20.1.tar.xz /PySolFC-Cardsets--Minimal-2.2.0.tar.xz +/PySolFC-2.21.0.tar.xz diff --git a/PySolFC.spec b/PySolFC.spec index c8d0572..64dc031 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -1,8 +1,8 @@ %global cardsets_minimal_ver 2.2.0 Name: PySolFC -Version: 2.20.1 -Release: 4%{?dist} +Version: 2.21.0 +Release: 1%{?dist} Summary: A collection of solitaire card games License: GPL-2.0-or-later URL: https://pysolfc.sourceforge.io @@ -89,6 +89,9 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Wed Jul 12 2023 Shlomi Fish 2.21.0-1 +- Update PySolFC to 2.21.0. + * Sat Jun 24 2023 Sérgio Basto - 2.20.1-4 - Migrate to SPDX license format diff --git a/sources b/sources index 8f97175..ea42495 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (PySolFC-2.20.1.tar.xz) = f801dacfb3f538496a7dd2fd1777897681521928fe7ea8aec7ea514c1422e8d4ad6c0943ba534914d95544d8eb5e4868f860e6864a8e105f6cc0d16a3d678346 +SHA512 (PySolFC-2.21.0.tar.xz) = 7e2f4d45810288880a8b0d866110be00805c27d20dc94a4393079b94579253ee6bc1ed7355752842faf092d7a1bfe03ec4c3d6e1e61f2ddb39b959b3a830448d SHA512 (PySolFC-Cardsets--Minimal-2.2.0.tar.xz) = d5eb0753d14e0758f410d843f553ca6c03acc6d4283b447016e959c889c9dada29fa3facead44354782010b52ec51e0d095858d3b78243ad5280068ec6cd3e31 From cdde185949147ab3c6f7d131e918d2f3371f8330 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jul 2023 11:24:13 +0000 Subject: [PATCH 28/49] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- PySolFC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PySolFC.spec b/PySolFC.spec index 64dc031..b6bdd6d 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -2,7 +2,7 @@ Name: PySolFC Version: 2.21.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A collection of solitaire card games License: GPL-2.0-or-later URL: https://pysolfc.sourceforge.io @@ -89,6 +89,9 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Wed Jul 19 2023 Fedora Release Engineering - 2.21.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Wed Jul 12 2023 Shlomi Fish 2.21.0-1 - Update PySolFC to 2.21.0. From 1a598f68f7d3d13a8c1ba07d6c20d9cedfd71b75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Sun, 3 Dec 2023 00:18:57 +0000 Subject: [PATCH 29/49] Do not require pycotap to run PySol, pycotap is only needed for the single unittest ( https://github.com/shlomif/PySolFC/pull/353 ) --- PySolFC-pycotap_not_required_to_run.patch | 12 ++++++++++++ PySolFC.spec | 8 +++++++- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 PySolFC-pycotap_not_required_to_run.patch diff --git a/PySolFC-pycotap_not_required_to_run.patch b/PySolFC-pycotap_not_required_to_run.patch new file mode 100644 index 0000000..93be760 --- /dev/null +++ b/PySolFC-pycotap_not_required_to_run.patch @@ -0,0 +1,12 @@ +pycotap is only needed for the single unittest , tap_unittests.py + +--- ./setup.py.orig 2023-12-01 18:05:30.725608311 +0000 ++++ ./setup.py 2023-12-01 18:05:46.564570718 +0000 +@@ -74,7 +74,6 @@ kw = { + 'install_requires': [ + 'attrs>=18.2.0', + 'configobj', +- 'pycotap', + 'pysol_cards', + 'random2', + 'six', diff --git a/PySolFC.spec b/PySolFC.spec index b6bdd6d..9131372 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -2,7 +2,7 @@ Name: PySolFC Version: 2.21.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A collection of solitaire card games License: GPL-2.0-or-later URL: https://pysolfc.sourceforge.io @@ -10,6 +10,8 @@ Source0: https://downloads.sourceforge.net/pysolfc/%{name}-%{version}.tar Source1: pysol-start-script Source2: https://downloads.sourceforge.net/pysolfc/PySolFC-Cardsets--Minimal-%{cardsets_minimal_ver}.tar.xz Patch0: PySolFC-desktop-exec.patch +# https://github.com/shlomif/PySolFC/pull/353 +Patch1: PySolFC-pycotap_not_required_to_run.patch BuildArch: noarch BuildRequires: python%{python3_pkgversion}-devel @@ -89,6 +91,10 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Fri Dec 01 2023 Sérgio Basto - 2.21.0-3 +- Do not require pycotap to run PySol, pycotap is only needed for the single + unittest ( https://github.com/shlomif/PySolFC/pull/353 ) + * Wed Jul 19 2023 Fedora Release Engineering - 2.21.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild From 4e840cebbe6016374bc62a0c44600a9e4e51fb03 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 19 Jan 2024 10:16:12 +0000 Subject: [PATCH 30/49] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- PySolFC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PySolFC.spec b/PySolFC.spec index 9131372..4e5bbc3 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -2,7 +2,7 @@ Name: PySolFC Version: 2.21.0 -Release: 3%{?dist} +Release: 4%{?dist} Summary: A collection of solitaire card games License: GPL-2.0-or-later URL: https://pysolfc.sourceforge.io @@ -91,6 +91,9 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Fri Jan 19 2024 Fedora Release Engineering - 2.21.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Dec 01 2023 Sérgio Basto - 2.21.0-3 - Do not require pycotap to run PySol, pycotap is only needed for the single unittest ( https://github.com/shlomif/PySolFC/pull/353 ) From 98bb0b31387b00b5d084fe48bed567a4c1a2b63b Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 22 Jan 2024 21:12:33 +0000 Subject: [PATCH 31/49] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- PySolFC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PySolFC.spec b/PySolFC.spec index 4e5bbc3..7b6f690 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -2,7 +2,7 @@ Name: PySolFC Version: 2.21.0 -Release: 4%{?dist} +Release: 5%{?dist} Summary: A collection of solitaire card games License: GPL-2.0-or-later URL: https://pysolfc.sourceforge.io @@ -91,6 +91,9 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Mon Jan 22 2024 Fedora Release Engineering - 2.21.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Jan 19 2024 Fedora Release Engineering - 2.21.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 54bd7e990b9f60d5e1aa5064c841275df8a5cd1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Sun, 3 Mar 2024 21:56:54 +0000 Subject: [PATCH 32/49] py3_shebang_fix is not needed and fix epel-7 build --- PySolFC.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/PySolFC.spec b/PySolFC.spec index 7b6f690..90acbc8 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -2,7 +2,7 @@ Name: PySolFC Version: 2.21.0 -Release: 5%{?dist} +Release: 6%{?dist} Summary: A collection of solitaire card games License: GPL-2.0-or-later URL: https://pysolfc.sourceforge.io @@ -75,7 +75,6 @@ mv $RPM_BUILD_ROOT%{_bindir}/pysol.py $RPM_BUILD_ROOT%{_datadir}/%{name} install -m755 %{SOURCE1} $RPM_BUILD_ROOT/%{_bindir}/pysol cp -a PySolFC-Cardsets--Minimal-%{cardsets_minimal_ver}/cardset-* $RPM_BUILD_ROOT%{_datadir}/PySolFC find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl -ln -i -E 'say if (not (($. == 1) and (m&^#![ \t]*/usr/&)))' -%py3_shebang_fix $RPM_BUILD_ROOT%{_bindir}/* %find_lang pysol @@ -91,6 +90,9 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Sun Mar 03 2024 Sérgio Basto - 2.21.0-6 +- py3_shebang_fix is not needed and fix epel-7 build + * Mon Jan 22 2024 Fedora Release Engineering - 2.21.0-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 534e68e2377b585dcec9aabe0340e30c784107df Mon Sep 17 00:00:00 2001 From: Shlomi Fish Date: Mon, 3 Jun 2024 22:12:22 +0300 Subject: [PATCH 33/49] New upstream versions ( 3.0.0 ) --- .gitignore | 2 ++ PySolFC.spec | 12 +++++++----- sources | 4 ++-- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index e98eca8..df141be 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,5 @@ PySolFC-2.0.tar.bz2 /PySolFC-2.20.1.tar.xz /PySolFC-Cardsets--Minimal-2.2.0.tar.xz /PySolFC-2.21.0.tar.xz +/PySolFC-3.0.0.tar.xz +/PySolFC-Cardsets--Minimal-3.0.0.tar.xz diff --git a/PySolFC.spec b/PySolFC.spec index 90acbc8..5bd6b37 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -1,8 +1,8 @@ -%global cardsets_minimal_ver 2.2.0 +%global cardsets_minimal_ver 3.0.0 Name: PySolFC -Version: 2.21.0 -Release: 6%{?dist} +Version: 3.0.0 +Release: 1%{?dist} Summary: A collection of solitaire card games License: GPL-2.0-or-later URL: https://pysolfc.sourceforge.io @@ -10,8 +10,6 @@ Source0: https://downloads.sourceforge.net/pysolfc/%{name}-%{version}.tar Source1: pysol-start-script Source2: https://downloads.sourceforge.net/pysolfc/PySolFC-Cardsets--Minimal-%{cardsets_minimal_ver}.tar.xz Patch0: PySolFC-desktop-exec.patch -# https://github.com/shlomif/PySolFC/pull/353 -Patch1: PySolFC-pycotap_not_required_to_run.patch BuildArch: noarch BuildRequires: python%{python3_pkgversion}-devel @@ -90,6 +88,10 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Mon Jun 03 2024 Shlomi Fish 3.0.0-1 +- New upstream versions (of both "PySolFC" and "PySolFC-Cardsets--Minimal"). + pycotap patch is no longer needed so remove. + * Sun Mar 03 2024 Sérgio Basto - 2.21.0-6 - py3_shebang_fix is not needed and fix epel-7 build diff --git a/sources b/sources index ea42495..5bf9f5f 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (PySolFC-2.21.0.tar.xz) = 7e2f4d45810288880a8b0d866110be00805c27d20dc94a4393079b94579253ee6bc1ed7355752842faf092d7a1bfe03ec4c3d6e1e61f2ddb39b959b3a830448d -SHA512 (PySolFC-Cardsets--Minimal-2.2.0.tar.xz) = d5eb0753d14e0758f410d843f553ca6c03acc6d4283b447016e959c889c9dada29fa3facead44354782010b52ec51e0d095858d3b78243ad5280068ec6cd3e31 +SHA512 (PySolFC-3.0.0.tar.xz) = f7c9bc6dff71047516979a6d9fb559c616d5d76c0b0a476564114f8b302788145599cc89cabbfbdc110a5a4eab6148bddb57a4847f40077ccbbe972f36b811b0 +SHA512 (PySolFC-Cardsets--Minimal-3.0.0.tar.xz) = 9d4bacd072b450b29b9f1bec4557121a3647c2f837aeb6e249f452cb886467c5e7ca36dd36a78ea69a5c9df6f30d5245e12681d9d02fc9da2ece09c25d77e787 From f7a34112d28a9e76ff7a16ebbec1e1c9e7fb34e9 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 7 Jun 2024 08:30:22 +0200 Subject: [PATCH 34/49] Rebuilt for Python 3.13 --- PySolFC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PySolFC.spec b/PySolFC.spec index 5bd6b37..9032a9f 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -2,7 +2,7 @@ Name: PySolFC Version: 3.0.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A collection of solitaire card games License: GPL-2.0-or-later URL: https://pysolfc.sourceforge.io @@ -88,6 +88,9 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Fri Jun 07 2024 Python Maint - 3.0.0-2 +- Rebuilt for Python 3.13 + * Mon Jun 03 2024 Shlomi Fish 3.0.0-1 - New upstream versions (of both "PySolFC" and "PySolFC-Cardsets--Minimal"). pycotap patch is no longer needed so remove. From 01c01bb8b310d25f754351ea74a6a55239d0322c Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 17 Jul 2024 15:08:35 +0000 Subject: [PATCH 35/49] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- PySolFC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PySolFC.spec b/PySolFC.spec index 9032a9f..3eb0c06 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -2,7 +2,7 @@ Name: PySolFC Version: 3.0.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A collection of solitaire card games License: GPL-2.0-or-later URL: https://pysolfc.sourceforge.io @@ -88,6 +88,9 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Wed Jul 17 2024 Fedora Release Engineering - 3.0.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Fri Jun 07 2024 Python Maint - 3.0.0-2 - Rebuilt for Python 3.13 From 0b562f9da099531ec9e75a461dae48faad98c579 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Mon, 21 Oct 2024 03:38:33 +0100 Subject: [PATCH 36/49] Configure Packit for release automation See details in https://packit.dev/docs/fedora-releases-guide/dist-git-onboarding --- .packit.yaml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .packit.yaml diff --git a/.packit.yaml b/.packit.yaml new file mode 100644 index 0000000..927a968 --- /dev/null +++ b/.packit.yaml @@ -0,0 +1,20 @@ +# See the documentation for more information: +# https://packit.dev/docs/configuration/ + +jobs: + - job: pull_from_upstream + trigger: release + dist_git_branches: + - fedora-rawhide + - job: koji_build + trigger: commit + allowed_committers: + - all_admins + dist_git_branches: + - fedora-all + - epel-all + - job: bodhi_update + trigger: commit + dist_git_branches: + - fedora-all + - epel-all From 252f79781b9670f6358e5f849023ce567a67bd68 Mon Sep 17 00:00:00 2001 From: Packit Date: Mon, 21 Oct 2024 02:57:00 +0000 Subject: [PATCH 37/49] Update to 3.1.0 upstream release - Resolves: rhbz#2319948 Commit authored by Packit automation (https://packit.dev/) --- .gitignore | 1 + PySolFC.spec | 8 ++++++-- README.packit | 3 +++ sources | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 README.packit diff --git a/.gitignore b/.gitignore index df141be..30e0188 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ PySolFC-2.0.tar.bz2 /PySolFC-2.21.0.tar.xz /PySolFC-3.0.0.tar.xz /PySolFC-Cardsets--Minimal-3.0.0.tar.xz +/PySolFC-3.1.0.tar.xz diff --git a/PySolFC.spec b/PySolFC.spec index 3eb0c06..193542a 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -1,8 +1,8 @@ %global cardsets_minimal_ver 3.0.0 Name: PySolFC -Version: 3.0.0 -Release: 3%{?dist} +Version: 3.1.0 +Release: 1%{?dist} Summary: A collection of solitaire card games License: GPL-2.0-or-later URL: https://pysolfc.sourceforge.io @@ -88,6 +88,10 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Mon Oct 21 2024 Packit - 3.1.0-1 +- Update to version 3.1.0 +- Resolves: rhbz#2319948 + * Wed Jul 17 2024 Fedora Release Engineering - 3.0.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild diff --git a/README.packit b/README.packit new file mode 100644 index 0000000..2bd3f40 --- /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.102.1.post1.dev6+g64f7460b. diff --git a/sources b/sources index 5bf9f5f..dd37c0c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (PySolFC-3.0.0.tar.xz) = f7c9bc6dff71047516979a6d9fb559c616d5d76c0b0a476564114f8b302788145599cc89cabbfbdc110a5a4eab6148bddb57a4847f40077ccbbe972f36b811b0 +SHA512 (PySolFC-3.1.0.tar.xz) = fa8ccc06a8813e9935a7d3034fca1cf8723b5457b8ee575cce202911c5cef265f2d0b297b279ceae398a142b9da56d95f5bdbf193df18cb5acb6b8f285420259 SHA512 (PySolFC-Cardsets--Minimal-3.0.0.tar.xz) = 9d4bacd072b450b29b9f1bec4557121a3647c2f837aeb6e249f452cb886467c5e7ca36dd36a78ea69a5c9df6f30d5245e12681d9d02fc9da2ece09c25d77e787 From 7c4046f26b3abab1c126077a79c10cb8cfdb3fa1 Mon Sep 17 00:00:00 2001 From: Packit Date: Sat, 11 Jan 2025 19:07:35 +0000 Subject: [PATCH 38/49] Update to 3.2.0 upstream release - Resolves: rhbz#2337163 Commit authored by Packit automation (https://packit.dev/) --- .gitignore | 1 + PySolFC.spec | 6 +++++- README.packit | 2 +- sources | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 30e0188..093e7b4 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ PySolFC-2.0.tar.bz2 /PySolFC-3.0.0.tar.xz /PySolFC-Cardsets--Minimal-3.0.0.tar.xz /PySolFC-3.1.0.tar.xz +/PySolFC-3.2.0.tar.xz diff --git a/PySolFC.spec b/PySolFC.spec index 193542a..5ffa4d4 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -1,7 +1,7 @@ %global cardsets_minimal_ver 3.0.0 Name: PySolFC -Version: 3.1.0 +Version: 3.2.0 Release: 1%{?dist} Summary: A collection of solitaire card games License: GPL-2.0-or-later @@ -88,6 +88,10 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Sat Jan 11 2025 Packit - 3.2.0-1 +- Update to version 3.2.0 +- Resolves: rhbz#2337163 + * Mon Oct 21 2024 Packit - 3.1.0-1 - Update to version 3.1.0 - Resolves: rhbz#2319948 diff --git a/README.packit b/README.packit index 2bd3f40..8c905b9 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.106.0.post1.dev8+g521f1e1d. diff --git a/sources b/sources index dd37c0c..d18d799 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (PySolFC-3.1.0.tar.xz) = fa8ccc06a8813e9935a7d3034fca1cf8723b5457b8ee575cce202911c5cef265f2d0b297b279ceae398a142b9da56d95f5bdbf193df18cb5acb6b8f285420259 +SHA512 (PySolFC-3.2.0.tar.xz) = 190d20228585942ebf8be42514561a1642a2f102a4e32cf9e12d5b429f34279a447268839156d1e153be2147c152d738065bdbbc79d6494cfb9b5dcc901630d9 SHA512 (PySolFC-Cardsets--Minimal-3.0.0.tar.xz) = 9d4bacd072b450b29b9f1bec4557121a3647c2f837aeb6e249f452cb886467c5e7ca36dd36a78ea69a5c9df6f30d5245e12681d9d02fc9da2ece09c25d77e787 From fe8e10abad8457551542bac6b6007fd30d9fe387 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 16 Jan 2025 08:54:25 +0000 Subject: [PATCH 39/49] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- PySolFC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PySolFC.spec b/PySolFC.spec index 5ffa4d4..78f6a1d 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -2,7 +2,7 @@ Name: PySolFC Version: 3.2.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A collection of solitaire card games License: GPL-2.0-or-later URL: https://pysolfc.sourceforge.io @@ -88,6 +88,9 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Thu Jan 16 2025 Fedora Release Engineering - 3.2.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Sat Jan 11 2025 Packit - 3.2.0-1 - Update to version 3.2.0 - Resolves: rhbz#2337163 From 2056651050292b0113dda5ae4f973ef128410ba9 Mon Sep 17 00:00:00 2001 From: Shlomi Fish Date: Sat, 8 Feb 2025 13:30:42 +0200 Subject: [PATCH 40/49] Update the build process for tcl 9 / tk 9 --- PySolFC.spec | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/PySolFC.spec b/PySolFC.spec index 78f6a1d..74fb10b 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -2,7 +2,7 @@ Name: PySolFC Version: 3.2.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A collection of solitaire card games License: GPL-2.0-or-later URL: https://pysolfc.sourceforge.io @@ -16,6 +16,8 @@ BuildRequires: python%{python3_pkgversion}-devel BuildRequires: python%{python3_pkgversion}-setuptools BuildRequires: desktop-file-utils BuildRequires: perl-interpreter +BuildRequires: tcl-devel < 1:9 +BuildRequires: tk-devel < 1:9 %if 0%{?fedora} # optional but nice to have but not available in any epel branch @@ -29,8 +31,8 @@ Requires: tile # used to get sound working with PulseAudio Requires: python%{python3_pkgversion}-pygame # really required -Requires: tcl -Requires: tk +Requires: tcl < 1:9 +Requires: tk < 1:9 Requires: tix Requires: python%{python3_pkgversion}-tkinter Requires: python%{python3_pkgversion}-imaging-tk @@ -88,6 +90,9 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Sat Feb 08 2025 Shlomi Fish 3.2.0-3 +- Update the build process for tcl 9 / tk 9 + * Thu Jan 16 2025 Fedora Release Engineering - 3.2.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From cec72050b8af86755ca089b23ff4d5ca569f7cb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Tue, 11 Feb 2025 16:47:28 +0000 Subject: [PATCH 41/49] Modified packit just to trigger builds for pull requests --- .packit.yaml => packit.yaml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) rename .packit.yaml => packit.yaml (74%) diff --git a/.packit.yaml b/packit.yaml similarity index 74% rename from .packit.yaml rename to packit.yaml index 927a968..7268bcf 100644 --- a/.packit.yaml +++ b/packit.yaml @@ -5,14 +5,20 @@ jobs: - job: pull_from_upstream trigger: release dist_git_branches: - - fedora-rawhide + rawhide: + fast_forward_merge_into: + - fedora-all + - epel-all + - job: koji_build trigger: commit - allowed_committers: + allowed_pr_authors: - all_admins + - packit dist_git_branches: - fedora-all - epel-all + - job: bodhi_update trigger: commit dist_git_branches: From 14d0a11568f2a75d27ac2cbc8f1252b7ec9ce4cc Mon Sep 17 00:00:00 2001 From: Shlomi Fish Date: Tue, 18 Feb 2025 03:46:50 +0200 Subject: [PATCH 42/49] tcl/tk versions 9 --- PySolFC.spec | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/PySolFC.spec b/PySolFC.spec index 74fb10b..0951b64 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -2,7 +2,7 @@ Name: PySolFC Version: 3.2.0 -Release: 3%{?dist} +Release: 4%{?dist} Summary: A collection of solitaire card games License: GPL-2.0-or-later URL: https://pysolfc.sourceforge.io @@ -16,8 +16,8 @@ BuildRequires: python%{python3_pkgversion}-devel BuildRequires: python%{python3_pkgversion}-setuptools BuildRequires: desktop-file-utils BuildRequires: perl-interpreter -BuildRequires: tcl-devel < 1:9 -BuildRequires: tk-devel < 1:9 +BuildRequires: tcl-devel >= 1:9 +BuildRequires: tk-devel >= 1:9 %if 0%{?fedora} # optional but nice to have but not available in any epel branch @@ -31,8 +31,8 @@ Requires: tile # used to get sound working with PulseAudio Requires: python%{python3_pkgversion}-pygame # really required -Requires: tcl < 1:9 -Requires: tk < 1:9 +Requires: tcl >= 9 +Requires: tk >= 9 Requires: tix Requires: python%{python3_pkgversion}-tkinter Requires: python%{python3_pkgversion}-imaging-tk @@ -90,6 +90,10 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Tue Feb 18 2025 Shlomi Fish 3.2.0-4 +- Trying to use tcl 9 / tk 9. +- rhbz#2344906 + * Sat Feb 08 2025 Shlomi Fish 3.2.0-3 - Update the build process for tcl 9 / tk 9 From 7bec96ecf1666a400745cde14a21e363e4002ecd Mon Sep 17 00:00:00 2001 From: Shlomi Fish Date: Fri, 7 Mar 2025 10:30:15 +0200 Subject: [PATCH 43/49] Revert to use tcl 8 / tk 8 . --- PySolFC.spec | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/PySolFC.spec b/PySolFC.spec index 0951b64..4ae5e61 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -2,7 +2,7 @@ Name: PySolFC Version: 3.2.0 -Release: 4%{?dist} +Release: 5%{?dist} Summary: A collection of solitaire card games License: GPL-2.0-or-later URL: https://pysolfc.sourceforge.io @@ -16,8 +16,8 @@ BuildRequires: python%{python3_pkgversion}-devel BuildRequires: python%{python3_pkgversion}-setuptools BuildRequires: desktop-file-utils BuildRequires: perl-interpreter -BuildRequires: tcl-devel >= 1:9 -BuildRequires: tk-devel >= 1:9 +BuildRequires: tcl-devel < 1:9 +BuildRequires: tk-devel < 1:9 %if 0%{?fedora} # optional but nice to have but not available in any epel branch @@ -31,8 +31,8 @@ Requires: tile # used to get sound working with PulseAudio Requires: python%{python3_pkgversion}-pygame # really required -Requires: tcl >= 9 -Requires: tk >= 9 +# Requires: tcl >= 9 +# Requires: tk >= 9 Requires: tix Requires: python%{python3_pkgversion}-tkinter Requires: python%{python3_pkgversion}-imaging-tk @@ -90,6 +90,10 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Fri Mar 07 2025 Shlomi Fish 3.2.0-5 +- Revert to use tcl 8 / tk 8 given that is what PySolFC loads in practice. +- rhbz#2344906 + * Tue Feb 18 2025 Shlomi Fish 3.2.0-4 - Trying to use tcl 9 / tk 9. - rhbz#2344906 From 87c799c7af1e739a42087375346fc02be18abd5e Mon Sep 17 00:00:00 2001 From: Python Maint Date: Mon, 2 Jun 2025 19:53:23 +0200 Subject: [PATCH 44/49] Rebuilt for Python 3.14 --- PySolFC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PySolFC.spec b/PySolFC.spec index 4ae5e61..eb94b66 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -2,7 +2,7 @@ Name: PySolFC Version: 3.2.0 -Release: 5%{?dist} +Release: 6%{?dist} Summary: A collection of solitaire card games License: GPL-2.0-or-later URL: https://pysolfc.sourceforge.io @@ -90,6 +90,9 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Mon Jun 02 2025 Python Maint - 3.2.0-6 +- Rebuilt for Python 3.14 + * Fri Mar 07 2025 Shlomi Fish 3.2.0-5 - Revert to use tcl 8 / tk 8 given that is what PySolFC loads in practice. - rhbz#2344906 From 49644a69945fcf49e8ac20039362bc8838b5fe36 Mon Sep 17 00:00:00 2001 From: Packit Date: Sun, 15 Jun 2025 01:28:30 +0000 Subject: [PATCH 45/49] Update to 3.4.0 upstream release - Resolves: rhbz#2372876 Commit authored by Packit automation (https://packit.dev/) --- .gitignore | 1 + PySolFC.spec | 8 ++++++-- README.packit | 2 +- sources | 2 +- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 093e7b4..ea43618 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ PySolFC-2.0.tar.bz2 /PySolFC-Cardsets--Minimal-3.0.0.tar.xz /PySolFC-3.1.0.tar.xz /PySolFC-3.2.0.tar.xz +/PySolFC-3.4.0.tar.xz diff --git a/PySolFC.spec b/PySolFC.spec index eb94b66..1b744eb 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -1,8 +1,8 @@ %global cardsets_minimal_ver 3.0.0 Name: PySolFC -Version: 3.2.0 -Release: 6%{?dist} +Version: 3.4.0 +Release: 1%{?dist} Summary: A collection of solitaire card games License: GPL-2.0-or-later URL: https://pysolfc.sourceforge.io @@ -90,6 +90,10 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Sun Jun 15 2025 Packit - 3.4.0-1 +- Update to version 3.4.0 +- Resolves: rhbz#2372876 + * Mon Jun 02 2025 Python Maint - 3.2.0-6 - Rebuilt for Python 3.14 diff --git a/README.packit b/README.packit index 8c905b9..6beb40f 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.106.0.post1.dev8+g521f1e1d. +The file was generated using packit 1.8.0.post1.dev31+g9980e597. diff --git a/sources b/sources index d18d799..2536c04 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (PySolFC-3.2.0.tar.xz) = 190d20228585942ebf8be42514561a1642a2f102a4e32cf9e12d5b429f34279a447268839156d1e153be2147c152d738065bdbbc79d6494cfb9b5dcc901630d9 +SHA512 (PySolFC-3.4.0.tar.xz) = 208e301cd8f8467e5078aace219a729097a851f09cd47d12ee9723e5b2127e951dfe779704ad0dedacd94c2a9a18553fcc06de8fa426d27a6794eb0d15ff128f SHA512 (PySolFC-Cardsets--Minimal-3.0.0.tar.xz) = 9d4bacd072b450b29b9f1bec4557121a3647c2f837aeb6e249f452cb886467c5e7ca36dd36a78ea69a5c9df6f30d5245e12681d9d02fc9da2ece09c25d77e787 From b532864956c23274018e11529ec4d4a3cb711eb7 Mon Sep 17 00:00:00 2001 From: Shlomi Fish Date: Fri, 11 Jul 2025 07:42:17 +0300 Subject: [PATCH 46/49] pyprojectize ; rhbz#2379434 rhbz#2377406 --- PySolFC.spec | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/PySolFC.spec b/PySolFC.spec index 1b744eb..0021bfe 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -2,7 +2,7 @@ Name: PySolFC Version: 3.4.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A collection of solitaire card games License: GPL-2.0-or-later URL: https://pysolfc.sourceforge.io @@ -13,7 +13,6 @@ Patch0: PySolFC-desktop-exec.patch BuildArch: noarch BuildRequires: python%{python3_pkgversion}-devel -BuildRequires: python%{python3_pkgversion}-setuptools BuildRequires: desktop-file-utils BuildRequires: perl-interpreter BuildRequires: tcl-devel < 1:9 @@ -36,7 +35,6 @@ Requires: python%{python3_pkgversion}-pygame Requires: tix Requires: python%{python3_pkgversion}-tkinter Requires: python%{python3_pkgversion}-imaging-tk -Requires: python%{python3_pkgversion}-random2 %if 0%{?fedora} || 0%{?rhel} > 7 Recommends: PySolFC-cardsets Recommends: PySolFC-music @@ -52,18 +50,21 @@ Provides: pysol = %{version}-%{release} %description %{name} is a collection of more than 1000 solitaire card games. It is a fork of PySol solitaire. Its features include modern look and feel (uses Tile widget -set), multiple cardsets and tableau backgrounds, sound, unlimited undo, player +set), multiple card-sets and tableau backgrounds, sound, unlimited undo, player statistics, a hint system, demo games, a solitaire wizard, support for user written plug-ins, an integrated HTML help browser, and lots of documentation. %prep %autosetup -p1 -a2 +%generate_buildrequires +%pyproject_buildrequires + %build -%py3_build +%pyproject_wheel %install -%py3_install +%pyproject_install # install desktop file desktop-file-install \ --delete-original \ @@ -82,7 +83,7 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %license COPYING %doc README.md %{python3_sitelib}/pysollib -%{python3_sitelib}/*egg-info +%{python3_sitelib}/*dist-info %{_bindir}/pysol %{_datadir}/%{name} %{_datadir}/icons/hicolor/*/apps/*.png @@ -90,6 +91,12 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Fri Jul 11 2025 Shlomi Fish 3.4.0-2 +- Remove unused / unavailable deps ( eg - python3-random2 ) +- Use pyprojectize/etc. to modernize the .spec +- rhbz#2379434 +- rhbz#2377406 + * Sun Jun 15 2025 Packit - 3.4.0-1 - Update to version 3.4.0 - Resolves: rhbz#2372876 From 340f4dbceda34880be0ef4f8f3cc8130493a9880 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 23 Jul 2025 15:56:17 +0000 Subject: [PATCH 47/49] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- PySolFC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PySolFC.spec b/PySolFC.spec index 0021bfe..a5a5154 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -2,7 +2,7 @@ Name: PySolFC Version: 3.4.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A collection of solitaire card games License: GPL-2.0-or-later URL: https://pysolfc.sourceforge.io @@ -91,6 +91,9 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Wed Jul 23 2025 Fedora Release Engineering - 3.4.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Fri Jul 11 2025 Shlomi Fish 3.4.0-2 - Remove unused / unavailable deps ( eg - python3-random2 ) - Use pyprojectize/etc. to modernize the .spec From 32e35bb20eac2264949be1d1c24b7fd5f7ff3123 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 15 Aug 2025 13:09:48 +0200 Subject: [PATCH 48/49] Rebuilt for Python 3.14.0rc2 bytecode --- PySolFC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PySolFC.spec b/PySolFC.spec index a5a5154..880e255 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -2,7 +2,7 @@ Name: PySolFC Version: 3.4.0 -Release: 3%{?dist} +Release: 4%{?dist} Summary: A collection of solitaire card games License: GPL-2.0-or-later URL: https://pysolfc.sourceforge.io @@ -91,6 +91,9 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Fri Aug 15 2025 Python Maint - 3.4.0-4 +- Rebuilt for Python 3.14.0rc2 bytecode + * Wed Jul 23 2025 Fedora Release Engineering - 3.4.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From 2ec9ab7051244e139675cf8a3cdad21345799dea Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 19 Sep 2025 12:40:47 +0200 Subject: [PATCH 49/49] Rebuilt for Python 3.14.0rc3 bytecode --- PySolFC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PySolFC.spec b/PySolFC.spec index 880e255..53e7ac2 100644 --- a/PySolFC.spec +++ b/PySolFC.spec @@ -2,7 +2,7 @@ Name: PySolFC Version: 3.4.0 -Release: 4%{?dist} +Release: 5%{?dist} Summary: A collection of solitaire card games License: GPL-2.0-or-later URL: https://pysolfc.sourceforge.io @@ -91,6 +91,9 @@ find "$RPM_BUILD_ROOT%{python3_sitelib}/pysollib" -name '*.py' | xargs -L1 perl %changelog +* Fri Sep 19 2025 Python Maint - 3.4.0-5 +- Rebuilt for Python 3.14.0rc3 bytecode + * Fri Aug 15 2025 Python Maint - 3.4.0-4 - Rebuilt for Python 3.14.0rc2 bytecode