aboutsummaryrefslogtreecommitdiff
path: root/base/cgroup/cgroup.build
diff options
context:
space:
mode:
Diffstat (limited to 'base/cgroup/cgroup.build')
-rwxr-xr-xbase/cgroup/cgroup.build125
1 files changed, 125 insertions, 0 deletions
diff --git a/base/cgroup/cgroup.build b/base/cgroup/cgroup.build
new file mode 100755
index 0000000..d45be0b
--- /dev/null
+++ b/base/cgroup/cgroup.build
@@ -0,0 +1,125 @@
+#!/bin/bash
+#
+# Maintainer: Deposite Pirate <ofni.sknuplatem@etaripd>
+
+source /usr/src/ports/Build/build.sh
+
+NAME=cgroup
+VERSION=0.38
+BUILD=3
+
+# Description
+
+cat > ${PKG}/install/slack-desc <<EOF
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+$(padd)|-----handy-ruler------------------------------------------------------|
+${NAME}: libcgroup (library and utilities for kernel control groups)
+${NAME}:
+${NAME}: Control Groups provide a mechanism for aggregating/partitioning sets
+${NAME}: of tasks, and all their future children, into hierarchical groups
+${NAME}: with specialized behaviour. It makes use of a filesystem interface.
+${NAME}: This package contains a library for developing applications that use
+${NAME}: control groups, as well as some basic userspace tools for controlling
+${NAME}: and monitoring control groups.
+${NAME}:
+${NAME}: Homepage: http://libcg.sourceforge.net
+${NAME}:
+EOF
+
+cat >> ${PKG}/install/doinst.sh <<EOF
+#!/bin/sh
+config() {
+ NEW="\$1"
+ OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r \$OLD ]; then
+ mv \$NEW \$OLD
+ elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then
+ # toss the redundant copy
+ rm \$NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+# Leave any new rc files with the same permissions as the old ones:
+if [ -e etc/rc.d/rc.cgconfig ]; then
+ if [ -x etc/rc.d/rc.cgconfig ]; then
+ chmod 755 etc/rc.d/rc.cgconfig.new
+ else
+ chmod 644 etc/rc.d/rc.cgconfig.new
+ fi
+fi
+if [ -e etc/rc.d/rc.cgred ]; then
+ if [ -x etc/rc.d/rc.cgred ]; then
+ chmod 755 etc/rc.d/rc.cgred.new
+ else
+ chmod 644 etc/rc.d/rc.cgred.new
+ fi
+fi
+
+# Then config() them:
+config etc/rc.d/rc.cgconfig.new
+config etc/rc.d/rc.cgred.new
+
+# config() the other configuration files:
+config etc/cgroup/cgconfig.conf.new
+config etc/cgroup/cgred.conf.new
+config etc/cgroup/cgrules.conf.new
+config etc/cgroup/cgsnapshot_blacklist.conf.new
+
+# If there are already installed config files, get rid of the .new ones.
+# There will still be fresh samples in the docs.
+rm -f etc/cgroup/cgconfig.conf.new etc/cgroup/cgred.conf.new etc/cgroup/cgrules.conf.new etc/cgroup/cgsnapshot_blacklist.conf.new
+EOF
+
+# Sources
+
+SRCNAME[0]=libcgroup
+SRCVERS[0]=${VERSION}
+SRCPACK[0]=${URL[sf]}/libcg/${SRCNAME[0]}/v${SRCVERS[0]}/${SRCNAME[0]}-${SRCVERS[0]}.tar.bz2
+SRCCOPY[0]="LGPL21"
+
+build0()
+{
+sed -i 's|$(libdir)/pkgconfig|$(datarootdir)/pkgconfig|g' Makefile.in
+CFLAGS="${FLAGS}" CXXFLAGS="${FLAGS}" \
+./configure \
+ --build="${ARCH}-slackware-linux" \
+ --disable-dependency-tracking \
+ --disable-silent-rules \
+ --enable-static=no \
+ --enable-shared=yes \
+ --prefix="${SYS_DIR[usr]}" \
+ --mandir="${SYS_DIR[man]}" \
+ --sysconfdir="${SYS_DIR[etc]}" \
+ --libdir="${SYS_DIR[lib]}" \
+ --localstatedir="${SYS_DIR[var]}" \
+ --enable-cgred-socket="${SYS_DIR[run]}/cgred/cgred.socket" \
+ --enable-pam-module-dir="${SYS_DIR[lib]}/plugins/security" \
+ --enable-pam=yes
+#FIXME: systemd --enable-opaque-hierarchy="name:systemd"
+make ${JOBS}
+make install DESTDIR="${PKG}"
+doc README{,_{daemon,systemd}}
+install.dir ${PKG}${SYS_DIR[etc]}/{rc.d,cgroup,tmpfiles.d}
+install.dat cgroup.conf.tmpfiles ${PKG}${SYS_DIR[etc]}/tmpfiles.d/cgroup.conf
+install.dat scripts/init.d/cgconfig ${PKG}${SYS_DIR[etc]}/rc.d/rc.cgconfig.new
+install.dat scripts/init.d/cgred ${PKG}${SYS_DIR[etc]}/rc.d/rc.cgred.new
+install.dat samples/cgred.conf ${PKG}${SYS_DIR[etc]}/cgroup/cgred.conf.new
+install.dat samples/cgconfig.conf ${PKG}${SYS_DIR[etc]}/cgroup/cgconfig.conf.new
+install.dat samples/cgrules.conf ${PKG}${SYS_DIR[etc]}/cgroup/cgrules.conf.new
+install.dat samples/cgsnapshot_blacklist.conf ${PKG}${SYS_DIR[etc]}/cgroup/cgsnapshot_blacklist.conf.new
+install.dir ${PKG}${SYS_DIR[systemdsystemunitdir]}
+install.dat dist/cgconfig.service ${PKG}${SYS_DIR[systemdsystemunitdir]}
+(
+ cd ${PKG}${SYS_DIR[lib]}/plugins/security
+ rm -f pam_cgroup.so pam_cgroup.so.0
+ mv pam_cgroup.so.0.0.0 pam_cgroup.so
+)
+}