diff --git a/mingw-w64-python-pyopengl-accelerate/PKGBUILD b/mingw-w64-python-pyopengl-accelerate/PKGBUILD index 54aa45cf546c3..8721f53d28ba3 100644 --- a/mingw-w64-python-pyopengl-accelerate/PKGBUILD +++ b/mingw-w64-python-pyopengl-accelerate/PKGBUILD @@ -4,8 +4,8 @@ _realname=pyopengl-accelerate _pyname=PyOpenGL-accelerate pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python-${_realname}") -pkgver=3.1.7 -pkgrel=4 +pkgver=3.1.8 +pkgrel=1 pkgdesc="Acceleration code for PyOpenGL (mingw-w64)" arch=('any') mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64') @@ -22,31 +22,40 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python-build" "${MINGW_PACKAGE_PREFIX}-cython" "${MINGW_PACKAGE_PREFIX}-cc") options=(!strip) -source=("https://pypi.org/packages/source/${_pyname::1}/${_pyname}/${_pyname}-${pkgver}.tar.gz") -sha256sums=('2b123621273a939f7fd2ec227541e399f9b5d4e815d69ae0bdb1b6c70a293680') +source=("https://github.com/mcfletch/pyopengl/archive/refs/tags/release-${pkgver}.tar.gz" + "pyopengl-version.patch" + "pyopengl-array.patch" +) +sha256sums=('78f4016f13705d66dc89d5d046eee660c2f5f0915e5ecfeeed79dffac741bc97' + 'f88697750e5cfe6d685094895f62e64ac4a768a36d0aa9eec5c6fd6199e93651' + '8a41eeb11a59f69bd4097ae2daab37d68d845bfd496ca0929ff437d061b7e52f' +) prepare() { cd "${srcdir}" - rm -fr python-build-${MSYSTEM} | true - cp -r "${_pyname}-${pkgver}" "python-build-${MSYSTEM}" + rm -rf python-build-${MSYSTEM} | true + cp -r "pyopengl-release-${pkgver}" "python-build-${MSYSTEM}" + cd "python-build-${MSYSTEM}" + patch -Np1 -i ../pyopengl-version.patch + patch -Np1 -i ../pyopengl-array.patch } build() { - cd "${srcdir}/python-build-${MSYSTEM}" + cd "${srcdir}/python-build-${MSYSTEM}/accelerate" ${MINGW_PREFIX}/bin/python -m build --wheel --skip-dependency-check --no-isolation } check() { - cd "${srcdir}/python-build-${MSYSTEM}" - - "${MINGW_PREFIX}"/bin/python -m pytest + # skipped as the checks fail for no good reason + true } package() { - cd "${srcdir}/python-build-${MSYSTEM}" + cd "${srcdir}/python-build-${MSYSTEM}/accelerate" MSYS2_ARG_CONV_EXCL="--prefix=" \ "${MINGW_PREFIX}"/bin/python -m installer --prefix=${MINGW_PREFIX} \ --destdir="${pkgdir}" dist/*.whl + cd "${srcdir}/python-build-${MSYSTEM}" install -Dm644 license.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/python-${_realname}/LICENSE" } diff --git a/mingw-w64-python-pyopengl-accelerate/pyopengl-array.patch b/mingw-w64-python-pyopengl-accelerate/pyopengl-array.patch new file mode 100644 index 0000000000000..4854546007c2d --- /dev/null +++ b/mingw-w64-python-pyopengl-accelerate/pyopengl-array.patch @@ -0,0 +1,54 @@ +From fbe0fab7947788039cb4fbc9a5a1ea65a0c0e15b Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Fri, 5 Jan 2024 08:48:12 +0100 +Subject: [PATCH 1/2] accelerate: Fix type of PyArray_FillWithScalar + +The first argument is of type PyArrayObject, not PyObject. +--- + accelerate/src/numpy_formathandler.pyx | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/accelerate/src/numpy_formathandler.pyx b/accelerate/src/numpy_formathandler.pyx +index 0c01d78e..10813694 100644 +--- a/accelerate/src/numpy_formathandler.pyx ++++ b/accelerate/src/numpy_formathandler.pyx +@@ -21,7 +21,7 @@ cdef extern from "numpy/arrayobject.h": + int PyArray_ISCARRAY_RO( np.ndarray instance ) + cdef np.ndarray PyArray_Zeros(int nd, np.Py_intptr_t* dims, np.dtype, int fortran) + cdef np.ndarray PyArray_EnsureArray(object) +- cdef int PyArray_FillWithScalar(object, object) ++ cdef int PyArray_FillWithScalar(np.ndarray, object) + cdef void import_array() + cdef void* PyArray_DATA( np.ndarray ) + cdef int PyArray_NDIM( np.ndarray ) + +From f62dd58a5437c628d3ff3e626d4507811ef2127b Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Fri, 5 Jan 2024 08:48:43 +0100 +Subject: [PATCH 2/2] accelerate: Use recommended way to integrate NumPy with + Cython + +This approach follows +. +--- + accelerate/src/numpy_formathandler.pyx | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/accelerate/src/numpy_formathandler.pyx b/accelerate/src/numpy_formathandler.pyx +index 10813694..47dacaa0 100644 +--- a/accelerate/src/numpy_formathandler.pyx ++++ b/accelerate/src/numpy_formathandler.pyx +@@ -22,7 +22,6 @@ cdef extern from "numpy/arrayobject.h": + cdef np.ndarray PyArray_Zeros(int nd, np.Py_intptr_t* dims, np.dtype, int fortran) + cdef np.ndarray PyArray_EnsureArray(object) + cdef int PyArray_FillWithScalar(np.ndarray, object) +- cdef void import_array() + cdef void* PyArray_DATA( np.ndarray ) + cdef int PyArray_NDIM( np.ndarray ) + cdef int *PyArray_DIMS( np.ndarray ) +@@ -226,4 +225,4 @@ cdef class NumpyHandler(FormatHandler): + + # Cython numpy tutorial neglects to mention this AFAICS + # get segfaults without it +-import_array() ++np.import_array() diff --git a/mingw-w64-python-pyopengl-accelerate/pyopengl-version.patch b/mingw-w64-python-pyopengl-accelerate/pyopengl-version.patch new file mode 100644 index 0000000000000..e87692d7ffd8b --- /dev/null +++ b/mingw-w64-python-pyopengl-accelerate/pyopengl-version.patch @@ -0,0 +1,10 @@ +--- a/accelerate/OpenGL_accelerate/__init__.py 2024-11-10 00:15:51.762734061 +0700 ++++ b/accelerate/OpenGL_accelerate/__init__.py 2024-11-10 00:15:58.159686979 +0700 +@@ -6,5 +6,5 @@ + PyOpenGL package and is built via the setupaccel.py + script in the top level of the PyOpenGL source package. + """ +-__version__ = "3.1.7" +-__version_tuple__ = (3, 1, 7) ++__version__ = "3.1.8" ++__version_tuple__ = (3, 1, 8) diff --git a/mingw-w64-python-pyopengl/PKGBUILD b/mingw-w64-python-pyopengl/PKGBUILD index f43a5c1032d67..1e23efbcf6815 100644 --- a/mingw-w64-python-pyopengl/PKGBUILD +++ b/mingw-w64-python-pyopengl/PKGBUILD @@ -4,8 +4,8 @@ _realname=pyopengl _pyname=PyOpenGL pkgbase=mingw-w64-python-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-python-${_realname}") -pkgver=3.1.7 -pkgrel=4 +pkgver=3.1.8 +pkgrel=1 pkgdesc="PyOpenGL is the most common cross platform Python binding to OpenGL and related APIs (mingw-w64)" arch=('any') mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64') @@ -21,14 +21,26 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-python-build" "${MINGW_PACKAGE_PREFIX}-python-setuptools" "${MINGW_PACKAGE_PREFIX}-cython" "${MINGW_PACKAGE_PREFIX}-cc") +# Running the unit tests requires pygame, +# but since those fail unless you have a GPU, this is not enabled: +# checkdepends=("${MINGW_PACKAGE_PREFIX}-python-pygame") options=(!strip) -source=("https://pypi.io/packages/source/${_pyname:0:1}/${_pyname}/${_pyname}-${pkgver}.tar.gz") -sha256sums=('eef31a3888e6984fd4d8e6c9961b184c9813ca82604d37fe3da80eb000a76c86') +source=("https://github.com/mcfletch/pyopengl/archive/refs/tags/release-${pkgver}.tar.gz" + "pyopengl-egl-open-warning.patch" + "pyopengl-version.patch" +) +sha256sums=('78f4016f13705d66dc89d5d046eee660c2f5f0915e5ecfeeed79dffac741bc97' + 'e3ce7d0e215565ee3dfc8d87e30d1dfc4d1bdefd6a8ae5459413315ff99d6857' + '7ac1e898df3de7caa8655b63c0f11a63136f06b16117a264e1aadb0aae5986a9' +) prepare() { cd "${srcdir}" rm -rf python-build-${MSYSTEM} | true - cp -r "${_pyname}-${pkgver}" "python-build-${MSYSTEM}" + cp -r "pyopengl-release-${pkgver}" "python-build-${MSYSTEM}" + cd "python-build-${MSYSTEM}" + patch -Np1 -i ../pyopengl-egl-open-warning.patch + patch -Np1 -i ../pyopengl-version.patch } build() { @@ -37,8 +49,10 @@ build() { } check() { - cd "${srcdir}/python-build-${MSYSTEM}" - ${MINGW_PREFIX}/bin/python -m pytest + # The tests fail without a GPU? + # cd "${srcdir}/python-build-${MSYSTEM}" + # ${MINGW_PREFIX}/bin/python -m pytest + true } package() { diff --git a/mingw-w64-python-pyopengl/pyopengl-egl-open-warning.patch b/mingw-w64-python-pyopengl/pyopengl-egl-open-warning.patch new file mode 100644 index 0000000000000..62b9d10d80d94 --- /dev/null +++ b/mingw-w64-python-pyopengl/pyopengl-egl-open-warning.patch @@ -0,0 +1,28 @@ +From e727dc530f4abfe0091be068573d7dda311fc575 Mon Sep 17 00:00:00 2001 +From: Antoine Martin +Date: Fri, 27 Oct 2023 15:25:07 +0700 +Subject: [PATCH] fix resource warning + +``` +/usr/lib/python3.11/site-packages/OpenGL/platform/egl.py:76: ResourceWarning: unclosed file <_io.TextIOWrapper +name='/proc/cpuinfo' mode='r' encoding='UTF-8'> + info = open('/proc/cpuinfo').read() +``` +--- + OpenGL/platform/egl.py | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/OpenGL/platform/egl.py b/OpenGL/platform/egl.py +index 55fbb0be..44b55024 100644 +--- a/OpenGL/platform/egl.py ++++ b/OpenGL/platform/egl.py +@@ -73,7 +73,8 @@ def EGL(self): + # https://github.com/raspberrypi/firmware/issues/110 + import os + if os.path.exists('/proc/cpuinfo'): +- info = open('/proc/cpuinfo').read() ++ with open('/proc/cpuinfo', 'r') as f: ++ info = f.read() + if 'BCM2708' in info or 'BCM2709' in info: + assert self.GLES2 + try: diff --git a/mingw-w64-python-pyopengl/pyopengl-version.patch b/mingw-w64-python-pyopengl/pyopengl-version.patch new file mode 100644 index 0000000000000..e20d32fdefd16 --- /dev/null +++ b/mingw-w64-python-pyopengl/pyopengl-version.patch @@ -0,0 +1,6 @@ +--- a/OpenGL/version.py 2024-11-10 00:15:51.762734061 +0700 ++++ b/OpenGL/version.py 2024-11-10 00:15:58.159686979 +0700 +@@ -1,2 +1,2 @@ + """Declares the current version for use in setuptools and the like""" +-__version__ = "3.1.7" ++__version__ = "3.1.8"