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 URL: http://www.sysdig.org/
33 BuildRequires: rpmbuild(macros) >= 1.701
35 BuildRequires: cmake >= 2.8.2
36 BuildRequires: jsoncpp-devel
37 BuildRequires: libstdc++-devel >= 6:4.4
38 BuildRequires: luajit-devel >= 2.0.3
39 BuildRequires: ncurses-devel >= 5.9
40 BuildRequires: zlib-devel >= 1.2.8
42 %{?with_kernel:%{expand:%buildrequires_kernel kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2}}
43 ExclusiveArch: %{ix86} %{x8664}
44 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
47 %{expand:%%global name %{pname}}
49 %define zshdir %{_datadir}/zsh/site-functions
52 Sysdig instruments your physical and virtual machines at the OS level
53 by installing into the Linux kernel and capturing system calls and
54 other OS events. Then, using sysdig's command line interface, you can
55 filter and decode these events in order to extract useful information.
56 Sysdig can be used to inspect systems live in real-time, or to
57 generate trace files that can be analyzed at a later stage.
59 %package -n dkms-%{name}
60 Summary: DKMS-ready driver for sysdig
63 Requires(pre,post): dkms >= 2.1.0.0
64 %if "%{_rpmversion}" >= "5"
68 %description -n dkms-%{name}
69 This package contains a DKMS-ready driver for sysdig.
71 %package -n bash-completion-%{name}
72 Summary: bash-completion for sysdig
73 Summary(pl.UTF-8): Bashowe dopełnianie składni dla sysdig
74 Group: Applications/Shells
75 Requires: %{name} = %{version}-%{release}
76 Requires: bash-completion
77 %if "%{_rpmversion}" >= "5"
81 %description -n bash-completion-%{name}
82 bash-completion for sysdig.
84 %package -n zsh-completion-%{name}
85 Summary: zsh-completion for sysdig
86 Group: Applications/Shells
87 Requires: %{name} = %{version}-%{release}
88 %if "%{_rpmversion}" >= "5"
92 %description -n zsh-completion-%{name}
93 zsh-completion for sysdig.
96 %package -n kernel%{_alt_kernel}-misc-%{pname}\
97 Summary: Linux driver for sysdig\
98 Release: %{rel}@%{_kernel_ver_str}\
100 Requires(post,postun): /sbin/depmod\
101 %requires_releq_kernel\
102 Requires(postun): %releq_kernel\
104 %description -n kernel%{_alt_kernel}-misc-%{pname}\
105 This is driver for sysdig-probe for Linux.\
107 This package contains Linux module.\
110 %files -n kernel%{_alt_kernel}-misc-%{pname}\
111 %defattr(644,root,root,755)\
112 /lib/modules/%{_kernel_ver}/misc/*.ko*\
115 %post -n kernel%{_alt_kernel}-misc-%{pname}\
116 %depmod %{_kernel_ver}\
118 %postun -n kernel%{_alt_kernel}-misc-%{pname}\
119 %depmod %{_kernel_ver}\
122 %define build_kernel_pkg()\
123 %build_kernel_modules -C driver -m sysdig-probe\
124 %install_kernel_modules -D installed -m driver/sysdig-probe -d misc\
127 %{?with_kernel:%{expand:%create_kernel_packages}}
130 %setup -q -n %{pname}-%{version}
132 # we need just obj-m from the file
133 cp driver/Makefile{.in,}
134 %{__sed} -i -e 's/@KBUILD_FLAGS@//' driver/Makefile
137 %{?with_kernel:%{expand:%build_kernel_packages}}
139 %if %{with userspace}
143 -DDIR_ETC=%{_sysconfdir} \
144 -DSYSDIG_VERSION=%{version}-%{release} \
146 -DUSE_BUNDLED_JSONCPP=OFF \
147 -DUSE_BUNDLED_LUAJIT=OFF \
148 -DUSE_BUNDLED_NCURSES=OFF \
149 -DUSE_BUNDLED_ZLIB=OFF \
155 rm -rf $RPM_BUILD_ROOT
156 %if %{with userspace}
157 %{__make} -C build install \
158 DESTDIR=$RPM_BUILD_ROOT
162 install -d $RPM_BUILD_ROOT
163 cp -a installed/* $RPM_BUILD_ROOT
167 rm -rf $RPM_BUILD_ROOT
169 %post -n dkms-%{name}
170 %{_sbindir}/dkms add -m %{name} -v %{version}-%{release} --rpm_safe_upgrade && \
171 %{_sbindir}/dkms build -m %{name} -v %{version}-%{release} --rpm_safe_upgrade && \
172 %{_sbindir}/dkms install -m %{name} -v %{version}-%{release} --rpm_safe_upgrade || :
174 %preun -n dkms-%{name}
175 %{_sbindir}/dkms remove -m %{name} -v %{version}-%{release} --rpm_safe_upgrade --all || :
177 %if %{with userspace}
179 %defattr(644,root,root,755)
181 %attr(755,root,root) %{_bindir}/csysdig
182 %attr(755,root,root) %{_bindir}/sysdig
183 %attr(755,root,root) %{_bindir}/sysdig-probe-loader
184 %{_mandir}/man8/csysdig.8*
185 %{_mandir}/man8/sysdig.8*
188 %files -n bash-completion-%{name}
189 %defattr(644,root,root,755)
190 /etc/bash_completion.d/sysdig
192 %files -n zsh-completion-%{name}
193 %defattr(644,root,root,755)
195 %{_datadir}/zsh/vendor-completions/_sysdig
199 %files -n dkms-%{name}
200 %defattr(644,root,root,755)
201 %{_usrsrc}/%{name}-%{version}-%{release}