]> git.pld-linux.org Git - packages/sysdig.git/blob - sysdig.spec
hack build with alt_kernel
[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:  cmake >= 2.8.2
34 BuildRequires:  jsoncpp-devel
35 BuildRequires:  libstdc++-devel >= 6:4.4
36 BuildRequires:  luajit-devel >= 2.0.3
37 BuildRequires:  ncurses-devel >= 5.9
38 BuildRequires:  rpmbuild(macros) >= 1.701
39 BuildRequires:  zlib-devel >= 1.2.8
40 %{?with_kernel:%{expand:%buildrequires_kernel kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2}}
41 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
42
43 # constify %{name}
44 %{expand:%%global name %{pname}}
45
46 %define         zshdir %{_datadir}/zsh/site-functions
47
48 %description
49 Sysdig instruments your physical and virtual machines at the OS level
50 by installing into the Linux kernel and capturing system calls and
51 other OS events. Then, using sysdig's command line interface, you can
52 filter and decode these events in order to extract useful information.
53 Sysdig can be used to inspect systems live in real-time, or to
54 generate trace files that can be analyzed at a later stage.
55
56 %package -n dkms-%{name}
57 Summary:        DKMS-ready driver for sysdig
58 License:        GPL v2+
59 Group:          Base/Kernel
60 Requires(pre,post):     dkms >= 2.1.0.0
61 %if "%{_rpmversion}" >= "5"
62 BuildArch:      noarch
63 %endif
64
65 %description -n dkms-%{name}
66 This package contains a DKMS-ready driver for sysdig.
67
68 %package -n bash-completion-%{name}
69 Summary:        bash-completion for sysdig
70 Summary(pl.UTF-8):      Bashowe dopeÅ‚nianie skÅ‚adni dla sysdig
71 Group:          Applications/Shells
72 Requires:       %{name} = %{version}-%{release}
73 Requires:       bash-completion
74 %if "%{_rpmversion}" >= "5"
75 BuildArch:      noarch
76 %endif
77
78 %description -n bash-completion-%{name}
79 bash-completion for sysdig.
80
81 %package -n zsh-completion-%{name}
82 Summary:        zsh-completion for sysdig
83 Group:          Applications/Shells
84 Requires:       %{name} = %{version}-%{release}
85 %if "%{_rpmversion}" >= "5"
86 BuildArch:      noarch
87 %endif
88
89 %description -n zsh-completion-%{name}
90 zsh-completion for sysdig.
91
92 %define kernel_pkg()\
93 %package -n kernel%{_alt_kernel}-misc-%{pname}\
94 Summary:        Linux driver for sysdig\
95 Release:        %{rel}@%{_kernel_ver_str}\
96 Group:          Base/Kernel\
97 Requires(post,postun):  /sbin/depmod\
98 %requires_releq_kernel\
99 Requires(postun):       %releq_kernel\
100 \
101 %description -n kernel%{_alt_kernel}-misc-%{pname}\
102 This is driver for sysdig-probe for Linux.\
103 \
104 This package contains Linux module.\
105 \
106 %if %{with kernel}\
107 %files -n kernel%{_alt_kernel}-misc-%{pname}\
108 %defattr(644,root,root,755)\
109 /lib/modules/%{_kernel_ver}/misc/*.ko*\
110 %endif\
111 \
112 %post   -n kernel%{_alt_kernel}-misc-%{pname}\
113 %depmod %{_kernel_ver}\
114 \
115 %postun -n kernel%{_alt_kernel}-misc-%{pname}\
116 %depmod %{_kernel_ver}\
117 %{nil}
118
119 %define build_kernel_pkg()\
120 %build_kernel_modules -C driver -m sysdig-probe\
121 %install_kernel_modules -D installed -m driver/sysdig-probe -d misc\
122 %{nil}
123
124 %{?with_kernel:%{expand:%create_kernel_packages}}
125
126 %prep
127 %setup -q -n %{pname}-%{version}
128
129 # we need just obj-m from the file
130 cp driver/Makefile{.in,}
131 %{__sed} -i -e 's/@KBUILD_FLAGS@//' driver/Makefile
132
133 %build
134 %{?with_kernel:%{expand:%build_kernel_packages}}
135
136 %if %{with userspace}
137 install -d build
138 cd build
139 %cmake \
140         -DDIR_ETC=%{_sysconfdir} \
141         -DSYSDIG_VERSION=%{version}-%{release} \
142         -DBUILD_DRIVER=OFF \
143         -DUSE_BUNDLED_JSONCPP=OFF \
144         -DUSE_BUNDLED_LUAJIT=OFF \
145         -DUSE_BUNDLED_NCURSES=OFF \
146         -DUSE_BUNDLED_ZLIB=OFF \
147         ..
148 %{__make}
149 %endif
150
151 %install
152 rm -rf $RPM_BUILD_ROOT
153 %if %{with userspace}
154 %{__make} -C build install \
155         DESTDIR=$RPM_BUILD_ROOT
156 %endif
157
158 %if %{with kernel}
159 install -d $RPM_BUILD_ROOT
160 cp -a installed/* $RPM_BUILD_ROOT
161 %endif
162
163 %clean
164 rm -rf $RPM_BUILD_ROOT
165
166 %post -n dkms-%{name}
167 %{_sbindir}/dkms add -m %{name} -v %{version}-%{release} --rpm_safe_upgrade && \
168 %{_sbindir}/dkms build -m %{name} -v %{version}-%{release} --rpm_safe_upgrade && \
169 %{_sbindir}/dkms install -m %{name} -v %{version}-%{release} --rpm_safe_upgrade || :
170
171 %preun -n dkms-%{name}
172 %{_sbindir}/dkms remove -m %{name} -v %{version}-%{release} --rpm_safe_upgrade --all || :
173
174 %if %{with userspace}
175 %files
176 %defattr(644,root,root,755)
177 %attr(755,root,root) %{_bindir}/csysdig
178 %attr(755,root,root) %{_bindir}/sysdig
179 %attr(755,root,root) %{_bindir}/sysdig-probe-loader
180 %{_mandir}/man8/csysdig.8*
181 %{_mandir}/man8/sysdig.8*
182 %{_datadir}/%{name}
183
184 %files -n bash-completion-%{name}
185 %defattr(644,root,root,755)
186 /etc/bash_completion.d/sysdig
187
188 %files -n zsh-completion-%{name}
189 %defattr(644,root,root,755)
190 %{zshdir}/_sysdig
191 %{_datadir}/zsh/vendor-completions/_sysdig
192 %endif
193
194 %if %{with dkms}
195 %files -n dkms-%{name}
196 %defattr(644,root,root,755)
197 %{_usrsrc}/%{name}-%{version}-%{release}
198 %endif
This page took 0.096529 seconds and 4 git commands to generate.