cta.spec.in 12 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.0
BuildRequires: xrootd-devel         >= 1:4.8.0
BuildRequires: xrootd-server-devel  >= 1:4.8.0
BuildRequires: xrootd-private-devel >= 1:4.8.0
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
%endif
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 packages will be cta-taped, cta-frontend, cta-cli
103
104
105
106

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

108
109
110
111
112
113
114
115
%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)
116
%attr(0755,root,root) %{_bindir}/cta.deprecated
117
%attr(0755,root,root) %{_bindir}/cta-admin
118
119
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-cli.conf

120
%else
121

122
123
%package -n cta-taped
Summary: CERN Tape Archive: tape daemon
124
Group: Application/CTA
125
Requires: logrotate
Eric Cano's avatar
Eric Cano committed
126
Requires: cta-lib = %{ctaVersion}
127
Requires(pre): /usr/bin/getent, /usr/sbin/groupadd, /usr/sbin/useradd
128
%description -n cta-taped
129
130
CERN Tape Archive:
The tape server daemon
131
%pre -n cta-taped
Steven Murray's avatar
Steven Murray committed
132
133
/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
134
%files -n cta-taped
135
%defattr(-,root,root)
136
%attr(0755,cta,cta) %dir /var/log/cta
137
%attr(0644,root,root) %config(noreplace) /etc/logrotate.d/cta-taped
138
%attr(0755,root,root) %{_bindir}/cta-taped
139
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-taped.conf.example
140
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/TPCONFIG.example
141
142
143
%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
144

145
%package -n cta-frontend
146
Summary: CERN Tape Archive: Xrootd plugin
147
Group: Application/CTA
148
Requires: logrotate
Eric Cano's avatar
Eric Cano committed
149
Requires: cta-lib = %{ctaVersion}
150
151
Requires: xrootd-server
Requires(pre): /usr/bin/getent, /usr/sbin/groupadd, /usr/sbin/useradd
152
153
154
%description -n cta-frontend
CERN Tape Archive:
The xroot plugin
Steven Murray's avatar
Steven Murray committed
155
156
157
%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
158
%files -n cta-frontend
Michael Davis's avatar
Michael Davis committed
159
160
%defattr(0755,root,root)
%{_libdir}/libXrdCtaOfs.so*
161
%{_libdir}/libXrdSsiCta.so*
162
%attr(0755,cta,cta) %dir /var/log/cta
163
%attr(0644,root,root) %config(noreplace) /etc/logrotate.d/cta-frontend
164
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-frontend-xrootd.conf
Daniele Kruse's avatar
Daniele Kruse committed
165
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-frontend.conf
166
%attr(0644,cta,cta) /etc/systemd/system/cta-frontend.service
167

168
169
170
171
#Frontend installs libraries so we need ldconfig.
%post -n cta-frontend -p /sbin/ldconfig
%postun -n cta-frontend -p /sbin/ldconfig

172
%package -n cta-cli
173
Summary: CERN Tape Archive: command line interface
174
175
176
177
178
179
Group: Application/CTA
%description -n cta-cli
CERN Tape Archive:
The xroot plugin
%files -n cta-cli
%defattr(-,root,root)
180
%attr(0755,root,root) %{_bindir}/cta.deprecated
181
%attr(0755,root,root) %{_bindir}/cta-admin
Daniele Kruse's avatar
Daniele Kruse committed
182
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-cli.conf
183
184

%package -n cta-lib
185
Summary: CERN Tape Archive libraries
186
Group: Application/CTA
187
Requires: oracle-instantclient12.2-basic
Eric Cano's avatar
Eric Cano committed
188
Requires: librados2 = %{radosVersion}
189
190
191
192
%description -n cta-lib
CERN Tape Archive:
The shared libraries
%files -n cta-lib
Michael Davis's avatar
Michael Davis committed
193
194
195
%defattr(0755,root,root,-)
%{_libdir}/libctacatalogue.so*
%{_libdir}/libctacommon.so*
196
#TODO: merge util and common
Michael Davis's avatar
Michael Davis committed
197
198
199
200
201
202
%{_libdir}/libctascheduler.so*
%{_libdir}/libctaobjectstore.so*
%{_libdir}/libctamediachanger.so*
%{_libdir}/libctamessages.so*
%{_libdir}/libctamessagesutils.so*
%{_libdir}/libctardbms.so*
203
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-catalogue.conf.example
204

