openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
September 2022
- 1 participants
- 2392 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package neochat for openSUSE:Factory checked in at 2022-09-30 17:58:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/neochat (Old)
and /work/SRC/openSUSE:Factory/.neochat.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "neochat"
Fri Sep 30 17:58:10 2022 rev:9 rq:1007108 version:22.09
Changes:
--------
--- /work/SRC/openSUSE:Factory/neochat/neochat.changes 2022-08-05 19:52:01.357613948 +0200
+++ /work/SRC/openSUSE:Factory/.neochat.new.2275/neochat.changes 2022-09-30 17:58:28.357335594 +0200
@@ -1,0 +2,11 @@
+Thu Sep 29 19:55:16 UTC 2022 - Dirk M��ller <dmueller(a)suse.com>
+
+- update to 22.09:
+ * implemented support for configuring notifications on a per-room basis. As
+ part of his GSoC project, Snehit added a space selector to the room list,
+ which allows filtering the room list for rooms included in the selected
+ space. James also reworked the timeline layout to make it look nicer when
+ the window is very wide. There have also been a ton of other fixes and
+ improvements in translations, the layout and the stability of NeoChat.
+
+-------------------------------------------------------------------
Old:
----
neochat-22.06.tar.xz
neochat-22.06.tar.xz.sig
New:
----
neochat-22.09.tar.xz
neochat-22.09.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ neochat.spec ++++++
--- /var/tmp/diff_new_pack.KmW9qi/_old 2022-09-30 17:58:28.869336688 +0200
+++ /var/tmp/diff_new_pack.KmW9qi/_new 2022-09-30 17:58:28.873336697 +0200
@@ -19,7 +19,7 @@
%define _kf5_version 5.88.0
%bcond_without lang
Name: neochat
-Version: 22.06
+Version: 22.09
Release: 0
Summary: A chat client for Matrix, the decentralized communication protocol
License: BSD-2-Clause AND GPL-3.0-only AND GPL-3.0-or-later
++++++ neochat-22.06.tar.xz -> neochat-22.09.tar.xz ++++++
++++ 78461 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-pyscard for openSUSE:Factory checked in at 2022-09-30 17:58:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pyscard (Old)
and /work/SRC/openSUSE:Factory/.python-pyscard.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pyscard"
Fri Sep 30 17:58:09 2022 rev:14 rq:1007095 version:2.0.5
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pyscard/python-pyscard.changes 2022-04-23 19:49:31.331236997 +0200
+++ /work/SRC/openSUSE:Factory/.python-pyscard.new.2275/python-pyscard.changes 2022-09-30 17:58:27.609333994 +0200
@@ -1,0 +2,12 @@
+Thu Sep 29 18:26:31 UTC 2022 - Martin Hauke <mardnh(a)gmx.de>
+
+- Update to version 2.0.5
+ * no functional changes
+- Update to version 2.0.4
+ * Fix a problem on PCSCCardConnection.disconnect
+ * Add support of BaseSCardException(hresult) format
+ * Do not use deprecated distutils anymore
+- Update to version 2.0.3
+ * PCSCExceptions: include error code in the message
+
+-------------------------------------------------------------------
Old:
----
pyscard-2.0.2.tar.gz
New:
----
pyscard-2.0.5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pyscard.spec ++++++
--- /var/tmp/diff_new_pack.8reYVX/_old 2022-09-30 17:58:28.037334910 +0200
+++ /var/tmp/diff_new_pack.8reYVX/_new 2022-09-30 17:58:28.041334918 +0200
@@ -20,7 +20,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define modname pyscard
Name: python-pyscard
-Version: 2.0.2
+Version: 2.0.5
Release: 0
Summary: Python module adding smart card support
License: LGPL-2.0-or-later
++++++ pyscard-2.0.2.tar.gz -> pyscard-2.0.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/ChangeLog new/pyscard-2.0.5/ChangeLog
--- old/pyscard-2.0.2/ChangeLog 2021-09-22 22:37:46.000000000 +0200
+++ new/pyscard-2.0.5/ChangeLog 2022-09-28 13:59:52.000000000 +0200
@@ -1,3 +1,19 @@
+2.0.5 (Septembre 2022)
+======================
+ * New version just because I failed the previous upload to https://pypi.org/
+
+2.0.4 (August 2022)
+==================
+ * Fix a problem on PCSCCardConnection.disconnect
+ * Add support of BaseSCardException(hresult) format
+ * Do not use deprecated distutils anymore
+
+2.0.3 (March 2022)
+==================
+ * PCSCExceptions: include error code in the message
+ * getReaderNames(): fix Windows 10 issue when the last reader is
+ disconnected
+
2.0.2 (September 2021)
======================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/PKG-INFO new/pyscard-2.0.5/PKG-INFO
--- old/pyscard-2.0.2/PKG-INFO 2021-09-22 22:40:37.127004600 +0200
+++ new/pyscard-2.0.5/PKG-INFO 2022-09-28 14:06:25.013272500 +0200
@@ -1,13 +1,11 @@
Metadata-Version: 2.1
Name: pyscard
-Version: 2.0.2
+Version: 2.0.5
Summary: Smartcard module for Python.
Home-page: https://github.com/LudovicRousseau/pyscard
+Download-URL: http://sourceforge.net/projects/pyscard/files/pyscard/pyscard%202.0.5/pysca…
Author: Ludovic Rousseau
Author-email: ludovic.rousseau(a)free.fr
-License: UNKNOWN
-Download-URL: http://sourceforge.net/projects/pyscard/files/pyscard/pyscard%202.0.2/pysca…
-Description: Smartcard package for Python
Platform: linux
Platform: win32
Classifier: Development Status :: 5 - Production/Stable
@@ -16,14 +14,17 @@
Classifier: Operating System :: Unix
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: MacOS :: MacOS X
-Classifier: Programming Language :: Python :: 2.6
-Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Security
Provides-Extra: Gui
Provides-Extra: Pyro
+License-File: LICENSE
+
+Smartcard package for Python
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/README.md new/pyscard-2.0.5/README.md
--- old/pyscard-2.0.2/README.md 2021-06-11 09:57:47.000000000 +0200
+++ new/pyscard-2.0.5/README.md 2021-12-29 18:24:03.000000000 +0100
@@ -17,8 +17,8 @@
Continuous Integration status
-----------------------------
-Travis CI: [![Build Status](https://travis-ci.com/LudovicRousseau/pyscard.svg?branch=master)](h…
-
AppVeyor: [![Build status](https://ci.appveyor.com/api/projects/status/c97dsaodpcwkm0ra?svg=tr…
Coveralls: [![Coverage Status](https://coveralls.io/repos/LudovicRousseau/pyscard/badge.svg?branch=master&service=github)](https://coveralls.io/github/LudovicRousseau/pyscard?branch=master)
+
+lgtm: [![Total alerts](https://img.shields.io/lgtm/alerts/g/LudovicRousseau/pyscard.svg?lo… [![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/LudovicRousseau/pyscard.svg?… [![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/LudovicRousseau/pyscard.…
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/pyscard.egg-info/PKG-INFO new/pyscard-2.0.5/pyscard.egg-info/PKG-INFO
--- old/pyscard-2.0.2/pyscard.egg-info/PKG-INFO 2021-09-22 22:40:37.000000000 +0200
+++ new/pyscard-2.0.5/pyscard.egg-info/PKG-INFO 2022-09-28 14:06:24.000000000 +0200
@@ -1,13 +1,11 @@
Metadata-Version: 2.1
Name: pyscard
-Version: 2.0.2
+Version: 2.0.5
Summary: Smartcard module for Python.
Home-page: https://github.com/LudovicRousseau/pyscard
+Download-URL: http://sourceforge.net/projects/pyscard/files/pyscard/pyscard%202.0.5/pysca…
Author: Ludovic Rousseau
Author-email: ludovic.rousseau(a)free.fr
-License: UNKNOWN
-Download-URL: http://sourceforge.net/projects/pyscard/files/pyscard/pyscard%202.0.2/pysca…
-Description: Smartcard package for Python
Platform: linux
Platform: win32
Classifier: Development Status :: 5 - Production/Stable
@@ -16,14 +14,17 @@
Classifier: Operating System :: Unix
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: MacOS :: MacOS X
-Classifier: Programming Language :: Python :: 2.6
-Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Security
Provides-Extra: Gui
Provides-Extra: Pyro
+License-File: LICENSE
+
+Smartcard package for Python
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/pyscard.egg-info/SOURCES.txt new/pyscard-2.0.5/pyscard.egg-info/SOURCES.txt
--- old/pyscard-2.0.2/pyscard.egg-info/SOURCES.txt 2021-09-22 22:40:37.000000000 +0200
+++ new/pyscard-2.0.5/pyscard.egg-info/SOURCES.txt 2022-09-28 14:06:24.000000000 +0200
@@ -69,7 +69,6 @@
pyscard.egg-info/PKG-INFO
pyscard.egg-info/SOURCES.txt
pyscard.egg-info/dependency_links.txt
-pyscard.egg-info/pbr.json
pyscard.egg-info/requires.txt
pyscard.egg-info/top_level.txt
smartcard/Examples/framework/sample_ATR.py
@@ -147,7 +146,6 @@
smartcard/test/framework/testcase_ulist.py
smartcard/test/framework/testcase_utils.py
smartcard/test/framework/testsuite_framework.py
-smartcard/test/frameworkpcsc/local_config.py
smartcard/test/frameworkpcsc/readme.txt
smartcard/test/frameworkpcsc/testcase_pcscreadergroups.py
smartcard/test/frameworkpcsc/testsuite_frameworkpcsc.py
@@ -167,5 +165,6 @@
test/__init__.py
test/test_ATR.py
test/test_Exceptions.py
+test/test_PCSCExceptions.py
test/test_SCardGetErrorMessage.py
test/test_util.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/pyscard.egg-info/pbr.json new/pyscard-2.0.5/pyscard.egg-info/pbr.json
--- old/pyscard-2.0.2/pyscard.egg-info/pbr.json 2019-10-22 18:44:27.000000000 +0200
+++ new/pyscard-2.0.5/pyscard.egg-info/pbr.json 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-{"is_release": false, "git_version": "7065afc"}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/setup.py new/pyscard-2.0.5/setup.py
--- old/pyscard-2.0.2/setup.py 2021-09-22 22:37:46.000000000 +0200
+++ new/pyscard-2.0.5/setup.py 2022-09-28 13:58:30.000000000 +0200
@@ -1,5 +1,5 @@
#! /usr/bin/env python3
-"""Setup file for distutils
+"""Setup file for setuptools
__author__ = "http://www.gemalto.com"
@@ -25,52 +25,44 @@
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
"""
-from distutils.util import get_platform
+import platform
+import shlex
+import subprocess
import sys
from setuptools import setup, Extension
from setuptools.command.build_py import build_py
-if sys.version_info[0:2] < (2, 6):
- raise RuntimeError("pyscard requires Python 2.6+ to build.")
-
platform_include_dirs = []
platform_sources = []
platform_libraries = []
platform_extra_compile_args = [] # ['-ggdb', '-O0']
platform_extra_link_args = [] # ['-ggdb']
-if get_platform() in ('win32', 'win-amd64'):
+if platform.system() == 'Windows':
platform__cc_defines = [('WIN32', '100')]
platform_swig_opts = ['-DWIN32']
platform_sources = ['smartcard/scard/scard.rc']
platform_libraries = ['winscard']
-elif 'cygwin-' in get_platform():
- platform__cc_defines = [('WIN32', '100')]
- platform_swig_opts = ['-DWIN32']
- platform_libraries = ['winscard']
-
-elif 'macosx-' in get_platform():
- if 'macosx-10.6' in get_platform():
- macosx_define = '__LEOPARD__' # Snow Leopard, Python 2.6
- else:
- macosx_define = '__LION__' # Lion (and above), Python 2.7
+elif platform.system() == 'Darwin':
platform__cc_defines = [('PCSCLITE', '1'),
- ('__APPLE__', '1'),
- (macosx_define, '1')]
- platform_swig_opts = ['-DPCSCLITE', '-D__APPLE__', '-D' + macosx_define]
+ ('__APPLE__', '1')]
+ platform_swig_opts = ['-DPCSCLITE', '-D__APPLE__']
# Other (GNU/Linux, etc.)
#
else:
platform__cc_defines = [('PCSCLITE', '1')]
platform_swig_opts = ['-DPCSCLITE']
- platform_include_dirs = ['/usr/include/PCSC', '/usr/local/include/PCSC']
-
+ try:
+ pkg_config_cflags = subprocess.check_output(['pkg-config', '--cflags', 'libpcsclite'])
+ platform_extra_compile_args += shlex.split(pkg_config_cflags.decode())
+ except:
+ platform_include_dirs = ['/usr/include/PCSC', '/usr/local/include/PCSC']
-VERSION_INFO = (2, 0, 2, 0)
+VERSION_INFO = (2, 0, 5, 0)
VERSION_STR = '%i.%i.%i' % VERSION_INFO[:3]
VERSION_ALT = '%i,%01i,%01i,%04i' % VERSION_INFO
@@ -133,20 +125,19 @@
'classifiers': [
'Development Status :: 5 - Production/Stable',
- 'License :: OSI Approved :: GNU Lesser General Public License v2 '
- 'or later (LGPLv2+)',
+ 'License :: OSI Approved :: GNU Lesser General Public License v2 or later (LGPLv2+)',
'Intended Audience :: Developers',
'Operating System :: Unix',
'Operating System :: Microsoft :: Windows',
'Operating System :: MacOS :: MacOS X',
- 'Programming Language :: Python :: 2.6',
- 'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3.3',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
+ 'Programming Language :: Python :: 3.9',
+ 'Programming Language :: Python :: 3.10',
'Topic :: Security',
]
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/CardService.py new/pyscard-2.0.5/smartcard/CardService.py
--- old/pyscard-2.0.2/smartcard/CardService.py 2021-06-11 10:16:18.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/CardService.py 2021-12-29 18:24:03.000000000 +0100
@@ -64,5 +64,5 @@
cs = CardService(cc)
cs.connection.connect()
data, sw1, sw2 = cs.connection.transmit(SELECT + DF_TELECOM)
- print("%X %X" % (sw1, sw2))
+ print("{:X} {:X}".format(sw1, sw2))
cs.connection.disconnect()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/CardType.py new/pyscard-2.0.5/smartcard/CardType.py
--- old/pyscard-2.0.2/smartcard/CardType.py 2021-06-11 10:16:21.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/CardType.py 2021-11-07 16:41:51.000000000 +0100
@@ -50,6 +50,9 @@
class AnyCardType(CardType):
"""The AnyCardType matches any card."""
+ def __init__(self):
+ super().__init__()
+
def matches(self, atr, reader=None):
"""Always returns true, i.e. AnyCardType matches any card.
@@ -67,6 +70,7 @@
@param mask: an optional mask to be applied to the ATR for
L{CardType} matching default is None
"""
+ super().__init__()
self.atr = list(atr)
self.mask = mask
if mask is None:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/Examples/framework/sample_CustomErrorChecker.py new/pyscard-2.0.5/smartcard/Examples/framework/sample_CustomErrorChecker.py
--- old/pyscard-2.0.2/smartcard/Examples/framework/sample_CustomErrorChecker.py 2021-06-11 10:18:01.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/Examples/framework/sample_CustomErrorChecker.py 2021-12-29 18:24:03.000000000 +0100
@@ -77,7 +77,7 @@
apdu = GET_RESPONSE + [sw2]
response, sw1, sw2 = cardservice.connection.transmit(apdu)
except SWException as e:
- print(e, "%x %x" % (e.sw1, e.sw2))
+ print(e, "{:x} {:x}".format(e.sw1, e.sw2))
cardservice.connection.disconnect()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/Examples/framework/sample_TransmitCardObserver.py new/pyscard-2.0.5/smartcard/Examples/framework/sample_TransmitCardObserver.py
--- old/pyscard-2.0.2/smartcard/Examples/framework/sample_TransmitCardObserver.py 2021-06-11 10:18:20.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/Examples/framework/sample_TransmitCardObserver.py 2021-12-29 18:24:03.000000000 +0100
@@ -50,7 +50,7 @@
card.connection.connect()
response, sw1, sw2 = card.connection.transmit(
SELECT_DF_TELECOM)
- print("%.2x %.2x" % (sw1, sw2))
+ print("{:.2x} {:.2x}".format(sw1, sw2))
for card in removedcards:
print("-Removed: ", toHexString(card.atr))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/Examples/scard-api/sample_control.py new/pyscard-2.0.5/smartcard/Examples/scard-api/sample_control.py
--- old/pyscard-2.0.2/smartcard/Examples/scard-api/sample_control.py 2021-06-11 10:18:24.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/Examples/scard-api/sample_control.py 2021-12-29 18:24:03.000000000 +0100
@@ -26,7 +26,7 @@
"""
from smartcard.scard import *
-from smartcard.util import toBytes
+from smartcard.util import toBytes, toHexString, toASCIIString
try:
hresult, hcontext = SCardEstablishContext(SCARD_SCOPE_USER)
@@ -68,24 +68,18 @@
raise error(
'SCardControl failed: ' +
SCardGetErrorMessage(hresult))
- r = ""
- for i in range(len(response)):
- r += "%c" % response[i]
- print('SCARD_ATTR_VENDOR_NAME:', r)
+ print('SCARD_ATTR_VENDOR_NAME:', toASCIIString(response))
elif 'pcsclite' == resourceManager:
- # get firmware on Gemplus readers
+ # get feature request
hresult, response = SCardControl(
hcard,
- SCARD_CTL_CODE(1),
- [0x02])
+ SCARD_CTL_CODE(3400),
+ [])
if hresult != SCARD_S_SUCCESS:
raise error(
'SCardControl failed: ' +
SCardGetErrorMessage(hresult))
- r = ""
- for i in range(len(response)):
- r += "%c" % response[i]
- print('Control:', r)
+ print('CM_IOCTL_GET_FEATURE_REQUEST:', toHexString(response))
finally:
hresult = SCardDisconnect(hcard, SCARD_UNPOWER_CARD)
if hresult != SCARD_S_SUCCESS:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/Examples/simple/simpleAPDU.py new/pyscard-2.0.5/smartcard/Examples/simple/simpleAPDU.py
--- old/pyscard-2.0.2/smartcard/Examples/simple/simpleAPDU.py 2021-06-11 10:19:00.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/Examples/simple/simpleAPDU.py 2021-12-29 18:24:03.000000000 +0100
@@ -47,7 +47,7 @@
connection.connect()
data, sw1, sw2 = connection.transmit(SELECT_APPLET)
- print("Select Applet: %02X %02X" % (sw1, sw2))
+ print("Select Applet: {:02X} {:02X}".format(sw1, sw2))
data, sw1, sw2 = connection.transmit(GET_TIME)
- print("Get Time: %02X %02X" % (sw1, sw2))
+ print("Get Time: {:02X} {:02X}".format(sw1, sw2))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/Exceptions.py new/pyscard-2.0.5/smartcard/Exceptions.py
--- old/pyscard-2.0.2/smartcard/Exceptions.py 2021-09-22 22:37:46.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/Exceptions.py 2021-12-29 18:24:03.000000000 +0100
@@ -45,7 +45,7 @@
if hresult < 0:
# convert 0x-7FEFFFE3 into 0x8010001D
hresult += 0x100000000
- text += ": %s (0x%08X)" % (SCardGetErrorMessage(self.hresult), hresult)
+ text += ": {} (0x{:08X})".format(SCardGetErrorMessage(self.hresult), hresult)
return text
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/PassThruCardService.py new/pyscard-2.0.5/smartcard/PassThruCardService.py
--- old/pyscard-2.0.2/smartcard/PassThruCardService.py 2021-06-11 10:16:45.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/PassThruCardService.py 2021-12-29 18:24:03.000000000 +0100
@@ -57,5 +57,5 @@
cs = PassThruCardService(cc)
cs.connection.connect()
data, sw1, sw2 = cs.connection.transmit(SELECT + DF_TELECOM)
- print("%X %X" % (sw1, sw2))
+ print("{:X} {:X}".format(sw1, sw2))
cs.connection.disconnect()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/pcsc/PCSCCardConnection.py new/pyscard-2.0.5/smartcard/pcsc/PCSCCardConnection.py
--- old/pyscard-2.0.2/smartcard/pcsc/PCSCCardConnection.py 2021-06-11 10:19:48.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/pcsc/PCSCCardConnection.py 2022-05-07 15:17:06.000000000 +0200
@@ -32,7 +32,7 @@
def translateprotocolmask(protocol):
"""Translate CardConnection protocol mask into PCSC protocol mask."""
pcscprotocol = 0
- if None != protocol:
+ if protocol is not None:
if CardConnection.T0_protocol & protocol:
pcscprotocol |= SCARD_PROTOCOL_T0
if CardConnection.T1_protocol & protocol:
@@ -47,7 +47,7 @@
def translateprotocolheader(protocol):
"""Translate protocol into PCSC protocol header."""
pcscprotocol = 0
- if None != protocol:
+ if protocol is not None:
if CardConnection.T0_protocol == protocol:
pcscprotocol = SCARD_PCI_T0
if CardConnection.T1_protocol == protocol:
@@ -86,7 +86,7 @@
# can disappear before __del__ is called
self.disconnect()
hresult = SCardReleaseContext(self.hcontext)
- if hresult != 0:
+ if hresult != 0 and hresult != SCARD_E_INVALID_VALUE:
raise CardConnectionException(
'Failed to release context: ' + \
SCardGetErrorMessage(hresult))
@@ -104,11 +104,11 @@
if 0 == pcscprotocol:
pcscprotocol = self.getProtocol()
- if mode == None:
+ if mode is None:
mode = SCARD_SHARE_SHARED
# store the way to dispose the card
- if disposition == None:
+ if disposition is None:
disposition = SCARD_UNPOWER_CARD
self.disposition = disposition
@@ -146,18 +146,18 @@
If disposition is not specified, do a warm reset (SCARD_RESET_CARD)"""
CardConnection.reconnect(self, protocol)
- if self.hcard == None:
+ if self.hcard is None:
raise CardConnectionException('Card not connected')
pcscprotocol = translateprotocolmask(protocol)
if 0 == pcscprotocol:
pcscprotocol = self.getProtocol()
- if mode == None:
+ if mode is None:
mode = SCARD_SHARE_SHARED
# store the way to dispose the card
- if disposition == None:
+ if disposition is None:
disposition = SCARD_RESET_CARD
self.disposition = disposition
@@ -195,18 +195,18 @@
CardConnection.disconnect(self)
except TypeError:
pass
- if None != self.hcard:
+ if self.hcard is not None:
hresult = SCardDisconnect(self.hcard, self.disposition)
+ self.hcard = None
if hresult != 0:
raise CardConnectionException(
'Failed to disconnect: ' + \
SCardGetErrorMessage(hresult))
- self.hcard = None
def getATR(self):
"""Return card ATR"""
CardConnection.getATR(self)
- if None == self.hcard:
+ if self.hcard is None:
raise CardConnectionException('Card not connected')
hresult, reader, state, protocol, atr = SCardStatus(self.hcard)
if hresult != 0:
@@ -229,7 +229,7 @@
sw2 is status word 2, e.g. 0x1A
response are the response bytes excluding status words
"""
- if None == protocol:
+ if protocol is None:
protocol = self.getProtocol()
CardConnection.doTransmit(self, bytes, protocol)
pcscprotocolheader = translateprotocolheader(protocol)
@@ -239,7 +239,7 @@
'CardConnection.T0_protocol, ' + \
'CardConnection.T1_protocol, or ' + \
'CardConnection.RAW_protocol')
- if None == self.hcard:
+ if self.hcard is None:
raise CardConnectionException('Card not connected')
hresult, response = SCardTransmit(
self.hcard, pcscprotocolheader, bytes)
@@ -303,4 +303,3 @@
print("%r %x %x" % cc.transmit(SELECT + DF_TELECOM))
print(cc.control(CM_IOCTL_GET_FEATURE_REQUEST, []))
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/pcsc/PCSCCardRequest.py new/pyscard-2.0.5/smartcard/pcsc/PCSCCardRequest.py
--- old/pyscard-2.0.2/smartcard/pcsc/PCSCCardRequest.py 2021-09-22 22:37:46.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/pcsc/PCSCCardRequest.py 2022-01-02 18:05:39.000000000 +0100
@@ -81,7 +81,7 @@
self.hcontext = PCSCContext().getContext()
def getReaderNames(self):
- """Returns the list or PCSC readers on which to wait for cards."""
+ """Returns the list of PCSC readers on which to wait for cards."""
# renew the context in case PC/SC was stopped
# this happens on Windows when the last reader is disconnected
@@ -89,7 +89,10 @@
# get inserted readers
hresult, pcscreaders = SCardListReaders(self.hcontext, [])
- if hresult in [SCARD_E_NO_READERS_AVAILABLE, SCARD_E_SERVICE_STOPPED]:
+ if SCARD_E_SERVICE_STOPPED == hresult:
+ self.hcontext = PCSCContext().renewContext()
+ hresult, pcscreaders = SCardListReaders(self.hcontext, [])
+ if SCARD_E_NO_READERS_AVAILABLE == hresult:
return []
if SCARD_S_SUCCESS != hresult:
raise ListReadersException(hresult)
@@ -358,4 +361,3 @@
cs.connection.connect()
print(cs.connection.getReader() + ' ' + toHexString(cs.connection.getATR()))
cs.connection.disconnect()
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/pcsc/PCSCExceptions.py new/pyscard-2.0.5/smartcard/pcsc/PCSCExceptions.py
--- old/pyscard-2.0.2/smartcard/pcsc/PCSCExceptions.py 2019-10-22 18:44:26.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/pcsc/PCSCExceptions.py 2022-08-23 21:47:00.000000000 +0200
@@ -36,65 +36,69 @@
"""
- def __init__(self, hresult):
+ def __init__(self, hresult=-1, message="", *args):
"""Constructor that stores the pcsc error status."""
+ if not message:
+ message = "scard exception"
+ super().__init__(message, *args)
+ self.message = message
self.hresult = hresult
def __str__(self):
"""Returns a string representation of the exception."""
- return repr("scard exception: " +
- smartcard.scard.SCardGetErrorMessage(self.hresult))
+ text = super().__str__()
+ if self.hresult != -1:
+ hresult = self.hresult
+ if hresult < 0:
+ # convert 0x-7FEFFFE3 into 0x8010001D
+ hresult += 0x100000000
+ text += ": {} (0x{:08X})".format(smartcard.scard.SCardGetErrorMessage(self.hresult), hresult)
+ return text
class AddReaderToGroupException(BaseSCardException):
"""Raised when scard fails to add a new reader to a PCSC reader group."""
def __init__(self, hresult, readername="", groupname=""):
- BaseSCardException.__init__(self, hresult)
+ super().__init__(message='Failed to add reader: ' + readername +
+ ' to group: ' + groupname,
+ hresult=hresult)
self.readername = readername
self.groupname = groupname
- def __str__(self):
- return repr('Failure to add reader: ' + self.readername +
- ' to group: ' + self.groupname + ' ' +
- smartcard.scard.SCardGetErrorMessage(self.hresult))
-
class EstablishContextException(BaseSCardException):
"""Raised when scard failed to establish context with PCSC."""
- def __str__(self):
- """Returns a string representation of the exception."""
- return repr('Failure to establish context: ' +
- smartcard.scard.SCardGetErrorMessage(self.hresult))
+ def __init__(self, hresult):
+ super().__init__(message='Failed to establish context',
+ hresult=hresult)
class ListReadersException(BaseSCardException):
"""Raised when scard failed to list readers."""
- def __str__(self):
- return repr('Failure to list readers: ' +
- smartcard.scard.SCardGetErrorMessage(self.hresult))
+ def __init__(self, hresult):
+ super().__init__(message='Failed to list readers',
+ hresult=hresult)
class IntroduceReaderException(BaseSCardException):
"""Raised when scard fails to introduce a new reader to PCSC."""
def __init__(self, hresult, readername=""):
- BaseSCardException.__init__(self, hresult)
+ super().__init__(
+ message='Failed to introduce a new reader: ' + readername,
+ hresult=hresult)
self.readername = readername
- def __str__(self):
- return repr('Failure to introduce a new reader: ' + self.readername
- + ' ' + smartcard.scard.SCardGetErrorMessage(self.hresult))
-
class ReleaseContextException(BaseSCardException):
"""Raised when scard failed to release PCSC context."""
- def __str__(self):
- return repr('Failure to release context: ' +
- smartcard.scard.SCardGetErrorMessage(self.hresult))
+ def __init__(self, hresult):
+ super().__init__(message='Failed to release context',
+ hresult=hresult)
class RemoveReaderFromGroupException(BaseSCardException):
@@ -104,15 +108,13 @@
BaseSCardException.__init__(self, hresult)
self.readername = readername
self.groupname = groupname
+ super().__init__(message='Failed to remove reader: ' + readername +
+ ' from group: ' + groupname,
+ hresult=hresult)
- def __str__(self):
- return repr('Failure to remove reader: ' + self.readername +
- ' from group: ' + self.groupname + ' ' +
- smartcard.scard.SCardGetErrorMessage(self.hresult))
if __name__ == "__main__":
try:
raise EstablishContextException(smartcard.scard.SCARD_E_NO_MEMORY)
except BaseSCardException as exc:
print(exc)
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/pcsc/PCSCPart10.py new/pyscard-2.0.5/smartcard/pcsc/PCSCPart10.py
--- old/pyscard-2.0.2/smartcard/pcsc/PCSCPart10.py 2021-06-11 10:19:59.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/pcsc/PCSCPart10.py 2021-12-29 18:24:03.000000000 +0100
@@ -263,9 +263,9 @@
properties = getPinProperties(cc)
print("\nPinProperties:")
for k, v in list(properties.items()):
- print(" %s: %s" % (k, v))
+ print(" {}: {}".format(k, v))
print("\nTlvProperties:")
properties = getTlvProperties(cc)
for k, v in list(properties.items()):
- print(" %s: %s" % (k, v))
+ print(" {}: {}".format(k, v))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/pcsc/PCSCReader.py new/pyscard-2.0.5/smartcard/pcsc/PCSCReader.py
--- old/pyscard-2.0.2/smartcard/pcsc/PCSCReader.py 2021-06-11 10:20:04.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/pcsc/PCSCReader.py 2021-12-29 18:24:03.000000000 +0100
@@ -132,6 +132,6 @@
connection.connect()
print(toHexString(connection.getATR()))
data, sw1, sw2 = connection.transmit(SELECT + DF_TELECOM)
- print("%02X %02X" % (sw1, sw2))
+ print("{:02X} {:02X}".format(sw1, sw2))
except NoCardException:
print('no card in reader')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/pcsc/PCSCReaderGroups.py new/pyscard-2.0.5/smartcard/pcsc/PCSCReaderGroups.py
--- old/pyscard-2.0.2/smartcard/pcsc/PCSCReaderGroups.py 2021-06-11 10:20:02.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/pcsc/PCSCReaderGroups.py 2021-11-07 16:41:51.000000000 +0100
@@ -113,4 +113,3 @@
if __name__ == '__main__':
print(PCSCReaderGroups().getreadergroups())
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/pyro/PyroReader.py new/pyscard-2.0.5/smartcard/pyro/PyroReader.py
--- old/pyscard-2.0.2/smartcard/pyro/PyroReader.py 2021-06-11 10:20:30.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/pyro/PyroReader.py 2021-12-29 18:24:03.000000000 +0100
@@ -34,6 +34,7 @@
def __init__(self, readername):
"""Constructs a new Remote Reader client implementation from a
Pyro URI."""
+ super().__init__(readername)
ns = Pyro.naming.NameServerLocator().getNS()
self.uri = ns.resolve(':pyscard.smartcard.readers.' + readername)
self.reader = Pyro.core.getAttrProxyForURI(self.uri)
@@ -85,6 +86,6 @@
connection.connect()
print(toHexString(connection.getATR()))
data, sw1, sw2 = connection.transmit(SELECT + DF_TELECOM)
- print("%X %X" % (sw1, sw2))
+ print("{:X} {:X}".format(sw1, sw2))
except NoCardException as x:
print('no card in reader')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/reader/ReaderGroups.py new/pyscard-2.0.5/smartcard/reader/ReaderGroups.py
--- old/pyscard-2.0.2/smartcard/reader/ReaderGroups.py 2021-06-11 10:21:18.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/reader/ReaderGroups.py 2021-11-07 16:41:51.000000000 +0100
@@ -119,4 +119,3 @@
if __name__ == '__main__':
print(readergroups())
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/scard/scard.i new/pyscard-2.0.5/smartcard/scard/scard.i
--- old/pyscard-2.0.2/smartcard/scard/scard.i 2021-09-22 22:37:46.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/scard/scard.i 2022-08-23 21:47:00.000000000 +0200
@@ -1876,12 +1876,7 @@
#ifdef PCSCLITE
%constant char* resourceManager = "pcsclite" ;
#ifdef __APPLE__
- #ifdef __LEOPARD__
- %constant char* resourceManagerSubType = "pcsclite-leopard" ;
- #endif //__LEOPARD__
- #ifdef __LION__
- %constant char* resourceManagerSubType = "pcsclite-lion" ;
- #endif //__LION_
+ %constant char* resourceManagerSubType = "pcsclite-lion" ;
#else // !__APPLE__
%constant char* resourceManagerSubType = "pcsclite-linux" ;
#endif // __APPLE__
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/sw/ISO7816_4ErrorChecker.py new/pyscard-2.0.5/smartcard/sw/ISO7816_4ErrorChecker.py
--- old/pyscard-2.0.2/smartcard/sw/ISO7816_4ErrorChecker.py 2021-06-11 10:21:36.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/sw/ISO7816_4ErrorChecker.py 2021-12-29 18:24:03.000000000 +0100
@@ -156,4 +156,4 @@
try:
ecs([], 0x6b, 0x00)
except smartcard.sw.SWExceptions.CheckingErrorException as e:
- print(str(e) + " %x %x" % (e.sw1, e.sw2))
+ print(str(e) + " {:x} {:x}".format(e.sw1, e.sw2))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/sw/ISO7816_4_SW1ErrorChecker.py new/pyscard-2.0.5/smartcard/sw/ISO7816_4_SW1ErrorChecker.py
--- old/pyscard-2.0.2/smartcard/sw/ISO7816_4_SW1ErrorChecker.py 2021-06-11 10:21:40.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/sw/ISO7816_4_SW1ErrorChecker.py 2021-12-29 18:24:03.000000000 +0100
@@ -82,4 +82,4 @@
try:
ecs([], 0x66, 0x80)
except smartcard.sw.SWExceptions.SecurityRelatedException as e:
- print(str(e) + " %x %x" % (e.sw1, e.sw2))
+ print(str(e) + " {:x} {:x}".format(e.sw1, e.sw2))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/sw/ISO7816_8ErrorChecker.py new/pyscard-2.0.5/smartcard/sw/ISO7816_8ErrorChecker.py
--- old/pyscard-2.0.2/smartcard/sw/ISO7816_8ErrorChecker.py 2021-06-11 10:21:42.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/sw/ISO7816_8ErrorChecker.py 2021-12-29 18:24:03.000000000 +0100
@@ -128,4 +128,4 @@
try:
ecs([], 0x66, 0x87)
except smartcard.sw.SWExceptions.SecurityRelatedException as e:
- print(str(e) + " %x %x" % (e.sw1, e.sw2))
+ print(str(e) + " {:x} {:x}".format(e.sw1, e.sw2))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/sw/ISO7816_9ErrorChecker.py new/pyscard-2.0.5/smartcard/sw/ISO7816_9ErrorChecker.py
--- old/pyscard-2.0.2/smartcard/sw/ISO7816_9ErrorChecker.py 2021-06-11 10:21:44.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/sw/ISO7816_9ErrorChecker.py 2021-12-29 18:24:03.000000000 +0100
@@ -94,4 +94,4 @@
try:
ecs([], 0x6A, 0x8A)
except smartcard.sw.SWExceptions.CheckingErrorException as e:
- print(str(e) + " %x %x" % (e.sw1, e.sw2))
+ print(str(e) + " {:x} {:x}".format(e.sw1, e.sw2))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/sw/op21_ErrorChecker.py new/pyscard-2.0.5/smartcard/sw/op21_ErrorChecker.py
--- old/pyscard-2.0.2/smartcard/sw/op21_ErrorChecker.py 2021-06-11 10:21:47.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/sw/op21_ErrorChecker.py 2021-12-29 18:24:03.000000000 +0100
@@ -122,4 +122,4 @@
try:
ecs([], 0x94, 0x84)
except smartcard.sw.SWExceptions.CheckingErrorException as e:
- print(str(e) + "%x %x" % (e.sw1, e.sw2))
+ print(str(e) + "{:x} {:x}".format(e.sw1, e.sw2))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/framework/local_config.py new/pyscard-2.0.5/smartcard/test/framework/local_config.py
--- old/pyscard-2.0.2/smartcard/test/framework/local_config.py 2019-10-22 18:44:23.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/framework/local_config.py 2021-03-18 18:21:40.000000000 +0100
@@ -1,6 +1,6 @@
from smartcard.util import toHexString
-expectedReaders = ['Gemalto PC Twin Reader 00 00']
-expectedATRs = [[63, 47, 0, 128, 105, 175, 2, 4, 1, 49, 0, 0, 0, 14, 131, 62, 159, 22]]
+expectedReaders = ['Gemalto PC Twin Reader']
+expectedATRs = [[59, 167, 0, 64, 24, 128, 101, 162, 8, 1, 1, 82]]
expectedATRinReader = {}
for i in range(len(expectedReaders)):
expectedATRinReader[expectedReaders[i]] = expectedATRs[i]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/framework/testcase_ATR.py new/pyscard-2.0.5/smartcard/test/framework/testcase_ATR.py
--- old/pyscard-2.0.2/smartcard/test/framework/testcase_ATR.py 2021-06-11 10:22:31.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/framework/testcase_ATR.py 2021-12-29 18:24:03.000000000 +0100
@@ -65,7 +65,7 @@
def suite():
suite1 = unittest.makeSuite(testcase_ATR)
- return unittest.TestSuite((suite1))
+ return unittest.TestSuite(suite1)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/framework/testcase_CAtr.py new/pyscard-2.0.5/smartcard/test/framework/testcase_CAtr.py
--- old/pyscard-2.0.2/smartcard/test/framework/testcase_CAtr.py 2021-06-11 10:07:27.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/framework/testcase_CAtr.py 2021-12-29 18:24:03.000000000 +0100
@@ -117,7 +117,7 @@
def suite():
suite1 = unittest.makeSuite(testcase_CAtr)
- return unittest.TestSuite((suite1))
+ return unittest.TestSuite(suite1)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/framework/testcase_Card.py new/pyscard-2.0.5/smartcard/test/framework/testcase_Card.py
--- old/pyscard-2.0.2/smartcard/test/framework/testcase_Card.py 2021-06-11 10:23:07.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/framework/testcase_Card.py 2021-12-29 18:24:03.000000000 +0100
@@ -77,7 +77,7 @@
expectedSWs = {"9f 1a": 1, "9f 20": 2, "6e 0": 3}
self.assertEqual([], response)
self.assertTrue(
- "%x %x" % (sw1, sw2) in expectedSWs or "9f" == "%x" % sw1)
+ "{:x} {:x}".format(sw1, sw2) in expectedSWs or "9f" == "%x" % sw1)
else:
self.assertRaises(NoCardException, cc.connect)
@@ -96,7 +96,7 @@
expectedSWs = {"9f 1a": 1, "9f 20": 2, "6e 0": 3}
self.assertEqual([], response)
self.assertTrue(
- "%x %x" % (sw1, sw2) in expectedSWs or "9f" == "%x" % sw1)
+ "{:x} {:x}".format(sw1, sw2) in expectedSWs or "9f" == "%x" % sw1)
else:
self.assertRaises(NoCardException, cc.connect)
@@ -117,7 +117,7 @@
def suite():
suite1 = unittest.makeSuite(testcase_CardConnection)
- return unittest.TestSuite((suite1))
+ return unittest.TestSuite(suite1)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/framework/testcase_CardConnection.py new/pyscard-2.0.5/smartcard/test/framework/testcase_CardConnection.py
--- old/pyscard-2.0.2/smartcard/test/framework/testcase_CardConnection.py 2021-06-11 10:22:55.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/framework/testcase_CardConnection.py 2021-12-29 18:24:03.000000000 +0100
@@ -72,7 +72,7 @@
expectedSWs = {"9f 1a": 1, "6e 0": 2, "9f 20": 3, "9f 22": 4}
self.assertEqual([], response)
self.assertTrue(
- "%x %x" % (sw1, sw2) in expectedSWs or "9f" == "%x" % sw1)
+ "{:x} {:x}".format(sw1, sw2) in expectedSWs or "9f" == "%x" % sw1)
else:
self.assertRaises(NoCardException, cc.connect)
cc.disconnect()
@@ -90,7 +90,7 @@
expectedSWs = {"9f 1a": 1, "6e 0": 2, "9f 20": 3, "9f 22": 4}
self.assertEqual([], response)
self.assertTrue(
- "%x %x" % (sw1, sw2) in expectedSWs or "9f" == "%x" % sw1)
+ "{:x} {:x}".format(sw1, sw2) in expectedSWs or "9f" == "%x" % sw1)
else:
self.assertRaises(NoCardException, cc.connect)
cc.disconnect()
@@ -142,7 +142,7 @@
expectedSWs = {"9f 1a": 1, "6e 0": 2, "9f 20": 3, "9f 22": 4}
self.assertEqual([], response)
self.assertTrue(
- "%x %x" % (sw1, sw2) in expectedSWs or "9f" == "%x" % sw1)
+ "{:x} {:x}".format(sw1, sw2) in expectedSWs or "9f" == "%x" % sw1)
else:
self.assertRaises(NoCardException, cc.connect)
cc.disconnect()
@@ -161,7 +161,7 @@
expectedSWs = {"9f 1a": 1, "6e 0": 2, "9f 20": 3, "9f 22": 4}
self.assertEqual([], response)
self.assertTrue(
- "%x %x" % (sw1, sw2) in expectedSWs or "9f" == "%x" % sw1)
+ "{:x} {:x}".format(sw1, sw2) in expectedSWs or "9f" == "%x" % sw1)
else:
self.assertRaises(NoCardException, cc.connect)
cc.disconnect()
@@ -244,7 +244,7 @@
def suite():
suite1 = unittest.makeSuite(testcase_CardConnection)
- return unittest.TestSuite((suite1))
+ return unittest.TestSuite(suite1)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/framework/testcase_CardMonitor.py new/pyscard-2.0.5/smartcard/test/framework/testcase_CardMonitor.py
--- old/pyscard-2.0.2/smartcard/test/framework/testcase_CardMonitor.py 2021-06-11 10:22:29.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/framework/testcase_CardMonitor.py 2021-12-29 18:24:03.000000000 +0100
@@ -101,7 +101,7 @@
def suite():
suite1 = unittest.makeSuite(testcase_cardmonitorthread)
- return unittest.TestSuite((suite1))
+ return unittest.TestSuite(suite1)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/framework/testcase_CardRequest.py new/pyscard-2.0.5/smartcard/test/framework/testcase_CardRequest.py
--- old/pyscard-2.0.2/smartcard/test/framework/testcase_CardRequest.py 2021-06-11 10:22:36.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/framework/testcase_CardRequest.py 2021-12-29 18:24:03.000000000 +0100
@@ -139,7 +139,7 @@
def suite():
suite1 = unittest.makeSuite(testcase_CardRequest)
- return unittest.TestSuite((suite1))
+ return unittest.TestSuite(suite1)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/framework/testcase_CardService.py new/pyscard-2.0.5/smartcard/test/framework/testcase_CardService.py
--- old/pyscard-2.0.2/smartcard/test/framework/testcase_CardService.py 2021-06-11 10:22:33.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/framework/testcase_CardService.py 2021-12-29 18:24:03.000000000 +0100
@@ -66,12 +66,12 @@
expectedSWs = {"9f 1a": 1, "6e 0": 2, "9f 20": 3, "9f 22": 4}
self.assertEqual([], response)
self.assertTrue(
- "%x %x" % (sw1, sw2) in expectedSWs or "9f" == "%x" % sw1)
+ "{:x} {:x}".format(sw1, sw2) in expectedSWs or "9f" == "%x" % sw1)
def suite():
suite1 = unittest.makeSuite(testcase_CardService)
- return unittest.TestSuite((suite1))
+ return unittest.TestSuite(suite1)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/framework/testcase_CardType.py new/pyscard-2.0.5/smartcard/test/framework/testcase_CardType.py
--- old/pyscard-2.0.2/smartcard/test/framework/testcase_CardType.py 2021-06-11 10:22:26.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/framework/testcase_CardType.py 2021-12-29 18:24:03.000000000 +0100
@@ -133,7 +133,7 @@
def suite():
suite1 = unittest.makeSuite(testcase_CardType)
- return unittest.TestSuite((suite1))
+ return unittest.TestSuite(suite1)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/framework/testcase_ErrorChecking.py new/pyscard-2.0.5/smartcard/test/framework/testcase_ErrorChecking.py
--- old/pyscard-2.0.2/smartcard/test/framework/testcase_ErrorChecking.py 2021-06-11 10:23:00.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/framework/testcase_ErrorChecking.py 2021-12-29 18:24:03.000000000 +0100
@@ -281,7 +281,7 @@
"""Test correct exception error message."""
ecs = ISO7816_4ErrorChecker()
- e = self.failUnlessRaises(
+ e = self.assertRaises(
smartcard.sw.SWExceptions.CheckingErrorException,
ecs,
[],
@@ -292,7 +292,7 @@
"'Status word exception: checking error - " + \
"Conditions of use not satisfied!'")
- e = self.failUnlessRaises(
+ e = self.assertRaises(
smartcard.sw.SWExceptions.CheckingErrorException,
ecs,
[],
@@ -330,7 +330,7 @@
def suite():
suite1 = unittest.makeSuite(testcase_ErrorChecking)
- return unittest.TestSuite((suite1))
+ return unittest.TestSuite(suite1)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/framework/testcase_ExclusiveCardConnection.py new/pyscard-2.0.5/smartcard/test/framework/testcase_ExclusiveCardConnection.py
--- old/pyscard-2.0.2/smartcard/test/framework/testcase_ExclusiveCardConnection.py 2021-06-11 10:22:41.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/framework/testcase_ExclusiveCardConnection.py 2021-12-29 18:24:03.000000000 +0100
@@ -128,7 +128,7 @@
def suite():
suite1 = unittest.makeSuite(testcase_cardmonitorthread)
- return unittest.TestSuite((suite1))
+ return unittest.TestSuite(suite1)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/framework/testcase_readergroups.py new/pyscard-2.0.5/smartcard/test/framework/testcase_readergroups.py
--- old/pyscard-2.0.2/smartcard/test/framework/testcase_readergroups.py 2021-06-11 10:07:32.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/framework/testcase_readergroups.py 2021-12-29 18:24:03.000000000 +0100
@@ -154,7 +154,7 @@
def suite():
suite1 = unittest.makeSuite(testcase_readergroups)
- return unittest.TestSuite((suite1))
+ return unittest.TestSuite(suite1)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/framework/testcase_readermonitor.py new/pyscard-2.0.5/smartcard/test/framework/testcase_readermonitor.py
--- old/pyscard-2.0.2/smartcard/test/framework/testcase_readermonitor.py 2021-06-11 10:22:50.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/framework/testcase_readermonitor.py 2021-12-29 18:24:03.000000000 +0100
@@ -100,7 +100,7 @@
def suite():
suite1 = unittest.makeSuite(testcase_readermonitorthread)
- return unittest.TestSuite((suite1))
+ return unittest.TestSuite(suite1)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/framework/testcase_readermonitorstress.py new/pyscard-2.0.5/smartcard/test/framework/testcase_readermonitorstress.py
--- old/pyscard-2.0.2/smartcard/test/framework/testcase_readermonitorstress.py 2021-06-11 10:07:36.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/framework/testcase_readermonitorstress.py 2021-12-29 18:24:03.000000000 +0100
@@ -183,7 +183,7 @@
def suite():
suite1 = unittest.makeSuite(testcase_readermonitorthread)
- return unittest.TestSuite((suite1))
+ return unittest.TestSuite(suite1)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/framework/testcase_readers.py new/pyscard-2.0.5/smartcard/test/framework/testcase_readers.py
--- old/pyscard-2.0.2/smartcard/test/framework/testcase_readers.py 2021-06-11 10:22:47.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/framework/testcase_readers.py 2021-12-29 18:24:03.000000000 +0100
@@ -109,7 +109,7 @@
def suite():
suite1 = unittest.makeSuite(testcase_readers)
- return unittest.TestSuite((suite1))
+ return unittest.TestSuite(suite1)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/framework/testcase_ulist.py new/pyscard-2.0.5/smartcard/test/framework/testcase_ulist.py
--- old/pyscard-2.0.2/smartcard/test/framework/testcase_ulist.py 2021-06-11 10:07:40.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/framework/testcase_ulist.py 2021-12-29 18:24:03.000000000 +0100
@@ -181,7 +181,7 @@
def suite():
suite1 = unittest.makeSuite(testcase_ulist)
- return unittest.TestSuite((suite1))
+ return unittest.TestSuite(suite1)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/frameworkpcsc/local_config.py new/pyscard-2.0.5/smartcard/test/frameworkpcsc/local_config.py
--- old/pyscard-2.0.2/smartcard/test/frameworkpcsc/local_config.py 2019-10-22 18:44:24.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/frameworkpcsc/local_config.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,10 +0,0 @@
-from smartcard.util import toHexString
-expectedReaders = ['Gemalto PC Twin Reader 00 00']
-expectedATRs = [[63, 47, 0, 128, 105, 175, 2, 4, 1, 49, 0, 0, 0, 14, 131, 62, 159, 22]]
-expectedATRinReader = {}
-for i in range(len(expectedReaders)):
- expectedATRinReader[expectedReaders[i]] = expectedATRs[i]
-expectedReaderForATR = {}
-for i in range(len(expectedReaders)):
- expectedReaderForATR[toHexString(expectedATRs[i])] = expectedReaders[i]
-expectedReaderGroups = ['SCard$DefaultReaders']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/frameworkpcsc/testcase_pcscreadergroups.py new/pyscard-2.0.5/smartcard/test/frameworkpcsc/testcase_pcscreadergroups.py
--- old/pyscard-2.0.2/smartcard/test/frameworkpcsc/testcase_pcscreadergroups.py 2021-06-11 10:23:36.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/frameworkpcsc/testcase_pcscreadergroups.py 2021-12-29 18:24:03.000000000 +0100
@@ -156,7 +156,7 @@
def suite():
suite1 = unittest.makeSuite(testcase_readergroups)
- return unittest.TestSuite((suite1))
+ return unittest.TestSuite(suite1)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/scard/local_config.py new/pyscard-2.0.5/smartcard/test/scard/local_config.py
--- old/pyscard-2.0.2/smartcard/test/scard/local_config.py 2019-10-22 18:44:23.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/scard/local_config.py 2021-03-18 18:20:46.000000000 +0100
@@ -1,6 +1,6 @@
from smartcard.util import toHexString
-expectedReaders = ['Gemalto PC Twin Reader 00 00']
-expectedATRs = [[63, 47, 0, 128, 105, 175, 2, 4, 1, 49, 0, 0, 0, 14, 131, 62, 159, 22]]
+expectedReaders = ['Gemalto PC Twin Reader']
+expectedATRs = [[59, 167, 0, 64, 24, 128, 101, 162, 8, 1, 1, 82]]
expectedATRinReader = {}
for i in range(len(expectedReaders)):
expectedATRinReader[expectedReaders[i]] = expectedATRs[i]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/scard/testcase_getatr.py new/pyscard-2.0.5/smartcard/test/scard/testcase_getatr.py
--- old/pyscard-2.0.2/smartcard/test/scard/testcase_getatr.py 2021-06-11 10:23:29.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/scard/testcase_getatr.py 2021-12-29 18:24:03.000000000 +0100
@@ -90,7 +90,7 @@
def suite():
suite1 = unittest.makeSuite(testcase_getATR)
- return unittest.TestSuite((suite1))
+ return unittest.TestSuite(suite1)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/scard/testcase_getattrib.py new/pyscard-2.0.5/smartcard/test/scard/testcase_getattrib.py
--- old/pyscard-2.0.2/smartcard/test/scard/testcase_getattrib.py 2021-06-11 10:23:15.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/scard/testcase_getattrib.py 2021-12-29 18:24:03.000000000 +0100
@@ -107,7 +107,7 @@
def suite():
suite1 = unittest.makeSuite(testcase_getAttrib)
- return unittest.TestSuite((suite1))
+ return unittest.TestSuite(suite1)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/scard/testcase_geterrormessage.py new/pyscard-2.0.5/smartcard/test/scard/testcase_geterrormessage.py
--- old/pyscard-2.0.2/smartcard/test/scard/testcase_geterrormessage.py 2021-06-11 10:08:01.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/scard/testcase_geterrormessage.py 2021-12-29 18:24:03.000000000 +0100
@@ -67,7 +67,7 @@
def suite():
suite1 = unittest.makeSuite(testcase_geterrormessage)
- return unittest.TestSuite((suite1))
+ return unittest.TestSuite(suite1)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/scard/testcase_listcards.py new/pyscard-2.0.5/smartcard/test/scard/testcase_listcards.py
--- old/pyscard-2.0.2/smartcard/test/scard/testcase_listcards.py 2021-06-11 10:08:02.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/scard/testcase_listcards.py 2021-12-29 18:24:03.000000000 +0100
@@ -211,7 +211,7 @@
def suite():
suite1 = unittest.makeSuite(testcase_listcards)
- return unittest.TestSuite((suite1))
+ return unittest.TestSuite(suite1)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/scard/testcase_locatecards.py new/pyscard-2.0.5/smartcard/test/scard/testcase_locatecards.py
--- old/pyscard-2.0.2/smartcard/test/scard/testcase_locatecards.py 2021-06-11 10:23:22.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/scard/testcase_locatecards.py 2021-12-29 18:24:03.000000000 +0100
@@ -118,7 +118,7 @@
def suite():
suite1 = unittest.makeSuite(testcase_locatecards)
- return unittest.TestSuite((suite1))
+ return unittest.TestSuite(suite1)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/scard/testcase_readergroups.py new/pyscard-2.0.5/smartcard/test/scard/testcase_readergroups.py
--- old/pyscard-2.0.2/smartcard/test/scard/testcase_readergroups.py 2021-06-11 10:23:27.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/scard/testcase_readergroups.py 2021-12-29 18:24:03.000000000 +0100
@@ -124,7 +124,7 @@
def suite():
suite1 = unittest.makeSuite(testcase_readergroups)
- return unittest.TestSuite((suite1))
+ return unittest.TestSuite(suite1)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/scard/testcase_returncodes.py new/pyscard-2.0.5/smartcard/test/scard/testcase_returncodes.py
--- old/pyscard-2.0.2/smartcard/test/scard/testcase_returncodes.py 2021-06-11 10:08:08.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/scard/testcase_returncodes.py 2021-12-29 18:24:03.000000000 +0100
@@ -103,7 +103,7 @@
def suite():
suite1 = unittest.makeSuite(testcase_returncodes)
- return unittest.TestSuite((suite1))
+ return unittest.TestSuite(suite1)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/test/scard/testcase_transaction.py new/pyscard-2.0.5/smartcard/test/scard/testcase_transaction.py
--- old/pyscard-2.0.2/smartcard/test/scard/testcase_transaction.py 2021-06-11 10:23:24.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/test/scard/testcase_transaction.py 2021-12-29 18:24:03.000000000 +0100
@@ -96,7 +96,7 @@
def suite():
suite1 = unittest.makeSuite(testcase_transaction)
- return unittest.TestSuite((suite1))
+ return unittest.TestSuite(suite1)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/smartcard/wx/SimpleSCardApp.py new/pyscard-2.0.5/smartcard/wx/SimpleSCardApp.py
--- old/pyscard-2.0.2/smartcard/wx/SimpleSCardApp.py 2019-10-22 18:44:26.000000000 +0200
+++ new/pyscard-2.0.5/smartcard/wx/SimpleSCardApp.py 2021-12-29 18:24:03.000000000 +0100
@@ -46,7 +46,7 @@
appicon=None,
pos=(-1, -1),
size=(-1, -1)):
- """Constructor for simple smart card application.
+ r"""Constructor for simple smart card application.
@param appname: the application name
@param apppanel: the application panel to display in the application frame
@param appicon: the application icon file; the default is no icon
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/test/test_Exceptions.py new/pyscard-2.0.5/test/test_Exceptions.py
--- old/pyscard-2.0.2/test/test_Exceptions.py 2021-09-22 22:37:46.000000000 +0200
+++ new/pyscard-2.0.5/test/test_Exceptions.py 2022-08-28 18:38:10.000000000 +0200
@@ -6,8 +6,9 @@
import unittest
from smartcard.Exceptions import *
+from smartcard.pcsc.PCSCExceptions import *
from smartcard.scard import *
-from distutils.util import get_platform
+import platform
class TestUtil(unittest.TestCase):
@@ -21,14 +22,17 @@
exc = ListReadersException(0)
self.assertEqual(exc.hresult, 0)
text = str(exc)
- if not get_platform().startswith('win'):
+ if platform.system() != 'Windows':
self.assertEqual(text, "Failed to list readers: Command successful. (0x00000000)")
exc = ListReadersException(0x42)
self.assertEqual(exc.hresult, 0x42)
text = str(exc)
- if not get_platform().startswith('win'):
- self.assertEqual(text, "Failed to list readers: Unknown error: 0x00000042 (0x00000042)")
+ if platform.system() != 'Windows':
+ expected = "Failed to list readers: Unknown error: 0x00000042 (0x00000042)"
+ macos_bug_expected = expected.replace("Unknown", "Unkown")
+ print(expected, macos_bug_expected)
+ self.assertIn(text, [expected, macos_bug_expected])
exc = ListReadersException(SCARD_S_SUCCESS)
self.assertEqual(exc.hresult, 0)
@@ -36,7 +40,7 @@
exc = ListReadersException(SCARD_E_NO_SERVICE)
self.assertEqual(exc.hresult, SCARD_E_NO_SERVICE)
text = str(exc)
- if not get_platform().startswith('win'):
+ if platform.system() != 'Windows':
self.assertEqual(text, "Failed to list readers: Service not available. (0x8010001D)")
def test_NoReadersException(self):
@@ -57,6 +61,38 @@
text = str(exc)
self.assertEqual(text, "")
+ def test_hresult(self):
+ hresult, hcontext = SCardEstablishContext(SCARD_SCOPE_USER)
+ if hresult == SCARD_S_SUCCESS:
+ hresult, hcard, dwActiveProtocol = SCardConnect(
+ hcontext, "INVALID READER NAME", SCARD_SHARE_SHARED, SCARD_PROTOCOL_ANY
+ )
+ self.assertEqual(hresult, SCARD_E_UNKNOWN_READER)
+ else:
+ self.assertEqual(hresult, SCARD_E_NO_SERVICE)
+
+ # PCSC exceptions
+ def test_EstablishContextException(self):
+ exc= EstablishContextException(SCARD_E_NOT_TRANSACTED)
+ self.assertEqual(exc.hresult, SCARD_E_NOT_TRANSACTED)
+ text = str(exc)
+ if platform.system() == 'Windows':
+ expected = "An attempt was made to end a non-existent transaction. "
+ else:
+ expected = "Transaction failed."
+ expected = "Failed to establish context: " + expected + " (0x80100016)"
+ self.assertEqual(text, expected)
+
+ def test_BaseSCardException(self):
+ exc= BaseSCardException(message="foo", hresult=SCARD_E_NOT_TRANSACTED)
+ self.assertEqual(exc.hresult, SCARD_E_NOT_TRANSACTED)
+ text = str(exc)
+ if platform.system() == 'Windows':
+ expected = "An attempt was made to end a non-existent transaction. "
+ else:
+ expected = "Transaction failed."
+ expected = "foo: " + expected + " (0x80100016)"
+ self.assertEqual(text, expected)
if __name__ == '__main__':
unittest.main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/test/test_PCSCExceptions.py new/pyscard-2.0.5/test/test_PCSCExceptions.py
--- old/pyscard-2.0.2/test/test_PCSCExceptions.py 1970-01-01 01:00:00.000000000 +0100
+++ new/pyscard-2.0.5/test/test_PCSCExceptions.py 2022-08-28 18:38:10.000000000 +0200
@@ -0,0 +1,110 @@
+# -*- coding: utf-8 -*-
+
+# to execute:
+# $ cd test
+# $ python -m unittest
+
+import unittest
+from smartcard.pcsc.PCSCExceptions import *
+from smartcard.scard import *
+import platform
+
+
+class TestUtil(unittest.TestCase):
+
+ def test_ListReadersException(self):
+ exc = ListReadersException(0)
+ self.assertEqual(exc.hresult, 0)
+ text = str(exc)
+ if platform.system() == 'Windows':
+ expected = "Failed to list readers: The operation completed successfully. (0x00000000)"
+ else:
+ expected = "Failed to list readers: Command successful. (0x00000000)"
+ self.assertEqual(text, expected)
+
+ exc = ListReadersException(0x42)
+ self.assertEqual(exc.hresult, 0x42)
+ text = str(exc)
+ if platform.system() == 'Windows':
+ expected = "Failed to list readers: The network resource type is not correct. (0x00000042)"
+ else:
+ expected = "Failed to list readers: Unknown error: 0x00000042 (0x00000042)"
+ macos_bug_expected = expected.replace("Unknown", "Unkown")
+ self.assertIn(text, [expected, macos_bug_expected])
+
+ exc = ListReadersException(SCARD_S_SUCCESS)
+ self.assertEqual(exc.hresult, 0)
+
+ exc = ListReadersException(SCARD_E_NO_SERVICE)
+ self.assertEqual(exc.hresult, SCARD_E_NO_SERVICE)
+ text = str(exc)
+ if platform.system() == 'Windows':
+ expected = "Failed to list readers: The Smart Card Resource Manager is not running. (0x8010001D)"
+ else:
+ expected = "Failed to list readers: Service not available. (0x8010001D)"
+ self.assertEqual(text, expected)
+
+ def test_EstablishContextException(self):
+ exc = EstablishContextException(SCARD_E_NO_SERVICE)
+ self.assertEqual(exc.hresult, SCARD_E_NO_SERVICE)
+ text = str(exc)
+ if platform.system() == 'Windows':
+ expected = "Failed to establish context: The Smart Card Resource Manager is not running. (0x8010001D)"
+ else:
+ expected = "Failed to establish context: Service not available. (0x8010001D)"
+ self.assertEqual(text, expected)
+
+ def test_IntroduceReaderException(self):
+ exc = IntroduceReaderException(SCARD_E_DUPLICATE_READER, "foobar")
+ self.assertEqual(exc.hresult, SCARD_E_DUPLICATE_READER)
+ text = str(exc)
+ if platform.system() == 'Windows':
+ expected = "Failed to introduce a new reader: foobar: The reader driver did not produce a unique reader name. (0x8010001B)"
+ else:
+ expected = "Failed to introduce a new reader: foobar: Reader already exists. (0x8010001B)"
+ self.assertEqual(text, expected)
+
+ def test_RemoveReaderFromGroupException(self):
+ exc = RemoveReaderFromGroupException(SCARD_E_INVALID_HANDLE,
+ "readername", "readergroup")
+ self.assertEqual(exc.hresult, SCARD_E_INVALID_HANDLE)
+ text = str(exc)
+ if platform.system() == 'Windows':
+ expected = "Failed to remove reader: readername from group: readergroup: The supplied handle was invalid. (0x80100003)"
+ else:
+ expected = "Failed to remove reader: readername from group: readergroup: Invalid handle. (0x80100003)"
+ self.assertEqual(text, expected)
+
+ def test_AddReaderToGroupException(self):
+ exc = AddReaderToGroupException(SCARD_E_INVALID_HANDLE,
+ "reader", "group")
+ self.assertEqual(exc.hresult, SCARD_E_INVALID_HANDLE)
+ text = str(exc)
+ if platform.system() == 'Windows':
+ expected = "Failed to add reader: reader to group: group: The supplied handle was invalid. (0x80100003)"
+ else:
+ expected = "Failed to add reader: reader to group: group: Invalid handle. (0x80100003)"
+ self.assertEqual(text, expected)
+
+ def test_ReleaseContextException(self):
+ exc = ReleaseContextException(SCARD_E_INVALID_HANDLE)
+ self.assertEqual(exc.hresult, SCARD_E_INVALID_HANDLE)
+ text = str(exc)
+ if platform.system() == 'Windows':
+ expected = "Failed to release context: The supplied handle was invalid. (0x80100003)"
+ else:
+ expected = "Failed to release context: Invalid handle. (0x80100003)"
+ self.assertEqual(text, expected)
+
+ def test_BaseSCardException(self):
+ exc = BaseSCardException(SCARD_E_UNKNOWN_READER)
+ self.assertEqual(exc.hresult, SCARD_E_UNKNOWN_READER)
+ text = str(exc)
+ if platform.system() == 'Windows':
+ expected = "scard exception: The specified reader name is not recognized. (0x80100009)"
+ else:
+ expected = "scard exception: Unknown reader specified. (0x80100009)"
+ self.assertEqual(text, expected)
+
+if __name__ == '__main__':
+ unittest.main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyscard-2.0.2/test/test_SCardGetErrorMessage.py new/pyscard-2.0.5/test/test_SCardGetErrorMessage.py
--- old/pyscard-2.0.2/test/test_SCardGetErrorMessage.py 2021-06-11 10:09:41.000000000 +0200
+++ new/pyscard-2.0.5/test/test_SCardGetErrorMessage.py 2022-08-28 18:38:10.000000000 +0200
@@ -7,7 +7,7 @@
import unittest
from smartcard.scard import SCardGetErrorMessage
from smartcard.scard import SCARD_S_SUCCESS, SCARD_F_INTERNAL_ERROR
-from distutils.util import get_platform
+import platform
class TestError(unittest.TestCase):
@@ -17,7 +17,7 @@
# do not test on Windows
# the error messages are different and localized
- if get_platform() in ('win32', 'win-amd64'):
+ if platform.system() == 'Windows':
return
expected = "Command successful."
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package netdata for openSUSE:Factory checked in at 2022-09-30 17:58:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/netdata (Old)
and /work/SRC/openSUSE:Factory/.netdata.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "netdata"
Fri Sep 30 17:58:07 2022 rev:36 rq:1007105 version:1.36.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/netdata/netdata.changes 2022-08-12 16:06:45.431490484 +0200
+++ /work/SRC/openSUSE:Factory/.netdata.new.2275/netdata.changes 2022-09-30 17:58:25.833330198 +0200
@@ -1,0 +2,76 @@
+Thu Sep 29 19:43:31 UTC 2022 - Mia Herkt <mia(a)0x0.st>
+
+- Update to 1.36.1
+Fixes
+ * An issue that could cause agents running on 32bit distributions
+ to crash during data exchange with the cloud.
+ gh#netdata/netdata#13511
+- go.d.plugin 0.40.1
+Fixes
+ * agent: do cleanup on exit
+ gh#netdata/go.d.plugin#758
+ * mysql: create a dimension per Galera state/status.
+ gh#netdata/go.d.plugin#779
+ * docker: remove data usage call.
+ gh#netdata/go.d.plugin#780
+ * httpcheck: remove spaces in "HTTP Response Time" chart
+ dimensions.
+ gh#netdata/go.d.plugin#788
+ * portcheck: remove instance-specific information from chart
+ families.
+ gh#netdata/go.d.plugin#790
+ * docker: handle the case when no images are found.
+ gh#netdata/go.d.plugin#739
+ * postgres: delay unregistering connString.
+ gh#netdata/go.d.plugin#839
+ * postgres: fix bloat size perc calc.
+ gh#netdata/go.d.plugin#841
+ * postgres: fix unregistering connStr at runtime.
+ gh#netdata/go.d.plugin#843
+ * postgres: query database size only if has 'connect' privilege.
+ gh#netdata/go.d.plugin#845
+ * postgres: don't create bloat charts if no bloat metrics
+ collected.
+ gh#netdata/go.d.plugin#846
+Collectors
+ * docker: collect the number of running containers and their
+ health state
+ gh#netdata/go.d.plugin#760
+ * logind: Keeps track of user logins and sessions by querying the
+ systemd-logind API.
+ gh#netdata/go.d.plugin#786
+ * proxysql: Monitor connections, slow queries, lagging, backends
+ status, and more.
+ gh#netdata/go.d.plugin#703
+ * [WIP] nvidia_smi: Monitors Nvidia GPU using the nvidia-smi
+ CLI tool.
+ gh#netdata/go.d.plugin#844
+Improvements
+ * mysql: produce binary log and MyISAM charts if they're enabled
+ gh#netdata/go.d.plugin#763
+ * mysql: collect more user stats metrics.
+ gh#netdata/go.d.plugin#775
+ * mysql: add Percona MySQL compatibility.
+ gh#netdata/go.d.plugin#776
+ * docker: collect images and volumes stats.
+ gh#netdata/go.d.plugin#777
+ * dnsmasq_dhcp: discover dhcp-ranges at runtime.
+ gh#netdata/go.d.plugin#778
+ * postgres: collect table and index metrics.
+ * systemdunits: create dimension for each unit state.
+ gh#netdata/go.d.plugin#795
+ * phpfpm: added the ability to directly connect to a TCP socket
+ and modify the status path.
+ gh#netdata/go.d.plugin#805
+ * agent: add _collect label (job name) to charts.
+ gh#netdata/go.d.plugin#814
+ * postgres: track acquired locks utilization.
+ gh#netdata/go.d.plugin#831
+ * postgres: human-friendly histogram buckets.
+ gh#netdata/go.d.plugin#833
+ * postgres: human-friendly histogram buckets.
+ gh#netdata/go.d.plugin#833
+ * agent: allow to define labels in config.
+ gh#netdata/go.d.plugin#840
+
+-------------------------------------------------------------------
Old:
----
go.d.plugin-v0.35.0.tar.gz
netdata-v1.36.0.tar.gz
New:
----
go.d.plugin-v0.40.1.tar.gz
netdata-v1.36.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ netdata.spec ++++++
--- /var/tmp/diff_new_pack.sPcsfa/_old 2022-09-30 17:58:26.965332618 +0200
+++ /var/tmp/diff_new_pack.sPcsfa/_new 2022-09-30 17:58:26.973332635 +0200
@@ -18,9 +18,9 @@
%define netdata_user netdata
%define netdata_group netdata
-%define godplugin_version 0.35.0
+%define godplugin_version 0.40.1
Name: netdata
-Version: 1.36.0
+Version: 1.36.1
Release: 0
Summary: A system for distributed real-time performance and health monitoring
# netdata is GPL-3.0+, other licenses refer to included third-party software (see REDISTRIBUTED.md)
++++++ _service ++++++
--- /var/tmp/diff_new_pack.sPcsfa/_old 2022-09-30 17:58:27.005332704 +0200
+++ /var/tmp/diff_new_pack.sPcsfa/_new 2022-09-30 17:58:27.009332712 +0200
@@ -1,7 +1,7 @@
<services>
<service name="download_files" mode="disabled" />
<service name="go_modules" mode="disabled">
- <param name="archive">go.d.plugin-v0.35.0.tar.gz</param>
+ <param name="archive">go.d.plugin-v0.40.1.tar.gz</param>
</service>
</services>
++++++ go.d.plugin-v0.35.0.tar.gz -> go.d.plugin-v0.40.1.tar.gz ++++++
++++ 39342 lines of diff (skipped)
++++++ netdata-v1.36.0.tar.gz -> netdata-v1.36.1.tar.gz ++++++
/work/SRC/openSUSE:Factory/netdata/netdata-v1.36.0.tar.gz /work/SRC/openSUSE:Factory/.netdata.new.2275/netdata-v1.36.1.tar.gz differ: char 12, line 1
++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/netdata/vendor.tar.gz /work/SRC/openSUSE:Factory/.netdata.new.2275/vendor.tar.gz differ: char 5, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package mpv-mpris for openSUSE:Factory checked in at 2022-09-30 17:58:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mpv-mpris (Old)
and /work/SRC/openSUSE:Factory/.mpv-mpris.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mpv-mpris"
Fri Sep 30 17:58:06 2022 rev:4 rq:1007097 version:0.9
Changes:
--------
--- /work/SRC/openSUSE:Factory/mpv-mpris/mpv-mpris.changes 2022-06-18 22:06:09.923654024 +0200
+++ /work/SRC/openSUSE:Factory/.mpv-mpris.new.2275/mpv-mpris.changes 2022-09-30 17:58:24.653327676 +0200
@@ -1,0 +2,9 @@
+Thu Sep 29 19:32:58 UTC 2022 - Mia Herkt <mia(a)0x0.st>
+
+- Update to 0.9
+ * expose musicbrainz metadata if available
+ gh#hoyon/mpv-mpris#79
+ * Fix test failure with glib 2.73.3
+ gh#hoyon/mpv-mpris#80
+
+-------------------------------------------------------------------
Old:
----
mpv-mpris-0.8.1.tar.gz
New:
----
mpv-mpris-0.9.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mpv-mpris.spec ++++++
--- /var/tmp/diff_new_pack.jiUMfc/_old 2022-09-30 17:58:25.085328599 +0200
+++ /var/tmp/diff_new_pack.jiUMfc/_new 2022-09-30 17:58:25.089328608 +0200
@@ -17,7 +17,7 @@
Name: mpv-mpris
-Version: 0.8.1
+Version: 0.9
Release: 0
Summary: MPRIS plugin for mpv
License: MIT
++++++ mpv-mpris-0.8.1.tar.gz -> mpv-mpris-0.9.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mpv-mpris-0.8.1/mpris.c new/mpv-mpris-0.9/mpris.c
--- old/mpv-mpris-0.8.1/mpris.c 2022-06-18 00:35:07.000000000 +0200
+++ new/mpv-mpris-0.9/mpris.c 2022-09-10 13:07:27.000000000 +0200
@@ -360,6 +360,25 @@
add_metadata_item_string(ud->mpv, &dict, "metadata/by-key/Album", "xesam:album");
add_metadata_item_string(ud->mpv, &dict, "metadata/by-key/Genre", "xesam:genre");
+ /* Musicbrainz metadata mappings
+ (https://picard-docs.musicbrainz.org/en/appendices/tag_mapping.html) */
+
+ // IDv3 metadata format
+ add_metadata_item_string(ud->mpv, &dict, "metadata/by-key/MusicBrainz Artist Id", "mb:artistId");
+ add_metadata_item_string(ud->mpv, &dict, "metadata/by-key/MusicBrainz Track Id", "mb:recordingId");
+ add_metadata_item_string(ud->mpv, &dict, "metadata/by-key/MusicBrainz Album Artist Id", "mb:releaseArtistId");
+ add_metadata_item_string(ud->mpv, &dict, "metadata/by-key/MusicBrainz Album Id", "mb:releaseId");
+ add_metadata_item_string(ud->mpv, &dict, "metadata/by-key/MusicBrainz Release Track Id", "mb:trackId");
+ add_metadata_item_string(ud->mpv, &dict, "metadata/by-key/MusicBrainz Work Id", "mb:workId");
+
+ // Vorbis & APEv2 metadata format
+ add_metadata_item_string(ud->mpv, &dict, "metadata/by-key/MUSICBRAINZ_ARTISTID", "mb:artistId");
+ add_metadata_item_string(ud->mpv, &dict, "metadata/by-key/MUSICBRAINZ_TRACKID", "mb:recordingId");
+ add_metadata_item_string(ud->mpv, &dict, "metadata/by-key/MUSICBRAINZ_ALBUMARTISTID", "mb:releaseArtistId");
+ add_metadata_item_string(ud->mpv, &dict, "metadata/by-key/MUSICBRAINZ_ALBUMID", "mb:releaseId");
+ add_metadata_item_string(ud->mpv, &dict, "metadata/by-key/MUSICBRAINZ_RELEASETRACKID", "mb:trackId");
+ add_metadata_item_string(ud->mpv, &dict, "metadata/by-key/MUSICBRAINZ_WORKID", "mb:workId");
+
add_metadata_item_string_list(ud->mpv, &dict, "metadata/by-key/uploader", "xesam:artist");
add_metadata_item_string_list(ud->mpv, &dict, "metadata/by-key/Artist", "xesam:artist");
add_metadata_item_string_list(ud->mpv, &dict, "metadata/by-key/Album_Artist", "xesam:albumArtist");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mpv-mpris-0.8.1/test/setup new/mpv-mpris-0.9/test/setup
--- old/mpv-mpris-0.8.1/test/setup 2022-06-18 00:35:07.000000000 +0200
+++ new/mpv-mpris-0.9/test/setup 2022-09-10 13:07:27.000000000 +0200
@@ -63,8 +63,10 @@
}
playerctl_list_all_is_mpv () {
- player="$(playerctl --list-all 2>&1)"
- test "$player" = mpv
+ ret=0 ; player="$(playerctl --list-all 2> /dev/null)" || ret=$?
+ if [ $ret -ne 0 ] || [ "$player" != mpv ] ; then
+ playerctl --list-all ; return $((ret?ret:1))
+ fi
}
status () {
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package jconvolver for openSUSE:Factory checked in at 2022-09-30 17:58:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/jconvolver (Old)
and /work/SRC/openSUSE:Factory/.jconvolver.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "jconvolver"
Fri Sep 30 17:58:05 2022 rev:4 rq:1007096 version:1.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/jconvolver/jconvolver.changes 2018-12-06 12:19:08.737402047 +0100
+++ /work/SRC/openSUSE:Factory/.jconvolver.new.2275/jconvolver.changes 2022-09-30 17:58:23.765325778 +0200
@@ -1,0 +2,7 @@
+Thu Sep 29 19:25:32 UTC 2022 - Mia Herkt <mia(a)0x0.st>
+
+- Update to 1.1.0
+ * No changelog
+- Refresh jconvolver-build-fixes.diff
+
+-------------------------------------------------------------------
Old:
----
jconvolver-1.0.3.tar.bz2
New:
----
jconvolver-1.1.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ jconvolver.spec ++++++
--- /var/tmp/diff_new_pack.6EzY9h/_old 2022-09-30 17:58:24.237326787 +0200
+++ /var/tmp/diff_new_pack.6EzY9h/_new 2022-09-30 17:58:24.245326803 +0200
@@ -1,7 +1,7 @@
#
# spec file for package jconvolver
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: jconvolver
-Version: 1.0.3
+Version: 1.1.0
Release: 0
Summary: Convolution engine for JACK
License: GPL-2.0-or-later
@@ -50,6 +50,7 @@
Summary: Configuration examples for jconvolver
Group: Productivity/Multimedia/Sound/Utilities
Requires: %{name}
+BuildArch: noarch
%description examples
This package contains configuration examples for jconvolver, a convolution
++++++ jconvolver-1.0.3.tar.bz2 -> jconvolver-1.1.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jconvolver-1.0.3/README new/jconvolver-1.1.0/README
--- old/jconvolver-1.0.3/README 2018-11-24 18:30:19.000000000 +0100
+++ new/jconvolver-1.1.0/README 2019-10-06 16:51:57.000000000 +0200
@@ -1,14 +1,15 @@
-Release notes for jconvolver and fconvolver 1.0.0
--------------------------------------------------
+Release notes for jconvolver and fconvolver 1.0
+-----------------------------------------------
-Jconvolver is a real-time convolution engine. It
-can execute up to a 64 by 64 convolution matrix
+Jconvolver is Jack client performing real-time
+convolution. It supports up to a 64 by 64 matrix
(i.e. 4096 simultaneous convolutions) as long as
-your CPU(s) can handle the load. It is designed
-to be efficient also for sparse (e.g. diagonal)
-matrices, and for sparse impulse responses.
-Unused matrix elements and unused partitions
-do not take any CPU time..
+your CPU(s) can handle the load.
+
+Jconvolver is designed to be efficient also for
+sparse (e.g. diagonal) matrices, and for sparse
+impulse responses. Unused matrix elements and
+unused partitions do not take any CPU time.
In contrast to e.g. BruteFir, jconvolver uses
multiple partition sizes, small ones at the start
@@ -17,7 +18,7 @@
zero processing delay while still remaining
efficient in CPU use. The exact sequence of
partition sizes used depends in a complex way
-on almost all elements of the configuration.
+on some elements of the configuration.
Fconvolver performs the same processing on files
instead of real-time. The same configuration file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jconvolver-1.0.3/README.CONFIG new/jconvolver-1.1.0/README.CONFIG
--- old/jconvolver-1.0.3/README.CONFIG 2018-11-24 18:30:19.000000000 +0100
+++ new/jconvolver-1.1.0/README.CONFIG 2019-10-06 16:42:17.000000000 +0200
@@ -9,6 +9,10 @@
relating to Jack ports are ignored, and input and output
numbers refer to channels in the input and output files.
+The configuration language is 'imperative', i.e. it consists
+of commands that are executed in the order given, and that
+together build up the required configuration.
+
The following commands are available:
@@ -28,9 +32,10 @@
This command is always required and except for the two commands above
must be first one. The 'partition size' is the minumum partition size
- that will be used, and should be between 1 and 16 times the Jack period
+ that will be used, and should be 1, 2, 4, 8 or 16 times the Jack period
size. It will be adjusted (with a warning) otherwise. Processing delay
- will be zero if this is set to the Jack period size.
+ will be zero if this is set to the Jack period size. The Jack period
+ size must be a power of 2.
The 'maximum impulse length' has little or no effect on CPU usage, but
determines the amount of memory used, and will affect the sequence of
@@ -74,7 +79,7 @@
Create an impulse response consisting of a single sample of amplitude
'gain' at position 'delay'. This is mainly used together with the
- /impulse/hilbert command to create complex matrices. Don't use this
+ /impulse/hilbert command to create complex matrices. Do not use this
to measure CPU usage as only a single partition will be computed.
@@ -90,7 +95,7 @@
The commands /impulse/read, /impulse/dirac and /impulse/hilbert
can be used any number of times on the same input/output pair.
-The individual impulse responses will be added.
+The individual impulse responses will be added.
/impulse/copy <input> <output> <from input> <from output>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jconvolver-1.0.3/source/Makefile new/jconvolver-1.1.0/source/Makefile
--- old/jconvolver-1.0.3/source/Makefile 2018-11-24 18:30:19.000000000 +0100
+++ new/jconvolver-1.1.0/source/Makefile 2021-06-29 10:43:51.000000000 +0200
@@ -1,6 +1,6 @@
# --------------------------------------------------------------------------------
#
-# Copyright (C) 2005-2018 Fons Adriaensen <fons(a)linuxaudio.org>
+# Copyright (C) 2005-2021 Fons Adriaensen <fons(a)linuxaudio.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
PREFIX ?= /usr/local
BINDIR ?= $(PREFIX)/bin
-VERSION = 1.0.3
+VERSION = 1.1.0
CPPFLAGS += -MMD -MP -DVERSION=\"$(VERSION)\"
CXXFLAGS += -O2 -Wall
CXXFLAGS += -march=native
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jconvolver-1.0.3/source/fconvolver.cc new/jconvolver-1.1.0/source/fconvolver.cc
--- old/jconvolver-1.0.3/source/fconvolver.cc 2018-11-24 18:30:19.000000000 +0100
+++ new/jconvolver-1.1.0/source/fconvolver.cc 2021-06-29 10:44:58.000000000 +0200
@@ -1,6 +1,6 @@
// -----------------------------------------------------------------------------
//
-// Copyright (C) 2006-2018 Fons Adriaensen <fons(a)linuxaudio.org>
+// Copyright (C) 2006-2021 Fons Adriaensen <fons(a)linuxaudio.org>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
@@ -34,9 +34,10 @@
#endif
-static const char *clopt = "hvMV";
+static const char *clopt = "hvMVT";
static bool M_opt = false;
static bool V_opt = false;
+static bool T_opt = false;
static bool stop = false;
@@ -55,12 +56,13 @@
static void help (void)
{
fprintf (stderr, "\nFconvolver %s\n", VERSION);
- fprintf (stderr, "(C) 2006-2018 Fons Adriaensen <fons(a)linuxaudio.org>\n\n");
+ fprintf (stderr, "(C) 2006-2021 Fons Adriaensen <fons(a)linuxaudio.org>\n\n");
fprintf (stderr, "Usage: fconvolver <configuration file> <input file> <output file>\n");
fprintf (stderr, "Options:\n");
fprintf (stderr, " -h Display this text\n");
fprintf (stderr, " -M Use the FFTW_MEASURE option [off]\n");
fprintf (stderr, " -V Use vector mode processing [off]\n");
+ fprintf (stderr, " -T Truncate output to input size [off]\n");
exit (1);
}
@@ -85,6 +87,7 @@
case 'h' : help (); exit (0);
case 'M' : M_opt = true; break;
case 'V' : V_opt = true; break;
+ case 'T' : T_opt = true; break;
case '?':
fprintf (stderr, "\n%s\n", where);
if (optopt != ':' && strchr (clopt, optopt))
@@ -164,7 +167,8 @@
return 1;
}
- nf = Ainp.size () + size - 1;
+ nf = Ainp.size ();
+ if (! T_opt) nf += size - 1;
buff = new float [fragm * ((ninp > nout) ? ninp : nout)];
signal (SIGINT, sigint_handler);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jconvolver-1.0.3/source/jclient.cc new/jconvolver-1.1.0/source/jclient.cc
--- old/jconvolver-1.0.3/source/jclient.cc 2018-11-24 18:30:19.000000000 +0100
+++ new/jconvolver-1.1.0/source/jclient.cc 2020-04-11 13:50:48.000000000 +0200
@@ -85,7 +85,7 @@
int opts;
opts = JackNoStartServer;
- if (jserv) opts |= JackServerName;
+ if (*jserv) opts |= JackServerName;
if ((_jack_client = jack_client_open (jname, (jack_options_t) opts, &stat, jserv)) == 0)
{
fprintf (stderr, "Can't connect to JACK\n");
++++++ jconvolver-build-fixes.diff ++++++
--- /var/tmp/diff_new_pack.6EzY9h/_old 2022-09-30 17:58:24.489327325 +0200
+++ /var/tmp/diff_new_pack.6EzY9h/_new 2022-09-30 17:58:24.493327334 +0200
@@ -1,8 +1,8 @@
-diff -ru jconvolver-1.0.3.orig/source/Makefile jconvolver-1.0.3/source/Makefile
---- jconvolver-1.0.3.orig/source/Makefile 2018-11-24 18:30:19.000000000 +0100
-+++ jconvolver-1.0.3/source/Makefile 2018-12-06 01:13:16.839661858 +0100
+diff -ru jconvolver-1.1.0.orig/source/Makefile jconvolver-1.1.0/source/Makefile
+--- jconvolver-1.1.0.orig/source/Makefile 2021-06-29 10:43:51.000000000 +0200
++++ jconvolver-1.1.0/source/Makefile 2022-09-29 21:27:18.754266913 +0200
@@ -25,14 +25,13 @@
- VERSION = 1.0.3
+ VERSION = 1.1.0
CPPFLAGS += -MMD -MP -DVERSION=\"$(VERSION)\"
CXXFLAGS += -O2 -Wall
-CXXFLAGS += -march=native
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-pydle for openSUSE:Factory checked in at 2022-09-30 17:58:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pydle (Old)
and /work/SRC/openSUSE:Factory/.python-pydle.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pydle"
Fri Sep 30 17:58:04 2022 rev:10 rq:1007087 version:1.0.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pydle/python-pydle.changes 2021-01-26 14:49:58.487696011 +0100
+++ /work/SRC/openSUSE:Factory/.python-pydle.new.2275/python-pydle.changes 2022-09-30 17:58:22.965324067 +0200
@@ -1,0 +2,32 @@
+Thu Sep 29 18:44:37 UTC 2022 - Mia Herkt <mia(a)0x0.st>
+
+- Update to version 1.0.0
+ Major changes:
+ * API change, monitor and unmonitor are now async def functions
+ gh#Shizmob/pydle#144
+ * Drop support for Python < 3.5
+ gh#Shizmob/pydle#165
+
+ Bug fixes:
+ * Fix parsing IRCv3 tags with missing/empty values
+ gh#Shizmob/pydle#149
+ * Fixup irccat.py example
+ gh#Shizmob/pydle#152
+ * WHOIS uses deprecated @asyncio.coroutine
+ Backward compatable as the interface did not effectively change
+ gh#Shizmob/pydle#161
+ * Fix Missing Awaits in various files
+ Some internal methods were made async. As these methods are
+ internal, they are not covered by SEMVER.
+ gh#Shizmob/pydle#164
+ * Add Missing awaits in coroutine calls
+ gh#Shizmob/pydle#170
+
+ Features:
+ * Enable RplWhoisHostSupport implementation
+ gh#Shizmob/pydle#156
+ * Implement decorator-based event handler registration
+ gh#Shizmob/pydle#165
+
+
+-------------------------------------------------------------------
Old:
----
pydle-0.9.4.tar.gz
New:
----
pydle-1.0.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pydle.spec ++++++
--- /var/tmp/diff_new_pack.DtMWHR/_old 2022-09-30 17:58:23.453325111 +0200
+++ /var/tmp/diff_new_pack.DtMWHR/_new 2022-09-30 17:58:23.457325119 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-pydle
#
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%bcond_without test
Name: python-pydle
-Version: 0.9.4
+Version: 1.0.0
Release: 0
Summary: Modular, callback-based IRCv3 library for Python 3
License: BSD-3-Clause
@@ -28,14 +28,15 @@
URL: https://github.com/Shizmob/pydle
Source: https://github.com/Shizmob/pydle/archive/v%{version}.tar.gz#/pydle-%{versio…
Source1: LICENSE.md
+BuildRequires: %{python_module pip}
+BuildRequires: %{python_module poetry}
BuildRequires: %{python_module pytest}
-BuildRequires: %{python_module setuptools}
BuildRequires: dos2unix
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-pure-sasl
Requires(post): update-alternatives
-Requires(postun): update-alternatives
+Requires(postun):update-alternatives
BuildArch: noarch
%python_subpackages
@@ -57,10 +58,10 @@
cp %{SOURCE1} .
%build
-%python_build
+%pyproject_wheel
%install
-%python_install
+%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%python_expand chmod +x %{buildroot}%{$python_sitelib}/pydle/utils/irccat.py
%python_clone -a %{buildroot}%{_bindir}/pydle
++++++ pydle-0.9.4.tar.gz -> pydle-1.0.0.tar.gz ++++++
++++ 2952 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package crun for openSUSE:Factory checked in at 2022-09-30 17:58:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/crun (Old)
and /work/SRC/openSUSE:Factory/.crun.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "crun"
Fri Sep 30 17:58:02 2022 rev:8 rq:1007084 version:1.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/crun/crun.changes 2022-05-10 15:12:51.499640222 +0200
+++ /work/SRC/openSUSE:Factory/.crun.new.2275/crun.changes 2022-09-30 17:58:20.645319108 +0200
@@ -1,0 +2,40 @@
+Thu Sep 29 10:44:19 UTC 2022 - Dario Faggioli <dfaggioli(a)suse.com>
+
+- Update to 1.6
+ * runc compatibility: -v now prints the version string.
+ * build: fix build with glibc 2.36.
+ * container: drop intermediate userns custom feature.
+ * cgroup: change the delegate cgroup semantic so that the cgroup
+ is created in the container payload after the cgroup namespace
+ is created.
+ * seccomp: use helper process to send file descriptor to the listener
+ socket. It enables to be notified on every syscall without hanging
+ the main process.
+ * linux: add a fallback to using kill(2) if pidfd_send_signal(2)
+ fails with ENOSYS.
+ * krun: add support for krun-sev.
+ * wasmtime: always grant file system capability for workdir inside
+ the container.
+ * wasmtime: inherit arguments list from the handler instead of the
+ current process.
+ * wasmedge: use released wasmedge library instead of libwasmedge_c.so.
+
+- Update to 1.5
+ * add mono based native .NET handler
+ * new Wasmtime backend for running WebAssembly
+ * add support for wasmedge 0.10 and dropping support for wasmedge 0.9.x
+ * dropping support for experimental WasmEdgeProcess from wasmedge handler
+ * honor process user's uid when setting the HOME environment variable
+ * create the current working directory if it is missing in the container
+ * fallback to using a tmpfs mount if umount of /sys and /proc fails
+ * fallback to netlink to setup lo device
+ * fix creating devices in the rootfs
+ * fallback to using io.weight if io.bfq.weight doesn't exist
+ * remove tun/tap from the default allow list
+ * linux: devices mounts have noexec and nosuid
+ * fix copyup of files from the container to the tmpfs
+ * honor $PATH for newgidmap and newguidmap
+ * krun: limit the number of vCPUs to 8
+ * cgroup: add support for cpu.idle
+
+-------------------------------------------------------------------
Old:
----
crun-1.4.5.tar.xz
New:
----
crun-1.6.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ crun.spec ++++++
--- /var/tmp/diff_new_pack.fuB0S4/_old 2022-09-30 17:58:21.141320168 +0200
+++ /var/tmp/diff_new_pack.fuB0S4/_new 2022-09-30 17:58:21.145320177 +0200
@@ -19,7 +19,7 @@
Summary: OCI runtime written in C
License: GPL-2.0-or-later
Name: crun
-Version: 1.4.5
+Version: 1.6
Release: 0
Source0: https://github.com/containers/crun/releases/download/%{version}/%{name}-%{v…
URL: https://github.com/containers/crun
++++++ crun-1.4.5.tar.xz -> crun-1.6.tar.xz ++++++
++++ 23472 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package oci-cli for openSUSE:Factory checked in at 2022-09-30 17:58:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/oci-cli (Old)
and /work/SRC/openSUSE:Factory/.oci-cli.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "oci-cli"
Fri Sep 30 17:58:01 2022 rev:26 rq:1007086 version:3.18.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/oci-cli/oci-cli.changes 2022-09-16 13:32:52.181371220 +0200
+++ /work/SRC/openSUSE:Factory/.oci-cli.new.2275/oci-cli.changes 2022-09-30 17:58:18.973315534 +0200
@@ -1,0 +2,109 @@
+Thu Sep 29 08:57:21 UTC 2022 - John Paul Adrian Glaubitz <adrian.glaubitz(a)suse.com>
+
+- Update to version 3.18.0
+ * Support for previous pagination in Resource Search service
+ * ``oci search resource structured-search --page $opc-previous-token``
+ * Support for Elastic Compute feature as part of database service
+ * ``oci db exadata-infrastructure generate-recommended-vm-cluster-network --db-servers``
+ * ``oci db exadata-infrastructure update --additional-compute-count,
+ --additional-compute-system-model``
+ * ``oci db vm-cluster-network resize --action, --exadata-infrastructure-id,
+ --vm-cluster-network-id, --vm-networks``
+ * Stack Monitoring service
+ * Support for new command
+ * ``oci stack-monitoring resource search-associated-resources``
+ * Support for new optional parameter
+ * ``oci stack-monitoring resource search --external-id``
+ * ``oci stack-monitoring resource create --external-id``
+ * ``oci stack-monitoring resource delete --is-delete-members``
+ * NoSQL service
+ * ``oci nosql query prepare``
+ * Added a new optional argument ``--is-get-query-plan``
+ * Added the optional ``queryPlan`` property in the JSON response
+ * ``oci nosql table get``
+ * Added the properties ``isAsUuid`` and ``isGenerated`` to the ``Column``
+ JSON object that is included in the JSON response
+ * Added the ``identity`` JSON object that is included in the the JSON response
+ * ``oci nosql table list-table-usage``
+ * Added the property ``maxShardSizeUsageInPercent`` in the JSON response
+ * [BREAKING] DNS service
+ * ``oci dns resolver-endpoint create --subnet-id --nsg-ids``
+ * Required parameter ``--subnet-id`` was added
+ * Optional paramater ``--nsg-ids`` was added
+ * Optional paramater ``--endpoint-type`` was removed
+ * ``oci dns resolver-endpoint update``
+ * The optional paramater ``--nsg-ids`` was added
+- from version 3.17.0
+ * Support for the Cloud Migrations service
+ * ``oci cloud-migrations``
+ * Support for the Cloud Bridge service
+ * ``oci cloud-bridge``
+ * Support for listing summary messages, trail files, and trail file
+ sequences for a deployment in the Golden Gate service
+ * ``oci goldengate message-summary list-messages``
+ * ``oci goldengate trail-file-summary list-trail-files``
+ * ``oci goldengate trail-sequence-summary list-trail-sequences``
+ * Threat Intelligence service
+ * Support for new command
+ * ``oci threat-intelligence indicator summarize``
+ * Support for new optional parameters
+ * ``oci threat-intelligence indicator-summaries list-indicators --time-created-after
+ --time-created-before --time-last-seen-after --time-last-seen-before --time-updated-before``
+ * Log Analytics service
+ * Support for new commands
+ * ``oci log-analytics ingest-time-rule``
+ * ``oci log-analytics rule list``
+ * Support for new optional parameters
+ * ``oci log-analytics object-collection-rule create --log-set
+ --log-set-ext-regex --log-set-key --timezone``
+ * ``oci log-analytics object-collection-rule update --log-set
+ --log-set-ext-regex --log-set-key --timezone``
+ * ``oci log-analytics storage recall-archived-data --log-sets --query-string``
+ * Support for new commands in the DevOps service
+ * ``oci devops connection create-vbs-connection``
+ * ``oci devops connection update-vbs-connection``
+ * ``oci devops trigger create-vbs-trigger``
+ * ``oci devops trigger update-vbs-trigger``
+ * Support for new optional parameters in the Usage service
+ * ``oci usage-api schedule create --output-file-format --saved-report-id --description``
+ * ``oci usage-api schedule update --output-file-format --result-location --description``
+ * Data integration service
+ * Support for new commands
+ * ``oci data-integration runtime-operator get``
+ * ``oci data-integration runtime-operators list-runtime-operators``
+ * ``oci data-integration runtime-pipeline get``
+ * ``oci data-integration runtime-pipelines list-runtime-pipelines``
+ * ``oci data-integration task-run-lineage list-task-run-lineages``
+ * ``oci data-integration task-run-lineage list_taskrun_lineages``
+ * Support for new optional parameters
+ * ``oci data-integration data-entity list --include-types``
+ * ``oci data-integration data-flow-validation create
+ --target-field-map-summary --typed-object-map``
+ * ``oci data-integration dis-application create --compartment-id``
+ * ``oci data-integration schema list --include-types``
+ * ``oci data-integration workspace create --endpoint-compartment-id --endpoint-id
+ --endpoint-name --registry-compartment-id --registry-id --registry-name``
+ * [BREAKING] oci governance-rules-control-plane work-request work-request-log
+ list renamed in the Governance Rules Control Plane service
+ * ``oci governance-rules-control-plane work-request
+ work-request-log-entry list-work-request-logs``
+ * [BREAKING] --previous-deployment-id is now a required parameter in the DevOps service
+ * ``oci devops deployment create-pipeline-redeployment --previous-deployment-id``
+ * The parameter --query-properties is now optional in the Usage service
+ * ``oci usage-api schedule create``
+- from version 3.16.1
+ * Support for calling Oracle Cloud Infrastructure services
+ in the Madrid region (``--region eu-madrid-1``)
+ * Data Science service
+ * Support for new optional parameter
+ * ``oci data-science model create-model-artifact --if-match``
+ * Support for new commands
+ * ``oci data-science model export-model-artifact``
+ * ``oci data-science model export-model-artifact-artifact-export-details-object-storage``
+ * ``oci data-science model import-model-artifact``
+ * ``oci data-science model import-model-artifact-artifact-import-details-object-storage``
+- Refresh patches for new version
+ + oc_relax-python-depends.patch
+- Update BuildRequires and Requires from setup.py
+
+-------------------------------------------------------------------
Old:
----
oci-cli-3.16.0.tar.gz
New:
----
oci-cli-3.18.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ oci-cli.spec ++++++
--- /var/tmp/diff_new_pack.jsOxfm/_old 2022-09-30 17:58:19.553316774 +0200
+++ /var/tmp/diff_new_pack.jsOxfm/_new 2022-09-30 17:58:19.561316791 +0200
@@ -28,7 +28,7 @@
%bcond_with test
%endif
Name: oci-cli%{psuffix}
-Version: 3.16.0
+Version: 3.18.0
Release: 0
Summary: Oracle Cloud Infrastructure CLI
License: Apache-2.0
@@ -46,7 +46,7 @@
BuildRequires: python3-cryptography >= 3.2.1
BuildRequires: python3-devel
BuildRequires: python3-jmespath >= 0.10.0
-BuildRequires: python3-oci-sdk >= 2.81.0
+BuildRequires: python3-oci-sdk >= 2.84.0
BuildRequires: python3-pyOpenSSL >= 19.1.0
BuildRequires: python3-python-dateutil >= 2.5.3
BuildRequires: python3-pytz >= 2016.10
@@ -82,7 +82,7 @@
Requires: python3-click >= 7.1.2
Requires: python3-cryptography >= 3.2.1
Requires: python3-jmespath >= 0.10.0
-Requires: python3-oci-sdk >= 2.81.0
+Requires: python3-oci-sdk >= 2.84.0
Requires: python3-prompt_toolkit >= 3.0.29
Requires: python3-pyOpenSSL >= 19.1.0
Requires: python3-python-dateutil >= 2.5.3
++++++ oc_relax-python-depends.patch ++++++
--- /var/tmp/diff_new_pack.jsOxfm/_old 2022-09-30 17:58:19.581316834 +0200
+++ /var/tmp/diff_new_pack.jsOxfm/_new 2022-09-30 17:58:19.585316842 +0200
@@ -1,6 +1,6 @@
-diff -Nru oci-cli-3.16.0.orig/requirements.txt oci-cli-3.16.0/requirements.txt
---- oci-cli-3.16.0.orig/requirements.txt 2022-09-06 22:30:24.000000000 +0200
-+++ oci-cli-3.16.0/requirements.txt 2022-09-13 15:48:41.288746269 +0200
+diff -Nru oci-cli-3.18.0.orig/requirements.txt oci-cli-3.18.0/requirements.txt
+--- oci-cli-3.18.0.orig/requirements.txt 2022-09-28 00:50:08.000000000 +0200
++++ oci-cli-3.18.0/requirements.txt 2022-09-29 11:45:07.455751956 +0200
@@ -2,41 +2,41 @@
# (https://pip.pypa.io/en/stable/reference/pip_install/#requirements-file-form…)
# you may need to use the --extra-index-url option instead.
@@ -18,7 +18,7 @@
-jmespath==0.10.0
-ndg-httpsclient==0.4.2
-mock==2.0.0
--oci==2.81.0
+-oci==2.84.0
-packaging==20.2
-pluggy==0.13.0
-py==1.10.0
@@ -37,7 +37,7 @@
+jmespath>=0.10.0
+ndg-httpsclient>=0.4.2
+mock>=2.0.0
-+oci>=2.81.0
++oci>=2.84.0
+packaging>=20.2
+pluggy>=0.13.0
+py>=1.10.0
@@ -75,15 +75,15 @@
+PyYAML>=5.4
+docutils>=0.15.2
+prompt-toolkit>=3.0.29
-diff -Nru oci-cli-3.16.0.orig/setup.py oci-cli-3.16.0/setup.py
---- oci-cli-3.16.0.orig/setup.py 2022-09-06 22:30:24.000000000 +0200
-+++ oci-cli-3.16.0/setup.py 2022-09-13 15:48:05.805408062 +0200
+diff -Nru oci-cli-3.18.0.orig/setup.py oci-cli-3.18.0/setup.py
+--- oci-cli-3.18.0.orig/setup.py 2022-09-28 00:50:08.000000000 +0200
++++ oci-cli-3.18.0/setup.py 2022-09-29 11:45:45.796411459 +0200
@@ -29,23 +29,23 @@
readme = f.read()
requires = [
-- 'oci==2.81.0',
-+ 'oci>=2.81.0',
+- 'oci==2.84.0',
++ 'oci>=2.84.0',
'arrow>=1.0.0',
'certifi',
- 'click==7.1.2',
++++++ oci-cli-3.16.0.tar.gz -> oci-cli-3.18.0.tar.gz ++++++
++++ 16156 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-jfscripts for openSUSE:Factory checked in at 2022-09-30 17:57:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-jfscripts (Old)
and /work/SRC/openSUSE:Factory/.python-jfscripts.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-jfscripts"
Fri Sep 30 17:57:58 2022 rev:3 rq:1007082 version:1.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-jfscripts/python-jfscripts.changes 2021-02-18 20:53:01.567474045 +0100
+++ /work/SRC/openSUSE:Factory/.python-jfscripts.new.2275/python-jfscripts.changes 2022-09-30 17:58:17.537312464 +0200
@@ -1,0 +2,45 @@
+Thu Sep 29 02:59:16 UTC 2022 - Yogalakshmi Arunachalam <yarunachalam(a)suse.com>
+
+- Update to version 1.1.0
+ * Reformat tox.ini
+ * Add some types
+ * Add more type hints
+ * Bump version 1.0.0
+ * Regenerate the README file
+ * Get rid of the jflib dependency
+ * Remove unused script
+ * Fix tests
+ * Allow type unions with | in 3.8
+ * Run tests on Github actions
+ * Reformat using black and isort
+ * Add some types
+ * Clean up
+ * Merge branch 'main' of github.com:Josef-Friedrich/jfscripts
+ * Auto commit
+ * Regenerate the README
+ * Generate the README using the readme-patcher
+ * Update dependency to the readme patcher
+ * Add README_template.rst
+ * Use the version number in pyproject.toml as the single source of truth
+ * Remove the u prefix of same strings
+ * Unify the use of quotation marks in the file pyproject.toml
+ * Replace nose with nose2
+ * Place the test files in a folder named `tests`
+ * add pyproject.toml
+ * Remove more files that belonged to the versioneer
+ * Remove versioneer
+ * Sort imports using isort
+ * Upgrade versioneer
+ * Delete obsolete files
+ * New option -n, --png
+ * Add description
+ * Implement --auto-png
+ * Use jflib in the tests to import the class ���Capturing()���
+ * New function: argparser_to_readme()
+ * Update setup.py
+ * Revert "Test on 3.7"
+ * Test on 3.7
+ * Fix flake8 issues
+ * Add readthedocs badge
+
+-------------------------------------------------------------------
Old:
----
jfscripts-0.5.0.tar.gz
New:
----
jfscripts-1.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-jfscripts.spec ++++++
--- /var/tmp/diff_new_pack.uFvTXW/_old 2022-09-30 17:58:17.953313353 +0200
+++ /var/tmp/diff_new_pack.uFvTXW/_new 2022-09-30 17:58:17.957313362 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-jfscripts
#
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2020, Martin Hauke <mardnh(a)gmx.de>
#
# All modifications and additions to the file contributed by third parties
@@ -20,7 +20,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-jfscripts
-Version: 0.5.0
+Version: 1.1.0
Release: 0
Summary: A collection of various tools written by Josef Friedrich
License: MIT
@@ -35,7 +35,7 @@
Requires: python-termcolor
BuildArch: noarch
Requires(post): update-alternatives
-Requires(postun): update-alternatives
+Requires(postun):update-alternatives
%python_subpackages
%description
++++++ jfscripts-0.5.0.tar.gz -> jfscripts-1.1.0.tar.gz ++++++
++++ 5377 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-spotipy for openSUSE:Factory checked in at 2022-09-30 17:57:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-spotipy (Old)
and /work/SRC/openSUSE:Factory/.python-spotipy.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-spotipy"
Fri Sep 30 17:57:59 2022 rev:8 rq:1007083 version:2.20.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-spotipy/python-spotipy.changes 2022-04-20 16:55:11.698503387 +0200
+++ /work/SRC/openSUSE:Factory/.python-spotipy.new.2275/python-spotipy.changes 2022-09-30 17:58:18.237313960 +0200
@@ -1,0 +2,10 @@
+Thu Sep 29 13:02:28 UTC 2022 - Adrian Schr��ter <adrian(a)suse.de>
+
+- update to version 2.20.0
+ ### Added
+ * Added `RedisCacheHandler`, a cache handler that stores the token info in Redis.
+ * Changed URI handling in `client.Spotify._get_id()` to remove qureies if provided by error.
+ * Added a new parameter to `RedisCacheHandler` to allow custom keys (instead of the default `token_info` key)
+ * Simplify check for existing token in `RedisCacheHandler`
+
+-------------------------------------------------------------------
Old:
----
2.19.0.tar.gz
New:
----
2.20.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-spotipy.spec ++++++
--- /var/tmp/diff_new_pack.CNK9FF/_old 2022-09-30 17:58:18.649314841 +0200
+++ /var/tmp/diff_new_pack.CNK9FF/_new 2022-09-30 17:58:18.653314849 +0200
@@ -18,7 +18,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-spotipy
-Version: 2.19.0
+Version: 2.20.0
Release: 0
Summary: Client for the Spotify Web API
License: MIT
@@ -26,11 +26,14 @@
# https://github.com/plamere/spotipy/issues/454
Source: https://github.com/plamere/spotipy/archive/%{version}.tar.gz
BuildRequires: %{python_module devel}
+BuildRequires: %{python_module redis}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
-Requires: python-requests >= 2.20.0
-Requires: python-six >= 1.10.0
+Requires: python-redis >= 3.5.3
+Requires: python-requests >= 2.25.0
+Requires: python-six >= 1.15.0
+Requires: python-urllib3 >= 1.26.0
BuildArch: noarch
# SECTION test requirements
BuildRequires: %{python_module pytest}
++++++ 2.19.0.tar.gz -> 2.20.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spotipy-2.19.0/.github/workflows/pythonapp.yml new/spotipy-2.20.0/.github/workflows/pythonapp.yml
--- old/spotipy-2.19.0/.github/workflows/pythonapp.yml 2021-08-12 12:27:26.000000000 +0200
+++ new/spotipy-2.20.0/.github/workflows/pythonapp.yml 2022-06-18 23:59:37.000000000 +0200
@@ -8,7 +8,7 @@
runs-on: ubuntu-latest
strategy:
matrix:
- python-version: [2.7, 3.5, 3.6, 3.7, 3.8]
+ python-version: [2.7, 3.6, 3.7, 3.8, 3.9]
steps:
- uses: actions/checkout@v2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spotipy-2.19.0/CHANGELOG.md new/spotipy-2.20.0/CHANGELOG.md
--- old/spotipy-2.19.0/CHANGELOG.md 2021-08-12 12:27:26.000000000 +0200
+++ new/spotipy-2.20.0/CHANGELOG.md 2022-06-18 23:59:37.000000000 +0200
@@ -9,6 +9,17 @@
// Add your changes here and then delete this line
+## [2.20.0] - 2022-06-18
+
+### Added
+* Added `RedisCacheHandler`, a cache handler that stores the token info in Redis.
+* Changed URI handling in `client.Spotify._get_id()` to remove qureies if provided by error.
+* Added a new parameter to `RedisCacheHandler` to allow custom keys (instead of the default `token_info` key)
+* Simplify check for existing token in `RedisCacheHandler`
+
+### Changed
+* Removed Python 3.5 and added Python 3.9 in Github Action
+
## [2.19.0] - 2021-08-12
### Added
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spotipy-2.19.0/docs/index.rst new/spotipy-2.20.0/docs/index.rst
--- old/spotipy-2.19.0/docs/index.rst 2021-08-12 12:27:26.000000000 +0200
+++ new/spotipy-2.20.0/docs/index.rst 2022-06-18 23:59:37.000000000 +0200
@@ -143,7 +143,7 @@
------
See `Using
-Scopes <https://developer.spotify.com/web-api/using-scopes/>`_ for information
+Scopes <https://developer.spotify.com/documentation/general/guides/authorization/sc…>`_ for information
about scopes.
Redirect URI
@@ -231,6 +231,11 @@
cache handler ``CacheHandler``. The default cache handler ``CacheFileHandler`` is a good example.
An instance of that new class can then be passed as a parameter when
creating ``SpotifyOAuth``, ``SpotifyPKCE`` or ``SpotifyImplicitGrant``.
+The following handlers are available and defined in the URL above.
+ - ``CacheFileHandler``
+ - ``MemoryCacheHandler``
+ - ``DjangoSessionCacheHandler``
+ - ``RedisCacheHandler``
Feel free to contribute new cache handlers to the repo.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spotipy-2.19.0/examples/unfollow_playlist.py new/spotipy-2.20.0/examples/unfollow_playlist.py
--- old/spotipy-2.19.0/examples/unfollow_playlist.py 1970-01-01 01:00:00.000000000 +0100
+++ new/spotipy-2.20.0/examples/unfollow_playlist.py 2022-06-18 23:59:37.000000000 +0200
@@ -0,0 +1,31 @@
+import argparse
+import logging
+
+import spotipy
+from spotipy.oauth2 import SpotifyOAuth
+
+logger = logging.getLogger('examples.unfollow_playlist')
+logging.basicConfig(level='DEBUG')
+
+'''
+Spotify doesn't have a dedicated endpoint for deleting a playlist. However,
+unfollowing a playlist has the effect of deleting it from the user's account.
+When a playlist is removed from the user's account, the system unfollows it,
+and then no longer shows it in playlist list.'''
+
+
+def get_args():
+ parser = argparse.ArgumentParser(description='Unfollows a playlist')
+ parser.add_argument('-p', '--playlist', required=True,
+ help='Playlist id')
+ return parser.parse_args()
+
+
+def main():
+ args = get_args()
+ sp = spotipy.Spotify(auth_manager=SpotifyOAuth())
+ sp.current_user_unfollow_playlist(args.playlist)
+
+
+if __name__ == '__main__':
+ main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spotipy-2.19.0/setup.py new/spotipy-2.20.0/setup.py
--- old/spotipy-2.19.0/setup.py 2021-08-12 12:27:26.000000000 +0200
+++ new/spotipy-2.20.0/setup.py 2022-06-18 23:59:37.000000000 +0200
@@ -18,7 +18,7 @@
setup(
name='spotipy',
- version='2.19.0',
+ version='2.20.0',
description='A light weight Python library for the Spotify Web API',
long_description=long_description,
long_description_content_type="text/markdown",
@@ -26,6 +26,7 @@
author_email="paul(a)echonest.com",
url='https://spotipy.readthedocs.org/',
install_requires=[
+ 'redis>=3.5.3',
'requests>=2.25.0',
'six>=1.15.0',
'urllib3>=1.26.0'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spotipy-2.19.0/spotipy/cache_handler.py new/spotipy-2.20.0/spotipy/cache_handler.py
--- old/spotipy-2.19.0/spotipy/cache_handler.py 2021-08-12 12:27:26.000000000 +0200
+++ new/spotipy-2.20.0/spotipy/cache_handler.py 2022-06-18 23:59:37.000000000 +0200
@@ -1,4 +1,9 @@
-__all__ = ['CacheHandler', 'CacheFileHandler', 'DjangoSessionCacheHandler', 'MemoryCacheHandler']
+__all__ = [
+ 'CacheHandler',
+ 'CacheFileHandler',
+ 'DjangoSessionCacheHandler',
+ 'MemoryCacheHandler',
+ 'RedisCacheHandler']
import errno
import json
@@ -6,6 +11,8 @@
import os
from spotipy.util import CLIENT_CREDS_ENV_VARS
+from redis import RedisError
+
logger = logging.getLogger(__name__)
@@ -138,3 +145,37 @@
self.request.session['token_info'] = token_info
except Exception as e:
logger.warning("Error saving token to cache: " + str(e))
+
+
+class RedisCacheHandler(CacheHandler):
+ """
+ A cache handler that stores the token info in the Redis.
+ """
+
+ def __init__(self, redis, key=None):
+ """
+ Parameters:
+ * redis: Redis object provided by redis-py library
+ (https://github.com/redis/redis-py)
+ * key: May be supplied, will otherwise be generated
+ (takes precedence over `token_info`)
+ """
+ self.redis = redis
+ self.key = key if key else 'token_info'
+
+ def get_cached_token(self):
+ token_info = None
+ try:
+ token_info = self.redis.get(self.key)
+ if token_info:
+ return json.loads(token_info)
+ except RedisError as e:
+ logger.warning('Error getting token from cache: ' + str(e))
+
+ return token_info
+
+ def save_token_to_cache(self, token_info):
+ try:
+ self.redis.set(self.key, json.dumps(token_info))
+ except RedisError as e:
+ logger.warning('Error saving token to cache: ' + str(e))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spotipy-2.19.0/spotipy/client.py new/spotipy-2.20.0/spotipy/client.py
--- old/spotipy-2.19.0/spotipy/client.py 2021-08-12 12:27:26.000000000 +0200
+++ new/spotipy-2.20.0/spotipy/client.py 2022-06-18 23:59:37.000000000 +0200
@@ -633,7 +633,7 @@
""" Get full details of the tracks of a playlist.
Parameters:
- - playlist_id - the id of the playlist
+ - playlist_id - the playlist ID, URI or URL
- fields - which fields to return
- limit - the maximum number of tracks to return
- offset - the index of the first track to return
@@ -661,7 +661,7 @@
""" Get full details of the tracks and episodes of a playlist.
Parameters:
- - playlist_id - the id of the playlist
+ - playlist_id - the playlist ID, URI or URL
- fields - which fields to return
- limit - the maximum number of tracks to return
- offset - the index of the first track to return
@@ -683,7 +683,7 @@
""" Get cover of a playlist.
Parameters:
- - playlist_id - the id of the playlist
+ - playlist_id - the playlist ID, URI or URL
"""
plid = self._get_id("playlist", playlist_id)
return self._get("playlists/%s/images" % (plid))
@@ -1913,7 +1913,7 @@
if type != fields[-2]:
logger.warning('Expected id of type %s but found type %s %s',
type, fields[-2], id)
- return fields[-1]
+ return fields[-1].split("?")[0]
fields = id.split("/")
if len(fields) >= 3:
itype = fields[-2]
1
0