3 %bcond_without kernel # don't build kernel modules
4 %bcond_without userspace # don't build userspace programs
5 %bcond_without dkms # build dkms package
7 %if "%{?alt_kernel}" != "" && 0%{?build_kernels:1}
8 %{error:alt_kernel (%{?alt_kernel}) and build_kernels (%{?build_kernels}) defined}
11 %if 0%{?_pld_builder:1} && %{with kernel} && %{with userspace}
12 %{error:kernel and userspace cannot be built at the same time on PLD builders}
16 %if %{without userspace}
18 # nothing to be placed to debuginfo package
19 %define _enable_debug_packages 0
24 Summary: sysdig, a system-level exploration and troubleshooting tool
25 Name: %{pname}%{?_pld_builder:%{?with_kernel:-kernel}}%{_alt_kernel}
27 Release: %{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}}
29 Group: Applications/System
30 Source0: https://github.com/draios/sysdig/archive/%{version}/%{pname}-%{version}.tar.gz
31 # Source0-md5: 5fe96a3a0fd98b2157a40cb29af41afc
32 Patch0: buildflags.patch
33 URL: http://www.sysdig.org/
34 BuildRequires: rpmbuild(macros) >= 1.701
36 BuildRequires: cmake >= 2.8.2
37 BuildRequires: jsoncpp-devel
38 BuildRequires: libstdc++-devel >= 6:4.4
39 BuildRequires: luajit-devel >= 2.0.3
40 BuildRequires: ncurses-devel >= 5.9
41 BuildRequires: zlib-devel >= 1.2.8
43 %{?with_kernel:%{expand:%buildrequires_kernel kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2}}
44 ExclusiveArch: %{ix86} %{x8664}
45 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
48 %{expand:%%global name %{pname}}
50 %define zshdir %{_datadir}/zsh/site-functions
53 Sysdig instruments your physical and virtual machines at the OS level
54 by installing into the Linux kernel and capturing system calls and
55 other OS events. Then, using sysdig's command line interface, you can
56 filter and decode these events in order to extract useful information.
57 Sysdig can be used to inspect systems live in real-time, or to
58 generate trace files that can be analyzed at a later stage.
60 %package -n dkms-%{name}
61 Summary: DKMS-ready driver for sysdig
64 Requires(pre,post): dkms >= 2.1.0.0
65 %if "%{_rpmversion}" >= "5"
69 %description -n dkms-%{name}
70 This package contains a DKMS-ready driver for sysdig.
72 %package -n bash-completion-%{name}
73 Summary: bash-completion for sysdig
74 Summary(pl.UTF-8): Bashowe dopełnianie składni dla sysdig
75 Group: Applications/Shells
76 Requires: %{name} = %{version}-%{rel}
77 Requires: bash-completion
78 %if "%{_rpmversion}" >= "5"
82 %description -n bash-completion-%{name}
83 bash-completion for sysdig.
85 %package -n zsh-completion-%{name}
86 Summary: zsh-completion for sysdig
87 Group: Applications/Shells
88 Requires: %{name} = %{version}-%{rel}
89 %if "%{_rpmversion}" >= "5"
93 %description -n zsh-completion-%{name}
94 zsh-completion for sysdig.
97 %package -n kernel%{_alt_kernel}-misc-%{pname}\
98 Summary: Linux driver for sysdig\
99 Release: %{rel}@%{_kernel_ver_str}\
101 Requires(post,postun): /sbin/depmod\
102 %requires_releq_kernel\
103 Requires(postun): %releq_kernel\
105 %description -n kernel%{_alt_kernel}-misc-%{pname}\
106 This is driver for sysdig-probe for Linux.\
108 This package contains Linux module.\
111 %files -n kernel%{_alt_kernel}-misc-%{pname}\
112 %defattr(644,root,root,755)\
113 /lib/modules/%{_kernel_ver}/misc/*.ko*\
116 %post -n kernel%{_alt_kernel}-misc-%{pname}\
117 %depmod %{_kernel_ver}\
119 %postun -n kernel%{_alt_kernel}-misc-%{pname}\
120 %depmod %{_kernel_ver}\
123 %define build_kernel_pkg()\
124 %build_kernel_modules -C driver -m sysdig-probe\
125 %install_kernel_modules -D installed -m driver/sysdig-probe -d misc\
128 %{?with_kernel:%{expand:%create_kernel_packages}}
131 %setup -q -n %{pname}-%{version}
134 # we need just obj-m from the file
135 cp driver/Makefile{.in,}
136 %{__sed} -i -e 's/@KBUILD_FLAGS@//' driver/Makefile
139 %{?with_kernel:%{expand:%build_kernel_packages}}
141 %if %{with userspace}
145 -DDIR_ETC=%{_sysconfdir} \
146 -DSYSDIG_VERSION=%{version}-%{rel} \
148 -DUSE_BUNDLED_JSONCPP=OFF \
149 -DUSE_BUNDLED_LUAJIT=OFF \
150 -DUSE_BUNDLED_NCURSES=OFF \
151 -DUSE_BUNDLED_ZLIB=OFF \
157 rm -rf $RPM_BUILD_ROOT
158 %if %{with userspace}
159 %{__make} -C build install \
160 DESTDIR=$RPM_BUILD_ROOT
162 # already installed as %{zshdir}/_sysdig
163 %{__rm} $RPM_BUILD_ROOT%{_datadir}/zsh/vendor-completions/_sysdig
167 install -d $RPM_BUILD_ROOT
168 cp -a installed/* $RPM_BUILD_ROOT
172 rm -rf $RPM_BUILD_ROOT
174 %post -n dkms-%{name}
175 %{_sbindir}/dkms add -m %{name} -v %{version}-%{rel} --rpm_safe_upgrade && \
176 %{_sbindir}/dkms build -m %{name} -v %{version}-%{rel} --rpm_safe_upgrade && \
177 %{_sbindir}/dkms install -m %{name} -v %{version}-%{rel} --rpm_safe_upgrade || :
179 %preun -n dkms-%{name}
180 %{_sbindir}/dkms remove -m %{name} -v %{version}-%{rel} --rpm_safe_upgrade --all || :
182 %if %{with userspace}
184 %defattr(644,root,root,755)
186 %attr(755,root,root) %{_bindir}/csysdig
187 %attr(755,root,root) %{_bindir}/sysdig
188 %attr(755,root,root) %{_bindir}/sysdig-probe-loader
189 %{_mandir}/man8/csysdig.8*
190 %{_mandir}/man8/sysdig.8*
193 %files -n bash-completion-%{name}
194 %defattr(644,root,root,755)
195 /etc/bash_completion.d/sysdig
197 %files -n zsh-completion-%{name}
198 %defattr(644,root,root,755)
203 %files -n dkms-%{name}
204 %defattr(644,root,root,755)
205 %{_usrsrc}/%{name}-%{version}-%{rel}