cta.spec.in 10.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@

Michael Davis's avatar
Michael Davis committed
19
20
21
22
# Build with XRootD SSI extensions (for developers)
#--------------------------------------------------
%define build_xroot_ssi 0@BUILD_XROOT_SSI@

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
39


# 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"
40
41
BuildRequires: xrootd-client-devel = 1:4.2.3
BuildRequires: xrootd-devel        = 1:4.2.3
42
BuildRequires: cryptopp-devel >= 5.6.2
43
%else
Michael Davis's avatar
Michael Davis committed
44
%if "%{?build_xroot_ssi}" == "0"
45
46
47
48
BuildRequires: xrootd-client-devel  = 1:4.4.1
BuildRequires: xrootd-devel         = 1:4.4.1
BuildRequires: xrootd-server-devel  = 1:4.4.1
BuildRequires: xrootd-private-devel = 1:4.4.1
Michael Davis's avatar
Michael Davis committed
49
%else
50
51
52
53
BuildRequires: xrootd-client-devel  = 1:4.7.0
BuildRequires: xrootd-devel         = 1:4.7.0
BuildRequires: xrootd-server-devel  = 1:4.7.0
BuildRequires: xrootd-private-devel = 1:4.7.0
Michael Davis's avatar
Michael Davis committed
54
%endif
55
BuildRequires: librados-devel >= 11.0, libradosstriper-devel >= 11.0, 
56
BuildRequires: protobuf3-compiler >= 3.3.1 protobuf3-devel >= 3.3.1
Eric Cano's avatar
Eric Cano committed
57
BuildRequires: gmock-devel >= 1.5.0 gtest-devel >= 1.5.0
Eric Cano's avatar
Eric Cano committed
58
BuildRequires: sqlite-devel >= 3.6
Eric Cano's avatar
Eric Cano committed
59
BuildRequires: libcap-devel >= 2.16
Eric Cano's avatar
Eric Cano committed
60
BuildRequires: binutils-devel >= 2.20
61
BuildRequires: zeromq-devel >= 4.0
Eric Cano's avatar
Eric Cano committed
62
63
BuildRequires: openssl-devel >= 1.0.1e
BuildRequires: cryptopp-devel >= 5.6.2
Eric Cano's avatar
Eric Cano committed
64
BuildRequires: libuuid-devel >= 2.17
Eric Cano's avatar
Eric Cano committed
65
BuildRequires: json-c-devel >= 0.11
Eric Cano's avatar
Eric Cano committed
66
BuildRequires: libattr-devel >= 2.4.44
67
BuildRequires: oracle-instantclient12.1-devel
68
BuildRequires: valgrind
69
BuildRequires: valgrind-devel
70
%endif
71
72
73
74
75
76
77
78
79
80
81
82
83
# 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
84
CTA_VERSION=%{ctaVersion} cmake .. -DCOMPILE_PACKAGING:STRING=0 -DVCS_VERSION=%{ctaRelease}
85
86
# Workaround for the inability of cmake to handle properly the dependencies to generated code.
%{__make} -s %{_smp_mflags} -k || true
87
88
89
90
91
92
93
94
95
96
97
98
99
100
%{__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
101
102
103
104
105
106
# 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

107
108
%if "%{skip_unit_tests}" == "0"
cd build
109
%{__make} shortunittests
110
111
%endif

112
# The packages will be cta-taped, cta-frontend, cta-cli
113
114
115
116

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

118
119
120
121
122
123
124
125
126
%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
127
%attr(0755,root,root) %{_bindir}/eoscta_stub
128
129
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-cli.conf

130
%else
131

132
133
%package -n cta-taped
Summary: CERN Tape Archive: tape daemon
134
Group: Application/CTA
135
136
137
Requires: logrotate
Requires: cta-lib
Requires(pre): /usr/bin/getent, /usr/sbin/groupadd, /usr/sbin/useradd
138
%description -n cta-taped
139
140
CERN Tape Archive:
The tape server daemon
141
%pre -n cta-taped
Steven Murray's avatar
Steven Murray committed
142
143
/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
144
%files -n cta-taped
145
%defattr(-,root,root)
146
%attr(0755,cta,cta) %dir /var/log/cta
147
%attr(0644,root,root) %config(noreplace) /etc/logrotate.d/cta-taped
148
%attr(0755,root,root) %{_bindir}/cta-taped
Steven Murray's avatar
Steven Murray committed
149
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta.conf.example
150
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/TPCONFIG.example
151
152
153
%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
154

155
%package -n cta-frontend
156
Summary: CERN Tape Archive: Xrootd plugin
157
Group: Application/CTA
158
159
160
161
Requires: logrotate
Requires: cta-lib
Requires: xrootd-server
Requires(pre): /usr/bin/getent, /usr/sbin/groupadd, /usr/sbin/useradd
162
163
164
%description -n cta-frontend
CERN Tape Archive:
The xroot plugin
Steven Murray's avatar
Steven Murray committed
165
166
167
%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
168
%files -n cta-frontend
Michael Davis's avatar
Michael Davis committed
169
170
%defattr(0755,root,root)
%{_libdir}/libXrdCtaOfs.so*
171
%{_libdir}/libXrdSsiCta.so*
172
%attr(0755,cta,cta) %dir /var/log/cta
173
%attr(0644,root,root) %config(noreplace) /etc/logrotate.d/cta-frontend
174
%attr(0644,root,root) %config(noreplace) /etc/xrootd/xrootd-cta.cfg
Daniele Kruse's avatar
Daniele Kruse committed
175
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-frontend.conf
176

177
178
179
180
#Frontend installs libraries so we need ldconfig.
%post -n cta-frontend -p /sbin/ldconfig
%postun -n cta-frontend -p /sbin/ldconfig

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

%package -n cta-lib
194
Summary: CERN Tape Archive libraries
195
Group: Application/CTA
196
Requires: oracle-instantclient12.1-basic
197
198
199
200
%description -n cta-lib
CERN Tape Archive:
The shared libraries
%files -n cta-lib
Michael Davis's avatar
Michael Davis committed
201
202
203
%defattr(0755,root,root,-)
%{_libdir}/libctacatalogue.so*
%{_libdir}/libctacommon.so*
204
#TODO: merge util and common
Michael Davis's avatar
Michael Davis committed
205
206
207
208
209
210
211
%{_libdir}/libctautils.so*
%{_libdir}/libctascheduler.so*
%{_libdir}/libctaobjectstore.so*
%{_libdir}/libctamediachanger.so*
%{_libdir}/libctamessages.so*
%{_libdir}/libctamessagesutils.so*
%{_libdir}/libctardbms.so*
212
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta_catalogue_db.conf.example
213

214
215
216
217
#CTA-lib installs libraries so we need ldconfig.
%post -n cta-lib -p /sbin/ldconfig
%postun -n cta-lib -p /sbin/ldconfig

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

253
254
255
256
257
258
259
260
261
262
%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
263
%attr(0755,root,root) %{_bindir}/cta-objectstore-unfollow-agent
264
%attr(0755,root,root) %{_bindir}/cta-objectstore-dereference-removed-queues
265
%attr(0755,root,root) %{_bindir}/cta-objectstore-collect-orphaned-object
266

267
268
269
270
#cta-systemtests installs libraries so we need ldconfig.
%post -n cta-systemtests -p /sbin/ldconfig
%postun -n cta-systemtests -p /sbin/ldconfig

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

%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
298
299
%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
300

301
%endif