Name: ot-br-posix Version: 20250612 Release: 3%{?dist} Summary: Open Source reference implementation of the Thread border router License: BSD-3-Clause URL: https://github.com/openthread/openthread/ Source0: %{url}/archive/%{version}/%{name}-thread-reference-%{version}.tar.gz Source1: %{url}/archive/%{version}/thread-reference-%{version}.tar.gz Source2: otbr-agent.service Source3: otbr-web.service Source4: otbr-web.default Patch: ot-br-posix-force-fedora.patch # Core build sys BuildRequires: cmake BuildRequires: gcc gcc-c++ BuildRequires: ninja-build # Core build deps BuildRequires: avahi avahi-devel BuildRequires: dbus-devel BuildRequires: mbedtls-devel BuildRequires: protobuf-lite-devel BuildRequires: python3 BuildRequires: readline-devel BuildRequires: systemd-devel # OT Web UX BuildRequires: cpp-httplib-devel BuildRequires: nodejs BuildRequires: nodejs-npm BuildRequires: nodejs-packaging # REST API deps BuildRequires: cjson-devel BuildRequires: http-parser-devel Requires: avahi Requires: openthread %description A Thread Border Router connects a Thread network to other IP-based networks, such as Wi-Fi or Ethernet. A Thread Border Router supports the following functions: * End-to-end IP connectivity via routing between Thread devices and other external IP networks. * Bidirectional DNS-based service discovery via mDNS (on a Wi-Fi/Ethernet link) and SRP (on a Thread network). * DHCPv6 Prefix Delegation to obtain IPv6 prefixes for a Thread network. * NAT64 for connecting to IPv4 networks. * External Thread Commissioning (for example, a mobile phone) to authenticate and join a Thread device to a Thread network. OpenThread's implementation of a Border Router is called OpenThread Border Router (OTBR). %package webux Summary: Web UX for OTBR Requires: %{name} = %{version}-%{release} Requires: nodejs %description webux A NodeJS Web UX for managing Thread networks. %prep %autosetup -p1 -n %{name}-thread-reference-%{version} cd third_party/openthread/repo/ tar xf %{SOURCE1} --strip-components=1 cd - %build ./script/cmake-build posix \ -DCMAKE_INSTALL_PREFIX="%{_prefix}" \ -DOT_THREAD_VERSION=1.4 \ -DOTBR_BORDER_AGENT=ON \ -DOT_DAEMON=ON \ -DOTBR_WEB=ON \ -DOTBR_DBUS=ON \ -DOTBR_MDNS=avahi \ -DOTBR_BORDER_ROUTING=ON \ -DOT_POSIX_NAT64_CIDR="192.168.255.0/24" \ -DOT_POSIX_SETTINGS_PATH=\"/etc/openthread\" \ -DOTBR_SRP_ADVERTISING_PROXY=ON \ -DOT_FIREWALL=ON \ -DBUILD_TESTING=OFF \ %nil %install # OTBR install -pD -m 0755 build/otbr/src/agent/otbr-agent %{buildroot}/%{_bindir}/otbr-agent install -pD -m 0755 %{SOURCE2} %{buildroot}/%{_unitdir}/otbr-agent.service install -pD -m 0755 build/otbr/src/agent/otbr-agent.default %{buildroot}/%{_sysconfdir}/default/otbr-agent install -pD -m 0755 build/otbr/src/agent/otbr-agent.conf %{buildroot}/%{_datadir}/dbus-1/system.d/otbr-agent.conf # commissioning tools install -pD -m 0755 build/otbr/tools/pskc %{buildroot}/%{_bindir}/pskc install -pD -m 0755 build/otbr/tools/steering-data %{buildroot}/%{_bindir}/steering-data mkdir -p %{buildroot}/%{_localstatedir}/lib/thread/ # OTBR web ux install -pD -m 0755 build/otbr/src/web/otbr-web %{buildroot}/%{_bindir}/otbr-web install -pD -m 0755 build/otbr/src/web/otbr-web.service %{buildroot}/%{_unitdir}/otbr-web.service install -pD -m 0755 %{SOURCE3} %{buildroot}/%{_unitdir}/otbr-agent.service install -pD -m 0755 %{SOURCE4} %{buildroot}/%{_sysconfdir}/default/otbr-web mkdir -p %{buildroot}/%{_datadir}/otbr-web/frontend/ cp -p src/web/web-service/frontend/*.html %{buildroot}/%{_datadir}/otbr-web/frontend/ mkdir -p %{buildroot}/%{_datadir}/otbr-web/frontend/res/js/ cp -p src/web/web-service/frontend/res/js/* %{buildroot}/%{_datadir}/otbr-web/frontend/res/js/ cp -p build/otbr/src/web/web-service/frontend/node_modules/angular-animate/angular-animate.min.js \ build/otbr/src/web/web-service/frontend/node_modules/angular-aria/angular-aria.min.js \ build/otbr/src/web/web-service/frontend/node_modules/angular-material/angular-material.min.js \ build/otbr/src/web/web-service/frontend/node_modules/angular-messages/angular-messages.min.js \ build/otbr/src/web/web-service/frontend/node_modules/angular/angular.min.js \ build/otbr/src/web/web-service/frontend/node_modules/d3/d3.min.js \ build/otbr/src/web/web-service/frontend/node_modules/material-design-lite/material.min.js \ %{buildroot}/%{_datadir}/otbr-web/frontend/res/js/ mkdir -p %{buildroot}/%{_datadir}/otbr-web/frontend/res/css/ cp -p src/web/web-service/frontend/res/css/* %{buildroot}/%{_datadir}/otbr-web/frontend/res/css/ cp -p build/otbr/src/web/web-service/frontend/node_modules/angular-material/angular-material.min.css \ build/otbr/src/web/web-service/frontend/node_modules/angular-material/angular-material.min.css \ %{buildroot}/%{_datadir}/otbr-web/frontend/res/css/ mkdir -p %{buildroot}/%{_datadir}/otbr-web/frontend/res/img/ cp -p src/web/web-service/frontend/res/img/* %{buildroot}/%{_datadir}/otbr-web/frontend/res/img/ %files %license LICENSE %doc README.md %{_bindir}/otbr-agent %{_bindir}/pskc %{_bindir}/steering-data %{_unitdir}/otbr-agent.service %{_datadir}/dbus-1/system.d/otbr-agent.conf %config %{_sysconfdir}/default/otbr-agent %dir %{_localstatedir}/lib/thread/ %files webux %config %{_sysconfdir}/default/otbr-web %{_bindir}/otbr-web %{_unitdir}/otbr-web.service %{_datadir}/otbr-web/ %changelog * Wed Dec 10 2025 Peter Robinson - 20250612-3 - Add initial WebUX package * Wed Nov 26 2025 Peter Robinson - 20250612-1 - Initial package