#!/bin/sh # postinst script for meshtasticd # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-remove' # * `abort-deconfigure' `in-favour' # `removing' # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package case "$1" in configure|reconfigure) # create spi, gpio groups (for udev rules) # these groups already exist on Raspberry Pi OS getent group spi >/dev/null 2>/dev/null || addgroup --system spi getent group gpio >/dev/null 2>/dev/null || addgroup --system gpio # create a meshtasticd group and user getent passwd meshtasticd >/dev/null 2>/dev/null || adduser --system --home /var/lib/meshtasticd --no-create-home meshtasticd getent group meshtasticd >/dev/null 2>/dev/null || addgroup --system meshtasticd adduser meshtasticd meshtasticd >/dev/null 2>/dev/null adduser meshtasticd spi >/dev/null 2>/dev/null adduser meshtasticd gpio >/dev/null 2>/dev/null # add meshtasticd user to appropriate groups (if they exist) getent group plugdev >/dev/null 2>/dev/null && adduser meshtasticd plugdev >/dev/null 2>/dev/null getent group dialout >/dev/null 2>/dev/null && adduser meshtasticd dialout >/dev/null 2>/dev/null getent group i2c >/dev/null 2>/dev/null && adduser meshtasticd i2c >/dev/null 2>/dev/null getent group video >/dev/null 2>/dev/null && adduser meshtasticd video >/dev/null 2>/dev/null getent group audio >/dev/null 2>/dev/null && adduser meshtasticd audio >/dev/null 2>/dev/null getent group input >/dev/null 2>/dev/null && adduser meshtasticd input >/dev/null 2>/dev/null # migrate /root/.portduino to /var/lib/meshtasticd/.portduino # should only run once, upon upgrade from < 2.6.9 if [ -n "$2" ] && dpkg --compare-versions "$2" lt 2.6.9; then if [ -d /root/.portduino ] && [ ! -e /var/lib/meshtasticd/.portduino ]; then cp -r /root/.portduino /var/lib/meshtasticd/.portduino echo "Migrated meshtasticd VFS from /root/.portduino to /var/lib/meshtasticd/.portduino" echo "meshtasticd now runs as the 'meshtasticd' user, not 'root'." echo "See https://github.com/meshtastic/firmware/pull/6718 for details" fi fi if [ -d /var/lib/meshtasticd ]; then chown -R meshtasticd:meshtasticd /var/lib/meshtasticd fi if [ -d /etc/meshtasticd ]; then chown -R meshtasticd:meshtasticd /etc/meshtasticd fi if [ -d /usr/share/meshtasticd ]; then chown -R meshtasticd:meshtasticd /usr/share/meshtasticd fi ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0