File osmo-trx.spec of Package osmo-trx
#
# spec file for package osmo-trx
#
# Copyright (c) 2017-2025, Martin Hauke <mardnh@gmx.de>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
#%%bcond_with uhd
%bcond_with bladerf
%bcond_with lms
%bcond_with usrp1
%bcond_with xtrx
Name: osmo-trx
Version: 1.7.1.3
Release: 0
Summary: SDR transceiver that implements Layer 1 of a GSM BTS
License: AGPL-3.0-or-later
Group: Productivity/Telephony/Servers
URL: https://projects.osmocom.org/projects/osmotrx
#Git-Clone: https://gitea.osmocom.org/cellular-infrastructure/osmo-trx
Source: %{name}-%{version}.tar.xz
Source99: osmo-trx-rpmlintrc
%if 0%{with xtrx}
Patch0: xtrx-v5.diff
%endif
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: libtool
BuildRequires: pkgconfig >= 0.20
%if 0%{with lms}
BuildRequires: pkgconfig(LimeSuite)
%endif
BuildRequires: pkgconfig(fftw3f)
%if 0%{with bladerf}
BuildRequires: pkgconfig(libbladeRF) >= 2.0
%endif
BuildRequires: pkgconfig(libosmocore) >= 1.11.0
BuildRequires: pkgconfig(libosmocoding) >= 1.11.0
BuildRequires: pkgconfig(libosmoctrl) >= 1.11.0
BuildRequires: pkgconfig(libosmovty) >= 1.11.0
BuildRequires: pkgconfig(libusb-1.0)
%if 0%{with usrp1}
BuildRequires: pkgconfig(usrp) >= 3.3
%endif
%if 0%{with xtrx}
BuildRequires: pkgconfig(libxtrx)
%endif
%if 0%{with uhd}
BuildRequires: pkgconfig(uhd)
%endif
%if 0%{?suse_version} > 1325
BuildRequires: libboost_date_time-devel
BuildRequires: libboost_filesystem-devel
BuildRequires: libboost_program_options-devel
%if 0%{?suse_version} < 1600
BuildRequires: libboost_system-devel
%endif
BuildRequires: libboost_thread-devel
%else
BuildRequires: boost-devel
%endif
%{?systemd_requires}
%description
OsmoTRX is a software-defined radio transceiver that implements the Layer 1
physical layer of a BTS comprising the following 3GPP specifications:
TS 05.01 "Physical layer on the radio path"
TS 05.02 "Multiplexing and Multiple Access on the Radio Path"
TS 05.04 "Modulation"
TS 05.10 "Radio subsystem synchronization"
In this context, BTS is "Base transceiver station". It's the stations that
connect mobile phones to the mobile network.
3GPP is the "3rd Generation Partnership Project" which is the collaboration
between different telecommunication associations for developing new
generations of mobile phone networks. (post-2G/GSM)
%if 0%{with uhd}
%package uhd
Summary: SDR transceiver that implements Layer 1 of a GSM BTS (UHD)
Group: Productivity/Telephony/Servers
%description uhd
OsmoTRX is a software-defined radio transceiver that implements the Layer 1
physical layer of a BTS comprising the following 3GPP specifications:
TS 05.01 "Physical layer on the radio path"
TS 05.02 "Multiplexing and Multiple Access on the Radio Path"
TS 05.04 "Modulation"
TS 05.10 "Radio subsystem synchronization"
In this context, BTS is "Base transceiver station". It's the stations that
connect mobile phones to the mobile network.
3GPP is the "3rd Generation Partnership Project" which is the collaboration
between different telecommunication associations for developing new
generations of mobile phone networks. (post-2G/GSM)
%endif
%if 0%{with usrp1}
%package usrp1
Summary: SDR transceiver that implements Layer 1 of a GSM BTS (USRP1)
Group: Productivity/Telephony/Servers
%description usrp1
OsmoTRX is a software-defined radio transceiver that implements the Layer 1
physical layer of a BTS comprising the following 3GPP specifications:
TS 05.01 "Physical layer on the radio path"
TS 05.02 "Multiplexing and Multiple Access on the Radio Path"
TS 05.04 "Modulation"
TS 05.10 "Radio subsystem synchronization"
In this context, BTS is "Base transceiver station". It's the stations that
connect mobile phones to the mobile network.
3GPP is the "3rd Generation Partnership Project" which is the collaboration
between different telecommunication associations for developing new
generations of mobile phone networks. (post-2G/GSM)
%endif
%if 0%{with lms}
%package lms
Summary: SDR transceiver that implements Layer 1 of a GSM BTS (LimeSuite)
Group: Productivity/Telephony/Servers
%description lms
OsmoTRX is a software-defined radio transceiver that implements the Layer 1
physical layer of a BTS comprising the following 3GPP specifications:
TS 05.01 "Physical layer on the radio path"
TS 05.02 "Multiplexing and Multiple Access on the Radio Path"
TS 05.04 "Modulation"
TS 05.10 "Radio subsystem synchronization"
In this context, BTS is "Base transceiver station". It's the stations that
connect mobile phones to the mobile network.
3GPP is the "3rd Generation Partnership Project" which is the collaboration
between different telecommunication associations for developing new
generations of mobile phone networks. (post-2G/GSM)
%endif
%if 0%{with xtrx}
%package xtrx
Summary: SDR transceiver that implements Layer 1 of a GSM BTS (XTRX)
Group: Productivity/Telephony/Servers
%description xtrx
OsmoTRX is a software-defined radio transceiver that implements the Layer 1
physical layer of a BTS comprising the following 3GPP specifications:
TS 05.01 "Physical layer on the radio path"
TS 05.02 "Multiplexing and Multiple Access on the Radio Path"
TS 05.04 "Modulation"
TS 05.10 "Radio subsystem synchronization"
In this context, BTS is "Base transceiver station". It's the stations that
connect mobile phones to the mobile network.
3GPP is the "3rd Generation Partnership Project" which is the collaboration
between different telecommunication associations for developing new
generations of mobile phone networks. (post-2G/GSM)
%endif
%if 0%{with bladerf}
%package bladerf
Summary: SDR transceiver that implements Layer 1 of a GSM BTS (bladeRF)
Group: Productivity/Telephony/Servers
%description bladerf
OsmoTRX is a software-defined radio transceiver that implements the Layer 1
physical layer of a BTS comprising the following 3GPP specifications:
TS 05.01 "Physical layer on the radio path"
TS 05.02 "Multiplexing and Multiple Access on the Radio Path"
TS 05.04 "Modulation"
TS 05.10 "Radio subsystem synchronization"
In this context, BTS is "Base transceiver station". It's the stations that
connect mobile phones to the mobile network.
GPP is the "3rd Generation Partnership Project" which is the collaboration
between different telecommunication associations for developing new
generations of mobile phone networks. (post-2G/GSM)
%endif
%prep
%setup -q
%if 0%{with xtrx}
%patch -P0 -p 1
%endif
%build
echo "%{version}" >.tarball-version
autoreconf -fi
%configure \
--docdir=%{_docdir}/%{name} \
--with-systemdsystemunitdir=%{_unitdir} \
%if 0%{with bladerf}
--with-bladerf \
%endif
%if 0%{with lms}
--with-lms \
%endif
%if 0%{with usrp1}
--with-usrp1
%endif
%if 0%{with uhd}
--with-uhd \
%endif
%if 0%{with xtrx}
--with-xtrx \
%endif
%{nil}
make %{?_smp_mflags} V=1
%check
make %{?_smp_mflags} check || (find . -name testsuite.log -exec cat {} +)
%install
%make_install
%fdupes -s %{buildroot}/%{_datadir}
%if 0%{with lms}
%pre lms %service_add_pre osmo-trx-lms.service
%post lms %service_add_post osmo-trx-lms.service
%preun lms %service_del_preun osmo-trx-lms.service
%postun lms %service_del_postun osmo-trx-lms.service
%endif
%if 0%{with uhd}
%pre uhd %service_add_pre osmo-trx-uhd.service
%post uhd %service_add_post osmo-trx-uhd.service
%preun uhd %service_del_preun osmo-trx-uhd.service
%postun uhd %service_del_postun osmo-trx-uhd.service
%endif
%if 0%{with usrp1}
%pre usrp1 %service_add_pre osmo-trx-usrp1.service
%post usrp1 %service_add_post osmo-trx-usrp1.service
%preun usrp1 %service_del_preun osmo-trx-usrp1.service
%postun usrp1 %service_del_postun osmo-trx-usrp1.service
%endif
%if 0%{with xtrx}
%pre xtrx %service_add_pre osmo-trx-xtrx.service
%post xtrx %service_add_post osmo-trx-xtrx.service
%preun xtrx %service_del_preun osmo-trx-xtrx.service
%postun xtrx %service_del_postun osmo-trx-xtrx.service
%endif
%files
%license COPYING
%doc README.md
%doc %{_docdir}/%{name}/examples
%if 0%{with lms}
%files lms
%{_bindir}/osmo-trx-lms
%dir %{_sysconfdir}/osmocom
%config(noreplace) %{_sysconfdir}/osmocom/osmo-trx-lms.cfg
%{_unitdir}/osmo-trx-lms.service
%endif
%if 0%{with lms}
%files uhd
%{_bindir}/osmo-trx-uhd
%dir %{_sysconfdir}/osmocom
%config(noreplace) %{_sysconfdir}/osmocom/osmo-trx-uhd.cfg
%{_unitdir}/osmo-trx-uhd.service
%endif
%if 0%{with usrp1}
%files usrp1
%{_bindir}/osmo-trx-usrp1
%dir %{_datadir}/usrp
%dir %{_datadir}/usrp/rev2
%dir %{_datadir}/usrp/rev4
%{_datadir}/usrp/rev2/std_inband.rbf
%{_datadir}/usrp/rev4/std_inband.rbf
%{_unitdir}/osmo-trx-usrp1.service
%endif
%if 0%{with bladerf}
%files bladerf
%{_bindir}/osmo-trx-blade
#%%dir %{_sysconfdir}/osmocom
#%%config(noreplace) %{_sysconfdir}/osmocom/osmo-trx-blade.cfg
#%%{_unitdir}/osmo-trx-blade.service
%endif
%changelog