summaryrefslogtreecommitdiff
path: root/sysdig.spec
blob: 7c7746c60d830041e961ce33de962e3176d36507 (plain)
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
#
# Conditional build:
%bcond_without	kernel		# don't build kernel modules
%bcond_without	userspace	# don't build userspace programs
%bcond_without	dkms		# build dkms package

%if "%{?alt_kernel}" != "" && 0%{?build_kernels:1}
	%{error:alt_kernel (%{?alt_kernel}) and build_kernels (%{?build_kernels}) defined}
%endif

%if 0%{?_pld_builder:1} && %{with kernel} && %{with userspace}
%{error:kernel and userspace cannot be built at the same time on PLD builders}
exit 1
%endif

%if %{without userspace}
%undefine	with_dkms
# nothing to be placed to debuginfo package
%define		_enable_debug_packages	0
%endif

%define		rel	0.2
%define		pname	sysdig
Summary:	sysdig, a system-level exploration and troubleshooting tool
Name:		%{pname}%{?_pld_builder:%{?with_kernel:-kernel}}%{_alt_kernel}
Version:	0.1.101
Release:	%{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}}
License:	GPL v2
Group:		Applications/System
Source0:	https://github.com/draios/sysdig/archive/%{version}/%{pname}-%{version}.tar.gz
# Source0-md5:	5fe96a3a0fd98b2157a40cb29af41afc
URL:		http://www.sysdig.org/
BuildRequires:	cmake >= 2.8.2
BuildRequires:	jsoncpp-devel
BuildRequires:	libstdc++-devel >= 6:4.4
BuildRequires:	luajit-devel >= 2.0.3
BuildRequires:	ncurses-devel >= 5.9
BuildRequires:	rpmbuild(macros) >= 1.701
BuildRequires:	zlib-devel >= 1.2.8
%{?with_kernel:%{expand:%buildrequires_kernel kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2}}
BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)

%define		zshdir %{_datadir}/zsh/site-functions

%description
Sysdig instruments your physical and virtual machines at the OS level
by installing into the Linux kernel and capturing system calls and
other OS events. Then, using sysdig's command line interface, you can
filter and decode these events in order to extract useful information.
Sysdig can be used to inspect systems live in real-time, or to
generate trace files that can be analyzed at a later stage.

%package -n dkms-%{name}
Summary:	DKMS-ready driver for sysdig
License:	GPL v2+
Group:		Base/Kernel
Requires(pre,post):	dkms >= 2.1.0.0
%if "%{_rpmversion}" >= "5"
BuildArch:	noarch
%endif

%description -n dkms-%{name}
This package contains a DKMS-ready driver for sysdig.

%package -n bash-completion-%{name}
Summary:	bash-completion for sysdig
Summary(pl.UTF-8):	Bashowe dopełnianie składni dla sysdig
Group:		Applications/Shells
Requires:	%{name} = %{version}-%{release}
Requires:	bash-completion
%if "%{_rpmversion}" >= "5"
BuildArch:	noarch
%endif

%description -n bash-completion-%{name}
bash-completion for sysdig.

%package -n zsh-completion-%{name}
Summary:	zsh-completion for sysdig
Group:		Applications/Shells
Requires:	%{name} = %{version}-%{release}
%if "%{_rpmversion}" >= "5"
BuildArch:	noarch
%endif

%description -n zsh-completion-%{name}
zsh-completion for sysdig.

%define	kernel_pkg()\
%package -n kernel%{_alt_kernel}-misc-%{pname}\
Summary:	Linux driver for sysdig\
Release:	%{rel}@%{_kernel_ver_str}\
Group:		Base/Kernel\
Requires(post,postun):	/sbin/depmod\
%requires_releq_kernel\
Requires(postun):	%releq_kernel\
\
%description -n kernel%{_alt_kernel}-misc-%{pname}\
This is driver for sysdig-probe for Linux.\
\
This package contains Linux module.\
\
%if %{with kernel}\
%files -n kernel%{_alt_kernel}-misc-%{pname}\
%defattr(644,root,root,755)\
/lib/modules/%{_kernel_ver}/misc/*.ko*\
%endif\
\
%post	-n kernel%{_alt_kernel}-misc-%{pname}\
%depmod %{_kernel_ver}\
\
%postun	-n kernel%{_alt_kernel}-misc-%{pname}\
%depmod %{_kernel_ver}\
%{nil}

%define build_kernel_pkg()\
%build_kernel_modules -C driver -m sysdig-probe\
%install_kernel_modules -D installed -m driver/sysdig-probe -d misc\
%{nil}

%{?with_kernel:%{expand:%create_kernel_packages}}

%prep
%setup -q

# we need just obj-m from the file
cp driver/Makefile{.in,}
%{__sed} -i -e 's/@KBUILD_FLAGS@//' driver/Makefile

%build
%{?with_kernel:%{expand:%build_kernel_packages}}

%if %{with userspace}
install -d build
cd build
%cmake \
	-DDIR_ETC=%{_sysconfdir} \
	-DSYSDIG_VERSION=%{version}-%{release} \
	-DBUILD_DRIVER=OFF \
	-DUSE_BUNDLED_JSONCPP=OFF \
	-DUSE_BUNDLED_LUAJIT=OFF \
	-DUSE_BUNDLED_NCURSES=OFF \
	-DUSE_BUNDLED_ZLIB=OFF \
	..
%{__make}
%endif

%install
rm -rf $RPM_BUILD_ROOT
%if %{with userspace}
%{__make} -C build install \
	DESTDIR=$RPM_BUILD_ROOT
%endif

%if %{with kernel}
install -d $RPM_BUILD_ROOT
cp -a installed/* $RPM_BUILD_ROOT
%endif

%clean
rm -rf $RPM_BUILD_ROOT

%post -n dkms-%{name}
%{_sbindir}/dkms add -m %{name} -v %{version}-%{release} --rpm_safe_upgrade && \
%{_sbindir}/dkms build -m %{name} -v %{version}-%{release} --rpm_safe_upgrade && \
%{_sbindir}/dkms install -m %{name} -v %{version}-%{release} --rpm_safe_upgrade || :

%preun -n dkms-%{name}
%{_sbindir}/dkms remove -m %{name} -v %{version}-%{release} --rpm_safe_upgrade --all || :

%if %{with userspace}
%files
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/csysdig
%attr(755,root,root) %{_bindir}/sysdig
%attr(755,root,root) %{_bindir}/sysdig-probe-loader
%{_mandir}/man8/csysdig.8*
%{_mandir}/man8/sysdig.8*
%{_datadir}/%{name}

%files -n bash-completion-%{name}
%defattr(644,root,root,755)
/etc/bash_completion.d/sysdig

%files -n zsh-completion-%{name}
%defattr(644,root,root,755)
%{zshdir}/_sysdig
%{_datadir}/zsh/vendor-completions/_sysdig
%endif

%if %{with dkms}
%files -n dkms-%{name}
%defattr(644,root,root,755)
%{_usrsrc}/%{name}-%{version}-%{release}
%endif