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