1 Summary: Tools and library to control and monitor control groups
2 Summary(pl.UTF-8): Narzędzia i biblioteka do kontrolowania i monitorowania grup kontroli
7 Group: Applications/System
8 Source0: http://downloads.sourceforge.net/libcg/%{name}-%{version}.tar.bz2
9 # Source0-md5: 3dea9d50b8a5b73ff0bf1cdcb210f63f
10 Source1: cgconfig.init
12 Source3: cgconfig.service
13 Source4: cgred.service
14 Source5: cgred.sysconfig
15 Patch0: %{name}-pam.patch
16 Patch1: %{name}-conf.patch
17 Patch2: %{name}-missing.patch
18 Patch3: %{name}-0.37-chmod.patch
19 Patch4: %{name}-0.40.rc1-coverity.patch
20 Patch5: %{name}-0.40.rc1-fread.patch
21 Patch6: %{name}-0.40.rc1-templates-fix.patch
22 Patch7: %{name}-0.41-api.c-fix-order-of-memory-subsystem-parameters.patch
23 Patch8: %{name}-0.41-api.c-preserve-dirty-flag.patch
24 Patch9: %{name}-0.41-api.c-support-for-setting-multiline-values-in-contro.patch
25 Patch10: %{name}-0.41-change-cgroup-of-threads.patch
26 Patch11: %{name}-0.41-CVE-2018-14348.patch
27 Patch12: %{name}-0.41-fix-infinite-loop.patch
28 Patch13: %{name}-0.41-fix-log-level.patch
29 Patch14: %{name}-0.41-lex.patch
30 Patch15: %{name}-0.41-prevent-buffer-overflow.patch
31 Patch16: %{name}-0.41-size-of-controller-values.patch
32 Patch17: %{name}-0.41-tasks-file-warning.patch
33 URL: http://libcg.sourceforge.net/
34 BuildRequires: autoconf >= 2.61
35 BuildRequires: automake
38 BuildRequires: libstdc++-devel
39 BuildRequires: libtool
40 BuildRequires: pam-devel
41 BuildRequires: python-devel >= 2
42 BuildRequires: rpmbuild(macros) >= 1.626
43 BuildRequires: swig-python
44 Requires(post,preun): /sbin/chkconfig
45 Requires(postun): /usr/sbin/groupdel
46 Requires(pre): /usr/bin/getgid
47 Requires(pre): /usr/sbin/groupadd
48 Requires(post,preun,postun): systemd-units >= 38
49 Requires: %{name}-libs = %{version}-%{release}
52 Requires: systemd-units >= 38
53 Provides: group(cgred)
54 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
56 %define _exec_prefix %{nil}
57 %define _libdir %{_prefix}/%{_lib}
60 Control groups infrastructure. The tools and library help manipulate,
61 control, administrate and monitor control groups and the associated
64 %description -l pl.UTF-8
65 Ten pakiet stanowi infrastrukturę grup kontroli (cgroups). Narzędzia i
66 biblioteka pomagają modyfikować, sterować, administrować i modyfikować
67 grupy kontroli i powiązane z nimi kontrolery.
69 %package -n pam-pam_cgroup
70 Summary: PAM module for libcgroup
71 Summary(pl.UTF-8): Moduł PAM dla libcgroup
73 Requires: %{name} = %{version}-%{release}
74 Obsoletes: libcgroup-pam
76 %description -n pam-pam_cgroup
77 PAM module for libcgroup.
79 %description -n pam-pam_cgroup -l pl.UTF-8
80 Moduł PAM dla libcgroup.
83 Summary: Shared cgroup library
84 Summary(pl.UTF-8): Biblioteka współdzielona cgroup
86 Conflicts: libcgroup < 0.41
89 Shared cgroup library.
91 %description libs -l pl.UTF-8
92 Biblioteka współdzielona cgroup.
95 Summary: Header files for cgroup library
96 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki cgroup
97 Group: Development/Libraries
98 Requires: %{name}-libs = %{version}-%{release}
101 It provides API to create/delete and modify cgroup nodes. It will also
102 in the future allow creation of persistent configuration for control
103 groups and provide scripts to manage that configuration.
105 %description devel -l pl.UTF-8
106 Ten pakiet udostępnia API do tworzenia, usuwania i modyfikowania
107 węzłów cgroup. W przyszłości pozwoli także na tworzenie trwałej
108 konfiguracji grup kontroli i udostępni skrypty do zarządzania taką
111 %package -n python-libcgroup
112 Summary: Python binding for libcgroup
113 Summary(pl.UTF-8): Wiązania Pythona do biblioteki libcgroup
114 Group: Libraries/Python
115 Requires: %{name}-libs = %{version}-%{release}
117 %description -n python-libcgroup
118 Python binding for libcgroup.
120 %description -n python-libcgroup -l pl.UTF-8
121 Wiązania Pythona do biblioteki libcgroup.
151 --disable-silent-rules \
153 --enable-initscript-install \
154 --enable-opaque-hierarchy="name=systemd" \
155 --enable-pam-module-dir=/%{_lib}/security
160 rm -rf $RPM_BUILD_ROOT
161 install -d $RPM_BUILD_ROOT{/etc/sysconfig,%{systemdunitdir}}
164 DESTDIR=$RPM_BUILD_ROOT
166 cp -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/cgconfig
167 cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/cgred
169 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/cgconfig.service
170 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{systemdunitdir}/cgred.service
172 cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/cgred
173 cp -a samples/cg{config,rules,snapshot_blacklist}.conf $RPM_BUILD_ROOT%{_sysconfdir}
175 mv $RPM_BUILD_ROOT%{_libdir}/libcgroup.so.* $RPM_BUILD_ROOT/%{_lib}
176 ln -snf ../../%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libcgroup.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/libcgroup.so
178 install -d $RPM_BUILD_ROOT%{py_sitedir}
179 %{__mv} $RPM_BUILD_ROOT%{_libdir}/_libcgroup.so $RPM_BUILD_ROOT%{py_sitedir}
180 %{__rm} $RPM_BUILD_ROOT/%{_lib}/security/pam_cgroup.la
181 %{__rm} $RPM_BUILD_ROOT%{_libdir}/*.la
184 rm -rf $RPM_BUILD_ROOT
187 %groupadd -g 261 -r -f cgred
190 /sbin/chkconfig --add cgred
191 /sbin/chkconfig --add cgconfig
192 if [ ! -f /var/lock/subsys/cgconfig ]; then
193 echo 'Run "/sbin/service cgconfig start" to setup cgroup rules.'
195 if [ ! -f /var/lock/subsys/cgred ]; then
196 echo 'Run "/sbin/service cgred start" to start control group rules daemon.'
199 %systemd_post cgconfig.service
200 %systemd_post cgred.service
205 %service cgconfig stop
206 /sbin/chkconfig --del cgconfig
207 /sbin/chkconfig --del cgred
209 %systemd_preun cgconfig.service
210 %systemd_preun cgred.service
213 if [ "$1" = "0" ]; then
218 %triggerpostun -- %{name} < 0.38-0.rc1.1
219 if [ -f /etc/sysconfig/cgred.conf.rpmsave ]; then
220 . /etc/sysconfig/cgred.conf.rpmsave
222 [ -n "$NODAEMON" ] && OPTIONS="$OPTIONS $NODAEMON"
223 [ -n "$LOG" ] && OPTIONS="$OPTIONS $LOG"
224 if [ -n "$LOG_FILE" ]; then
225 OPTIONS="$OPTIONS -f $LOG_FILE"
227 OPTIONS="$OPTIONS -s"
229 [ -n "$SOCKET_USER" ] && OPTIONS="$OPTIONS -u $SOCKET_USER"
230 if [ -n "$SOCKET_GROUP" ]; then
231 OPTIONS="$OPTIONS -g $SOCKET_GROUP"
233 OPTIONS="$OPTIONS -g cgred"
235 echo >>/etc/sysconfig/cgred
236 echo "# Added by rpm trigger" >>/etc/sysconfig/cgred
237 echo "OPTIONS=\"$OPTIONS\"" >>/etc/sysconfig/cgred
239 %systemd_trigger cgconfig.service
240 %systemd_trigger cgred.service
242 %post libs -p /sbin/ldconfig
243 %postun libs -p /sbin/ldconfig
246 %defattr(644,root,root,755)
247 %doc README README_daemon
248 %attr(754,root,root) /etc/rc.d/init.d/cgconfig
249 %attr(754,root,root) /etc/rc.d/init.d/cgred
250 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/cgred
251 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/cg*.conf
252 %{systemdunitdir}/cgconfig.service
253 %{systemdunitdir}/cgred.service
254 %attr(755,root,root) /bin/cgclassify
255 %attr(755,root,root) /bin/cgcreate
256 %attr(755,root,root) /bin/cgdelete
257 %attr(755,root,root) /bin/cgexec
258 %attr(755,root,root) /bin/cgget
259 %attr(755,root,root) /bin/cgset
260 %attr(755,root,root) /bin/cgsnapshot
261 %attr(755,root,root) /bin/lscgroup
262 %attr(755,root,root) /bin/lssubsys
263 %attr(755,root,root) /sbin/cgclear
264 %attr(755,root,root) /sbin/cgconfigparser
265 %attr(755,root,root) /sbin/cgrulesengd
266 %{_mandir}/man1/ls*.1*
267 %{_mandir}/man1/cg*.1*
268 %{_mandir}/man5/cg*.5*
269 %{_mandir}/man8/cg*.8*
271 %files -n pam-pam_cgroup
272 %defattr(644,root,root,755)
273 %attr(755,root,root) /%{_lib}/security/pam_cgroup.so
276 %defattr(644,root,root,755)
277 %attr(755,root,root) /%{_lib}/libcgroup.so.*.*.*
278 %attr(755,root,root) %ghost /%{_lib}/libcgroup.so.1
281 %defattr(644,root,root,755)
282 %attr(755,root,root) %{_libdir}/libcgroup.so
283 %{_includedir}/libcgroup
284 %{_includedir}/libcgroup.h
285 %{_pkgconfigdir}/libcgroup.pc
287 %files -n python-libcgroup
288 %defattr(644,root,root,755)
289 %attr(755,root,root) %{py_sitedir}/_libcgroup.so