cta.spec.in 11.8 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-admin
117
%attr(0755,root,root) %{_bindir}/cta-wfe-test
118

119
%else
120

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

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

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

170
%package -n cta-cli
171
Summary: CERN Tape Archive: command line interface
172
173
174
175
176
177
Group: Application/CTA
%description -n cta-cli
CERN Tape Archive:
The xroot plugin
%files -n cta-cli
%defattr(-,root,root)
178
%attr(0755,root,root) %{_bindir}/cta-admin
179
%attr(0755,root,root) %{_bindir}/cta-wfe-test
180
181

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

202
203
204
205
#CTA-lib installs libraries so we need ldconfig.
%post -n cta-lib -p /sbin/ldconfig
%postun -n cta-lib -p /sbin/ldconfig

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

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

255
256
257
258
#cta-systemtests installs libraries so we need ldconfig.
%post -n cta-systemtests -p /sbin/ldconfig
%postun -n cta-systemtests -p /sbin/ldconfig

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

%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
286
287
%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
288

Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
289
290
291

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

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