Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-pynitrokey for
openSUSE:Factory checked in at 2026-03-17 19:04:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pynitrokey (Old)
and /work/SRC/openSUSE:Factory/.python-pynitrokey.new.8177 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pynitrokey"
Tue Mar 17 19:04:42 2026 rev:24 rq:1339489 version:0.11.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pynitrokey/python-pynitrokey.changes
2026-01-29 17:49:12.088180335 +0100
+++
/work/SRC/openSUSE:Factory/.python-pynitrokey.new.8177/python-pynitrokey.changes
2026-03-17 19:06:22.657346520 +0100
@@ -1,0 +2,15 @@
+Tue Mar 17 06:28:24 UTC 2026 - Johannes Kastl
<[email protected]>
+
+- update to 0.11.4:
+ * Add maintainer keys and check tag signatures in CI by
+ @robin-nitrokey in #723
+ * ci: Fetch tags for signature verification by @robin-nitrokey in
+ #725
+ * Update maintainers file by @robin-nitrokey in #724
+ * Update signature key by @robin-nitrokey in #726
+ * Update locked dependencies by @robin-nitrokey in #727
+ * Update developer and packaging docs by @robin-nitrokey in #729
+ * Add CODEOWNERS file by @robin-nitrokey in #732
+ * Feat/better log file handling by @james-knippes in #733
+
+-------------------------------------------------------------------
Old:
----
pynitrokey-0.11.3.tar.gz
New:
----
pynitrokey-0.11.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pynitrokey.spec ++++++
--- /var/tmp/diff_new_pack.LFVDE6/_old 2026-03-17 19:06:23.237370557 +0100
+++ /var/tmp/diff_new_pack.LFVDE6/_new 2026-03-17 19:06:23.237370557 +0100
@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-pynitrokey
-Version: 0.11.3
+Version: 0.11.4
Release: 0
Summary: Python Library for Nitrokey devices
License: Apache-2.0 OR MIT
++++++ pynitrokey-0.11.3.tar.gz -> pynitrokey-0.11.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pynitrokey-0.11.3/PKG-INFO
new/pynitrokey-0.11.4/PKG-INFO
--- old/pynitrokey-0.11.3/PKG-INFO 1970-01-01 01:00:00.000000000 +0100
+++ new/pynitrokey-0.11.4/PKG-INFO 1970-01-01 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: pynitrokey
-Version: 0.11.3
+Version: 0.11.4
Summary: Python client for Nitrokey devices
License: Apache-2.0 OR MIT
License-File: LICENSES/Apache-2.0.txt
@@ -99,7 +99,7 @@
## Development
-Information for developers and contributors can be found in the [Developer
Guide](./docs/developer-guide.rst).
+Information for developers and contributors can be found in the [Developer
Guide](./docs/developer-guide.md).
## Contributors
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pynitrokey-0.11.3/README.md
new/pynitrokey-0.11.4/README.md
--- old/pynitrokey-0.11.3/README.md 1970-01-01 01:00:00.000000000 +0100
+++ new/pynitrokey-0.11.4/README.md 1970-01-01 01:00:00.000000000 +0100
@@ -57,7 +57,7 @@
## Development
-Information for developers and contributors can be found in the [Developer
Guide](./docs/developer-guide.rst).
+Information for developers and contributors can be found in the [Developer
Guide](./docs/developer-guide.md).
## Contributors
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pynitrokey-0.11.3/pynitrokey/cli/__init__.py
new/pynitrokey-0.11.4/pynitrokey/cli/__init__.py
--- old/pynitrokey-0.11.3/pynitrokey/cli/__init__.py 1970-01-01
01:00:00.000000000 +0100
+++ new/pynitrokey-0.11.4/pynitrokey/cli/__init__.py 1970-01-01
01:00:00.000000000 +0100
@@ -22,7 +22,7 @@
from pynitrokey.cli.pro import pro
from pynitrokey.cli.start import start
from pynitrokey.cli.storage import storage
-from pynitrokey.confconsts import LOG_FN, LOG_FORMAT
+from pynitrokey.confconsts import LOG_FILE, LOG_FN, LOG_FORMAT
from pynitrokey.helpers import filter_sensitive_parameters, local_critical
logger = logging.getLogger(__name__)
@@ -51,7 +51,7 @@
@click.group(context_settings={"help_option_names": ["-h", "--help"]})
def nitropy() -> None:
- handler = logging.FileHandler(filename=LOG_FN, delay=True,
encoding="utf-8")
+ handler = logging.StreamHandler(stream=LOG_FILE)
logging.basicConfig(format=LOG_FORMAT, level=logging.DEBUG,
handlers=[handler])
logger.info(f"Timestamp: {datetime.now()}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pynitrokey-0.11.3/pynitrokey/cli/nk3/secrets.py
new/pynitrokey-0.11.4/pynitrokey/cli/nk3/secrets.py
--- old/pynitrokey-0.11.3/pynitrokey/cli/nk3/secrets.py 1970-01-01
01:00:00.000000000 +0100
+++ new/pynitrokey-0.11.4/pynitrokey/cli/nk3/secrets.py 1970-01-01
01:00:00.000000000 +0100
@@ -20,7 +20,13 @@
)
from pynitrokey.cli.nk3 import Context, nk3
-from pynitrokey.helpers import AskUser, b32padding, local_critical, local_print
+from pynitrokey.helpers import (
+ AskUser,
+ b32padding,
+ local_critical,
+ local_print,
+ local_print_secret,
+)
@nk3.group()
@@ -609,7 +615,7 @@
f"Timestamp:
{datetime.isoformat(datetime.fromtimestamp(timestamp), timespec='seconds')}
({timestamp}), period: {period}",
file=sys.stderr,
)
- local_print(code.decode())
+ local_print_secret(code.decode())
try:
call(app)
@@ -664,21 +670,21 @@
data = {k: decode_if_bytes(v) for k, v in cred.__dict__.items()}
if password:
if cred.password:
- local_print(decode_if_bytes(cred.password))
+ local_print_secret(decode_if_bytes(cred.password))
elif format == "json":
js = json.dumps(data)
- local_print(js)
+ local_print_secret(js)
elif format == "csv":
si = io.StringIO()
writer = csv.DictWriter(si, fieldnames=data)
writer.writeheader()
writer.writerow(data)
- local_print(si.getvalue().strip())
+ local_print_secret(si.getvalue().strip())
else:
for f, v in data.items():
# f: str
# v: bytes
- local_print(f"{f:20}: {decode_if_bytes(v, '---')}")
+ local_print_secret(f"{f:20}: {decode_if_bytes(v, '---')}")
try:
call(app)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pynitrokey-0.11.3/pynitrokey/cli/nkfido2.py
new/pynitrokey-0.11.4/pynitrokey/cli/nkfido2.py
--- old/pynitrokey-0.11.3/pynitrokey/cli/nkfido2.py 1970-01-01
01:00:00.000000000 +0100
+++ new/pynitrokey-0.11.4/pynitrokey/cli/nkfido2.py 1970-01-01
01:00:00.000000000 +0100
@@ -22,7 +22,7 @@
from pynitrokey.cli.program import program
from pynitrokey.cli.update import update
from pynitrokey.exceptions import NoSoloFoundError
-from pynitrokey.helpers import local_critical, local_print
+from pynitrokey.helpers import local_critical, local_print, local_print_secret
@click.group()
@@ -74,7 +74,7 @@
if not 0 <= count <= 255:
local_critical(f"Number of bytes must be between 0 and 255, you passed
{count}")
- local_print(nkfido2.find(serial).get_rng(count).hex())
+ local_print_secret(nkfido2.find(serial).get_rng(count).hex())
# @todo: not really useful like this? endless output only on request (--count
?)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pynitrokey-0.11.3/pynitrokey/cli/trussed/__init__.py
new/pynitrokey-0.11.4/pynitrokey/cli/trussed/__init__.py
--- old/pynitrokey-0.11.3/pynitrokey/cli/trussed/__init__.py 1970-01-01
01:00:00.000000000 +0100
+++ new/pynitrokey-0.11.4/pynitrokey/cli/trussed/__init__.py 1970-01-01
01:00:00.000000000 +0100
@@ -35,6 +35,7 @@
Table,
local_critical,
local_print,
+ local_print_secret,
require_windows_admin,
)
@@ -574,7 +575,7 @@
with ctx.connect_device() as device:
while length > 0:
rng = device.admin.rng()
- local_print(rng[:length].hex())
+ local_print_secret(rng[:length].hex())
length -= len(rng)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pynitrokey-0.11.3/pynitrokey/confconsts.py
new/pynitrokey-0.11.4/pynitrokey/confconsts.py
--- old/pynitrokey-0.11.3/pynitrokey/confconsts.py 1970-01-01
01:00:00.000000000 +0100
+++ new/pynitrokey-0.11.4/pynitrokey/confconsts.py 1970-01-01
01:00:00.000000000 +0100
@@ -41,9 +41,14 @@
f"setting default: {VERBOSE.name} = {VERBOSE.value}"
)
-LOG_FN = tempfile.NamedTemporaryFile(
- prefix=f"nitropy-{datetime.now().strftime('%Y%m%dT%H%M%S')}-",
suffix=".log"
-).name
+LOG_FILE = tempfile.NamedTemporaryFile(
+ prefix=f"nitropy-{datetime.now().strftime('%Y%m%dT%H%M%S')}-",
+ suffix=".log",
+ mode="w",
+ encoding="utf-8",
+ delete=False,
+)
+LOG_FN = LOG_FILE.name
LOG_FORMAT_STDOUT = "%(asctime)-15s %(levelname)6s %(name)10s %(message)s"
LOG_FORMAT = "%(relativeCreated)-8d %(levelname)6s %(name)10s %(message)s"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pynitrokey-0.11.3/pynitrokey/helpers.py
new/pynitrokey-0.11.4/pynitrokey/helpers.py
--- old/pynitrokey-0.11.3/pynitrokey/helpers.py 1970-01-01 01:00:00.000000000
+0100
+++ new/pynitrokey-0.11.4/pynitrokey/helpers.py 1970-01-01 01:00:00.000000000
+0100
@@ -251,7 +251,7 @@
# @todo: introduce granularization: dbg, info, err (warn?)
# + machine-readable
# + logfile-only (partly solved)
-def local_print(*messages: Any, **kwargs: Any) -> None:
+def local_print(*messages: Any, is_secret: bool = False, **kwargs: Any) ->
None:
"""Application-wide logging function"""
passed_exc = None
@@ -272,7 +272,10 @@
# logfile debug output
else:
whereto = "print: " if STDOUT_PRINT else ""
- logger.debug(f"{whereto}{str(item).strip()}")
+ if is_secret:
+ logger.debug(f"{whereto}!REDACTED SECRET FROM LOGS!")
+ else:
+ logger.debug(f"{whereto}{str(item).strip()}")
# to stdout
if STDOUT_PRINT:
@@ -283,6 +286,11 @@
raise passed_exc
+def local_print_secret(*messages: Any, **kwargs: Any) -> None:
+ """Application-wide logging function for secret messages"""
+ local_print(*messages, is_secret=True, **kwargs)
+
+
def local_critical(
*messages: Any, support_hint: bool = True, ret_code: int = 1, **kwargs: Any
) -> None:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pynitrokey-0.11.3/pyproject.toml
new/pynitrokey-0.11.4/pyproject.toml
--- old/pynitrokey-0.11.3/pyproject.toml 1970-01-01 01:00:00.000000000
+0100
+++ new/pynitrokey-0.11.4/pyproject.toml 1970-01-01 01:00:00.000000000
+0100
@@ -8,7 +8,7 @@
[project]
name = "pynitrokey"
-version = "0.11.3"
+version = "0.11.4"
description = "Python client for Nitrokey devices"
license = { text = "Apache-2.0 OR MIT" }
authors = [