cta.spec.in 15.2 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
Tao Lin's avatar
Tao Lin committed
57
BuildRequires: mariadb-devel
58
BuildRequires: valgrind
59
BuildRequires: valgrind-devel
60
61
%{?systemd_requires}
BuildRequires: systemd
62
63
64
65
66
67
68
69
70
71
72
73
74
# 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
75
CTA_VERSION=%{ctaVersion} cmake .. -DCOMPILE_PACKAGING:STRING=0 -DVCS_VERSION=%{ctaRelease}
76
77
# Workaround for the inability of cmake to handle properly the dependencies to generated code.
%{__make} -s %{_smp_mflags} -k || true
78
79
80
81
82
83
84
85
86
87
88
89
90
91
%{__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
92
93
94
95
96
97
# 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

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

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

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

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

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

%postun -n cta-taped
%systemd_postun cta-taped.service
133
%systemdDaemonReload
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
%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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

%postun -n cta-rmcd
%systemd_postun cta-rmcd.service
400
%systemdDaemonReload
401

402
403
404
405
406
407
408
409
410
411
%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)
412
413
414
415
416
417
418
419
%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
420
421
422
423
424
425
426
427
428
429
430
431
432

%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
433
434
435
436
437
438
439
440
441
442
443
444
445
446

%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
447
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-fst-gcd.conf.example
448
449
450
451
452
453
454
455
%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