Name: python-trame-rca Version: 2.11.5 Release: 1%{?dist} Summary: Remote Controlled Area image streaming for trame License: Apache-2.0 URL: https://github.com/Kitware/trame-rca Source: %{pypi_source trame_rca} BuildArch: noarch BuildRequires: python3-devel BuildRequires: python3-trame-client BuildRequires: python3-trame-common BuildRequires: python3-wslink BuildRequires: python3-numpy BuildRequires: python3-packaging BuildRequires: python3-pillow %global _description %{expand: trame-rca (Remote Controlled Area) streams rendered images and frames from a Python server to a browser-side viewport over WebSocket. trame-slicer uses it to push 2D/3D slice views and DICOM renderings to the web client without copying full meshes over the wire.} %description %_description %package -n python3-trame-rca Summary: %{summary} Requires: python3-trame-client Requires: python3-trame-common Requires: python3-wslink Requires: python3-numpy Requires: python3-packaging Requires: python3-pillow %description -n python3-trame-rca %_description %prep %autosetup -p1 -n trame_rca-%{version} %generate_buildrequires %pyproject_buildrequires %build %pyproject_wheel %install %pyproject_install %pyproject_save_files trame trame_rca # The trame namespace dirs (trame/, trame/ui/, trame/modules/, trame/widgets/) are # shared by several trame distributions, and every wheel ships its own copy of the # pkgutil marker __init__.py. The .py files are byte-identical so rpm tolerates the # duplicates -- but their .pyc embeds the SOURCE MTIME, which differs per build, so # the bytecode collides at install time: # file .../trame/ui/__pycache__/__init__.cpython-314.pyc conflicts between # attempted installs of python3-trame-... and python3-trame-client-... # Since Python 3.3 these work as PEP 420 implicit namespace packages with no marker # at all, so drop it everywhere. Verified: with all four removed, trame.ui becomes a # _NamespacePath and trame.ui.vuetify3 / trame.widgets.vuetify3 / trame.modules.www # still resolve across packages. The grep guard makes sure a real __init__.py with # actual code is never deleted. for _d in "" /ui /modules /widgets; do _f=%{buildroot}%{python3_sitelib}/trame$_d/__init__.py [ -f "$_f" ] || continue grep -qx '__path__ = __import__("pkgutil").extend_path(__path__, __name__)' "$_f" \ || { echo "ERROR: trame$_d/__init__.py is not a namespace marker" >&2; exit 1; } rm -f "$_f" %{buildroot}%{python3_sitelib}/trame$_d/__pycache__/__init__.*.pyc done # Drop the removed paths from the generated file list (it comes from the wheel RECORD). sed -i -E '\#/trame(/(ui|modules|widgets))?/__init__\.py$#d; \#/trame(/(ui|modules|widgets))?/__pycache__/__init__\..*\.pyc$#d' %{pyproject_files} %check %_pyproject_check_import_allow_no_modules -t %files -n python3-trame-rca -f %{pyproject_files} %license LICENSE %doc README.rst %changelog * Sat Sep 26 2026 Morgan Hough - 2.11.5-1 - Update to 2.11.5. Runtime dependency set is unchanged against what this COPR already ships: upstream declares trame-client<5,>=3.4 (we have 3.13.6), trame-common>=1.2.2 (1.2.7), wslink>=2.1.3 (2.5.7), plus numpy/pillow/ packaging -- all present, so this pulls in nothing new. - Deliberately NOT a trame 4 update. trame/trame-client/trame-server are all a major 3->4 jump upstream; this package caps at trame-client<5 and is a leaf with no reverse dependencies in the COPR, so it can move independently without starting that wave. * Sun Sep 20 2026 Morgan Hough - 2.11.4-1 - Update to 2.11.4. Runtime dependencies are byte-for-byte unchanged from 2.10.1 (numpy, packaging, pillow, wslink >= 2.1.3, trame-client >= 3.4 < 5, trame-common >= 1.2.2), so no BuildRequires change is needed; only the dev extra moved, to trame >= 4. Still compatible with our trame-client 3.13.6, which is held at 3.x because trame-vtk caps trame-client < 4. * Tue Sep 15 2026 Morgan Hough - 2.10.1-1 - Update to 2.10.1. Still requires trame-client >= 3.4, < 5; satisfies trame-slicer's >= 2.9.1 floor. * Mon Aug 24 2026 Morgan Hough - 2.9.0-1 - Update to 2.9.0. Retains the PEP 420 namespace handling from the previous release: the pkgutil markers under trame/ are still removed in %install so the .pyc files cannot collide between trame packages at install time. * Sat Aug 22 2026 Morgan Hough - 2.7.0-2 - Drop the pkgutil namespace markers for trame/{,ui,modules,widgets} and rely on PEP 420 implicit namespace packages. Every trame wheel ships its own identical copy; rpm tolerates the duplicate .py (byte-identical) but the .pyc embeds the source mtime, which differs per build, so installing two trame packages together failed with __pycache__/__init__.cpython-314.pyc file conflicts. * Sat Jul 18 2026 Morgan Hough - 2.7.0-1 - Update to 2.7.0 * Sat Jun 27 2026 Morgan Hough - 2.4.3-2 - Rebuild against Python 3.15 (rawhide). Release bump so the py3.15 build supersedes the lingering same-NVR py3.14 RPM in the COPR repo. * Thu May 28 2026 Morgan Hough - 2.4.3-1 - Initial package for the trame-slicer dependency chain.