%global ros_distro lyrical %global pkg_name rqt_plot %bcond fedora_fhs 0 %if %{with fedora_fhs} # FHS layout for a possible Fedora main-repo build or reference impl (ADR 0012). %global install_prefix %{_prefix} %else # COPR default: upstream ROS 2 /opt convention. %global install_prefix /opt/ros/%{ros_distro} %endif Name: ros-%{ros_distro}-rqt-plot Version: 1.7.5 Release: 1%{?dist} Summary: ROS 2 Lyrical rqt_plot License: BSD-3-Clause URL: http://wiki.ros.org/rqt_plot Source0: https://github.com/ros2-gbp/rqt_plot-release/archive/refs/tags/release/lyrical/rqt_plot/1.7.5-3.tar.gz#/%{pkg_name}-%{version}.tar.gz BuildArch: noarch BuildRequires: pyproject-rpm-macros BuildRequires: python3-devel BuildRequires: python3-pip BuildRequires: python3-setuptools BuildRequires: python3-wheel BuildRequires: qt6-qtbase-devel BuildRequires: qt6-qtbase-gui Requires: python3 Requires: python3-matplotlib Requires: python3-numpy Requires: ros-lyrical-ament-index-python Requires: ros-lyrical-python-qt-binding Requires: ros-lyrical-qt-gui-py-common Requires: ros-lyrical-rclpy Requires: ros-lyrical-rosidl-parser Requires: ros-lyrical-rosidl-runtime-py Requires: ros-lyrical-rqt-gui Requires: ros-lyrical-rqt-gui-py Requires: ros-lyrical-std-msgs # Hide ROS libraries from the system solver under /opt; under FHS # (--with fedora_fhs) normal auto-provides/requires apply. %if %{without fedora_fhs} %global __provides_exclude_from ^%{install_prefix}/.*$ %global __requires_exclude_from ^%{install_prefix}/.*$ %endif %description rqt_plot provides a GUI plugin visualizing numeric values in a 2D plot using different plotting backends. %prep %autosetup -p1 -n rqt_plot-release-release-lyrical-rqt_plot-1.7.5-3 # Reduce setup.py's install_requires to ['setuptools'] before the # auto-generated buildrequires step runs. The full list typically references # ROS Python packages (launch, ament_index_python, etc.) that live under # /opt/ros/jazzy and don't register python3dist(...) Provides; leaving # those in setup.py causes pyproject buildrequires to emit BRs that Fedora # can't resolve. The runtime Requires: above already enforces these. python3 << 'PYEOF' || true import re p = "setup.py" s = open(p).read() s = re.sub(r"install_requires\s*=\s*\[[^\]]*\]", "install_requires=['setuptools']", s, flags=re.S) open(p, "w").write(s) PYEOF %generate_buildrequires %pyproject_buildrequires %build %pyproject_wheel %install %{python3} -m pip install \ --root %{buildroot} \ --prefix %{install_prefix} \ --no-deps \ --no-build-isolation \ --no-warn-script-location \ --disable-pip-version-check \ %{_pyproject_wheeldir}/*.whl %check %pytest -v test || true %files %license LICENSE %doc CHANGELOG.rst %{install_prefix}/bin/* # TODO: review the file list, generator emits a permissive glob and you may # need to enumerate explicit paths to avoid conflicts with sibling packages. %{install_prefix}/lib/python%{python3_version}/site-packages/%{pkg_name}/ %{install_prefix}/lib/python%{python3_version}/site-packages/%{pkg_name}-%{version}.dist-info/ %{install_prefix}/share/ament_index/resource_index/packages/%{pkg_name} %{install_prefix}/share/%{pkg_name}/ %changelog * Wed Jun 03 2026 Nick Schuetz - 1.7.5-1 - Initial Fedora COPR build for ROS 2 Lyrical.