aboutsummaryrefslogtreecommitdiff
path: root/base/cgroup/cgroup.build
blob: d45be0b4308ed525a6d58ec98f2b15e15320b030 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
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
)
}