]> git.pld-linux.org Git - packages/sysdig.git/blob - sysdig.spec
- fix userspace build on x32
[packages/sysdig.git] / sysdig.spec
1 #
2 # NOTES:
3 # - https://github.com/draios/sysdig/wiki/How-to-Install-Sysdig-from-the-Source-Code
4 #
5 # Conditional build:
6 %bcond_without  kernel          # kernel modules
7 %bcond_without  userspace       # userspace packages
8 %bcond_without  dkms            # DKMS package
9 %bcond_without  luajit          # use plain lua5.1 instead of luajit
10
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}
13 exit 1
14 %endif
15
16 %if %{without userspace}
17 %undefine       with_dkms
18 # nothing to be placed to debuginfo package
19 %define         _enable_debug_packages  0
20 %endif
21 %ifnarch %{ix86} %{x8664} %{arm} mips ppc
22 %undefine       with_luajit
23 %endif
24
25 %define         rel     3
26 %define         pname   sysdig
27 Summary:        sysdig, a system-level exploration and troubleshooting tool
28 Summary(pl.UTF-8):      sysdig - narzędzie do przeglądu i rozwiązywania problemów na poziomie systemowym
29 Name:           %{pname}%{?_pld_builder:%{?with_kernel:-kernel}}%{_alt_kernel}
30 Version:        0.24.2
31 Release:        %{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}}
32 License:        GPL v2
33 Group:          Applications/System
34 #Source0Download: https://github.com/draios/sysdig/releases
35 Source0:        https://github.com/draios/sysdig/archive/%{version}/%{pname}-%{version}.tar.gz
36 # Source0-md5:  ea98fc19fea18f02651a7955d069dcf1
37 Patch0:         kernel-5.0.patch
38 Patch1:         kernel-5.1.patch
39 Patch2:         x32.patch
40 URL:            http://www.sysdig.org/
41 BuildRequires:  rpmbuild(macros) >= 1.701
42 BuildRequires:  cmake >= 2.8.2
43 BuildRequires:  curl-devel >= 7.45.0
44 BuildRequires:  jq-devel >= 1.5
45 BuildRequires:  jsoncpp-devel
46 BuildRequires:  libb64-devel >= 1.2.1
47 BuildRequires:  libstdc++-devel >= 6:4.4
48 %{!?with_luajit:BuildRequires:  lua51-devel >= 5.1}
49 %{?with_luajit:BuildRequires:   luajit-devel >= 2.0.3}
50 BuildRequires:  ncurses-devel >= 5.9
51 BuildRequires:  openssl-devel >= 1.0.2
52 BuildRequires:  tbb-devel
53 BuildRequires:  zlib-devel >= 1.2.8
54 %{!?with_luajit:BuildConflicts: luajit-devel}
55 %{?with_kernel:%{expand:%buildrequires_kernel kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2}}
56 ExclusiveArch:  %{ix86} %{x8664} x32
57 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
58
59 # constify %{name}
60 %{expand:%%global name %{pname}}
61
62 %define         zshdir %{_datadir}/zsh/site-functions
63
64 %description
65 Sysdig instruments your physical and virtual machines at the OS level
66 by installing into the Linux kernel and capturing system calls and
67 other OS events. Then, using sysdig's command line interface, you can
68 filter and decode these events in order to extract useful information.
69 Sysdig can be used to inspect systems live in real-time, or to
70 generate trace files that can be analyzed at a later stage.
71
72 %description -l pl.UTF-8
73 Sysdig obsługuje maszyny fizyczne i wirtualne na poziomie systemu
74 operacyjnego, instalując się w jądrze Linuksa i przechwytując
75 wywołania systemowe oraz inne zdarzenia systemu. Następnie, przy
76 użyciu interfejsu linii poleceń sysdiga można odfiltrować i zdekodować
77 te zdarzenia, aby wydobyć z nich przydatne informacje. Sysdiga można
78 używać do dozorowania systemów w czasie rzeczywistym albo generowania
79 plików śladów do późniejszej analizy.
80
81 %package -n dkms-%{name}
82 Summary:        DKMS-ready driver for sysdig
83 Summary(pl.UTF-8):      Sterownik sysdiga zgodny z DKMS
84 License:        GPL v2+
85 Group:          Base/Kernel
86 Requires(pre,post):     dkms >= 2.1.0.0
87 %if "%{_rpmversion}" >= "5"
88 BuildArch:      noarch
89 %endif
90
91 %description -n dkms-%{name}
92 This package contains a DKMS-ready driver for sysdig.
93
94 %description -n dkms-%{name} -l pl.UTF-8
95 Ten pakiet zawiera sterownik sysdiga w postaci zgodnej z DKMS.
96
97 %package -n bash-completion-%{name}
98 Summary:        bash-completion for sysdig command
99 Summary(pl.UTF-8):      Bashowe dopełnianie składni polecenia sysdig
100 Group:          Applications/Shells
101 Requires:       %{name} = %{version}-%{rel}
102 Requires:       bash-completion
103 %if "%{_rpmversion}" >= "5"
104 BuildArch:      noarch
105 %endif
106
107 %description -n bash-completion-%{name}
108 bash-completion for sysdig command.
109
110 %description -n bash-completion-%{name} -l pl.UTF-8
111 Bashowe dopełnianie składni polecenia sysdig.
112
113 %package -n zsh-completion-%{name}
114 Summary:        zsh-completion for sysdig command
115 Summary(pl.UTF-8):      Dopełnianie składni polecenia sysdig w powłoce zsh
116 Group:          Applications/Shells
117 Requires:       %{name} = %{version}-%{rel}
118 %if "%{_rpmversion}" >= "5"
119 BuildArch:      noarch
120 %endif
121
122 %description -n zsh-completion-%{name}
123 zsh-completion for sysdig command.
124
125 %description -n zsh-completion-%{name} -l pl.UTF-8
126 Dopełnianie składni polecenia sysdig w powłoce zsh.
127
128 %define kernel_pkg()\
129 %package -n kernel%{_alt_kernel}-misc-%{pname}\
130 Summary:        Linux driver for sysdig\
131 Summary(pl.UTF-8):      Sterownik jądra Linuksa dla sysdiga\
132 Release:        %{rel}@%{_kernel_ver_str}\
133 Group:          Base/Kernel\
134 Requires(post,postun):  /sbin/depmod\
135 %requires_releq_kernel\
136 Requires(postun):       %releq_kernel\
137 \
138 %description -n kernel%{_alt_kernel}-misc-%{pname}\
139 This is sysdig-probe module for Linux.\
140 \
141 %description -n kernel%{_alt_kernel}-misc-%{pname} -l pl.UTF-8\
142 Ten pakiet zawiera moduł sysdig-probe for jądra Linuksa.\
143 \
144 %if %{with kernel}\
145 %files -n kernel%{_alt_kernel}-misc-%{pname}\
146 %defattr(644,root,root,755)\
147 /lib/modules/%{_kernel_ver}/misc/*.ko*\
148 %endif\
149 \
150 %post   -n kernel%{_alt_kernel}-misc-%{pname}\
151 %depmod %{_kernel_ver}\
152 \
153 %postun -n kernel%{_alt_kernel}-misc-%{pname}\
154 %depmod %{_kernel_ver}\
155 %{nil}
156
157 %define build_kernel_pkg()\
158 %build_kernel_modules -C driver -m sysdig-probe\
159 %install_kernel_modules -D installed -m driver/sysdig-probe -d misc\
160 %{nil}
161
162 %{?with_kernel:%{expand:%create_kernel_packages}}
163
164 %prep
165 %setup -q -n %{pname}-%{version}
166 %patch0 -p1
167 %patch1 -p1
168 %patch2 -p1
169
170 %build
171 install -d build
172 cd build
173 %cmake .. \
174         -DDIR_ETC=%{_sysconfdir} \
175         -DSYSDIG_VERSION=%{version}-%{rel} \
176         -DBUILD_DRIVER=OFF \
177         -DUSE_BUNDLED_DEPS=OFF \
178         -DUSE_BUNDLED_B64=OFF \
179         -DUSE_BUNDLED_CURL=OFF \
180         -DUSE_BUNDLED_JQ=OFF \
181         -DUSE_BUNDLED_JSONCPP=OFF \
182         -DUSE_BUNDLED_LUAJIT=OFF \
183         -DUSE_BUNDLED_NCURSES=OFF \
184         -DUSE_BUNDLED_OPENSSL=OFF \
185         -DUSE_BUNDLED_TBB=OFF \
186         -DUSE_BUNDLED_ZLIB=OFF
187 cd ..
188
189 %if %{with kernel}
190 cp -f build/driver/Makefile.dkms driver/Makefile
191 %{expand:%build_kernel_packages}
192 %endif
193
194 %if %{with userspace}
195 %{__make} -C build
196 %endif
197
198 %install
199 rm -rf $RPM_BUILD_ROOT
200
201 %if %{with userspace}
202 %{__make} -C build install \
203         DESTDIR=$RPM_BUILD_ROOT
204
205 # already installed as %{zshdir}/_sysdig
206 %{__rm} $RPM_BUILD_ROOT%{_datadir}/zsh/vendor-completions/_sysdig
207 %endif
208
209 %if %{with kernel}
210 install -d $RPM_BUILD_ROOT
211 cp -a installed/* $RPM_BUILD_ROOT
212 %endif
213
214 %clean
215 rm -rf $RPM_BUILD_ROOT
216
217 %post -n dkms-%{name}
218 %{_sbindir}/dkms add -m %{name} -v %{version}-%{rel} --rpm_safe_upgrade && \
219 %{_sbindir}/dkms build -m %{name} -v %{version}-%{rel} --rpm_safe_upgrade && \
220 %{_sbindir}/dkms install -m %{name} -v %{version}-%{rel} --rpm_safe_upgrade || :
221
222 %preun -n dkms-%{name}
223 %{_sbindir}/dkms remove -m %{name} -v %{version}-%{rel} --rpm_safe_upgrade --all || :
224
225 %if %{with userspace}
226 %files
227 %defattr(644,root,root,755)
228 %doc README.md
229 %attr(755,root,root) %{_bindir}/csysdig
230 %attr(755,root,root) %{_bindir}/sysdig
231 %attr(755,root,root) %{_bindir}/sysdig-probe-loader
232 %{_mandir}/man8/csysdig.8*
233 %{_mandir}/man8/sysdig.8*
234 %{_datadir}/%{name}
235
236 %files -n bash-completion-%{name}
237 %defattr(644,root,root,755)
238 /etc/bash_completion.d/sysdig
239
240 %files -n zsh-completion-%{name}
241 %defattr(644,root,root,755)
242 %{zshdir}/_sysdig
243 %endif
244
245 %if %{with dkms}
246 %files -n dkms-%{name}
247 %defattr(644,root,root,755)
248 %{_usrsrc}/%{name}-%{version}-%{rel}
249 %endif
This page took 0.103016 seconds and 3 git commands to generate.