Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-pybase64 for openSUSE:Factory
checked in at 2026-11-11 16:30:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pybase64 (Old)
and /work/SRC/openSUSE:Factory/.python-pybase64.new.3759290 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pybase64"
Wed Nov 11 16:30:31 2026 rev:4 rq:1396898 version:1.5.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pybase64/python-pybase64.changes
2026-10-05 16:19:04.523398572 +0200
+++
/work/SRC/openSUSE:Factory/.python-pybase64.new.3759290/python-pybase64.changes
2026-11-11 16:31:51.148290745 +0100
@@ -1,0 +2,10 @@
+Wed Nov 11 12:57:52 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Update to 1.5.2:
+ * Fix deprecated altchars handling when decoding with
+ padded=False: with validate and no padding, the C extension
+ used the strict alphabet translation and raised binascii.Error
+ instead of the expected DeprecationWarning
+ * Refresh bundled libbase64 to 5d5074c
+
+-------------------------------------------------------------------
Old:
----
pybase64-1.5.1.tar.gz
New:
----
pybase64-1.5.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pybase64.spec ++++++
--- /var/tmp/diff_new_pack.1e6igo/_old 2026-11-11 16:31:52.136332199 +0100
+++ /var/tmp/diff_new_pack.1e6igo/_new 2026-11-11 16:31:52.137332241 +0100
@@ -23,7 +23,7 @@
%endif
%{?sle15_python_module_pythons}
Name: python-pybase64
-Version: 1.5.1
+Version: 1.5.2
Release: 0
Summary: Fast Base64 encoding/decoding
License: BSD-2-Clause
@@ -88,7 +88,7 @@
%pre
%python_libalternatives_reset_alternative pybase64
-%files %{python_files}
+%files %python_files
%license LICENSE
%doc README.rst
%python_alternative %{_bindir}/pybase64
++++++ pybase64-1.5.1.tar.gz -> pybase64-1.5.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pybase64-1.5.1/PKG-INFO new/pybase64-1.5.2/PKG-INFO
--- old/pybase64-1.5.1/PKG-INFO 2026-10-04 14:21:39.935015000 +0200
+++ new/pybase64-1.5.2/PKG-INFO 2026-11-11 10:04:58.700275700 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: pybase64
-Version: 1.5.1
+Version: 1.5.2
Summary: Fast Base64 encoding/decoding
Author: Matthieu Darbois
License-Expression: BSD-2-Clause
@@ -184,6 +184,13 @@
Changelog
=========
+1.5.2
+-----
+- Fix deprecated altchars handling when decoding with ``padded=False``
+- Publish PyPy 3.12 wheels
+- PyPy 3.11 wheels moved from ``pp311-pypy311_pp73`` to ``pp311-pypy311_pp80``
+- Publish GraalPy 3.13 wheels
+
1.5.1
-----
- Fix a Py_buffer Use-After-Release in error paths
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pybase64-1.5.1/README.rst
new/pybase64-1.5.2/README.rst
--- old/pybase64-1.5.1/README.rst 2026-10-04 14:21:37.055001300 +0200
+++ new/pybase64-1.5.2/README.rst 2026-11-11 10:04:55.894822800 +0100
@@ -154,6 +154,13 @@
Changelog
=========
+1.5.2
+-----
+- Fix deprecated altchars handling when decoding with ``padded=False``
+- Publish PyPy 3.12 wheels
+- PyPy 3.11 wheels moved from ``pp311-pypy311_pp73`` to ``pp311-pypy311_pp80``
+- Publish GraalPy 3.13 wheels
+
1.5.1
-----
- Fix a Py_buffer Use-After-Release in error paths
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pybase64-1.5.1/base64/.github/workflows/test.yml
new/pybase64-1.5.2/base64/.github/workflows/test.yml
--- old/pybase64-1.5.1/base64/.github/workflows/test.yml 2026-10-04
14:21:37.583136600 +0200
+++ new/pybase64-1.5.2/base64/.github/workflows/test.yml 2026-11-11
10:04:56.522416600 +0100
@@ -102,6 +102,34 @@
env:
BASE64_TEST_SKIP_AVX512: "1"
+ cmake-install-test:
+ name: cmake-install-shared-${{ matrix.shared }}-openmp-${{ matrix.openmp }}
+ needs: makefile-analysis
+ runs-on: ubuntu-24.04
+ strategy:
+ fail-fast: false
+ matrix:
+ shared: ["OFF", "ON"]
+ openmp: ["OFF", "ON"]
+ steps:
+ - name: Checkout
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 #
v7.0.0
+ with:
+ persist-credentials: false
+ - name: Build and install
+ run: |
+ cmake -B out -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=${{
matrix.shared }} -DBASE64_WITH_OpenMP=${{ matrix.openmp }}
+ if [ "${{ matrix.openmp }}" = ON ]; then
+ grep -q '^BASE64_WITH_OpenMP:BOOL=ON$' out/CMakeCache.txt
+ fi
+ cmake --build out --parallel 2
+ cmake --install out --prefix "${{ github.workspace }}/install"
+ - name: Test installed package
+ run: |
+ cmake -S test/cmake -B out-consumer -DCMAKE_PREFIX_PATH="${{
github.workspace }}/install" -DCMAKE_DISABLE_FIND_PACKAGE_OpenMP=${{
(matrix.shared == 'ON' || matrix.openmp == 'OFF') && 'ON' || 'OFF' }}
+ cmake --build out-consumer --parallel 2
+ ctest --test-dir out-consumer --output-on-failure --no-tests=error
+
alpine-makefile-test:
name: makefile-alpine-amd64-gcc
needs: makefile-analysis
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pybase64-1.5.1/base64/cmake/base64-config.cmake.in
new/pybase64-1.5.2/base64/cmake/base64-config.cmake.in
--- old/pybase64-1.5.1/base64/cmake/base64-config.cmake.in 2026-10-04
14:21:37.583805800 +0200
+++ new/pybase64-1.5.2/base64/cmake/base64-config.cmake.in 2026-11-11
10:04:56.523306100 +0100
@@ -1,5 +1,10 @@
@PACKAGE_INIT@
+if("@BASE64_WITH_OpenMP@" AND NOT "@BUILD_SHARED_LIBS@")
+ include(CMakeFindDependencyMacro)
+ find_dependency(OpenMP COMPONENTS C)
+endif()
+
include("${CMAKE_CURRENT_LIST_DIR}/base64-targets.cmake")
check_required_components(base64)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pybase64-1.5.1/base64/lib/lib.c
new/pybase64-1.5.2/base64/lib/lib.c
--- old/pybase64-1.5.1/base64/lib/lib.c 2026-10-04 14:21:37.585295700 +0200
+++ new/pybase64-1.5.2/base64/lib/lib.c 2026-11-11 10:04:56.525831200 +0100
@@ -18,7 +18,7 @@
base64_stream_encode_init (struct base64_state *state, int flags)
{
// If any of the codec flags are set, redo choice:
- if (codec.enc == NULL || flags & 0xFF) {
+ if (codec.enc == NULL || flags & 0xFFFF) {
codec_choose(&codec, flags);
}
state->eof = 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pybase64-1.5.1/base64/test/cmake/CMakeLists.txt
new/pybase64-1.5.2/base64/test/cmake/CMakeLists.txt
--- old/pybase64-1.5.1/base64/test/cmake/CMakeLists.txt 1970-01-01
01:00:00.000000000 +0100
+++ new/pybase64-1.5.2/base64/test/cmake/CMakeLists.txt 2026-11-11
10:04:56.527018500 +0100
@@ -0,0 +1,10 @@
+cmake_minimum_required(VERSION 3.10.2)
+project(base64_package_test C)
+
+find_package(base64 CONFIG REQUIRED)
+
+add_executable(test_package main.c)
+target_link_libraries(test_package PRIVATE aklomp::base64)
+
+enable_testing()
+add_test(NAME test_package COMMAND test_package)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pybase64-1.5.1/base64/test/cmake/main.c
new/pybase64-1.5.2/base64/test/cmake/main.c
--- old/pybase64-1.5.1/base64/test/cmake/main.c 1970-01-01 01:00:00.000000000
+0100
+++ new/pybase64-1.5.2/base64/test/cmake/main.c 2026-11-11 10:04:56.527209500
+0100
@@ -0,0 +1,22 @@
+#include <string.h>
+#include <libbase64.h>
+
+int
+main (void)
+{
+ const char input[] = "hello world";
+ const char expected[] = "aGVsbG8gd29ybGQ=";
+ char encoded[sizeof(expected)], decoded[sizeof(input)];
+ size_t encoded_size, decoded_size;
+
+ base64_encode(input, sizeof(input) - 1, encoded, &encoded_size, 0);
+ if (encoded_size != sizeof(expected) - 1 ||
+ memcmp(encoded, expected, encoded_size) != 0) {
+ return 1;
+ }
+ if (base64_decode(encoded, encoded_size, decoded, &decoded_size, 0) !=
1) {
+ return 1;
+ }
+ return decoded_size != sizeof(input) - 1 ||
+ memcmp(decoded, input, decoded_size) != 0;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pybase64-1.5.1/pyproject.toml
new/pybase64-1.5.2/pyproject.toml
--- old/pybase64-1.5.1/pyproject.toml 2026-10-04 14:21:37.055513400 +0200
+++ new/pybase64-1.5.2/pyproject.toml 2026-11-11 10:04:55.895822800 +0100
@@ -55,8 +55,7 @@
[dependency-groups]
test = [
- "packaging==24.2; sys_platform == 'emscripten'",
- "packaging>=26.0; sys_platform != 'emscripten'",
+ "packaging>=26.0",
"pytest>=8",
"pytest-run-parallel>=0.8.2 ; python_version >= '3.13'",
"typing_extensions>=4.6",
@@ -226,3 +225,4 @@
benchmark = { requires-python = ">=3.12" }
coverage = { requires-python = ">=3.10" }
docs = { requires-python = ">=3.12" }
+nox = { requires-python = ">=3.11" }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pybase64-1.5.1/src/pybase64/_pybase64.c
new/pybase64-1.5.2/src/pybase64/_pybase64.c
--- old/pybase64-1.5.1/src/pybase64/_pybase64.c 2026-10-04 14:21:37.056132800
+0200
+++ new/pybase64-1.5.2/src/pybase64/_pybase64.c 2026-11-11 10:04:55.896823000
+0100
@@ -922,6 +922,7 @@
int use_alphabet = 0;
int use_alphabet_for_ignore_chars;
+ int user_ignorechars;
int has_bad_char = 0;
char alphabet[2];
int validation;
@@ -971,6 +972,8 @@
return NULL;
}
+ user_ignorechars = (ignorechars_object != NULL);
+
/* default to fast path when validation is true */
fast_path = validation;
@@ -992,7 +995,7 @@
if (ignorechars_object == NULL) {
return NULL;
}
- if (validation) {
+ if (validation && user_ignorechars) {
translate_fn = &translate;
}
if ((ignorechars_buffer.len == 0) && padded) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pybase64-1.5.1/src/pybase64/_version.py
new/pybase64-1.5.2/src/pybase64/_version.py
--- old/pybase64-1.5.1/src/pybase64/_version.py 2026-10-04 14:21:37.056132800
+0200
+++ new/pybase64-1.5.2/src/pybase64/_version.py 2026-11-11 10:04:55.896823000
+0100
@@ -1,3 +1,3 @@
from __future__ import annotations
-_version = "1.5.1"
+_version = "1.5.2"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pybase64-1.5.1/src/pybase64.egg-info/PKG-INFO
new/pybase64-1.5.2/src/pybase64.egg-info/PKG-INFO
--- old/pybase64-1.5.1/src/pybase64.egg-info/PKG-INFO 2026-10-04
14:21:39.916967600 +0200
+++ new/pybase64-1.5.2/src/pybase64.egg-info/PKG-INFO 2026-11-11
10:04:58.660615000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: pybase64
-Version: 1.5.1
+Version: 1.5.2
Summary: Fast Base64 encoding/decoding
Author: Matthieu Darbois
License-Expression: BSD-2-Clause
@@ -184,6 +184,13 @@
Changelog
=========
+1.5.2
+-----
+- Fix deprecated altchars handling when decoding with ``padded=False``
+- Publish PyPy 3.12 wheels
+- PyPy 3.11 wheels moved from ``pp311-pypy311_pp73`` to ``pp311-pypy311_pp80``
+- Publish GraalPy 3.13 wheels
+
1.5.1
-----
- Fix a Py_buffer Use-After-Release in error paths
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pybase64-1.5.1/src/pybase64.egg-info/SOURCES.txt
new/pybase64-1.5.2/src/pybase64.egg-info/SOURCES.txt
--- old/pybase64-1.5.1/src/pybase64.egg-info/SOURCES.txt 2026-10-04
14:21:39.922883500 +0200
+++ new/pybase64-1.5.2/src/pybase64.egg-info/SOURCES.txt 2026-11-11
10:04:58.671138800 +0100
@@ -83,6 +83,8 @@
base64/test/ci/checksums.txt
base64/test/ci/test.sh
base64/test/ci/😵💫.bin
+base64/test/cmake/CMakeLists.txt
+base64/test/cmake/main.c
src/pybase64/__init__.py
src/pybase64/__main__.py
src/pybase64/_fallback.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pybase64-1.5.1/tests/test_pybase64.py
new/pybase64-1.5.2/tests/test_pybase64.py
--- old/pybase64-1.5.1/tests/test_pybase64.py 2026-10-04 14:21:37.056759600
+0200
+++ new/pybase64-1.5.2/tests/test_pybase64.py 2026-11-11 10:04:55.897822900
+0100
@@ -539,6 +539,27 @@
@utils.param_simd
+@param_validate
+@param_decode_functions
+def test_warning_data_dec_unpadded(
+ dfn: Decode,
+ validate: bool,
+ simd: int,
+) -> None:
+ utils.unused_args(simd) # simd is a parameter in order to control the
order of tests
+ exception, match = {
+ True: (DeprecationWarning, r"invalid character.*will be an error in
future"),
+ False: (FutureWarning, r"invalid character.*will be discarded in
future"),
+ }[validate]
+ src_slice = 16 * 1024
+ vector_ = "+/" + "A" * (src_slice - 2) + "AAAA"
+ for vector in [vector_, vector_[:4], vector_[:3]]:
+ expected = base64.b64decode(vector + "=" * (-len(vector) % 4))
+ with pytest.warns(exception, match=match):
+ assert dfn(vector, b"-_", validate=validate, padded=False) ==
expected
+
+
[email protected]_simd
@param_decode_functions
def test_altchars_translation(
dfn: Decode,