cta.spec.in 11.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
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
35


# 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
%if "%{?dist}" == ".slc6" || "%{?dist}" == ".el6"
36
37
BuildRequires: xrootd-client-devel = 1:4.2.3
BuildRequires: xrootd-devel        = 1:4.2.3
38
BuildRequires: cryptopp-devel >= 5.6.2
39
%else
40
41
42
43
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
44
BuildRequires: librados-devel >= 11.0, libradosstriper-devel >= 11.0, 
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
%endif
60
61
62
63
64
65
66
67
68
69
70
71
72
# 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
73
CTA_VERSION=%{ctaVersion} cmake .. -DCOMPILE_PACKAGING:STRING=0 -DVCS_VERSION=%{ctaRelease}
74
75
# Workaround for the inability of cmake to handle properly the dependencies to generated code.
%{__make} -s %{_smp_mflags} -k || true
76
77
78
79
80
81
82
83
84
85
86
87
88
89
%{__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
90
91
92
93
94
95
# 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

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

101
# The packages will be cta-taped, cta-frontend, cta-cli
102
103
104
105

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

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)
%attr(0755,root,root) %{_bindir}/cta
116
%attr(0755,root,root) %{_bindir}/cta-admin
117
%attr(0755,root,root) %{_bindir}/eoscta_stub
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
126
127
Requires: logrotate
Requires: cta-lib
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
149
150
151
Requires: logrotate
Requires: cta-lib
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
180
Group: Application/CTA
%description -n cta-cli
CERN Tape Archive:
The xroot plugin
%files -n cta-cli
%defattr(-,root,root)
%attr(0755,root,root) %{_bindir}/cta
181
%attr(0755,root,root) %{_bindir}/cta-admin
182
%attr(0755,root,root) %{_bindir}/eoscta_stub
Daniele Kruse's avatar
Daniele Kruse committed
183
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-cli.conf
184
185

%package -n cta-lib
186
Summary: CERN Tape Archive libraries
187
Group: Application/CTA
188
Requires: oracle-instantclient12.2-basic
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
203
%{_libdir}/libctautils.so*
%{_libdir}/libctascheduler.so*
%{_libdir}/libctaobjectstore.so*
%{_libdir}/libctamediachanger.so*
%{_libdir}/libctamessages.so*
%{_libdir}/libctamessagesutils.so*
%{_libdir}/libctardbms.so*
204
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-catalogue.conf.example
205

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

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

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

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

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

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

Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
293
294
295

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

319
%endif
320