cta.spec.in 12.5 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Generic macros
#---------------
%define name cta
%define ctaVersion @CTA_VERSION@
%define ctaRelease @CTA_RELEASE@

# Neutral packaging (for srpm)
#-----------------------------
%if 0%{?neutralpackage:1} > 0
%define mydist %{nil}
%else
%define mydist %{?dist}
%endif

Michael Davis's avatar
Michael Davis committed
15
16
# Skipping unit tests (for developers)
#-------------------------------------
17
18
19
20
21
22
23
24
25
%define skip_unit_tests @SKIP_UNIT_TESTS@

# General settings
#-----------------
Summary: CERN Tape Archive
Name: %{name}
Version: %{ctaVersion}
Release: %{ctaRelease}%{mydist}
Source: %{name}-%{ctaVersion}-%{ctaRelease}.tar.gz
26
License: GPLv3+
27
Group: Application/cta
28

29
BuildRoot: %{_builddir}/%{name}-%{version}-root
30
BuildRequires: cmake >= 2.6 redhat-rpm-config
31
32
33
34


# The CTA client is the only component of CTA that can be compiled on both SLC6
# and C77, therefore only the packages it depends on are required for SLC6
Eric Cano's avatar
Eric Cano committed
35
%define radosVersion 2:12.2.2
36
%if "%{?dist}" == ".slc6" || "%{?dist}" == ".el6"
37
38
BuildRequires: xrootd-client-devel = 1:4.2.3
BuildRequires: xrootd-devel        = 1:4.2.3
39
BuildRequires: cryptopp-devel >= 5.6.2
40
%else
41
42
43
44
BuildRequires: xrootd-client-devel  >= 1:4.8.1
BuildRequires: xrootd-devel         >= 1:4.8.1
BuildRequires: xrootd-server-devel  >= 1:4.8.1
BuildRequires: xrootd-private-devel >= 1:4.8.1
Eric Cano's avatar
Eric Cano committed
45
BuildRequires: librados-devel = %{radosVersion}, libradosstriper-devel = %{radosVersion}, 
46
BuildRequires: protobuf3-compiler >= 3.3.1 protobuf3-devel >= 3.3.1
Eric Cano's avatar
Eric Cano committed
47
BuildRequires: gmock-devel >= 1.5.0 gtest-devel >= 1.5.0
Eric Cano's avatar
Eric Cano committed
48
BuildRequires: sqlite-devel >= 3.6
Eric Cano's avatar
Eric Cano committed
49
BuildRequires: libcap-devel >= 2.16
Eric Cano's avatar
Eric Cano committed
50
BuildRequires: binutils-devel >= 2.20
51
BuildRequires: zeromq-devel >= 4.0
Eric Cano's avatar
Eric Cano committed
52
53
BuildRequires: openssl-devel >= 1.0.1e
BuildRequires: cryptopp-devel >= 5.6.2
Eric Cano's avatar
Eric Cano committed
54
BuildRequires: libuuid-devel >= 2.17
Eric Cano's avatar
Eric Cano committed
55
BuildRequires: json-c-devel >= 0.11
Eric Cano's avatar
Eric Cano committed
56
BuildRequires: libattr-devel >= 2.4.44
57
BuildRequires: oracle-instantclient12.2-devel
58
BuildRequires: valgrind
59
BuildRequires: valgrind-devel
60
61
%{?systemd_requires}
BuildRequires: systemd
62
%endif
63
64
65
66
67
68
69
70
71
72
73
74
75
# only build debug info if you're building the whole code

%description
The CTA project is the CERN Tape Archive system.

%prep
%setup -q -n %{name}-%{ctaVersion}-%{ctaRelease}

%build

mkdir -p build
cd build
# The cmake step does the selection between client/server compilation or just client
76
CTA_VERSION=%{ctaVersion} cmake .. -DCOMPILE_PACKAGING:STRING=0 -DVCS_VERSION=%{ctaRelease}
77
78
# Workaround for the inability of cmake to handle properly the dependencies to generated code.
%{__make} -s %{_smp_mflags} -k || true
79
80
81
82
83
84
85
86
87
88
89
90
91
92
%{__make} -s %{_smp_mflags}

%install
%{__rm} -rf ${RPM_BUILD_ROOT}

cd build
%{__make} install DESTDIR=${RPM_BUILD_ROOT} EXPORTMAN=${RPM_BUILD_ROOT}/usr/share/man

%clean
%{__rm} -rf $RPM_BUILD_ROOT
%{__rm} -rf $RPM_BUILD_DIR/%{name}-%{version}


