cta.spec.in 11.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
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
%attr(0755,root,root) %{_bindir}/eoscta_stub
119
120
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-cli.conf

121
%else
122

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

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

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

173
%package -n cta-cli
174
Summary: CERN Tape Archive: command line interface
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)
181
%attr(0755,root,root) %{_bindir}/cta.deprecated
182
%attr(0755,root,root) %{_bindir}/cta-admin
183
%attr(0755,root,root) %{_bindir}/eoscta_stub
Daniele Kruse's avatar
Daniele Kruse committed
184
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-cli.conf
185
186

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

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

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

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

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

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

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

Anastasia Karachaliou's avatar
Anastasia Karachaliou committed
294
295
296

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

320
%endif
321