From 404e7253e6ed4f02487eb1ce250389b83e5f8808 Mon Sep 17 00:00:00 2001 From: Raven Date: Thu, 11 Jul 2024 14:15:13 +0600 Subject: [PATCH] libcgroup: initial build --- libcgroup/cgconfig.service | 18 + libcgroup/fedora-config.patch | 66 +++ libcgroup/libcgroup-0.37-chmod.patch | 32 ++ libcgroup/libcgroup-0.40.rc1-coverity.patch | 13 + libcgroup/libcgroup-0.40.rc1-fread.patch | 47 ++ .../libcgroup-0.40.rc1-templates-fix.patch | 16 + .../libcgroup-tests-unbundle-gtest.patch | 35 ++ libcgroup/libcgroup.spec | 439 ++++++++++++++++++ 8 files changed, 666 insertions(+) create mode 100644 libcgroup/cgconfig.service create mode 100644 libcgroup/fedora-config.patch create mode 100644 libcgroup/libcgroup-0.37-chmod.patch create mode 100644 libcgroup/libcgroup-0.40.rc1-coverity.patch create mode 100644 libcgroup/libcgroup-0.40.rc1-fread.patch create mode 100644 libcgroup/libcgroup-0.40.rc1-templates-fix.patch create mode 100644 libcgroup/libcgroup-tests-unbundle-gtest.patch create mode 100644 libcgroup/libcgroup.spec diff --git a/libcgroup/cgconfig.service b/libcgroup/cgconfig.service new file mode 100644 index 0000000..6be383f --- /dev/null +++ b/libcgroup/cgconfig.service @@ -0,0 +1,18 @@ +[Unit] +Description=Control Group configuration service + +# The service should be able to start as soon as possible, +# before any 'normal' services: +DefaultDependencies=no +Conflicts=shutdown.target +Before=basic.target shutdown.target + +[Service] +Type=oneshot +RemainAfterExit=yes +Delegate=yes +ExecStart=/usr/sbin/cgconfigparser -l /etc/cgconfig.conf -s 1664 +ExecStop=/usr/sbin/cgclear -l /etc/cgconfig.conf -e + +[Install] +WantedBy=sysinit.target diff --git a/libcgroup/fedora-config.patch b/libcgroup/fedora-config.patch new file mode 100644 index 0000000..602dd37 --- /dev/null +++ b/libcgroup/fedora-config.patch @@ -0,0 +1,66 @@ +Fedora specific configuration - we want to mount all controllers by default for libvirt. + +diff --git a/samples/config/cgconfig.conf b/samples/config/cgconfig.conf +index de29594..2020d71 100644 +--- a/samples/config/cgconfig.conf ++++ b/samples/config/cgconfig.conf +@@ -4,39 +4,8 @@ + # + # Authors: Balbir Singh + # +-#group daemons/www { +-# perm { +-# task { +-# uid = root; +-# gid = webmaster; +-# } +-# admin { +-# uid = root; +-# gid = root; +-# } +-# } +-# cpu { +-# cpu.shares = 1000; +-# } +-#} + # +-#group daemons/ftp { +-# perm { +-# task { +-# uid = root; +-# gid = ftpmaster; +-# } +-# admin { +-# uid = root; +-# gid = root; +-# } +-# } +-# cpu { +-# cpu.shares = 500; +-# } +-#} +-# +-#mount { +-# cpu = /mnt/cgroups/cpu; +-# cpuacct = /mnt/cgroups/cpuacct; +-#} ++# By default, we expect systemd mounts everything on boot, ++# so there is not much to do. ++# See man cgconfig.conf for further details, how to create groups ++# on system boot using this file. +diff --git a/samples/config/cgconfig.sysconfig b/samples/config/cgconfig.sysconfig +index 5a61bf6..0f4f6d1 100644 +--- a/samples/config/cgconfig.sysconfig ++++ b/samples/config/cgconfig.sysconfig +@@ -5,8 +5,6 @@ + # controller to limit cpu.shares of this default group and allowing some more + # important group take most of the CPU. + # +-# By default, create these groups: +-CREATE_DEFAULT=yes +- +-# Uncomment following line to disable creation of the default group on startup: +-# CREATE_DEFAULT=no ++# By default, do not create these groups: ++# CREATE_DEFAULT=yes ++CREATE_DEFAULT=no diff --git a/libcgroup/libcgroup-0.37-chmod.patch b/libcgroup/libcgroup-0.37-chmod.patch new file mode 100644 index 0000000..a180dea --- /dev/null +++ b/libcgroup/libcgroup-0.37-chmod.patch @@ -0,0 +1,32 @@ +diff --git a/src/api.c b/src/api.c +index f8c5acd..3f7d831 100644 +--- a/src/api.c ++++ b/src/api.c +@@ -52,6 +52,10 @@ const struct cgroup_library_version library_version = { + .release = CGROUP_VER_RELEASE, + }; + ++int cg_chmod_file(FTS *fts, FTSENT *ent, mode_t dir_mode, ++ int dirm_change, mode_t file_mode, int filem_change, ++ int owner_is_umask); ++ + /* + * The errno which happend the last time (have to be thread specific) + */ +@@ -184,6 +188,8 @@ static int cg_chown_recursive(char **path, uid_t owner, gid_t group) + { + int ret = 0; + FTS *fts; ++ /* mode 664 */ ++ mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH; + + cgroup_dbg("chown: path is %s\n", *path); + fts = fts_open(path, FTS_PHYSICAL | FTS_NOCHDIR | FTS_NOSTAT, NULL); +@@ -201,6 +207,7 @@ static int cg_chown_recursive(char **path, uid_t owner, gid_t group) + cgroup_warn("fts_read failed\n"); + break; + } ++ cg_chmod_file(fts, ent, mode, 0, mode, 1, 1); + ret = cg_chown_file(fts, ent, owner, group); + } + fts_close(fts); diff --git a/libcgroup/libcgroup-0.40.rc1-coverity.patch b/libcgroup/libcgroup-0.40.rc1-coverity.patch new file mode 100644 index 0000000..b4e8f64 --- /dev/null +++ b/libcgroup/libcgroup-0.40.rc1-coverity.patch @@ -0,0 +1,13 @@ +diff --git a/src/daemon/cgrulesengd.c b/src/daemon/cgrulesengd.c +index 7c51412..d95f6a5 100644 +--- a/src/daemon/cgrulesengd.c ++++ b/src/daemon/cgrulesengd.c +@@ -652,7 +652,7 @@ close: + + static int cgre_create_netlink_socket_process_msg(void) + { +- int sk_nl = 0, sk_unix = 0, sk_max; ++ int sk_nl = -1, sk_unix = -1, sk_max; + enum proc_cn_mcast_op *mcop_msg; + struct sockaddr_nl my_nla; + struct sockaddr_un saddr; diff --git a/libcgroup/libcgroup-0.40.rc1-fread.patch b/libcgroup/libcgroup-0.40.rc1-fread.patch new file mode 100644 index 0000000..b4931a6 --- /dev/null +++ b/libcgroup/libcgroup-0.40.rc1-fread.patch @@ -0,0 +1,47 @@ +diff --git a/src/api.c b/src/api.c +index 3f7d831..1e4f021 100644 +--- a/src/api.c ++++ b/src/api.c +@@ -3227,26 +3227,26 @@ int cgroup_delete_cgroup_ext(struct cgroup *cgroup, int flags) + static int cg_rd_ctrl_file(const char *subsys, const char *cgroup, const char *file, char **value) + { + char path[FILENAME_MAX]; +- FILE *ctrl_file = NULL; +- int ret; ++ int ctrl_file = -1; ++ ssize_t ret; + + if (!cg_build_path_locked(cgroup, path, subsys)) + return ECGFAIL; + + strncat(path, file, sizeof(path) - strlen(path)); +- ctrl_file = fopen(path, "re"); +- if (!ctrl_file) ++ ctrl_file = open(path, O_RDONLY | O_CLOEXEC); ++ if (ctrl_file < 0) + return ECGROUPVALUENOTEXIST; + + *value = calloc(CG_CONTROL_VALUE_MAX, 1); + if (!*value) { +- fclose(ctrl_file); ++ close(ctrl_file); + last_errno = errno; + return ECGOTHER; + } + +- /* Using %as crashes when we try to read from files like memory.stat */ +- ret = fread(*value, 1, CG_CONTROL_VALUE_MAX-1, ctrl_file); ++ /* Using %as or fread crashes when we try to read from files like memory.stat */ ++ ret = read(ctrl_file, *value, CG_CONTROL_VALUE_MAX-1); + if (ret < 0) { + free(*value); + *value = NULL; +@@ -3256,7 +3256,7 @@ static int cg_rd_ctrl_file(const char *subsys, const char *cgroup, const char *f + (*value)[ret-1] = '\0'; + } + +- fclose(ctrl_file); ++ close(ctrl_file); + + return 0; + } diff --git a/libcgroup/libcgroup-0.40.rc1-templates-fix.patch b/libcgroup/libcgroup-0.40.rc1-templates-fix.patch new file mode 100644 index 0000000..1b785a8 --- /dev/null +++ b/libcgroup/libcgroup-0.40.rc1-templates-fix.patch @@ -0,0 +1,16 @@ +diff --git a/src/api.c b/src/api.c +index 1e4f021..33e99b6 100644 +--- a/src/api.c ++++ b/src/api.c +@@ -4177,9 +4177,9 @@ int cgroup_change_cgroup_flags(uid_t uid, gid_t gid, const char *procname, pid_t + written = snprintf(newdest + j, available, "%d", pid); + break; + case 'p': +- if (procname) { ++ if(procname && strlen(basename(procname))) { + written = snprintf(newdest + j, available, "%s", +- procname); ++ basename(procname)); + } else { + written = snprintf(newdest + j, available, "%d", + pid); diff --git a/libcgroup/libcgroup-tests-unbundle-gtest.patch b/libcgroup/libcgroup-tests-unbundle-gtest.patch new file mode 100644 index 0000000..fe9d21a --- /dev/null +++ b/libcgroup/libcgroup-tests-unbundle-gtest.patch @@ -0,0 +1,35 @@ +diff --git a/tests/gunit/Makefile.am b/tests/gunit/Makefile.am +index ba91039..e2b88e3 100644 +--- a/tests/gunit/Makefile.am ++++ b/tests/gunit/Makefile.am +@@ -9,8 +9,6 @@ + AM_CPPFLAGS = -I$(top_srcdir)/include \ + -I$(top_srcdir)/src \ + -I$(top_srcdir)/src/tools \ +- -I$(top_srcdir)/googletest/googletest/include \ +- -I$(top_srcdir)/googletest/googletest \ + -std=c++11 \ + -Wno-write-strings \ + -DSTATIC= \ +@@ -18,10 +16,7 @@ AM_CPPFLAGS = -I$(top_srcdir)/include \ + LDADD = $(top_builddir)/src/.libs/libcgroupfortesting.la \ + $(top_builddir)/src/tools/.libs/libcgset.la + +-EXTRA_DIST = $(top_srcdir)/googletest/googletest/libgtest.so \ +- $(top_srcdir)/googletest/googletest/libgtest_main.so \ +- $(top_srcdir)/googletest/googletest/include \ +- libcgroup_unittest.map ++EXTRA_DIST = libcgroup_unittest.map + + check_PROGRAMS = gtest + TESTS = gtest +@@ -43,8 +38,7 @@ gtest_SOURCES = gtest.cpp \ + 014-cgroupv2_get_subtree_control.cpp \ + 015-cgroupv2_controller_enabled.cpp \ + 016-cgset_parse_r_flag.cpp +-gtest_LDFLAGS = -L$(top_srcdir)/googletest/googletest -l:libgtest.so \ +- -rpath $(abs_top_srcdir)/googletest/googletest ++gtest_LDFLAGS = -l:libgtest.so + + clean-local: + ${RM} test-procpidcgroup diff --git a/libcgroup/libcgroup.spec b/libcgroup/libcgroup.spec new file mode 100644 index 0000000..b8207ac --- /dev/null +++ b/libcgroup/libcgroup.spec @@ -0,0 +1,439 @@ +%define _trivial .0 +%define _buildid .1 +%bcond_with tests + +%global tests_commit 7c998caddcd8236fe4191841e361b401697fb777 + +Summary: Library to control and monitor control groups +Name: libcgroup +Version: 3.0 +Release: 1%{?dist}%{?_trivial}%{?_buildid} +License: LGPLv2+ +URL: http://libcg.sourceforge.net/ +Source0: https://github.com/%{name}/%{name}/archive/v%{version}/%{name}-v%{version}.tar.gz +Source1: https://github.com/%{name}/%{name}-tests/archive/%{tests_commit}.tar.gz +Source2: cgconfig.service + +Patch0: fedora-config.patch +Patch1: libcgroup-0.37-chmod.patch +Patch2: libcgroup-0.40.rc1-coverity.patch +Patch3: libcgroup-0.40.rc1-fread.patch +Patch4: libcgroup-0.40.rc1-templates-fix.patch + +Patch100: libcgroup-tests-unbundle-gtest.patch + +BuildRequires: autoconf, automake, libtool +BuildRequires: gcc, gcc-c++ +BuildRequires: byacc, coreutils, flex, pam-devel, systemd-units +BuildRequires: make +%if %{with tests} +BuildRequires: gtest-devel +%endif +Requires(pre): shadow-utils +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd + +%description +Control groups infrastructure. The library helps manipulate, control, +administrate and monitor control groups and the associated controllers. + +%package tools +Summary: Command-line utility programs, services and daemons for libcgroup +Requires: %{name}%{?_isa} = %{version}-%{release} +# needed for Delegate property in cgconfig.service +Requires: systemd >= 217-0.2 + +%description tools +This package contains command-line programs, services and a daemon for +manipulating control groups using the libcgroup library. + +%package pam +Summary: A Pluggable Authentication Module for libcgroup +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description pam +Linux-PAM module, which allows administrators to classify the user's login +processes to pre-configured control group. + +%package devel +Summary: Development libraries to develop applications that utilize control groups +Requires: %{name}%{?_isa} = %{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. + +%prep +%setup -q -n %{name}-%{version} +%patch0 -p1 -b .config-patch +%patch1 -p1 -b .chmod +%patch2 -p1 -b .coverity +%patch3 -p1 -b .fread +%patch4 -p1 -b .templates-fix + +%setup -D -T -a 1 +mv -T %{name}-tests-%{tests_commit} tests +%patch100 -p1 -b .tests-unbundle-gtest + +%build +autoreconf -vif +%configure --enable-pam-module-dir=%{_libdir}/security \ + --enable-opaque-hierarchy="name=systemd" \ + --disable-daemon +%make_build + +%install +%make_install + +# install config files +install -d ${RPM_BUILD_ROOT}%{_sysconfdir} +install -m 644 samples/config/cgconfig.conf $RPM_BUILD_ROOT/%{_sysconfdir}/cgconfig.conf +install -m 644 samples/config/cgsnapshot_blacklist.conf $RPM_BUILD_ROOT/%{_sysconfdir}/cgsnapshot_blacklist.conf + +# sanitize pam module, we need only pam_cgroup.so +rm -f $RPM_BUILD_ROOT%{_libdir}/security/pam_cgroup.{,l}a + +rm -f $RPM_BUILD_ROOT/%{_libdir}/*.{,l}a + +rm -f $RPM_BUILD_ROOT/%{_libdir}/libcgroupfortesting.* + +rm -f $RPM_BUILD_ROOT/%{_mandir}/man5/cgred.conf.5* +rm -f $RPM_BUILD_ROOT/%{_mandir}/man5/cgrules.conf.5* +rm -f $RPM_BUILD_ROOT/%{_mandir}/man8/cgrulesengd.8* + +# install unit and sysconfig files +install -d ${RPM_BUILD_ROOT}%{_unitdir} +install -m 644 %SOURCE2 ${RPM_BUILD_ROOT}%{_unitdir}/ +install -d ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig + +%check +%if %{with tests} +make -C tests/gunit check +%endif + +%post tools +%systemd_post cgconfig.service + +%preun tools +%systemd_preun cgconfig.service + +%postun tools +%systemd_postun_with_restart cgconfig.service + +%triggerun -- libcgroup < 0.38 +# Save the current service runlevel info +# User must manually run systemd-sysv-convert --apply cgconfig +# to migrate them to systemd targets +/usr/bin/systemd-sysv-convert --save cgconfig >/dev/null 2>&1 ||: + +# Run these because the SysV package being removed won't do them +/sbin/chkconfig --del cgconfig >/dev/null 2>&1 || : +/bin/systemctl try-restart cgconfig.service >/dev/null 2>&1 || : + +%files +%{!?_licensedir:%global license %%doc} +%license COPYING +%doc README +%{_libdir}/libcgroup.so.3* + +%files tools +%{!?_licensedir:%global license %%doc} +%license COPYING +%doc README README_systemd +%config(noreplace) %{_sysconfdir}/cgconfig.conf +%config(noreplace) %{_sysconfdir}/cgsnapshot_blacklist.conf +%{_bindir}/cgcreate +%{_bindir}/cgget +%{_bindir}/cgset +%{_bindir}/cgxget +%{_bindir}/cgxset +%{_bindir}/cgdelete +%{_bindir}/lscgroup +%{_bindir}/lssubsys +%{_sbindir}/cgconfigparser +%{_bindir}/cgsnapshot +%{_bindir}/cgclassify +%attr(0755, root, root) %{_bindir}/cgexec +%attr(0644, root, root) %{_mandir}/man1/* +%attr(0644, root, root) %{_mandir}/man5/* +%attr(0644, root, root) %{_mandir}/man8/* +%{_unitdir}/cgconfig.service + +%files pam +%{!?_licensedir:%global license %%doc} +%license COPYING +%doc README +%attr(0755,root,root) %{_libdir}/security/pam_cgroup.so + +%files devel +%{!?_licensedir:%global license %%doc} +%license COPYING +%doc README +%{_includedir}/libcgroup.h +%{_includedir}/libcgroup/*.h +%{_libdir}/libcgroup.so +%{_libdir}/pkgconfig/libcgroup.pc + +%changelog +* Fri Feb 03 2023 Frank Becker - 3.0-1.amzn2023.0.1 +- merged from fedora/f37 + +* Wed Feb 01 2023 Stewart Smith - 0.42.2-4.amzn2023.0.2 +- Mass rebuild for AL2023 + +* Sat Oct 01 2022 Stewart Smith - 0.42.2-4.amzn2022.0.1 +- AL2022 pre-GA mass rebuild + +* Sat Aug 06 2022 Nikola Forró - 3.0-1 +- New upstream release 3.0 + resolves: #2115990 + +* Thu Jul 21 2022 Fedora Release Engineering - 2.0.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed May 25 2022 Nikola Forró - 2.0.2-1 +- New upstream release 2.0.2 + resolves: #2085318 + +* Sat Mar 12 2022 Nikola Forró - 2.0.1-1 +- New upstream release 2.0.1 + resolves: #2063319 + +* Thu Jan 20 2022 Fedora Release Engineering - 2.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Jul 22 2021 Fedora Release Engineering - 2.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue May 18 2021 Nikola Forró - 2.0-2 +- remove unnecessary cgred group and setgid on binaries + +* Sun May 16 2021 Nikola Forró - 2.0-1 +- resolves: #1953968 + new upstream release 2.0 + +* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 0.42.2-5 +- Rebuilt for updated systemd-rpm-macros + See https://pagure.io/fesco/issue/2583. + +* Tue Jan 26 2021 Fedora Release Engineering - 0.42.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Jul 28 2020 Fedora Release Engineering - 0.42.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 13 2020 Tom Stellard - 0.42.2-2 +- Use make macros +- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro + +* Thu Feb 06 2020 Nikola Forró - 0.42.2-1 +- resolves: #1798286 + new upstream release 0.42.2 + +* Mon Feb 03 2020 Nikola Forró - 0.42.1-1 +- resolves: #1792190 + new upstream release 0.42.1 + +* Wed Jan 29 2020 Fedora Release Engineering - 0.41-23 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 0.41-22 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Feb 01 2019 Fedora Release Engineering - 0.41-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Aug 02 2018 Nikola Forró - 0.41-20 +- resolves: #1611121 + fix CVE-2018-14348 + +* Fri Jul 13 2018 Fedora Release Engineering - 0.41-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Thu Jun 28 2018 Nikola Forró - 0.41-18 +- remove ldconfig scriptlets + +* Tue Apr 17 2018 Nikola Forró - 0.41-17 +- backport several upstream fixes +- set Delegate property for cgconfig service to make sure complete + cgroup hierarchy is always created by systemd + +* Tue Feb 20 2018 Nikola Forró - 0.41-16 +- add missing gcc-c++ build dependency + +* Tue Feb 20 2018 Nikola Forró - 0.41-15 +- add missing gcc build dependency + +* Wed Feb 07 2018 Fedora Release Engineering - 0.41-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Aug 03 2017 Fedora Release Engineering - 0.41-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 0.41-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 0.41-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Oct 13 2016 Nikola Forró - 0.41-10 +- resolves: #1384504 + api.c: preserve dirty flag when copying controller values + +* Fri Jul 01 2016 Nikola Forró - 0.41-9 +- resolves: #1348874 + api.c: fix order of memory subsystem parameters generated by cgsnapshot + +* Thu Feb 04 2016 Fedora Release Engineering - 0.41-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering - 0.41-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Tue Sep 23 2014 jchaloup - 0.41-6 +- resolves: #647107 + api.c: support for setting multiline values in control files + +* Sun Aug 17 2014 Fedora Release Engineering - 0.41-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Thu Jul 17 2014 Tom Callaway - 0.41-4 +- fix license handling + +* Sat Jun 07 2014 Fedora Release Engineering - 0.41-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon Mar 03 2014 jchaloup - 0.41-2 +- lex.l update: add \ character into regexp for ID token + +* Tue Jan 14 2014 Peter Schiffer 0.41-1 +- resolves: #966008 + updated to 0.41 +- removed deprecated cgred service + please use Control Group Interface in Systemd instead + +* Sat Aug 03 2013 Fedora Release Engineering - 0.38-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Thu Jul 18 2013 Karsten Hopp 0.38-6 +- add BR: systemd-units + +* Tue Jul 09 2013 Karsten Hopp 0.38-5 +- bump release and rebuild to fix some dependencies on PPC + +* Thu Feb 14 2013 Fedora Release Engineering - 0.38-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Fri Nov 23 2012 Peter Schiffer - 0.38-3 +- resolves: #850183 + scriptlets replaced with new systemd macros (thanks to vpavlin) +- cleaned .spec file + +* Thu Jul 19 2012 Fedora Release Engineering - 0.38-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Mon Feb 20 2012 Jan Safranek 0.38-1 +- updated to 0.38 + +* Fri Feb 3 2012 Jan Safranek 0.38-0.rc1 +- updated to 0.38.rc1 + +* Fri Jan 13 2012 Fedora Release Engineering - 0.37.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon May 30 2011 Jan Safranek 0.37.1-4 +- fixed cgconfig service not to unmount stuff it did not mount +- added better sample cgconfig.conf file to reflect systemd + mounting all controllers during boot (#702111) + +* Wed May 25 2011 Ivana Hutarova Varekova 0.37.1-3 +- split tools part from libcgroup package + +* Fri Apr 8 2011 Jan Safranek 0.37.1-2 +- Remove /cgroup directory, groups are created in /sys/fs/cgroup + (#694687) + +* Thu Mar 3 2011 Jan Safranek 0.37.1-1 +- Update to 0.37.1 + +* Mon Feb 07 2011 Fedora Release Engineering - 0.37-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Jan 17 2011 Jan Safranek 0.37-2 +- Create the 'cgred' group as system group, not as user +- Fix cgclassify exit code + +* Mon Dec 13 2010 Jan Safranek 0.37-1 +- Update to 0.37 +- use /sys/fs/cgroup as default directory to mount control groups (and rely on + systemd mounting tmpfs there) + +* Fri Nov 12 2010 Jan Safranek 0.36.2-3 +- Ignore systemd hierarchy - it's now invisible to libcgroup (#627378) + +* Mon Aug 2 2010 Jan Safranek 0.36.2-2 +- Fix initscripts to report stopped cgconfig service as not running + (#619091) + +* Tue Jun 22 2010 Jan Safranek 0.36.2-1 +- Update to 0.36.2, fixing packaging the libraries (#605434) +- Remove the dependency on redhat-lsb (#603578) + +* Fri May 21 2010 Jan Safranek 0.36-1 +- Update to 0.36.1 + +* Tue Mar 9 2010 Jan Safranek 0.35-1 +- Update to 0.35.1 +- Separate pam module to its own subpackage + +* Mon Jan 18 2010 Jan Safranek 0.34-4 +- Added README.Fedora to describe initscript integration + +* Mon Oct 19 2009 Jan Safranek 0.34-3 +- Change the default configuration to mount everything to /cgroup + +* Fri Jul 24 2009 Fedora Release Engineering - 0.34-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Tue Jul 7 2009 Jan Safranek 0.34-1 +- Update to 0.34 +* Mon Mar 09 2009 Dhaval Giani 0.33-3 +- Add a workaround for rt cgroup controller. +* Mon Mar 09 2009 Dhaval Giani 0.33-2 +- Change the cgconfig script to start earlier +- Move the binaries to /bin and /sbin +* Mon Mar 02 2009 Dhaval Giani 0.33-1 +- Update to latest upstream +* Wed Feb 25 2009 Fedora Release Engineering 0.32.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Mon Jan 05 2009 Dhaval Giani 0.32.2-3 +- Fix redhat-lsb dependency +* Mon Dec 29 2008 Dhaval Giani 0.32.2-2 +- Fix build dependencies +* Mon Dec 29 2008 Dhaval Giani 0.32.2-1 +- Update to latest upstream +* Thu Oct 23 2008 Dhaval Giani 0.32.1-1 +* Tue Feb 24 2009 Balbir Singh 0.33-1 +- Update to 0.33, spec file changes to add Makefiles and pam_cgroup module +* Fri Oct 10 2008 Dhaval Giani 0.32-1 +- Update to latest upstream +* Thu Sep 11 2008 Dhaval Giani 0.31-1 +- Update to latest upstream +* Sat Aug 2 2008 Dhaval Giani 0.1c-3 +- Change release to fix broken upgrade path +* Wed Jun 11 2008 Dhaval Giani 0.1c-1 +- Update to latest upstream version +* Tue Jun 3 2008 Balbir Singh 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 0.1b-2 +- Fix makeinstall, Source0 and URL (review comments from Tom) +* Mon May 26 2008 Balbir Singh 0.1b-1 +- Add a generatable spec file +* Tue May 20 2008 Balbir Singh 0.1-1 +- Get the spec file to work +* Tue May 20 2008 Dhaval Giani 0.01-1 +- The first version of libcg +