]> git.pld-linux.org Git - packages/sysdig.git/blob - sysdig.spec
1c17ea1464bf7222ddb27339eefdc8cd73dd6e81
[packages/sysdig.git] / sysdig.spec
1 #
2 # Conditional build:
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
6
7 %if "%{?alt_kernel}" != "" && 0%{?build_kernels:1}
8         %{error:alt_kernel (%{?alt_kernel}) and build_kernels (%{?build_kernels}) defined}
9 %endif
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
22 %define         rel     0.3
23 %define         pname   sysdig
24 Summary:        sysdig, a system-level exploration and troubleshooting tool
25 Name:           %{pname}%{?_pld_builder:%{?with_kernel:-kernel}}%{_alt_kernel}
26 Version:        0.1.101
27 Release:        %{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}}
28 License:        GPL v2
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
34 %if %{with userspace}
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
41 %endif
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)
45
46 # constify %{name}
47 %{expand:%%global name %{pname}}
48
49 %define         zshdir %{_datadir}/zsh/site-functions
50
51 %description
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.
58
59 %package -n dkms-%{name}
60 Summary:        DKMS-ready driver for sysdig
61 License:        GPL v2+
62 Group:          Base/Kernel
63 Requires(pre,post):     dkms >= 2.1.0.0
64 %if "%{_rpmversion}" >= "5"
65 BuildArch:      noarch
66 %endif
67
68 %description -n dkms-%{name}
69 This package contains a DKMS-ready driver for sysdig.
70
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"
78 BuildArch:      noarch
79 %endif
80
81 %description -n bash-completion-%{name}
82 bash-completion for sysdig.
83
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"
89 BuildArch:      noarch
90 %endif
91
92 %description -n zsh-completion-%{name}
93 zsh-completion for sysdig.
94
95 %define kernel_pkg()\
96 %package -n kernel%{_alt_kernel}-misc-%{pname}\
97 Summary:        Linux driver for sysdig\
98 Release:        %{rel}@%{_kernel_ver_str}\
99 Group:          Base/Kernel\
100 Requires(post,postun):  /sbin/depmod\
101 %requires_releq_kernel\
102 Requires(postun):       %releq_kernel\
103 \
104 %description -n kernel%{_alt_kernel}-misc-%{pname}\
105 This is driver for sysdig-probe for Linux.\
106 \
107 This package contains Linux module.\
108 \
109 %if %{with kernel}\
110 %files -n kernel%{_alt_kernel}-misc-%{pname}\
111 %defattr(644,root,root,755)\
112 /lib/modules/%{_kernel_ver}/misc/*.ko*\
113 %endif\
114 \
115 %post   -n kernel%{_alt_kernel}-misc-%{pname}\
116 %depmod %{_kernel_ver}\
117 \
118 %postun -n kernel%{_alt_kernel}-misc-%{pname}\
119 %depmod %{_kernel_ver}\
120 %{nil}
121
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\
125 %{nil}
126
127 %{?with_kernel:%{expand:%create_kernel_packages}}
128
129 %prep
130 %setup -q -n %{pname}-%{version}
131
132 # we need just obj-m from the file
133 cp driver/Makefile{.in,}
134 %{__sed} -i -e 's/@KBUILD_FLAGS@//' driver/Makefile
135
136 %build
137 %{?with_kernel:%{expand:%build_kernel_packages}}
138
139 %if %{with userspace}
140 install -d build
141 cd build
142 %cmake \
143         -DDIR_ETC=%{_sysconfdir} \
144         -DSYSDIG_VERSION=%{version}-%{release} \
145         -DBUILD_DRIVER=OFF \
146         -DUSE_BUNDLED_JSONCPP=OFF \
147         -DUSE_BUNDLED_LUAJIT=OFF \
148         -DUSE_BUNDLED_NCURSES=OFF \
149         -DUSE_BUNDLED_ZLIB=OFF \
150         ..
151 %{__make}
152 %endif
153
154 %install
155 rm -rf $RPM_BUILD_ROOT
156 %if %{with userspace}
157 %{__make} -C build install \
158         DESTDIR=$RPM_BUILD_ROOT
159 %endif
160
161 %if %{with kernel}
162 install -d $RPM_BUILD_ROOT
163 cp -a installed/* $RPM_BUILD_ROOT
164 %endif
165
166 %clean
167 rm -rf $RPM_BUILD_ROOT
168
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 || :
173
174 %preun -n dkms-%{name}
175 %{_sbindir}/dkms remove -m %{name} -v %{version}-%{release} --rpm_safe_upgrade --all || :
176
177 %if %{with userspace}
178 %files
179 %defattr(644,root,root,755)
180 %attr(755,root,root) %{_bindir}/csysdig
181 %attr(755,root,root) %{_bindir}/sysdig
182 %attr(755,root,root) %{_bindir}/sysdig-probe-loader
183 %{_mandir}/man8/csysdig.8*
184 %{_mandir}/man8/sysdig.8*
185 %{_datadir}/%{name}
186
187 %files -n bash-completion-%{name}
188 %defattr(644,root,root,755)
189 /etc/bash_completion.d/sysdig
190
191 %files -n zsh-completion-%{name}
192 %defattr(644,root,root,755)
193 %{zshdir}/_sysdig
194 %{_datadir}/zsh/vendor-completions/_sysdig
195 %endif
196
197 %if %{with dkms}
198 %files -n dkms-%{name}
199 %defattr(644,root,root,755)
200 %{_usrsrc}/%{name}-%{version}-%{release}
201 %endif
This page took 0.073499 seconds and 2 git commands to generate.