File: bumblebee.postinst

package info (click to toggle)
bumblebee 3.2.1-32
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,304 kB
  • sloc: ansic: 2,845; sh: 1,792; makefile: 187
file content (79 lines) | stat: -rw-r--r-- 2,856 bytes parent folder | download | duplicates (4)
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
#!/bin/sh
# postinst script for bumblebee
#
# see: dh_installdeb(1)

set -e

xconffile=/etc/bumblebee/xorg.conf.nouveau

# group that allows users to use Bumblebee
BB_GROUP=bumblebee

# add members of these groups automatically to group "bumblebee" for new
# installations
USE_GROUPS='adm sudo admin'

case "$1" in
  configure)
    # only add a group and members if the configured group does match the
    # default group and if the group is missing
    if grep -qx ServerGroup=$BB_GROUP /etc/bumblebee/bumblebee.conf &&
        ! getent group $BB_GROUP > /dev/null; then
        groupadd --system $BB_GROUP
        users=$(getent -s files group $USE_GROUPS | cut -d: -f4 | tr , '\n' | sort -u)
        echo "Adding members from group(s) '$USE_GROUPS' to '$BB_GROUP':"
        echo $users
        for user in $users; do
            gpasswd -a $user $BB_GROUP
        done
    fi


    # Raring specific issue
    # Also, do not rely solely on dpkg-vendor (see LP: #1061769)
    if (which dpkg-vendor >/dev/null && dpkg-vendor --derives-from Ubuntu) || \
      [ -e /etc/dpkg/origins/ubuntu ]; then
        # assume first device to be discrete in nvidia/nvidia
        busid=$(lspci -d10de: -nn | grep '\[030[02]\]' | cut -d' ' -f1 | tr . : | head -1)
        if [ -z "$busid" ]; then
            echo "No Nvidia card found. If you really have an Optimus system,"
            echo "try selecting the Optimus setup in BIOS and run:"
            echo "sudo dpkg-reconfigure bumblebee"
        else
            echo "Selecting $busid as discrete nvidia card. If this is incorrect,"
            echo "edit the BusID line in $xconffile ."
            sed -i $xconffile -r -e "s/^([\t ]*)#([\t ]*BusID[\t ]*)\"[^\"]*\"$/\\1 \\2\"PCI\:$busid\"/"
        fi
        
        # Only for 3.2.1, remove busid.conf if still present.
        if [ -e /etc/bumblebee/xorg.conf.d/busid.conf ]; then
            echo "Deleting old /etc/bumblebee/xorg.conf.d/busid.conf"
            rm /etc/bumblebee/xorg.conf.d/busid.conf
        fi
    fi

    # Do not treat /etc/modprobe.d/bumblebee-nvidia.conf as a conffile
    # LP: #1242785, https://github.com/Bumblebee-Project/Bumblebee/issues/525
    cp -f /usr/share/bumblebee/modprobe.d/bumblebee.conf /etc/modprobe.d/bumblebee.conf

    ;;
  triggered)
    case "$2" in
      restart-bumblebeed)
        # Trigger a restart of the bumblebee service, only if it's already running

        if [ -d /run/systemd/system ]; then
          if deb-systemd-invoke is-active bumblebeed.service > /dev/null 2>&1; then
              deb-systemd-invoke restart bumblebeed.service || exit $?
          fi
        elif [ -x "/etc/init.d/bumblebeed" ]; then
          if invoke-rc.d bumblebeed status > /dev/null 2>&1; then
              invoke-rc.d bumblebeed restart || exit $?
          fi
        fi
        ;;
    esac
esac

#DEBHELPER#