205
206
207
208
#CTA-lib installs libraries so we need ldconfig.
%post -n cta-lib -p /sbin/ldconfig
%postun -n cta-lib -p /sbin/ldconfig

209
210
%package -n cta-systemtests
Summary: CERN Tape Archive: unit and system tests with virtual tape drives
211
Group: Application/CTA
212
Requires: valgrind >= 3.8.1
213
Requires: cta-taped = %{ctaVersion}-%{ctaRelease}%{mydist}
214
%description -n cta-systemtests
215
CERN Tape Archive:
216
217
Unit tests and system tests with virtual tape drives
%files -n cta-systemtests
Michael Davis's avatar
Michael Davis committed
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
%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*
%{_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*
242
%attr(0644,root,root) %{_datadir}/%{name}-%{ctaVersion}/unittest/*.suppr
243

244
245
246
247
248
249
250
251
252
253
%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
254
%attr(0755,root,root) %{_bindir}/cta-objectstore-unfollow-agent
255
%attr(0755,root,root) %{_bindir}/cta-objectstore-dereference-removed-queues
256
%attr(0755,root,root) %{_bindir}/cta-objectstore-collect-orphaned-object
257

258
259
260
261
#cta-systemtests installs libraries so we need ldconfig.
%post -n cta-systemtests -p /sbin/ldconfig
%postun -n cta-systemtests -p /sbin/ldconfig

262
%package -n cta-catalogueutils
263
Summary: Utilities to faciliate working with the CTA catalogue
264
265
266
267
268
Group: Application/CTA
%description -n cta-catalogueutils
CERN Tape Archive:
Scripts and utilities to faciliate working with the CTA catalogue
%files -n cta-catalogueutils
269
270
%attr(0755,root,root) %{_bindir}/cta-catalogue-admin-user-create
%attr(0755,root,root) %{_bindir}/cta-catalogue-admin-host-create
271
%attr(0755,root,root) %{_bindir}/cta-catalogue-schema-create
272
%attr(0755,root,root) %{_bindir}/cta-catalogue-schema-drop
273
%attr(0755,root,root) %{_bindir}/cta-database-poll
274
275
276
277
278
%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
279
280
281
282
283
284
285
286
287
288

%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
289
290
%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
291

Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
292
293
294

%package -n cta-rmcd
Summary: Tools to faciliate working with rmcd and smc in cta
295
Group: Application/CTA
Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
296
Requires: logrotate
Eric Cano's avatar
Eric Cano committed
297
#Requires: cta-lib = %{ctaVersion}
Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
298
299
Requires(pre): /usr/bin/getent, /usr/sbin/groupadd, /usr/sbin/useradd
%description -n cta-rmcd
300
CERN Tape Archive:
Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
301
302
303
304
305
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
306
%defattr(-,root,root)
Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
307
%attr(0755,cta,cta) %dir /var/log/cta
308
%attr(0644,root,root) %config(noreplace) /etc/logrotate.d/cta-rmcd
309
%attr(0644,root,root) %doc /usr/share/man/man1/cta-rmcd.1cta.gz
310
%attr(0755,root,root) %{_bindir}/cta-rmcd
311
%attr(0755,root,root) %{_bindir}/cta-smc
Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
312
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-rmcd.conf
313
314
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-smc.conf
%attr(0644,root,root) %doc /usr/share/man/man1/cta-smc.1cta.gz
315
%attr(0644,root,root) %config(noreplace) /etc/sysconfig/cta-rmcd
Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
316
%attr(0644,root,root) /etc/systemd/system/cta-rmcd.service
317

318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
%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
335
%endif