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