cta.spec.in 10.6 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 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

# Skipping unit tests (for developpers)
#--------------------------------------
%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
Michael Davis's avatar
Michael Davis committed
40
41
42
43
BuildRequires: xrootd-client-devel  = 1:20170801.af5dd76
BuildRequires: xrootd-devel         = 1:20170801.af5dd76
BuildRequires: xrootd-server-devel  = 1:20170801.af5dd76
BuildRequires: xrootd-private-devel = 1:20170801.af5dd76
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.1-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}/eoscta_stub
117
118
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-cli.conf

119
%else
120

121
122
%package -n cta-taped
Summary: CERN Tape Archive: tape daemon
123
Group: Application/CTA
124
125
126
Requires: logrotate
Requires: cta-lib
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
Steven Murray's avatar
Steven Murray committed
138
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta.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
148
149
150
Requires: logrotate
Requires: cta-lib
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
158
%files -n cta-frontend
%defattr(-,root,root)
159
%attr(0755,cta,cta) %dir /var/log/cta
160
%attr(0644,root,root) %config(noreplace) /etc/logrotate.d/cta-frontend
161
%attr(0755,root,root) %{_libdir}/libXrdCtaOfs.so
162
%attr(0755,root,root) %{_libdir}/libXrdSsiCta.so
163
%attr(0644,root,root) %config(noreplace) /etc/xrootd/xrootd-cta.cfg
Daniele Kruse's avatar
Daniele Kruse committed
164
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-frontend.conf
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
178
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
179
%attr(0755,root,root) %{_bindir}/eoscta_stub
Daniele Kruse's avatar
Daniele Kruse committed
180
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-cli.conf
181
182

%package -n cta-lib
183
Summary: CERN Tape Archive libraries
184
Group: Application/CTA
185
Requires: oracle-instantclient12.1-basic
186
187
188
189
190
%description -n cta-lib
CERN Tape Archive:
The shared libraries
%files -n cta-lib
%defattr(-,root,root)
191
%attr(0755,root,root) %{_libdir}/libctacatalogue.so
192
%attr(0755,root,root) %{_libdir}/libctacommon.so
193
194
#TODO: merge util and common
%attr(0755,root,root) %{_libdir}/libctautils.so
195
%attr(0755,root,root) %{_libdir}/libctascheduler.so
196
%attr(0755,root,root) %{_libdir}/libctaobjectstore.so
197
%attr(0755,root,root) %{_libdir}/libctamediachanger.so
198
199
%attr(0755,root,root) %{_libdir}/libctamessages.so
%attr(0755,root,root) %{_libdir}/libctamessagesutils.so
200
%attr(0755,root,root) %{_libdir}/libctardbms.so
201
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta_catalogue_db.conf.example
202

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

207
208
%package -n cta-systemtests
Summary: CERN Tape Archive: unit and system tests with virtual tape drives
209
Group: Application/CTA
210
Requires: valgrind >= 3.8.1
211
Requires: cta-taped = %{ctaVersion}-%{ctaRelease}%{mydist}
212
%description -n cta-systemtests
213
CERN Tape Archive:
214
215
216
Unit tests and system tests with virtual tape drives
%files -n cta-systemtests
%attr(0755,root,root) %{_libdir}/libsystemTestHelperTests.so
217
%attr(0755,root,root) %{_libdir}/libcta-tapedSystemTests.so
218
%attr(0755,root,root) %{_bindir}/cta-catalogueUnitTests
219
%attr(0755,root,root) %{_bindir}/cta-unitTests
220
%attr(0755,root,root) %{_bindir}/cta-unitTests-multiProcess
221
%attr(0755,root,root) %{_bindir}/cta-valgrindUnitTests.sh
222
%attr(0755,root,root) %{_bindir}/cta-unitPlusSystemTests.sh
223
%attr(0755,root,root) %{_libdir}/libctacatalogueunittests.so
224
%attr(0755,root,root) %{_libdir}/libctacataloguecmdlineunittests.so
225
226
%attr(0755,root,root) %{_libdir}/libctacommonunittests.so
%attr(0755,root,root) %{_libdir}/libctaexceptionunittests.so
227
%attr(0755,root,root) %{_libdir}/libctainmemorycatalogueunittests.so
228
%attr(0755,root,root) %{_libdir}/libctaobjectstoreunittests.so
229
%attr(0755,root,root) %{_libdir}/libctardbmsunittests.so
230
231
232
233
234
%attr(0755,root,root) %{_libdir}/libctaschedulerunittests.so
%attr(0755,root,root) %{_libdir}/libctatapeserverdaemonunittests.so
%attr(0755,root,root) %{_libdir}/libctatapeserverdriveunittests.so
%attr(0755,root,root) %{_libdir}/libctatapeserverfileunittests.so
%attr(0755,root,root) %{_libdir}/libctatapeserverscsiunittests.so
235
%attr(0755,root,root) %{_libdir}/libctadaemonunittests.so
236
%attr(0755,root,root) %{_libdir}/libctamediachangerunittests.so
237
238
%attr(0755,root,root) %{_bindir}/cta-systemTests
%attr(0755,root,root) %{_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

289
%endif