%check
93
94
95
96
97
98
# The CTA client is the only component of CTA that can be compiled on both SLC6
# and C77, therefore thereis no unittest for it
%if "%{?dist}" == ".slc6" || "%{?dist}" == ".el6"
%define skip_unit_tests 1
%endif

99
100
%if "%{skip_unit_tests}" == "0"
cd build
101
%{__make} shortunittests
102
103
%endif

104
# The packages will be cta-taped, cta-frontend, cta-cli
105
106
107
108

# The CTA client is the only component of CTA that can be compiled on both SLC6
# and C77
%if "%{?dist}" == ".slc6" || "%{?dist}" == ".el6"
109

110
111
112
113
114
115
116
117
%package -n cta-cli
Summary: CERN Tape Archive: command line interface
Group: Application/CTA
%description -n cta-cli
CERN Tape Archive:
The xroot plugin
%files -n cta-cli
%defattr(-,root,root)
118
%attr(0755,root,root) %{_bindir}/cta-admin
119
%attr(0755,root,root) %{_bindir}/cta-wfe-test
120
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-cli.conf
121

122
%else
123

124
125
%package -n cta-taped
Summary: CERN Tape Archive: tape daemon
126
Group: Application/CTA
127
Requires: logrotate
128
Requires: cta-lib = %{version}-%{release}
129
Requires(pre): /usr/bin/getent, /usr/sbin/groupadd, /usr/sbin/useradd
130
%description -n cta-taped
131
132
CERN Tape Archive:
The tape server daemon
133
%pre -n cta-taped
Steven Murray's avatar
Steven Murray committed
134
135
/usr/bin/getent group cta || /usr/sbin/groupadd cta
/usr/bin/getent passwd cta || /usr/sbin/useradd -s /bin/nologin -c "CTA system account" -g cta cta
136
%files -n cta-taped
137
%defattr(-,root,root)
138
%attr(0755,cta,cta) %dir /var/log/cta
139
%attr(0644,root,root) %config(noreplace) /etc/logrotate.d/cta-taped
140
%attr(0755,root,root) %{_bindir}/cta-taped
141
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-taped.conf.example
142
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/TPCONFIG.example
143
144
145
%attr(0644,root,root) %doc /usr/share/man/man1/cta-taped.1cta.gz
%attr(0644,root,root) /etc/sysconfig/cta-taped
%attr(0644,root,root) /etc/systemd/system/cta-taped.service
146

147
148
149
150
151
152
153
154
155
%post -n cta-taped
%systemd_post cta-taped.service

%preun -n cta-taped
%systemd_preun cta-taped.service

%postun -n cta-taped
%systemd_postun cta-taped.service

156
%package -n cta-frontend
157
Summary: CERN Tape Archive: Xrootd plugin
158
Group: Application/CTA
159
Requires: logrotate
160
Requires: cta-lib = %{version}-%{release}
161
162
Requires: xrootd-server
Requires(pre): /usr/bin/getent, /usr/sbin/groupadd, /usr/sbin/useradd
163
164
165
%description -n cta-frontend
CERN Tape Archive:
The xroot plugin
Steven Murray's avatar
Steven Murray committed
166
167
168
%pre -n cta-frontend
/usr/bin/getent group cta || /usr/sbin/groupadd cta
/usr/bin/getent passwd cta || /usr/sbin/useradd -s /bin/nologin -c "CTA system account" -g cta cta
169
%files -n cta-frontend
Michael Davis's avatar
Michael Davis committed
170
%defattr(0755,root,root)
171
%{_libdir}/libXrdSsiCta.so*
172
%attr(0755,cta,cta) %dir /var/log/cta
173
%attr(0644,root,root) %config(noreplace) /etc/logrotate.d/cta-frontend
174
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-frontend-xrootd.conf
Daniele Kruse's avatar
Daniele Kruse committed
175
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-frontend.conf
176
%attr(0644,cta,cta) /etc/systemd/system/cta-frontend.service
177

178
#Frontend installs libraries so we need ldconfig.
179
180
181
182
183
184
185
186
187
188
%post -n cta-frontend
/sbin/ldconfig
%systemd_post cta-frontend.service

%preun -n cta-frontend
%systemd_preun cta-frontend.service

%postun -n cta-frontend
/sbin/ldconfig
%systemd_post cta-frontend.service
189

190
%package -n cta-cli
191
Summary: CERN Tape Archive: command line interface
192
193
194
195
196
197
Group: Application/CTA
%description -n cta-cli
CERN Tape Archive:
The xroot plugin
%files -n cta-cli
%defattr(-,root,root)
198
%attr(0755,root,root) %{_bindir}/cta-admin
199
%attr(0755,root,root) %{_bindir}/cta-wfe-test
200
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-cli.conf
201
202

%package -n cta-lib
203
Summary: CERN Tape Archive libraries
204
Group: Application/CTA
205
Requires: oracle-instantclient12.2-basic
Eric Cano's avatar
Eric Cano committed
206
Requires: librados2 = %{radosVersion}
207
208
209
210
%description -n cta-lib
CERN Tape Archive:
The shared libraries
%files -n cta-lib
Michael Davis's avatar
Michael Davis committed
211
212
213
%defattr(0755,root,root,-)
%{_libdir}/libctacatalogue.so*
%{_libdir}/libctacommon.so*
214
#TODO: merge util and common
Michael Davis's avatar
Michael Davis committed
215
216
217
218
219
220
%{_libdir}/libctascheduler.so*
%{_libdir}/libctaobjectstore.so*
%{_libdir}/libctamediachanger.so*
%{_libdir}/libctamessages.so*
%{_libdir}/libctamessagesutils.so*
%{_libdir}/libctardbms.so*
221
%{_libdir}/libctardbmswrapper.so*
222
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-catalogue.conf.example
223

224
225
226
227
#CTA-lib installs libraries so we need ldconfig.
%post -n cta-lib -p /sbin/ldconfig
%postun -n cta-lib -p /sbin/ldconfig

228
229
%package -n cta-systemtests
Summary: CERN Tape Archive: unit and system tests with virtual tape drives
230
Group: Application/CTA
231
Requires: valgrind >= 3.8.1
232
Requires: cta-taped = %{ctaVersion}-%{ctaRelease}%{mydist}
233
%description -n cta-systemtests
234
CERN Tape Archive:
235
236
Unit tests and system tests with virtual tape drives
%files -n cta-systemtests
Michael Davis's avatar
Michael Davis committed
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
%defattr(0755,root,root,-)
%{_libdir}/libsystemTestHelperTests.so*
%{_libdir}/libcta-tapedSystemTests.so*
%{_bindir}/cta-catalogueUnitTests
%{_bindir}/cta-unitTests
%{_bindir}/cta-unitTests-multiProcess
%{_bindir}/cta-valgrindUnitTests.sh
%{_bindir}/cta-unitPlusSystemTests.sh
%{_libdir}/libctacatalogueunittests.so*
%{_libdir}/libctacataloguecmdlineunittests.so*
%{_libdir}/libctacommonunittests.so*
%{_libdir}/libctaexceptionunittests.so*
%{_libdir}/libctainmemorycatalogueunittests.so*
%{_libdir}/libctaobjectstoreunittests.so*
%{_libdir}/libctardbmsunittests.so*
252
%{_libdir}/libctardbmswrapperunittests.so*
Michael Davis's avatar
Michael Davis committed
253
254
255
256
257
258
259
260
261
%{_libdir}/libctaschedulerunittests.so*
%{_libdir}/libctatapeserverdaemonunittests.so*
%{_libdir}/libctatapeserverdriveunittests.so*
%{_libdir}/libctatapeserverfileunittests.so*
%{_libdir}/libctatapeserverscsiunittests.so*
%{_libdir}/libctadaemonunittests.so*
%{_libdir}/libctamediachangerunittests.so*
%{_bindir}/cta-systemTests
%{_libdir}/libctadaemonunittests-multiprocess.so*
262
%attr(0644,root,root) %{_datadir}/%{name}-%{ctaVersion}/unittest/*.suppr
263

264
265
266
267
268
269
270
271
272
273
%package -n cta-objectstore-tools
Summary: CERN Tape Archive: object store tools
Group: Application/CTA
%description -n cta-objectstore-tools
CERN Tape Archive:
Tools allowing initialization and inspection of the object store.
%files -n cta-objectstore-tools
%attr(0755,root,root) %{_bindir}/cta-objectstore-initialize
%attr(0755,root,root) %{_bindir}/cta-objectstore-list
%attr(0755,root,root) %{_bindir}/cta-objectstore-dump-object
274
%attr(0755,root,root) %{_bindir}/cta-objectstore-unfollow-agent
275
%attr(0755,root,root) %{_bindir}/cta-objectstore-dereference-removed-queues
276
%attr(0755,root,root) %{_bindir}/cta-objectstore-collect-orphaned-object
277

278
279
280
281
#cta-systemtests installs libraries so we need ldconfig.
%post -n cta-systemtests -p /sbin/ldconfig
%postun -n cta-systemtests -p /sbin/ldconfig

282
%package -n cta-catalogueutils
283
Summary: Utilities to faciliate working with the CTA catalogue
284
285
286
287
288
Group: Application/CTA
%description -n cta-catalogueutils
CERN Tape Archive:
Scripts and utilities to faciliate working with the CTA catalogue
%files -n cta-catalogueutils
289
290
%attr(0755,root,root) %{_bindir}/cta-catalogue-admin-user-create
%attr(0755,root,root) %{_bindir}/cta-catalogue-admin-host-create
291
%attr(0755,root,root) %{_bindir}/cta-catalogue-schema-create
292
%attr(0755,root,root) %{_bindir}/cta-catalogue-schema-drop
293
%attr(0755,root,root) %{_bindir}/cta-database-poll
294
295
296
297
298
%attr(0644,root,root) %doc /usr/share/man/man1/cta-catalogue-admin-host-create.1cta.gz
%attr(0644,root,root) %doc /usr/share/man/man1/cta-catalogue-admin-user-create.1cta.gz
%attr(0644,root,root) %doc /usr/share/man/man1/cta-catalogue-schema-create.1cta.gz
%attr(0644,root,root) %doc /usr/share/man/man1/cta-catalogue-schema-drop.1cta.gz
%attr(0644,root,root) %doc /usr/share/man/man1/cta-database-poll.1cta.gz
299
300
301
302
303
304
305
306
307
308

%package -n cta-mediachangerutils
Summary: Utilities to faciliate working with mediachangers
Group: Application/CTA
%description -n cta-mediachangerutils
CERN Tape Archive:
Utilities to faciliate working with the mediachangers
%files -n cta-mediachangerutils
%attr(0755,root,root) %{_bindir}/cta-mediachanger-dismount
%attr(0755,root,root) %{_bindir}/cta-mediachanger-mount
309
310
%attr(0644,root,root) %doc /usr/share/man/man1/cta-mediachanger-dismount.1cta.gz
%attr(0644,root,root) %doc /usr/share/man/man1/cta-mediachanger-mount.1cta.gz
311

Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
312
313
314

%package -n cta-rmcd
Summary: Tools to faciliate working with rmcd and smc in cta
315
Group: Application/CTA
Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
316
Requires: logrotate
317
#Requires: cta-lib = %{version}-%{release}
Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
318
319
Requires(pre): /usr/bin/getent, /usr/sbin/groupadd, /usr/sbin/useradd
%description -n cta-rmcd
320
CERN Tape Archive:
Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
321
322
323
324
325
Tools to faciliate working with rmcd and smc in cta
%pre -n cta-rmcd
/usr/bin/getent group cta || /usr/sbin/groupadd cta
/usr/bin/getent passwd cta || /usr/sbin/useradd -s /bin/nologin -c "CTA system account" -g cta cta
%files -n cta-rmcd
326
%defattr(-,root,root)
Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
327
%attr(0755,cta,cta) %dir /var/log/cta
328
%attr(0644,root,root) %config(noreplace) /etc/logrotate.d/cta-rmcd
329
%attr(0644,root,root) %doc /usr/share/man/man1/cta-rmcd.1cta.gz
330
%attr(0755,root,root) %{_bindir}/cta-rmcd
331
%attr(0755,root,root) %{_bindir}/cta-smc
Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
332
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-rmcd.conf
333
334
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-smc.conf
%attr(0644,root,root) %doc /usr/share/man/man1/cta-smc.1cta.gz
335
%attr(0644,root,root) %config(noreplace) /etc/sysconfig/cta-rmcd
Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
336
%attr(0644,root,root) /etc/systemd/system/cta-rmcd.service
337

338
339
340
341
342
343
344
345
346
%post -n cta-rmcd
%systemd_post cta-rmcd.service

%preun -n cta-rmcd
%systemd_preun cta-rmcd.service

%postun -n cta-rmcd
%systemd_postun cta-rmcd.service

347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
%package -n cta-tape-developer-acs-tools
Summary: Cern Advanced mass STORage
Group: Application/Castor
Requires: cta-lib = %{version}-%{release}
Requires: stk-ssi-lib
BuildRequires: stk-ssi-devel
%description -n cta-tape-developer-acs-tools
castor (Cern Advanced STORage system)
 ASC tools for CASTOR tape developers
%files -n cta-tape-developer-acs-tools
%defattr(-,root,root)
%attr(0755,root,root) /usr/bin/cta-tape-acs-queryvolume
%attr(0755,root,root) /usr/bin/cta-tape-acs-dismount
%attr(0755,root,root) /usr/bin/cta-tape-acs-mount
%attr(0644,root,root) %doc /usr/share/man/man1/cta-tape-acs-queryvolume.1cta.gz
%attr(0644,root,root) %doc /usr/share/man/man1/cta-tape-acs-mount.1cta.gz
%attr(0644,root,root) %doc /usr/share/man/man1/cta-tape-acs-dismount.1cta.gz
364
%endif