Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-yara for openSUSE:Factory checked in at 2026-05-04 12:51:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-yara (Old) and /work/SRC/openSUSE:Factory/.python-yara.new.30200 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-yara" Mon May 4 12:51:37 2026 rev:6 rq:1350390 version:4.5.4 Changes: -------- --- /work/SRC/openSUSE:Factory/python-yara/python-yara.changes 2024-03-25 21:09:13.227435063 +0100 +++ /work/SRC/openSUSE:Factory/.python-yara.new.30200/python-yara.changes 2026-05-04 12:54:42.128405911 +0200 @@ -1,0 +2,21 @@ +Tue Mar 24 12:11:23 UTC 2026 - Dirk Müller <[email protected]> + +- update to 4.5.4: + * AppVeyor: Remove unused Miniconda installation functions. + * Ensure keys in externals dictionary are strings to prevent + crashes with invalid types. + * Fix file descriptor duplication logic when adding files to + the compiler. + * setup.cfg: Add commented-out options for optional modules. + * Minor documentation improvements and typo fixes in setup + scripts. + +------------------------------------------------------------------- +Tue Mar 24 12:08:06 UTC 2026 - Dirk Müller <[email protected]> + +- update to 4.5.2: + * Upgrade to YARA 4.5.2 (release notes) +- update to 4.5.1: + * Upgrade to YARA 4.5.1 (release notes) + +------------------------------------------------------------------- Old: ---- v4.5.0.tar.gz New: ---- v4.5.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-yara.spec ++++++ --- /var/tmp/diff_new_pack.PtPvNb/_old 2026-05-04 12:54:42.712429948 +0200 +++ /var/tmp/diff_new_pack.PtPvNb/_new 2026-05-04 12:54:42.716430112 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-yara # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2026 SUSE LLC and contributors # # 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: python-yara -Version: 4.5.0 +Version: 4.5.4 Release: 0 Summary: Python Bindings for YARA (from Virus Total) License: Apache-2.0 ++++++ v4.5.0.tar.gz -> v4.5.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yara-python-4.5.0/.github/workflows/publish-to-pypi.yml new/yara-python-4.5.4/.github/workflows/publish-to-pypi.yml --- old/yara-python-4.5.0/.github/workflows/publish-to-pypi.yml 2024-02-14 10:10:08.000000000 +0100 +++ new/yara-python-4.5.4/.github/workflows/publish-to-pypi.yml 2025-05-27 14:51:51.000000000 +0200 @@ -4,7 +4,6 @@ push: branches: - master - tags: pull_request: workflow_dispatch: @@ -19,14 +18,19 @@ strategy: matrix: include: - - os: ubuntu-22.04 + - os: ubuntu-24.04 arch: x86_64 - - os: ubuntu-22.04 + build-sdist: true + - os: ubuntu-24.04 arch: i686 - - os: ubuntu-22.04 + - os: ubuntu-24.04 arch: aarch64 - - os: macos-12 - arch: x86_64 universal2 + - os: macos-15 + arch: x86_64 arm64 + env: MACOSX_DEPLOYMENT_TARGET=15.0 + - os: macos-14 + arch: x86_64 arm64 + env: MACOSX_DEPLOYMENT_TARGET=14.0 - os: windows-2022 arch: x86 before: vcpkg install openssl:x86-windows-static @@ -43,20 +47,21 @@ - name: Set up QEMU if: runner.os == 'Linux' - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 with: platforms: all - name: Build wheels - uses: pypa/[email protected] + uses: pypa/[email protected] with: output-dir: dist env: CIBW_ARCHS: ${{ matrix.arch }} + CIBW_BUILD: "cp39-* cp310-* cp311-* cp312-* cp313-*" CIBW_BEFORE_ALL_LINUX: | if [[ ! -z "$(which yum)" ]]; then yum install -y make gcc perl-core pcre-devel wget zlib-devel git automake - wget https://ftp.openssl.org/source/openssl-1.1.1k.tar.gz + wget https://github.com/openssl/openssl/releases/download/OpenSSL_1_1_1w/openssl-1.1.1w.tar.gz tar xf openssl*.gz cd openssl* ./config --prefix=/usr --openssldir=/etc/ssl zlib-dynamic @@ -66,10 +71,9 @@ apk add openssl-dev fi CIBW_BEFORE_ALL_WINDOWS: ${{ matrix.before }} - CIBW_BUILD_FRONTEND: build - CIBW_CONFIG_SETTINGS: --enable-cuckoo --enable-magic --enable-dex --enable-macho --enable-openssl + CIBW_BUILD_FRONTEND: "build; args: --config-setting=--enable-openssl" CIBW_ENVIRONMENT: ${{ matrix.env }} - CIBW_SKIP: cp36-* + CIBW_TEST_SKIP: "*-macosx_arm64 *-macosx_x86_64" CIBW_TEST_COMMAND: python {package}/tests.py - name: Store the distribution packages @@ -78,6 +82,17 @@ name: python-package-distributions-${{ matrix.os }}-${{ matrix.arch }} path: dist/*.whl + - name: Build Sdist + if: ${{ matrix.build-sdist }} + run: pipx run build --sdist + + - name: Store the source distribution package + if: ${{ matrix.build-sdist }} + uses: actions/upload-artifact@v4 + with: + name: python-package-distributions-source + path: dist/*.tar.gz + publish-to-pypi: needs: [build] runs-on: ubuntu-latest diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yara-python-4.5.0/README.rst new/yara-python-4.5.4/README.rst --- old/yara-python-4.5.0/README.rst 2024-02-14 10:10:08.000000000 +0100 +++ new/yara-python-4.5.4/README.rst 2025-05-27 14:51:51.000000000 +0200 @@ -36,7 +36,7 @@ Installation ------------ -The easiest way of installing YARA is by using ``pip``: +The easiest way to install YARA is by using ``pip``: .. code-block:: bash @@ -55,7 +55,7 @@ we need to download the ``yara`` subproject containing the source code for ``libyara`` (the core YARA library). It's also important to note that the two methods above link ``libyara`` statically into yara-python. If you want to link -dynamically against a shared ``libyara`` library use: +dynamically against a shared ``libyara`` library, use: .. code-block:: bash diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yara-python-4.5.0/appveyor/install.ps1 new/yara-python-4.5.4/appveyor/install.ps1 --- old/yara-python-4.5.0/appveyor/install.ps1 2024-02-14 10:10:08.000000000 +0100 +++ new/yara-python-4.5.4/appveyor/install.ps1 2025-05-27 14:51:51.000000000 +0200 @@ -2,7 +2,6 @@ # Authors: Olivier Grisel, Jonathan Helmus, Kyle Kastner, and Alex Willmer # License: CC0 1.0 Universal: http://creativecommons.org/publicdomain/zero/1.0/ -$MINICONDA_URL = "http://repo.continuum.io/miniconda/" $BASE_URL = "https://www.python.org/ftp/python/" $GET_PIP_URL = "https://bootstrap.pypa.io/get-pip.py" $GET_PIP_PATH = "C:\get-pip.py" @@ -169,58 +168,6 @@ } -function DownloadMiniconda ($python_version, $platform_suffix) { - if ($python_version -eq "3.4") { - $filename = "Miniconda3-3.5.5-Windows-" + $platform_suffix + ".exe" - } else { - $filename = "Miniconda-3.5.5-Windows-" + $platform_suffix + ".exe" - } - $url = $MINICONDA_URL + $filename - $filepath = Download $filename $url - return $filepath -} - - -function InstallMiniconda ($python_version, $architecture, $python_home) { - Write-Host "Installing Python" $python_version "for" $architecture "bit architecture to" $python_home - if (Test-Path $python_home) { - Write-Host $python_home "already exists, skipping." - return $false - } - if ($architecture -eq "32") { - $platform_suffix = "x86" - } else { - $platform_suffix = "x86_64" - } - $filepath = DownloadMiniconda $python_version $platform_suffix - Write-Host "Installing" $filepath "to" $python_home - $install_log = $python_home + ".log" - $args = "/S /D=$python_home" - Write-Host $filepath $args - Start-Process -FilePath $filepath -ArgumentList $args -Wait -Passthru - if (Test-Path $python_home) { - Write-Host "Python $python_version ($architecture) installation complete" - } else { - Write-Host "Failed to install Python in $python_home" - Get-Content -Path $install_log - Exit 1 - } -} - - -function InstallMinicondaPip ($python_home) { - $pip_path = $python_home + "\Scripts\pip.exe" - $conda_path = $python_home + "\Scripts\conda.exe" - if (-not(Test-Path $pip_path)) { - Write-Host "Installing pip..." - $args = "install --yes pip" - Write-Host $conda_path $args - Start-Process -FilePath "$conda_path" -ArgumentList $args -Wait -Passthru - } else { - Write-Host "pip already installed." - } -} - function main () { InstallPython $env:PYTHON_VERSION $env:PYTHON_ARCH $env:PYTHON InstallPip $env:PYTHON diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yara-python-4.5.0/setup.cfg new/yara-python-4.5.4/setup.cfg --- old/yara-python-4.5.0/setup.cfg 2024-02-14 10:10:08.000000000 +0100 +++ new/yara-python-4.5.4/setup.cfg 2025-05-27 14:51:51.000000000 +0200 @@ -4,3 +4,14 @@ [test] test_suite=tests + +[build_ext] +# These modules are not stable or tested enough +# enable_dex = true +# enable_macho = true + +# need libjansson-dev +# enable_cuckoo = true + +# need libmagic-dev +# enable_magic = true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yara-python-4.5.0/setup.py new/yara-python-4.5.4/setup.py --- old/yara-python-4.5.0/setup.py 2024-02-14 10:10:08.000000000 +0100 +++ new/yara-python-4.5.4/setup.py 2025-05-27 14:51:51.000000000 +0200 @@ -178,7 +178,7 @@ '--enable-macho can''t be used with --dynamic-linking') if self.enable_openssl and self.dynamic_linking: raise distutils.errors.DistutilsOptionError( - '--enable-enable-openssl can''t be used with --dynamic-linking') + '--enable-openssl can''t be used with --dynamic-linking') def run(self): @@ -393,7 +393,7 @@ setup( name='yara-python', - version='4.5.0', + version='4.5.4', description='Python interface for YARA', long_description=readme, long_description_content_type='text/markdown', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yara-python-4.5.0/yara-python.c new/yara-python-4.5.4/yara-python.c --- old/yara-python-4.5.0/yara-python.c 2024-02-14 10:10:08.000000000 +0100 +++ new/yara-python-4.5.4/yara-python.c 2025-05-27 14:51:51.000000000 +0200 @@ -1522,6 +1522,13 @@ while (PyDict_Next(externals, &pos, &key, &value)) { + if (!PY_STRING_CHECK(key)) { + PyErr_Format( + PyExc_TypeError, + "keys of externals dict must be strings"); + + return ERROR_INVALID_ARGUMENT; + } identifier = PY_STRING_TO_C(key); if (PyBool_Check(value)) @@ -1592,6 +1599,13 @@ while (PyDict_Next(externals, &pos, &key, &value)) { + if (!PY_STRING_CHECK(key)) { + PyErr_Format( + PyExc_TypeError, + "keys of externals dict must be strings"); + + return ERROR_INVALID_ARGUMENT; + } identifier = PY_STRING_TO_C(key); if (PyBool_Check(value)) @@ -2816,12 +2830,12 @@ } else if (file != NULL) { - fd = dup(PyObject_AsFileDescriptor(file)); + fd = PyObject_AsFileDescriptor(file); if (fd != -1) { Py_BEGIN_ALLOW_THREADS - fh = fdopen(fd, "r"); + fh = fdopen(dup(fd), "r"); error = yr_compiler_add_file(compiler, fh, NULL, NULL); fclose(fh); Py_END_ALLOW_THREADS
