summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2025-08-05 10:50:33 +0000
committerCoprDistGit <infra@openeuler.org>2025-08-05 10:50:33 +0000
commitc2724e24bcce35e992bb81cc61a5a55e9ecbaa63 (patch)
treef3c6aa26c277dad14f9356eae8f48b7db1720dd7
parentcf9a2a425e855b1a693bb121feedeafcf0f90965 (diff)
automatic import of uhdopeneuler24.09
-rw-r--r--.gitignore2
-rw-r--r--sources2
-rw-r--r--uhd-4.2.0.0-imagepath-fix.patch13
-rw-r--r--uhd-limits.conf5
-rw-r--r--uhd.spec286
5 files changed, 308 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..7cd84ae 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1,2 @@
+/uhd-4.7.0.0.tar.gz
+/uhd-images_4.7.0.0.tar.xz
diff --git a/sources b/sources
new file mode 100644
index 0000000..446304c
--- /dev/null
+++ b/sources
@@ -0,0 +1,2 @@
+8bd35c962d47822e9e4fc8572e2d2845 uhd-4.7.0.0.tar.gz
+fa00a2704231a93a5ccf158617ff6dbb uhd-images_4.7.0.0.tar.xz
diff --git a/uhd-4.2.0.0-imagepath-fix.patch b/uhd-4.2.0.0-imagepath-fix.patch
new file mode 100644
index 0000000..7230a92
--- /dev/null
+++ b/uhd-4.2.0.0-imagepath-fix.patch
@@ -0,0 +1,13 @@
+diff --git a/host/lib/utils/paths.cpp b/host/lib/utils/paths.cpp
+index 73b4cc2..a122c9d 100644
+--- a/host/lib/utils/paths.cpp
++++ b/host/lib/utils/paths.cpp
+@@ -290,7 +290,7 @@ std::string uhd::get_pkg_path(void)
+
+ std::string uhd::get_lib_path(void)
+ {
+- fs::path runtime_libfile_path = boost::dll::this_line_location();
++ fs::path runtime_libfile_path = "/usr" / boost::dll::this_line_location();
+ // Normalize before decomposing path so result is reliable
+ fs::path lib_path = runtime_libfile_path.lexically_normal().parent_path();
+ return lib_path.string();
diff --git a/uhd-limits.conf b/uhd-limits.conf
new file mode 100644
index 0000000..2a4f63a
--- /dev/null
+++ b/uhd-limits.conf
@@ -0,0 +1,5 @@
+# Required for better USRP performance, see:
+# http://files.ettus.com/uhd_docs/manual/html/general.html#threading-notes
+# http://bugzilla.redhat.com/show_bug.cgi?id=781540
+
+@usrp - rtprio 99
diff --git a/uhd.spec b/uhd.spec
new file mode 100644
index 0000000..ba941e3
--- /dev/null
+++ b/uhd.spec
@@ -0,0 +1,286 @@
+# Modified from https://src.fedoraproject.org/rpms/uhd/blob/rawhide/f/uhd.spec
+
+#%%global git_commit c52f3f41806622c95573de21be042f966f675543
+#%%global git_date 201904023
+
+#%%global git_short_commit %%(echo %{git_commit} | cut -c -8)
+#%%global git_suffix %%{git_date}git%{git_short_commit}
+
+# By default include binary_firmware, otherwise try to rebuild
+# the firmware from sources. If you want to rebuild all firmware
+# images you need to install appropriate tools (e.g. Xilinx ISE).
+%bcond_without binary_firmware
+
+# Currently broken: https://github.com/EttusResearch/uhd/issues/413
+%bcond_with wireshark
+
+# NEON support is by default disabled on ARMs
+# building with --with=neon will enable auto detection
+%bcond_with neon
+
+# X.Y.Z
+%global wireshark_ver_full %((%{__awk} '/^#define VERSION[ \t]+/ { print $NF }' /usr/include/wireshark/config.h 2>/dev/null||echo none)|/usr/bin/tr -d '"')
+# X.Y
+%global wireshark_ver %(VF="%{wireshark_ver_full}"; echo ${VF%.*})
+
+%ifarch %{arm} aarch64
+%if ! %{with neon}
+%global have_neon -DHAVE_ARM_NEON_H=0
+%endif
+%endif
+
+Name: uhd
+URL: http://github.com/EttusResearch/uhd
+Version: 4.7.0.0
+%global images_ver %{version}
+Release: 1
+# Automatically converted from old format: GPLv3+ - review is highly recommended.
+License: GPL-3.0-or-later
+BuildRequires: make
+BuildRequires: gcc-c++
+BuildRequires: cmake
+BuildRequires: boost-devel
+BuildRequires: libusb1-devel
+BuildRequires: python3-cheetah
+BuildRequires: ncurses-devel
+BuildRequires: python3-docutils
+BuildRequires: doxygen
+BuildRequires: pkgconfig
+BuildRequires: libpcap-devel
+BuildRequires: python3-numpy
+BuildRequires: vim-common
+BuildRequires: libatomic
+%if %{with wireshark}
+BuildRequires: wireshark-devel
+BuildRequires: libgcrypt-devel
+BuildRequires: gnutls-devel
+%endif
+BuildRequires: pybind11-devel
+BuildRequires: python3-mako
+BuildRequires: python3-requests
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: tar
+%if ! %{with binary_firmware}
+BuildRequires: sdcc
+BuildRequires: sed
+%endif
+Requires(pre): shadow-utils, glibc-common
+Requires: python3-tkinter
+Summary: Universal Hardware Driver for Ettus Research products
+Source0: %{url}/archive/v%{version}/uhd-%{version}.tar.gz
+Source1: %{name}-limits.conf
+Source2: %{url}/releases/download/v%{images_ver}/uhd-images_%{images_ver}.tar.xz
+# dirty workaround for the https://github.com/EttusResearch/uhd/issues/551
+# until the better fix is available
+Patch0: uhd-4.2.0.0-imagepath-fix.patch
+
+%description
+The UHD is the universal hardware driver for Ettus Research products.
+The goal of the UHD is to provide a host driver and API for current and
+future Ettus Research products. It can be used standalone without GNU Radio.
+
+%package firmware
+Summary: Firmware files for UHD
+Requires: %{name} = %{version}-%{release}
+BuildArch: noarch
+
+%description firmware
+Firmware files for the Universal Hardware driver (UHD).
+
+%package devel
+Summary: Development files for UHD
+Requires: %{name} = %{version}-%{release}
+
+%description devel
+Development files for the Universal Hardware Driver (UHD).
+
+# arch due to bug in doxygen
+%package doc
+Summary: Documentation files for UHD
+
+%description doc
+Documentation for the Universal Hardware Driver (UHD).
+
+%package tools
+Summary: Tools for working with / debugging USRP device
+Requires: %{name} = %{version}-%{release}
+
+%description tools
+Tools that are useful for working with and/or debugging USRP device.
+
+%if %{with wireshark}
+%package wireshark
+Summary: Wireshark dissector plugins
+Requires: %{name} = %{version}-%{release}
+Requires: %{_libdir}/wireshark/plugins/%{wireshark_ver}
+
+%description wireshark
+Wireshark dissector plugins.
+%endif
+
+%prep
+%setup -q
+%patch -P0 -p1 -b .imagepath-fix
+
+# firmware
+%if %{with binary_firmware}
+# extract binary firmware
+mkdir -p images/images
+tar -xJf %{SOURCE2} -C images/images --strip-components=1
+rm -f images/images/{LICENSE.txt,*.tag}
+# remove Windows drivers
+rm -rf images/winusb_driver
+%endif
+
+# fix python shebangs
+find . -type f -name "*.py" -exec sed -i '/^#!/ s|.*|#!%{__python3}|' {} \;
+
+%build
+# firmware
+%if ! %{with binary_firmware}
+# rebuilt from sources
+export PATH=$PATH:%{_libexecdir}/sdcc
+pushd images
+sed -i '/-name "\*\.twr" | xargs grep constraint | grep met/ s/^/#/' Makefile
+make %{?_smp_mflags} images
+popd
+%endif
+
+pushd host
+%cmake %{?have_neon} -DPYTHON_EXECUTABLE="%{__python3}" \
+ -DPYBIND11_INCLUDE_DIR="/usr/include/pybind11/" \
+ -DUHD_VERSION="%{version}" \
+ -DENABLE_TESTS=off ../
+%cmake_build
+popd
+
+# tools
+pushd tools/uhd_dump
+make %{?_smp_mflags} CFLAGS="%{optflags}" LDFLAGS="%{?__global_ldflags}"
+popd
+
+%if %{with wireshark}
+# wireshark dissectors
+pushd tools/dissectors
+%cmake -DENABLE_RFNOC=ON -DENABLE_OCTOCLOCK=ON -DENABLE_ZPU=ON
+%cmake_build
+popd
+%endif
+
+#%%check
+#cd host/%%{_vpath_builddir}
+#make test
+
+%install
+# fix python shebangs (run again for generated scripts)
+find . -type f -name "*.py" -exec sed -i '/^#!/ s|.*|#!%{__python3}|' {} \;
+
+pushd host
+%cmake_install
+
+# Fix udev rules and use dynamic ACL management for device
+sed -i 's/BUS==/SUBSYSTEM==/;s/SYSFS{/ATTRS{/;s/MODE:="0666"/GROUP:="usrp", MODE:="0660", ENV{ID_SOFTWARE_RADIO}="1"/' %{buildroot}%{_libdir}/uhd/utils/uhd-usrp.rules
+mkdir -p %{buildroot}%{_prefix}/lib/udev/rules.d
+mv %{buildroot}%{_libdir}/uhd/utils/uhd-usrp.rules %{buildroot}%{_prefix}/lib/udev/rules.d/10-usrp-uhd.rules
+
+# Remove tests, examples binaries
+rm -rf %{buildroot}%{_libdir}/uhd/{tests,examples}
+
+# Move the utils stuff to libexec dir
+mkdir -p %{buildroot}%{_libexecdir}/uhd
+mv %{buildroot}%{_libdir}/uhd/utils/* %{buildroot}%{_libexecdir}/uhd
+
+popd
+# Package base docs to base package
+mkdir _tmpdoc
+mv %{buildroot}%{_docdir}/%{name}/{LICENSE,README.md} _tmpdoc
+
+install -m 644 -D %{SOURCE1} %{buildroot}%{_sysconfdir}/security/limits.d/99-usrp.conf
+
+# firmware
+mkdir -p %{buildroot}%{_datadir}/uhd/images
+cp -r images/images/* %{buildroot}%{_datadir}/uhd/images
+
+# remove win stuff
+rm -rf %{buildroot}%{_datadir}/uhd/images/winusb_driver
+
+# convert hardlinks to symlinks (to not package the file twice)
+pushd %{buildroot}%{_bindir}
+for f in uhd_images_downloader usrp2_card_burner
+do
+ unlink $f
+ ln -s ../..%{_libexecdir}/uhd/${f}.py $f
+done
+popd
+
+# tools
+install -Dpm 0755 tools/usrp_x3xx_fpga_jtag_programmer.sh %{buildroot}%{_bindir}/usrp_x3xx_fpga_jtag_programmer.sh
+install -Dpm 0755 tools/uhd_dump/chdr_log %{buildroot}%{_bindir}/chdr_log
+
+%if %{with wireshark}
+# wireshark dissectors
+pushd tools/dissectors
+%cmake_install
+popd
+# fix wireshark dissectors location
+mkdir -p %{buildroot}%{_libdir}/wireshark/plugins/%{wireshark_ver}
+mv %{buildroot}%{_prefix}/epan %{buildroot}%{_libdir}/wireshark/plugins/%{wireshark_ver}
+%endif
+
+# add directory for modules
+mkdir -p %{buildroot}%{_libdir}/uhd/modules
+
+%ldconfig_scriptlets
+
+%pre
+getent group usrp >/dev/null || \
+ %{_sbindir}/groupadd -r usrp >/dev/null 2>&1
+exit 0
+
+%files
+%exclude %{_docdir}/%{name}/doxygen
+%exclude %{_datadir}/uhd/images
+%doc _tmpdoc/*
+%dir %{_libdir}/uhd
+%{_bindir}/usrpctl
+%{_bindir}/uhd_*
+%{_bindir}/usrp2_*
+%{_bindir}/rfnoc_image_builder
+%{_bindir}/usrp_hwd.py
+%{_prefix}/lib/udev/rules.d/10-usrp-uhd.rules
+%config(noreplace) %{_sysconfdir}/security/limits.d/*.conf
+%{_libdir}/lib*.so.*
+%{_libdir}/uhd/modules
+%{_libexecdir}/uhd
+%{_mandir}/man1/*.1*
+%{_datadir}/uhd
+%{python3_sitearch}/uhd
+%{python3_sitearch}/usrp_mpm
+
+%files firmware
+%dir %{_datadir}/uhd/images
+%{_datadir}/uhd/images/*
+
+%files devel
+%{_includedir}/*
+%{_libdir}/lib*.so
+%{_libdir}/cmake/uhd/*.cmake
+%{_libdir}/pkgconfig/*.pc
+
+%files doc
+%doc %{_docdir}/%{name}/doxygen
+
+%files tools
+%doc tools/README.md
+%{_bindir}/usrp_x3xx_fpga_jtag_programmer.sh
+%{_bindir}/chdr_log
+
+%if %{with wireshark}
+%files wireshark
+%{_libdir}/wireshark/plugins/%{wireshark_ver}/epan/*
+%endif
+
+%changelog
+* Sat Feb 08 2025 Suyun <ziyu.oerv@isrc.iscas.ac.cn> - 4.7.0.0-1
+- Init package at 4.7.0.0