aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/osmo-trx.spec.in
blob: fa46b74aa01c8f9287f2d8979cb02e0b3f62f1b1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
#
# spec file for package osmo-trx
#
# Copyright (c) 2017, 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.

Name:           osmo-trx
Version:        @VERSION@
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://osmocom.org/projects/osmotrx
Source:         %{name}-%{version}.tar.xz
BuildRequires:  autoconf
BuildRequires:  automake
BuildRequires:  fdupes
BuildRequires:  gcc-c++
BuildRequires:  libtool
BuildRequires:  pkgconfig >= 0.20
%if 0%{?suse_version}
BuildRequires:  systemd-rpm-macros
%endif
%if ! 0%{?centos_ver}
BuildRequires:  pkgconfig(LimeSuite)
BuildRequires:  pkgconfig(usrp) >= 3.3
%endif
BuildRequires:  pkgconfig(fftw3f)
BuildRequires:  pkgconfig(libosmocoding) >= 1.3.0
BuildRequires:  pkgconfig(libosmocore) >= 0.12.0
BuildRequires:  pkgconfig(libosmoctrl) >= 0.12.0
BuildRequires:  pkgconfig(libosmovty) >= 0.12.0
BuildRequires:  pkgconfig(libusb-1.0)
BuildRequires:  pkgconfig(uhd)
%{?systemd_requires}
%if 0%{?suse_version} > 1325
BuildRequires:  libboost_program_options-devel
BuildRequires:  libboost_system-devel
BuildRequires:  libboost_test-devel
BuildRequires:  libboost_thread-devel
%else
BuildRequires:  boost-devel
%endif

%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)

%package uhd
Summary:        SDR transceiver that implements Layer 1 of a GSM BTS (UHD)
Group:          Productivity/Telephony/Servers
Requires:       uhd-firmware

%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)

%if ! 0%{?centos_ver}
%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)

%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

%prep
%setup -q

%build
echo "%{version}" >.tarball-version
autoreconf -fi

%if 0%{?centos_ver}
%configure \
  --docdir=%{_docdir}/%{name} \
  --with-systemdsystemunitdir=%{_unitdir} \
  --without-lms \
  --with-uhd \
  --without-usrp1
%else
%configure \
  --docdir=%{_docdir}/%{name} \
  --with-systemdsystemunitdir=%{_unitdir} \
  --with-lms \
  --with-uhd \
  --with-usrp1
%endif

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%{?suse_version}
%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
%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
%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

%files
%license COPYING
%doc README.md
%doc %{_docdir}/%{name}/examples

%if ! 0%{?centos_ver}
%files lms
%{_bindir}/osmo-trx-lms
%dir %{_sysconfdir}/osmocom
%config %{_sysconfdir}/osmocom/osmo-trx-lms.cfg
%{_unitdir}/osmo-trx-lms.service
%endif

%files uhd
%{_bindir}/osmo-trx-uhd
%dir %{_sysconfdir}/osmocom
%config %{_sysconfdir}/osmocom/osmo-trx-uhd.cfg
%{_unitdir}/osmo-trx-uhd.service

%if ! 0%{?centos_ver}
%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

%changelog