-%define soversion 1.0.34
-
-Name: libcgroup
-Summary: Tools and libraries to control and monitor control groups
-Group: Development/Libraries
-Version: 0.34
-Release: 1
-License: LGPLv2+
-URL: http://libcg.sourceforge.net/
-Source0: http://downloads.sourceforge.net/libcg/%{name}-%{version}.tar.bz2
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-BuildRequires: pam-devel
-BuildRequires: byacc
-BuildRequires: flex
-BuildRequires: coreutils
-Requires(post): chkconfig, /sbin/service
-Requires(preun): /sbin/chkconfig
+%define _rc rc1
+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.38
+Release: 0.%{_rc}.1
+License: LGPL v2+
+Group: Libraries
+Source0: http://downloads.sourceforge.net/libcg/%{name}-%{version}.%{_rc}.tar.bz2
+# Source0-md5: 6c2100af9840f54f8bf97836887a4517
+Source1: cgconfig.init
+Source2: cgred.init
+Source3: cgconfig.service
+Source4: cgred.service
+Source5: cgred.sysconfig
+Patch0: %{name}-pam.patch
+Patch1: %{name}-conf.patch
+URL: http://libcg.sourceforge.net/
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: bison
+BuildRequires: flex
+BuildRequires: libstdc++-devel
+BuildRequires: libtool
+BuildRequires: pam-devel
+BuildRequires: rpmbuild(macros) >= 1.626
+Requires(post): /sbin/ldconfig
+Requires(post,preun): /sbin/chkconfig
+Requires(postun): /usr/sbin/groupdel
+Requires(pre): /usr/bin/getgid
+Requires(pre): /usr/sbin/groupadd
+Requires: procps
+Requires: rc-scripts
+Requires: systemd-units >= 37-0.10
+Provides: group(cgred)
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%define _exec_prefix %{nil}
+%define _libdir %{_prefix}/%{_lib}
%description
-Control groups infrastructure. The tools and library help manipulate, control,
-administrate and monitor control groups and the associated controllers.
+Control groups infrastructure. The tools and library help manipulate,
+control, administrate and monitor control groups and the associated
+controllers.
+
+%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 devel
-Summary: Development libraries to develop applications that utilize control groups
-Group: Development/Libraries
-Requires: libcgroup = %{version}-%{release}
+Summary: Header files for cgroup library
+Summary(pl.UTF-8): Pliki nagłówkowe biblioteki cgroup
+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.
+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.
-%prep
-%setup -q
+%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ą.
-%build
-%configure --bindir=/bin --sbindir=/sbin --libdir=/%{_lib}
+%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
+
+%description -n pam-pam_cgroup
+PAM module for libcgroup.
+
+%description -n pam-pam_cgroup -l pl.UTF-8
+Moduł PAM dla libcgroup.
-make %{?_smp_mflags}
+%prep
+%setup -q -n %{name}-%{version}.%{_rc}
+%patch0 -p1
+%patch1 -p1
+%build
+%{__libtoolize}
+%{__aclocal}
+%{__autoconf}
+%{__automake}
+%configure \
+ --disable-silent-rules \
+ --enable-initscript-install \
+ --enable-pam-module-dir=/%{_lib}/security \
+ --enable-opaque-hierarchy="name=systemd"
+
+%{__make}
%install
rm -rf $RPM_BUILD_ROOT
-make DESTDIR=$RPM_BUILD_ROOT install
-
-# install init scripts
-mkdir -p $RPM_BUILD_ROOT/%{_initrddir}
-cp scripts/init.d/cgconfig $RPM_BUILD_ROOT/%{_initrddir}/cgconfig
-cp scripts/init.d/cgred $RPM_BUILD_ROOT/%{_initrddir}/cgred
-
-# install config files
-mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig
-cp samples/cgred.conf $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/cgred.conf
-cp samples/cgconfig.conf $RPM_BUILD_ROOT/%{_sysconfdir}/cgconfig.conf
-cp samples/cgrules.conf $RPM_BUILD_ROOT/%{_sysconfdir}/cgrules.conf
-
-# sanitize pam module, we need only pam_cgroup.so in the right directory
-mkdir -p $RPM_BUILD_ROOT/%{_lib}/security
-mv -f $RPM_BUILD_ROOT/%{_lib}/pam_cgroup.so.*.*.* $RPM_BUILD_ROOT/%{_lib}/security/pam_cgroup.so
-rm -f $RPM_BUILD_ROOT/%{_lib}/pam_cgroup*
-
-# move the devel stuff to /usr
-mkdir -p $RPM_BUILD_ROOT/%{_libdir}
-mv -f $RPM_BUILD_ROOT/%{_lib}/libcgroup.la $RPM_BUILD_ROOT/%{_libdir}
-rm -f $RPM_BUILD_ROOT/%{_lib}/libcgroup.so
-ln -sf ../../%{_lib}/libcgroup.so.%{soversion} $RPM_BUILD_ROOT/%{_libdir}/libcgroup.so
+install -d $RPM_BUILD_ROOT{/etc/sysconfig,%{systemdunitdir}}
+
+%{__make} install \
+ DESTDIR=$RPM_BUILD_ROOT
+
+install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/cgconfig
+install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/cgred
+
+install %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/cgconfig.service
+install %{SOURCE4} $RPM_BUILD_ROOT%{systemdunitdir}/cgred.service
+
+install %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/cgred
+cp -a samples/cg{config,rules,snapshot_blacklist}.conf $RPM_BUILD_ROOT%{_sysconfdir}
+
+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.la
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/*.la
%clean
rm -rf $RPM_BUILD_ROOT
-%post
+%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
- /sbin/service cgred stop > /dev/null 2>&1 || :
- /sbin/service cgconfig stop > /dev/null 2>&1 || :
- /sbin/chkconfig --del cgconfig
- /sbin/chkconfig --del cgred
+ %service cgred stop
+ %service cgconfig stop
+ /sbin/chkconfig --del cgconfig
+ /sbin/chkconfig --del cgred
fi
+%systemd_preun cgconfig.service
+%systemd_preun cgred.service
-%postun -p /sbin/ldconfig
-
-%files
-%defattr(-,root,root,-)
-%config(noreplace) %{_sysconfdir}/sysconfig/cgred.conf
-%config(noreplace) %{_sysconfdir}/cgconfig.conf
-%config(noreplace) %{_sysconfdir}/cgrules.conf
-/%{_lib}/libcgroup.so.*
-/bin/cgexec
-/bin/cgclassify
-/sbin/cgconfigparser
-/sbin/cgrulesengd
-%attr(0644, root, root) %{_mandir}/man1/*
-%attr(0644, root, root) %{_mandir}/man5/*
-%attr(0644, root, root) %{_mandir}/man8/*
-%attr(0755,root,root) %{_initrddir}/cgconfig
-%attr(0755,root,root) %{_initrddir}/cgred
-%attr(0755,root,root) /%{_lib}/security/pam_cgroup.so
-
-%doc COPYING INSTALL README_daemon
+%postun
+/sbin/ldconfig
+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
+
+%files
+%defattr(644,root,root,755)
+%doc README README_daemon
+%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
+%{systemdunitdir}/cgconfig.service
+%{systemdunitdir}/cgred.service
+%attr(755,root,root) /%{_lib}/libcgroup.so.*.*.*
+%attr(755,root,root) %ghost /%{_lib}/libcgroup.so.1
+%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/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*
+%{_mandir}/man8/cg*.8*
+
+%files -n pam-pam_cgroup
+%defattr(644,root,root,755)
+%attr(755,root,root) /%{_lib}/security/pam_cgroup.so
%files devel
-%defattr(-,root,root,-)
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libcgroup.so
+%{_includedir}/libcgroup
%{_includedir}/libcgroup.h
-%{_libdir}/libcgroup.*
-%doc COPYING INSTALL
-
-
-%changelog
-* Tue Feb 24 2009 Balbir Singh <balbir@linux.vnet.ibm.com> 0.33-1
-- Update to 0.33, spec file changes to add Makefiles and pam_cgroup module
-* Fri Oct 10 2008 Dhaval Giani <dhaval@linux.vnet.ibm.com> 0.32-1
-- Update to latest upstream
-* Thu Sep 11 2008 Dhaval Giani <dhaval@linux-vnet.ibm.com> 0.31-1
-- Update to latest upstream
-* Sat Aug 2 2008 Dhaval Giani <dhaval@linux.vnet.ibm.com> 0.1c-3
-- Change release to fix broken upgrade path
-* Wed Jun 11 2008 Dhaval Giani <dhaval@linux.vnet.ibm.com> 0.1c-1
-- Update to latest upstream version
-* Tue Jun 3 2008 Balbir Singh <balbir@linux.vnet.ibm.com> 0.1b-3
-- Add post and postun. Also fix Requires for devel to depend on base n-v-r
-* Sat May 31 2008 Balbir Singh <balbir@linux.vnet.ibm.com> 0.1b-2
-- Fix makeinstall, Source0 and URL (review comments from Tom)
-* Mon May 26 2008 Balbir Singh <balbir@linux.vnet.ibm.com> 0.1b-1
-- Add a generatable spec file
-* Tue May 20 2008 Balbir Singh <balbir@linux.vnet.ibm.com> 0.1-1
-- Get the spec file to work
-* Tue May 20 2008 Dhaval Giani <dhaval@linux.vnet.ibm.com> 0.01-1
-- The first version of libcg
+%{_pkgconfigdir}/libcgroup.pc