cta.spec.in 15.3 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(0644,root,root) %doc /usr/share/man/man1/cta-admin.1cta.gz
222
%attr(0755,root,root) %{_bindir}/cta-wfe-test
223
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-cli.conf
224
225

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

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

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

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

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

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

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

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

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

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

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

%postun -n cta-rmcd
%systemd_postun cta-rmcd.service
402
%systemdDaemonReload
403

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

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

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