summaryrefslogtreecommitdiff
path: root/testing/jack/jack.install
blob: 2d0db58e7a51fe21730d8d8d27f3fbf3db6aa5a7 (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
_addgroup() {
  # _addgroup $GROUPNAME $GID
  [ ${#@} -ne 2 ] && return 1

  echo -n "  > Checking if '$1' group exists..."
  if ! getent group $1 > /dev/null; then
    echo "no"
    echo "  > Add '$1' group"
    echo -n "    >> checking if GID is in use..."
		# no other package or user is supposed to use this gid
		# delete the group and re-add it at the end without static gid
		if getent group $2 > /dev/null; then
      echo "yes"
			firstgroup=$(getent group $2 | sed 's/:.*//')
      firstusers=$(getent group $2 | sed 's/.*://')
      echo "    >> delete group '$firstgroup'"
			groupdel $firstgroup
    else
      echo "no"
		fi

    echo "    >> add our group with proper GID"
		groupadd -g $2 $1

		if [ -n "$firstgroup" ]; then
      echo "    >> restore group '$firstgroup' with dynamic GID"
      groupadd $firstgroup
      [ -n "$firstusers" ] && gpasswd -M $firstusers $firstgroup
    fi
  else
    echo "yes (all good)"
  fi
}

post_install() {
  _addgroup realtime 112
  echo
  echo "  * You must be part of the 'realtime' group to use RT scheduling"
  echo "  * You don't need an 'RT kernel' to use RT scheduling"
  echo "  * If you don't need RT start jack with '--no-realtime'"
  echo "  * If you don't record or sequence audio you don't need RT"
}

post_upgrade() {
  _addgroup realtime 112
  echo
  echo "  * You must be part of the 'realtime' group to use RT scheduling"
  echo "  * Configuring RT through limits.conf has been deprecated"
  echo "  * See /etc/security/limits.d/99-realtime.conf instead"
}

post_remove() {
	[ "$(getent group realtime | cut -d ':' -f 3)" = '112' ] && \
		groupdel realtime || true
}

# vim:set ts=2 sw=2 et: