cta.spec.in 15.1 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
%define skip_unit_tests @SKIP_UNIT_TESTS@

19
20
21
22
# Utility for reloading systemctl when needed
#--------------------------------------------
%define systemdDaemonReload() if [ -e /usr/bin/systemctl ] ; then /usr/bin/systemctl daemon-reload; fi

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

33
BuildRoot: %{_builddir}/%{name}-%{version}-root
34
BuildRequires: cmake >= 2.6 redhat-rpm-config
35
36
37
38


# 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
39
%define radosVersion 2:12.2.2
Steven Murray's avatar
Steven Murray committed
40
41
42
43
BuildRequires: xrootd-client-devel  >= 1:4.8.2
BuildRequires: xrootd-devel         >= 1:4.8.2
BuildRequires: xrootd-server-devel  >= 1:4.8.2
BuildRequires: xrootd-private-devel >= 1:4.8.2
Eric Cano's avatar
Eric Cano committed
44
BuildRequires: librados-devel = %{radosVersion}, libradosstriper-devel = %{radosVersion}, 
45
BuildRequires: protobuf3-compiler >= 3.3.1 protobuf3-devel >= 3.3.1
Eric Cano's avatar
Eric Cano committed
46
BuildRequires: gmock-devel >= 1.5.0 gtest-devel >= 1.5.0
Eric Cano's avatar
Eric Cano committed
47
BuildRequires: sqlite-devel >= 3.6
Eric Cano's avatar
Eric Cano committed
48
BuildRequires: libcap-devel >= 2.16
Eric Cano's avatar
Eric Cano committed
49
BuildRequires: binutils-devel >= 2.20
50
BuildRequires: zeromq-devel >= 4.0
Eric Cano's avatar
Eric Cano committed
51
52
BuildRequires: openssl-devel >= 1.0.1e
BuildRequires: cryptopp-devel >= 5.6.2
Eric Cano's avatar
Eric Cano committed
53
BuildRequires: libuuid-devel >= 2.17
Eric Cano's avatar
Eric Cano committed
54
BuildRequires: json-c-devel >= 0.11
Eric Cano's avatar
Eric Cano committed
55
BuildRequires: libattr-devel >= 2.4.44
56
BuildRequires: oracle-instantclient12.2-devel
57
BuildRequires: valgrind
58
BuildRequires: valgrind-devel
59
60
%{?systemd_requires}
BuildRequires: systemd
61
62
63
64
65
66
67
68
69
70
71
72
73
# 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
74
CTA_VERSION=%{ctaVersion} cmake .. -DCOMPILE_PACKAGING:STRING=0 -DVCS_VERSION=%{ctaRelease}
75
76
# Workaround for the inability of cmake to handle properly the dependencies to generated code.
%{__make} -s %{_smp_mflags} -k || true
77
78
79
80
81
82
83
84
85
86
87
88
89
90
%{__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
91
92
93
94
95
96
# 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

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

102
# The main packages will be cta-taped, cta-frontend, cta-cli
103

104
105
%package -n cta-taped
Summary: CERN Tape Archive: tape daemon
106
Group: Application/CTA
107
Requires: logrotate
Steven Murray's avatar
Steven Murray committed
108
Requires: cta-common = %{version}-%{release}
109
Requires: cta-lib = %{version}-%{release}
110
%description -n cta-taped
111
112
CERN Tape Archive:
The tape server daemon
113
%files -n cta-taped
114
%defattr(-,root,root)
115
%attr(0644,root,root) %config(noreplace) /etc/logrotate.d/cta-taped
116
%attr(0755,root,root) %{_bindir}/cta-taped
117
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-taped.conf.example
118
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/TPCONFIG.example
119
%attr(0644,root,root) %doc /usr/share/man/man1/cta-taped.1cta.gz
120
%attr(0644,root,root) %config(noreplace) /etc/sysconfig/cta-taped
121
%attr(0644,root,root) %config(noreplace) /etc/systemd/system/cta-taped.service
122

123
124
%post -n cta-taped
%systemd_post cta-taped.service
125
%systemdDaemonReload
126
127
128
129
130
131

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

%postun -n cta-taped
%systemd_postun cta-taped.service
132
%systemdDaemonReload
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
%package -n cta-xrmcd
Summary: CERN Tape Archive: Xrootd plugin
Group: Application/CTA
Requires: logrotate
Requires: cta-common = %{version}-%{release}
Requires: cta-lib = %{version}-%{release}
Requires: xrootd-server
%description -n cta-xrmcd
CERN Tape Archive:
The xroot plugin
%files -n cta-xrmcd
%defattr(0755,root,root)
%{_libdir}/libXrdSsiRmcd.so*
%attr(0644,root,root) %config(noreplace) /etc/logrotate.d/cta-xrmcd
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-xrmcd.conf
%attr(0644,cta,tape) /etc/systemd/system/cta-xrmcd.service
%attr(0644,root,root) %config(noreplace) /etc/sysconfig/cta-xrmcd

#xrmcd installs libraries so we need ldconfig.
%post -n cta-xrmcd
/sbin/ldconfig
%systemd_post cta-xrmcd.service
%systemdDaemonReload

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

%postun -n cta-xrmcd
/sbin/ldconfig
%systemd_post cta-xrmcd.service
%systemdDaemonReload

%package -n cta-xsmc
Summary: CERN Tape Archive: command line interface
Group: Application/CTA
Requires: cta-lib = %{version}-%{release}
%description -n cta-xsmc
CERN Tape Archive:
The xroot plugin
%files -n cta-xsmc
%defattr(-,root,root)
%attr(0755,root,root) %{_bindir}/cta-xsmc
%attr(0644,root,root) %doc /usr/share/man/man1/cta-xsmc-mount.1cta.gz
%attr(0644,root,root) %doc /usr/share/man/man1/cta-xsmc-dismount.1cta.gz

179
%package -n cta-frontend
180
Summary: CERN Tape Archive: Xrootd plugin
181
Group: Application/CTA
182
Requires: logrotate
Steven Murray's avatar
Steven Murray committed
183
Requires: cta-common = %{version}-%{release}
184
Requires: cta-lib = %{version}-%{release}
185
Requires: xrootd-server
186
187
188
189
%description -n cta-frontend
CERN Tape Archive:
The xroot plugin
%files -n cta-frontend
Michael Davis's avatar
Michael Davis committed
190
%defattr(0755,root,root)
191
%{_libdir}/libXrdSsiCta.so*
192
%attr(0644,root,root) %config(noreplace) /etc/logrotate.d/cta-frontend
193
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-frontend-xrootd.conf
194
%attr(0644,cta,tape) /etc/systemd/system/cta-frontend.service
195

196
#Frontend installs libraries so we need ldconfig.
197
198
199
%post -n cta-frontend
/sbin/ldconfig
%systemd_post cta-frontend.service
200
%systemdDaemonReload
201
202
203
204
205
206
207

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

%postun -n cta-frontend
/sbin/ldconfig
%systemd_post cta-frontend.service
208
%systemdDaemonReload
209

210
%package -n cta-cli
211
Summary: CERN Tape Archive: command line interface
212
Group: Application/CTA
213
Requires: cta-lib = %{version}-%{release}
214
215
216
217
218
%description -n cta-cli
CERN Tape Archive:
The xroot plugin
%files -n cta-cli
%defattr(-,root,root)
219
%attr(0755,root,root) %{_bindir}/cta-admin
220
%attr(0755,root,root) %{_bindir}/cta-wfe-test
221
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-cli.conf
222
223

%package -n cta-lib
224
Summary: CERN Tape Archive libraries
225
Group: Application/CTA
226
Requires: oracle-instantclient12.2-basic
Eric Cano's avatar
Eric Cano committed
227
Requires: librados2 = %{radosVersion}
228
Requires: zeromq
229
230
231
232
%description -n cta-lib
CERN Tape Archive:
The shared libraries
%files -n cta-lib
Michael Davis's avatar
Michael Davis committed
233
234
235
%defattr(0755,root,root,-)
%{_libdir}/libctacatalogue.so*
%{_libdir}/libctacommon.so*
236
#TODO: merge util and common
Michael Davis's avatar
Michael Davis committed
237
238
239
240
241
242
%{_libdir}/libctascheduler.so*
%{_libdir}/libctaobjectstore.so*
%{_libdir}/libctamediachanger.so*
%{_libdir}/libctamessages.so*
%{_libdir}/libctamessagesutils.so*
%{_libdir}/libctardbms.so*
243
%{_libdir}/libctardbmswrapper.so*
244
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-catalogue.conf.example
245

246
247
248
249
#CTA-lib installs libraries so we need ldconfig.
%post -n cta-lib -p /sbin/ldconfig
%postun -n cta-lib -p /sbin/ldconfig

250
251
%package -n cta-systemtests
Summary: CERN Tape Archive: unit and system tests with virtual tape drives
252
Group: Application/CTA
253
Requires: valgrind >= 3.8.1
Steven Murray's avatar
Steven Murray committed
254
Requires: cta-lib = %{version}-%{release}
255
Requires: cta-taped = %{ctaVersion}-%{ctaRelease}%{mydist}
Eric Cano's avatar
Eric Cano committed
256
Requires: make
257
Requires: moreutils
258
%description -n cta-systemtests
259
CERN Tape Archive:
260
261
Unit tests and system tests with virtual tape drives
%files -n cta-systemtests
Michael Davis's avatar
Michael Davis committed
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
%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*
277
%{_libdir}/libctardbmswrapperunittests.so*
Michael Davis's avatar
Michael Davis committed
278
279
280
281
282
283
284
%{_libdir}/libctaschedulerunittests.so*
%{_libdir}/libctatapeserverdaemonunittests.so*
%{_libdir}/libctatapeserverdriveunittests.so*
%{_libdir}/libctatapeserverfileunittests.so*
%{_libdir}/libctatapeserverscsiunittests.so*
%{_libdir}/libctadaemonunittests.so*
%{_libdir}/libctamediachangerunittests.so*
285
%{_libdir}/libctamediachangeracsdaemonunittests.so*
286
%{_libdir}/libctamediachangeracsunittests.so*
Michael Davis's avatar
Michael Davis committed
287
288
%{_bindir}/cta-systemTests
%{_libdir}/libctadaemonunittests-multiprocess.so*
289
%attr(0644,root,root) %{_datadir}/%{name}-%{ctaVersion}/unittest/*.suppr
290
%attr(0644,root,root) %{_datadir}/%{name}-%{ctaVersion}/unittest/parallelTestsMakefile
291

292
293
294
%package -n cta-objectstore-tools
Summary: CERN Tape Archive: object store tools
Group: Application/CTA
Steven Murray's avatar
Steven Murray committed
295
Requires: cta-lib = %{version}-%{release}
296
297
298
299
300
301
302
%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
303
%attr(0755,root,root) %{_bindir}/cta-objectstore-unfollow-agent
304
%attr(0755,root,root) %{_bindir}/cta-objectstore-dereference-removed-queues
305
%attr(0755,root,root) %{_bindir}/cta-objectstore-collect-orphaned-object
306

307
308
309
310
#cta-systemtests installs libraries so we need ldconfig.
%post -n cta-systemtests -p /sbin/ldconfig
%postun -n cta-systemtests -p /sbin/ldconfig

311
%package -n cta-catalogueutils
312
Summary: Utilities to faciliate working with the CTA catalogue
313
Group: Application/CTA
Steven Murray's avatar
Steven Murray committed
314
Requires: cta-lib = %{version}-%{release}
315
316
317
318
%description -n cta-catalogueutils
CERN Tape Archive:
Scripts and utilities to faciliate working with the CTA catalogue
%files -n cta-catalogueutils
319
%attr(0755,root,root) %{_bindir}/cta-catalogue-admin-user-create
320
%attr(0755,root,root) %{_bindir}/cta-catalogue-schema-create
321
%attr(0755,root,root) %{_bindir}/cta-catalogue-schema-drop
322
%attr(0755,root,root) %{_bindir}/cta-database-poll
323
324
325
326
%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
327
328
329
330

%package -n cta-mediachangerutils
Summary: Utilities to faciliate working with mediachangers
Group: Application/CTA
Steven Murray's avatar
Steven Murray committed
331
Requires: cta-lib = %{version}-%{release}
332
333
334
335
336
337
%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
338
339
%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
340

Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
341
342
343
344
%package -n cta-acsd
Summary: Tools to faciliate working with acsd in cta
Group: Application/CTA
Requires: logrotate
Steven Murray's avatar
Steven Murray committed
345
346
Requires: cta-common = %{version}-%{release}
Requires: cta-lib = %{version}-%{release}
Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
347
348
349
350
351
%description -n cta-acsd
CERN Tape Archive:
Tools to faciliate working with acsd in cta
%files -n cta-acsd
%defattr(-,root,root)
352
%attr(0644,root,root) %config(noreplace) /etc/logrotate.d/cta-acsd
Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
353
354
#%attr(0644,root,root) %doc /usr/share/man/man1/cta-acsd.1cta.gz
%attr(0755,root,root) %{_bindir}/cta-acsd
355
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-acsd.conf
Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
356
%attr(0644,root,root) /etc/systemd/system/cta-acsd.service
Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
357

358
359
360
361
362
363
364
365
366
367
368
%post -n cta-acsd
%systemd_post cta-acsd.service
%systemdDaemonReload

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

%postun -n cta-acsd
%systemd_postun cta-acsd.service
%systemdDaemonReload

Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
369
370
%package -n cta-rmcd
Summary: Tools to faciliate working with rmcd and smc in cta
371
Group: Application/CTA
Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
372
Requires: logrotate
Steven Murray's avatar
Steven Murray committed
373
Requires: cta-common = %{version}-%{release}
Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
374
%description -n cta-rmcd
375
CERN Tape Archive:
Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
376
377
Tools to faciliate working with rmcd and smc in cta
%files -n cta-rmcd
378
379
%defattr(-,root,root)
%attr(0644,root,root) %config(noreplace) /etc/logrotate.d/cta-rmcd
380
%attr(0644,root,root) %doc /usr/share/man/man1/cta-rmcd.1cta.gz
381
%attr(0755,root,root) %{_bindir}/cta-rmcd
382
%attr(0755,root,root) %{_bindir}/cta-smc
Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
383
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-rmcd.conf
384
385
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-smc.conf
%attr(0644,root,root) %doc /usr/share/man/man1/cta-smc.1cta.gz
386
%attr(0644,root,root) %config(noreplace) /etc/sysconfig/cta-rmcd
Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
387
%attr(0644,root,root) /etc/systemd/system/cta-rmcd.service
388

389
390
%post -n cta-rmcd
%systemd_post cta-rmcd.service
391
%systemdDaemonReload
392
393
394
395
396
397

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

%postun -n cta-rmcd
%systemd_postun cta-rmcd.service
398
%systemdDaemonReload
399

400
401
402
403
404
405
406
407
408
409
%package -n cta-tape-developer-acs-tools
Summary: Cern Advanced mass STORage
Group: Application/Castor
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)
410
411
412
413
414
415
416
417
%attr(0755,root,root) /usr/bin/cta-acs-queryvolume
%attr(0755,root,root) /usr/bin/cta-acs-dismount
%attr(0755,root,root) /usr/bin/cta-acs-mount
%attr(0755,root,root) /usr/bin/cta-acs-querydrive
%attr(0644,root,root) %doc /usr/share/man/man1/cta-acs-queryvolume.1cta.gz
%attr(0644,root,root) %doc /usr/share/man/man1/cta-acs-mount.1cta.gz
%attr(0644,root,root) %doc /usr/share/man/man1/cta-acs-dismount.1cta.gz
%attr(0644,root,root) %doc /usr/share/man/man1/cta-acs-querydrive.1cta.gz
Steven Murray's avatar
Steven Murray committed
418
419
420
421
422
423
424
425
426
427
428
429
430

%package -n cta-common
Summary: CERN Tape Archive common items
Group: Application/CTA
Requires(pre): /usr/bin/egrep, /usr/sbin/groupadd, /usr/sbin/luseradd
%description -n cta-common
CERN Tape Archive:
Common items such as the creation of the cta local user and /var/log/cta
%pre -n cta-common
/usr/bin/egrep -q '^cta:' /etc/passwd || /usr/sbin/luseradd -s /bin/nologin -c "CTA system account" -g tape cta
%files -n cta-common
%defattr(-,root,root)
%attr(0755,cta,tape) %dir /var/log/cta
431
432
433
434
435
436
437
438
439
440
441
442
443
444

%package -n cta-fst-gcd
Summary: Tape aware garbage collector daemon to run on an EOS FST
Group: Application/CTA
Requires: eos-client
Requires: python
%description -n cta-fst-gcd
cta-fst-gcd is a daemon that runs on an EOS FST and garbage
collects EOS disk copies that have been safely stored to tape.
%files -n cta-fst-gcd
%defattr(-,root,root)
%attr(0755,root,root) /usr/bin/cta-fst-gcd
%attr(0644,root,root) %doc /usr/share/man/man1/cta-fst-gcd.1cta.gz
%attr(0644,root,root) %config(noreplace) /etc/systemd/system/cta-fst-gcd.service
445
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-fst-gcd.conf.example
446
447
448
449
450
451
452
453
%post -n cta-fst-gcd
%systemd_post cta-fst-gcd.service
%systemdDaemonReload
%preun -n cta-fst-gcd
%systemd_preun cta-fst-gcd.service
%postun -n cta-fst-gcd
%systemd_postun cta-fst-gcd.service
%systemdDaemonReload