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 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
46 %{expand:%%global name %{pname}}
48 %define zshdir %{_datadir}/zsh/site-functions
51 Sysdig instruments your physical and virtual machines at the OS level
52 by installing into the Linux kernel and capturing system calls and
53 other OS events. Then, using sysdig's command line interface, you can
54 filter and decode these events in order to extract useful information.
55 Sysdig can be used to inspect systems live in real-time, or to
56 generate trace files that can be analyzed at a later stage.
58 %package -n dkms-%{name}
59 Summary: DKMS-ready driver for sysdig
62 Requires(pre,post): dkms >= 2.1.0.0
63 %if "%{_rpmversion}" >= "5"
67 %description -n dkms-%{name}
68 This package contains a DKMS-ready driver for sysdig.
70 %package -n bash-completion-%{name}
71 Summary: bash-completion for sysdig
72 Summary(pl.UTF-8): Bashowe dopełnianie składni dla sysdig
73 Group: Applications/Shells
74 Requires: %{name} = %{version}-%{release}
75 Requires: bash-completion
76 %if "%{_rpmversion}" >= "5"
80 %description -n bash-completion-%{name}
81 bash-completion for sysdig.
83 %package -n zsh-completion-%{name}
84 Summary: zsh-completion for sysdig
85 Group: Applications/Shells
86 Requires: %{name} = %{version}-%{release}
87 %if "%{_rpmversion}" >= "5"
91 %description -n zsh-completion-%{name}
92 zsh-completion for sysdig.
95 %package -n kernel%{_alt_kernel}-misc-%{pname}\
96 Summary: Linux driver for sysdig\
97 Release: %{rel}@%{_kernel_ver_str}\
99 Requires(post,postun): /sbin/depmod\
100 %requires_releq_kernel\
101 Requires(postun): %releq_kernel\
103 %description -n kernel%{_alt_kernel}-misc-%{pname}\
104 This is driver for sysdig-probe for Linux.\
106 This package contains Linux module.\
109 %files -n kernel%{_alt_kernel}-misc-%{pname}\
110 %defattr(644,root,root,755)\
111 /lib/modules/%{_kernel_ver}/misc/*.ko*\
114 %post -n kernel%{_alt_kernel}-misc-%{pname}\
115 %depmod %{_kernel_ver}\
117 %postun -n kernel%{_alt_kernel}-misc-%{pname}\
118 %depmod %{_kernel_ver}\
121 %define build_kernel_pkg()\
122 %build_kernel_modules -C driver -m sysdig-probe\
123 %install_kernel_modules -D installed -m driver/sysdig-probe -d misc\
126 %{?with_kernel:%{expand:%create_kernel_packages}}
129 %setup -q -n %{pname}-%{version}
131 # we need just obj-m from the file
132 cp driver/Makefile{.in,}
133 %{__sed} -i -e 's/@KBUILD_FLAGS@//' driver/Makefile
136 %{?with_kernel:%{expand:%build_kernel_packages}}
138 %if %{with userspace}
142 -DDIR_ETC=%{_sysconfdir} \
143 -DSYSDIG_VERSION=%{version}-%{release} \
145 -DUSE_BUNDLED_JSONCPP=OFF \
146 -DUSE_BUNDLED_LUAJIT=OFF \
147 -DUSE_BUNDLED_NCURSES=OFF \
148 -DUSE_BUNDLED_ZLIB=OFF \
154 rm -rf $RPM_BUILD_ROOT
155 %if %{with userspace}
156 %{__make} -C build install \
157 DESTDIR=$RPM_BUILD_ROOT
161 install -d $RPM_BUILD_ROOT
162 cp -a installed/* $RPM_BUILD_ROOT
166 rm -rf $RPM_BUILD_ROOT
168 %post -n dkms-%{name}
169 %{_sbindir}/dkms add -m %{name} -v %{version}-%{release} --rpm_safe_upgrade && \
170 %{_sbindir}/dkms build -m %{name} -v %{version}-%{release} --rpm_safe_upgrade && \
171 %{_sbindir}/dkms install -m %{name} -v %{version}-%{release} --rpm_safe_upgrade || :
173 %preun -n dkms-%{name}
174 %{_sbindir}/dkms remove -m %{name} -v %{version}-%{release} --rpm_safe_upgrade --all || :
176 %if %{with userspace}
178 %defattr(644,root,root,755)
179 %attr(755,root,root) %{_bindir}/csysdig
180 %attr(755,root,root) %{_bindir}/sysdig
181 %attr(755,root,root) %{_bindir}/sysdig-probe-loader
182 %{_mandir}/man8/csysdig.8*
183 %{_mandir}/man8/sysdig.8*
186 %files -n bash-completion-%{name}
187 %defattr(644,root,root,755)
188 /etc/bash_completion.d/sysdig
190 %files -n zsh-completion-%{name}
191 %defattr(644,root,root,755)
193 %{_datadir}/zsh/vendor-completions/_sysdig
197 %files -n dkms-%{name}
198 %defattr(644,root,root,755)
199 %{_usrsrc}/%{name}-%{version}-%{release}