X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=libcgroup.spec;h=fddc12dd469f860a6145fbc058091f41324090a6;hb=51630b4efee144e5ce9849a7beb0c6d7f7341a8a;hp=eff695915c8281daba794184b7b242b69a0eb684;hpb=f6ad0e0bbb0194161538347598cd40eaf1770932;p=packages%2Flibcgroup.git diff --git a/libcgroup.spec b/libcgroup.spec index eff6959..fddc12d 100644 --- a/libcgroup.spec +++ b/libcgroup.spec @@ -1,22 +1,47 @@ -# TODO -# - pldize initscripts -Summary: Tools and libraries to control and monitor control groups +Summary: Tools and library to control and monitor control groups +Summary(pl.UTF-8): Narzędzia i biblioteka do kontrolowania i monitorowania grup kontroli Name: libcgroup -Version: 0.37 +Version: 0.42.2 Release: 1 License: LGPL v2+ -Group: Libraries -Source0: http://downloads.sourceforge.net/libcg/%{name}-%{version}.tar.bz2 -# Source0-md5: beecca8770155afa62981076e96d4c9c +Group: Applications/System +#Source0Download: https://github.com/libcgroup/libcgroup/releases +Source0: https://github.com/libcgroup/libcgroup/releases/download/v%{version}/%{name}-%{version}.tar.bz2 +# Source0-md5: 8311f5ea60c99756533fea40ee2e8a85 +Source1: cgconfig.init +Source2: cgred.init +Source3: cgconfig.service +Source4: cgred.service +Source5: cgred.sysconfig +Patch0: %{name}-pam.patch +Patch1: %{name}-conf.patch +Patch2: %{name}-missing.patch +Patch3: %{name}-0.37-chmod.patch +Patch4: %{name}-0.40.rc1-coverity.patch +Patch5: %{name}-0.40.rc1-fread.patch +Patch6: %{name}-0.40.rc1-templates-fix.patch +Patch7: %{name}-0.41-change-cgroup-of-threads.patch URL: http://libcg.sourceforge.net/ +BuildRequires: autoconf >= 2.69 +BuildRequires: automake BuildRequires: bison BuildRequires: flex BuildRequires: libstdc++-devel +BuildRequires: libtool >= 2:2 BuildRequires: pam-devel -Requires(post): /sbin/ldconfig +BuildRequires: python-devel >= 2 +BuildRequires: rpmbuild(macros) >= 1.626 +BuildRequires: swig-python Requires(post,preun): /sbin/chkconfig +Requires(postun): /usr/sbin/groupdel +Requires(pre): /usr/bin/getgid +Requires(pre): /usr/sbin/groupadd +Requires(post,preun,postun): systemd-units >= 38 +Requires: %{name}-libs = %{version}-%{release} Requires: procps Requires: rc-scripts +Requires: systemd-units >= 38 +Provides: group(cgred) BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define _exec_prefix %{nil} @@ -27,18 +52,14 @@ Control groups infrastructure. The tools and library help manipulate, control, administrate and monitor control groups and the associated controllers. -%package devel -Summary: Development libraries for %{name} -Group: Development/Libraries -Requires: %{name} = %{version}-%{release} - -%description devel -It provides API to create/delete and modify cgroup nodes. It will also -in the future allow creation of persistent configuration for control -groups and provide scripts to manage that configuration. +%description -l pl.UTF-8 +Ten pakiet stanowi infrastrukturę grup kontroli (cgroups). Narzędzia i +biblioteka pomagają modyfikować, sterować, administrować i modyfikować +grupy kontroli i powiązane z nimi kontrolery. %package -n pam-pam_cgroup Summary: PAM module for libcgroup +Summary(pl.UTF-8): Moduł PAM dla libcgroup Group: Libraries Requires: %{name} = %{version}-%{release} Obsoletes: libcgroup-pam @@ -46,45 +67,121 @@ Obsoletes: libcgroup-pam %description -n pam-pam_cgroup PAM module for libcgroup. +%description -n pam-pam_cgroup -l pl.UTF-8 +Moduł PAM dla libcgroup. + +%package libs +Summary: Shared cgroup library +Summary(pl.UTF-8): Biblioteka współdzielona cgroup +Group: Libraries +Conflicts: libcgroup < 0.41 + +%description libs +Shared cgroup library. + +%description libs -l pl.UTF-8 +Biblioteka współdzielona cgroup. + +%package devel +Summary: Header files for cgroup library +Summary(pl.UTF-8): Pliki nagłówkowe biblioteki cgroup +Group: Development/Libraries +Requires: %{name}-libs = %{version}-%{release} + +%description devel +It provides API to create/delete and modify cgroup nodes. It will also +in the future allow creation of persistent configuration for control +groups and provide scripts to manage that configuration. + +%description devel -l pl.UTF-8 +Ten pakiet udostępnia API do tworzenia, usuwania i modyfikowania +węzłów cgroup. W przyszłości pozwoli także na tworzenie trwałej +konfiguracji grup kontroli i udostępni skrypty do zarządzania taką +konfiguracją. + +%package -n python-libcgroup +Summary: Python binding for libcgroup +Summary(pl.UTF-8): Wiązania Pythona do biblioteki libcgroup +Group: Libraries/Python +Requires: %{name}-libs = %{version}-%{release} + +%description -n python-libcgroup +Python binding for libcgroup. + +%description -n python-libcgroup -l pl.UTF-8 +Wiązania Pythona do biblioteki libcgroup. + %prep %setup -q +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 %build +%{__libtoolize} +%{__aclocal} +%{__autoconf} +%{__autoheader} +%{__automake} %configure \ --disable-silent-rules \ + --disable-static \ + --enable-bindings \ --enable-initscript-install \ + --enable-opaque-hierarchy="name=systemd" \ --enable-pam-module-dir=/%{_lib}/security %{__make} %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT/etc/sysconfig +install -d $RPM_BUILD_ROOT{/etc/sysconfig,%{systemdunitdir}} %{__make} install \ DESTDIR=$RPM_BUILD_ROOT -cp -a samples/cgred.conf $RPM_BUILD_ROOT/etc/sysconfig/cgred.conf -cp -a samples/cgconfig.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/cgconfig +cp -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/cgconfig +cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/cgred + +cp -p %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/cgconfig.service +cp -p %{SOURCE4} $RPM_BUILD_ROOT%{systemdunitdir}/cgred.service + +cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/cgred cp -a samples/cg{config,rules,snapshot_blacklist}.conf $RPM_BUILD_ROOT%{_sysconfdir} -mv -f $RPM_BUILD_ROOT/%{_lib}/security/pam_cgroup.so{.*.*.*,} -mv $RPM_BUILD_ROOT%{_libdir}/libcgroup.so.* $RPM_BUILD_ROOT/%{_lib} +%{__mv} $RPM_BUILD_ROOT%{_libdir}/libcgroup.so.* $RPM_BUILD_ROOT/%{_lib} ln -snf ../../%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libcgroup.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/libcgroup.so -%{__rm} $RPM_BUILD_ROOT/%{_lib}/security/pam_cgroup.so.* -%{__rm} $RPM_BUILD_ROOT{/%{_lib}/security,%{_libdir}}/*.la +%{__rm} $RPM_BUILD_ROOT%{_libdir}/libcgroupfortesting.* + +install -d $RPM_BUILD_ROOT%{py_sitedir} +%{__mv} $RPM_BUILD_ROOT%{_libdir}/_libcgroup.so $RPM_BUILD_ROOT%{py_sitedir} +%{__rm} $RPM_BUILD_ROOT/%{_lib}/security/pam_cgroup.la +%{__rm} $RPM_BUILD_ROOT%{_libdir}/*.la %clean rm -rf $RPM_BUILD_ROOT -#%%pre -#getent group cgred >/dev/null || groupadd cgred +%pre +%groupadd -g 261 -r -f cgred %post -/sbin/ldconfig /sbin/chkconfig --add cgred /sbin/chkconfig --add cgconfig +if [ ! -f /var/lock/subsys/cgconfig ]; then + echo 'Run "/sbin/service cgconfig start" to setup cgroup rules.' +fi +if [ ! -f /var/lock/subsys/cgred ]; then + echo 'Run "/sbin/service cgred start" to start control group rules daemon.' +fi +NORESTART=1 +%systemd_post cgconfig.service +%systemd_post cgred.service %preun if [ $1 = 0 ]; then @@ -93,24 +190,63 @@ if [ $1 = 0 ]; then /sbin/chkconfig --del cgconfig /sbin/chkconfig --del cgred fi +%systemd_preun cgconfig.service +%systemd_preun cgred.service + +%postun +if [ "$1" = "0" ]; then + %groupremove cgred +fi +%systemd_reload + +%triggerpostun -- %{name} < 0.38-0.rc1.1 +if [ -f /etc/sysconfig/cgred.conf.rpmsave ]; then + . /etc/sysconfig/cgred.conf.rpmsave + OPTIONS= + [ -n "$NODAEMON" ] && OPTIONS="$OPTIONS $NODAEMON" + [ -n "$LOG" ] && OPTIONS="$OPTIONS $LOG" + if [ -n "$LOG_FILE" ]; then + OPTIONS="$OPTIONS -f $LOG_FILE" + else + OPTIONS="$OPTIONS -s" + fi + [ -n "$SOCKET_USER" ] && OPTIONS="$OPTIONS -u $SOCKET_USER" + if [ -n "$SOCKET_GROUP" ]; then + OPTIONS="$OPTIONS -g $SOCKET_GROUP" + else + OPTIONS="$OPTIONS -g cgred" + fi + echo >>/etc/sysconfig/cgred + echo "# Added by rpm trigger" >>/etc/sysconfig/cgred + echo "OPTIONS=\"$OPTIONS\"" >>/etc/sysconfig/cgred +fi +%systemd_trigger cgconfig.service +%systemd_trigger cgred.service -%postun -p /sbin/ldconfig +%post libs -p /sbin/ldconfig +%postun libs -p /sbin/ldconfig %files %defattr(644,root,root,755) %doc README README_daemon -%attr(754,root,root) /etc/rc.d/init.d/cg* -%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/cg* +%attr(754,root,root) /etc/rc.d/init.d/cgconfig +%attr(754,root,root) /etc/rc.d/init.d/cgred +%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/cgred %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/cg*.conf - -%attr(755,root,root) /bin/cg* +%{systemdunitdir}/cgconfig.service +%{systemdunitdir}/cgred.service +%attr(755,root,root) /bin/cgclassify +%attr(755,root,root) /bin/cgcreate +%attr(755,root,root) /bin/cgdelete +%attr(755,root,root) /bin/cgexec +%attr(755,root,root) /bin/cgget +%attr(755,root,root) /bin/cgset +%attr(755,root,root) /bin/cgsnapshot %attr(755,root,root) /bin/lscgroup %attr(755,root,root) /bin/lssubsys -%attr(755,root,root) /sbin/cg* - -%attr(755,root,root) /%{_lib}/libcgroup.so.*.*.* -%attr(755,root,root) %ghost /%{_lib}/libcgroup.so.1 - +%attr(755,root,root) /sbin/cgclear +%attr(755,root,root) /sbin/cgconfigparser +%attr(755,root,root) /sbin/cgrulesengd %{_mandir}/man1/ls*.1* %{_mandir}/man1/cg*.1* %{_mandir}/man5/cg*.5* @@ -120,9 +256,18 @@ fi %defattr(644,root,root,755) %attr(755,root,root) /%{_lib}/security/pam_cgroup.so +%files libs +%defattr(644,root,root,755) +%attr(755,root,root) /%{_lib}/libcgroup.so.*.*.* +%attr(755,root,root) %ghost /%{_lib}/libcgroup.so.1 + %files devel %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libcgroup.so %{_includedir}/libcgroup %{_includedir}/libcgroup.h %{_pkgconfigdir}/libcgroup.pc + +%files -n python-libcgroup +%defattr(644,root,root,755) +%attr(755,root,root) %{py_sitedir}/_libcgroup.so