2021-01-11_13:09:20_GMT [openHABian] Starting the openHABian initial setup. 2021-01-11_13:09:20_GMT [openHABian] Storing configuration... OK 2021-01-11_13:09:20_GMT [openHABian] Enable maximum debugging output ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-01-11_13:09:20_GMT [openHABian] Starting webserver with installation log... ' 2021-01-11_13:09:20_GMT [openHABian] Starting webserver with installation log... ++ command -v python3 + [[ -x /usr/bin/python3 ]] + bash /boot/webserver.bash start + sleep 5 ++ ps -ef ++ pgrep python3 + isWebRunning=723 + [[ -n 723 ]] + echo OK OK + defaultUserAndGroup=openhabian + userName=bpsopenhab + groupName=bpsopenhab + is_raspbian + [[ '' == \r\a\s\p\b\i\a\n ]] ++ cat /etc/os-release + [[ PRETTY_NAME="Raspbian GNU/Linux 10 (buster)" NAME="Raspbian GNU/Linux" VERSION_ID="10" VERSION="10 (buster)" VERSION_CODENAME=buster ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs" =~ Raspbian ]] + return 0 + defaultUserAndGroup=pi + rm -f /etc/sudoers.d/010_pi-nopasswd ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-01-11_13:09:25_GMT [openHABian] Changing default username and password... ' 2021-01-11_13:09:25_GMT [openHABian] Changing default username and password... + [[ -v bpsopenhab ]] + id pi + id bpsopenhab + usermod -l bpsopenhab pi + usermod -m -d /home/bpsopenhab bpsopenhab + groupmod -n bpsopenhab pi + echo bpsopenhab:dp4bpsoh + chpasswd + echo OK OK + echo 'watch cat /boot/first-boot.log' + echo noipv4ll + [[ -z '' ]] ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-01-11_13:09:26_GMT [openHABian] Setting up Ethernet connection... ' 2021-01-11_13:09:26_GMT [openHABian] Setting up Ethernet connection... + grep -qs up /sys/class/net/eth0/operstate + echo OK OK + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + tryUntil 'ping -c1 8.8.8.8 &> /dev/null || curl --silent --head http://www.openhab.org/docs |& grep -qs '\''HTTP/1.1 200 OK'\''' 5 1 + local cmd + local attempts + local interval + cmd='ping -c1 8.8.8.8 &> /dev/null || curl --silent --head http://www.openhab.org/docs |& grep -qs '\''HTTP/1.1 200 OK'\''' + attempts=5 + interval=1 + [[ 5 -le 0 ]] + cond_echo '\nexecuting ping -c1 8.8.8.8 &> /dev/null || curl --silent --head http://www.openhab.org/docs |& grep -qs '\''HTTP/1.1 200 OK'\'' \c' + [[ -z 1 ]] + eval 'ping -c1 8.8.8.8 &> /dev/null || curl --silent --head http://www.openhab.org/docs |& grep -qs '\''HTTP/1.1 200 OK'\''' ++ ping -c1 8.8.8.8 + out=0 + [[ 0 -eq 0 ]] + break + [[ -z 1 ]] + return 5 ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-01-11_13:09:26_GMT [openHABian] Ensuring network connectivity... ' 2021-01-11_13:09:26_GMT [openHABian] Ensuring network connectivity... + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + tryUntil 'ping -c1 8.8.8.8 &> /dev/null || curl --silent --head http://www.openhab.org/docs |& grep -qs '\''HTTP/1.1 200 OK'\''' 5 1 + local cmd + local attempts + local interval + cmd='ping -c1 8.8.8.8 &> /dev/null || curl --silent --head http://www.openhab.org/docs |& grep -qs '\''HTTP/1.1 200 OK'\''' + attempts=5 + interval=1 + [[ 5 -le 0 ]] + cond_echo '\nexecuting ping -c1 8.8.8.8 &> /dev/null || curl --silent --head http://www.openhab.org/docs |& grep -qs '\''HTTP/1.1 200 OK'\'' \c' + [[ -z 1 ]] + eval 'ping -c1 8.8.8.8 &> /dev/null || curl --silent --head http://www.openhab.org/docs |& grep -qs '\''HTTP/1.1 200 OK'\''' ++ ping -c1 8.8.8.8 + out=0 + [[ 0 -eq 0 ]] + break + [[ -z 1 ]] + return 5 + echo OK OK ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-01-11_13:09:26_GMT [openHABian] Waiting for dpkg/apt to get ready... ' 2021-01-11_13:09:26_GMT [openHABian] Waiting for dpkg/apt to get ready... + wait_for_apt_to_be_ready + local attempts + local interval + local pid + attempts=10 + interval=1 + [[ 10 -le 0 ]] + pid=762 + apt-get update +++ tail --pid=762 -f /dev/null ++ eval '' + [[ '' -eq 0 ]] + return 0 + echo OK OK ++ dpkg -s raspberrypi-kernel ++ grep 'Version:[[:space:]]' + firmwareBefore='Version: 1.20210303-1' ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_20:24:58_BST [openHABian] Updating repositories and upgrading installed packages... ' 2021-04-08_20:24:58_BST [openHABian] Updating repositories and upgrading installed packages... + apt-get install --fix-broken --yes +++ apt-get --yes upgrade ++ eval '' + [[ '' -eq 100 ]] ++ dpkg -s raspberrypi-kernel ++ grep 'Version:[[:space:]]' + [[ Version: 1.20210303-1 != \V\e\r\s\i\o\n\:\ \1\.\2\0\2\1\0\3\0\3\-\1 ]] + echo OK OK ++ command -v python3 + [[ -x /usr/bin/python3 ]] + bash /boot/webserver.bash reinsure_running ++ command -v git + [[ -x '' ]] ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_20:25:01_BST [openHABian] Installing git package... ' 2021-04-08_20:25:01_BST [openHABian] Installing git package... + apt-get install --yes git + echo OK OK ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_20:25:13_BST [openHABian] Updating myself from https://github.com/openhab/openhabian, main branch... ' 2021-04-08_20:25:13_BST [openHABian] Updating myself from https://github.com/openhab/openhabian, main branch... +++ openhabian_update ++ eval '' + [[ '' -eq 0 ]] + echo OK OK + ln -sfn /opt/openhabian/openhabian-setup.sh /usr/local/bin/openhabian-config ++ timestamp ++ date +%F_%T_%Z + echo '2021-04-08_20:25:15_BST [openHABian] Starting execution of '\''openhabian-config unattended'\''... OK' 2021-04-08_20:25:15_BST [openHABian] Starting execution of 'openhabian-config unattended'... OK + openhabian-config unattended 2021-04-08_20:25:15_BST [openHABian] Checking for root privileges... OK + export UNATTENDED SILENT DEBUGMAX INTERACTIVE + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/auth.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/backup.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/config.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/ext-storage.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/find.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/habapp.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/helpers.bash ++ ESC='\033[' ++ COL_DEF='\033[39;49;00m' ++ COL_RED='\033[31;01m' ++ COL_GREEN='\033[32;01m' ++ COL_YELLOW='\033[33;01m' ++ COL_BLUE='\033[34;01m' ++ COL_MAGENTA='\033[35;01m' ++ COL_CYAN='\033[36;01m' ++ COL_LGRAY='\033[37;01m' ++ COL_DGRAY='\033[90;01m' ++ export COL_DEF COL_RED COL_GREEN COL_YELLOW COL_BLUE COL_MAGENTA COL_CYAN COL_LGRAY COL_DGRAY + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/influxdb+grafana.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/java-jre.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/menu.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/nodejs-apps.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/openhab.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/openhabian.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/packages.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/system.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/vpn.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/wifi.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/zram.bash ++ pwd + OLDWD=/ + cd /opt + update_openhabian_conf + local configFile=/etc/openhabian.conf + local referenceConfig=/opt/openhabian/openhabian.conf.dist + cp /etc/openhabian.conf /etc/openhabian.conf.BAK + read -r line + [[ # Modify your openHABian settings =~ ^(#)?[a-zA-Z] ]] + echo '# Modify your openHABian settings' + read -r line + [[ # Handle with care, only touch if you need to!! =~ ^(#)?[a-zA-Z] ]] + echo '# Handle with care, only touch if you need to!!' + read -r line + [[ # This file will only be used on unattended initial install. =~ ^(#)?[a-zA-Z] ]] + echo '# This file will only be used on unattended initial install.' + read -r line + [[ # If you want to change anything after unattended install completed, use menu in openhabian-config. =~ ^(#)?[a-zA-Z] ]] + echo '# If you want to change anything after unattended install completed, use menu in openhabian-config.' + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # Hostname to set this one to =~ ^(#)?[a-zA-Z] ]] + echo '# Hostname to set this one to' + read -r line + [[ hostname=openhabian =~ ^(#)?[a-zA-Z] ]] + parsed=hostname=openhabian + [[ hostname=openhabian =~ ^#[a-zA-Z] ]] ++ echo hostname=openhabian ++ cut -d= -f1 + param=hostname + [[ -v hostname ]] + [[ bpsopenhabtemplate == *\ * ]] + echo hostname=bpsopenhabtemplate + read -r line + [[ # if it exists, the default user (with its working environment) will be renamed to this username given here ... =~ ^(#)?[a-zA-Z] ]] + echo '# if it exists, the default user (with its working environment) will be renamed to this username given here ...' + read -r line + [[ username=openhabian =~ ^(#)?[a-zA-Z] ]] + parsed=username=openhabian + [[ username=openhabian =~ ^#[a-zA-Z] ]] ++ echo username=openhabian ++ cut -d= -f1 + param=username + [[ -v username ]] + [[ bpsopenhab == *\ * ]] + echo username=bpsopenhab + read -r line + [[ # ... and given this password. The password will be removed from this file after completion for security reasons. =~ ^(#)?[a-zA-Z] ]] + echo '# ... and given this password. The password will be removed from this file after completion for security reasons.' + read -r line + [[ userpw=openhabian =~ ^(#)?[a-zA-Z] ]] + parsed=userpw=openhabian + [[ userpw=openhabian =~ ^#[a-zA-Z] ]] ++ echo userpw=openhabian ++ cut -d= -f1 + param=userpw + [[ -v userpw ]] + [[ dp4bpsoh == *\ * ]] + echo userpw=dp4bpsoh + read -r line + [[ # set this to download a SSH key and authorize the owner to login as the admin user =~ ^(#)?[a-zA-Z] ]] + echo '# set this to download a SSH key and authorize the owner to login as the admin user' + read -r line + [[ adminkeyurl="" =~ ^(#)?[a-zA-Z] ]] + parsed='adminkeyurl=""' + [[ adminkeyurl="" =~ ^#[a-zA-Z] ]] ++ echo 'adminkeyurl=""' ++ cut -d= -f1 + param=adminkeyurl + [[ -v adminkeyurl ]] + [[ '' == *\ * ]] + echo adminkeyurl= + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # Language and timezone. See Debian documentation for valid values. =~ ^(#)?[a-zA-Z] ]] + echo '# Language and timezone. See Debian documentation for valid values.' + read -r line + [[ timezone=Europe/Berlin =~ ^(#)?[a-zA-Z] ]] + parsed=timezone=Europe/Berlin + [[ timezone=Europe/Berlin =~ ^#[a-zA-Z] ]] ++ echo timezone=Europe/Berlin ++ cut -d= -f1 + param=timezone + [[ -v timezone ]] + [[ America/New_York == *\ * ]] + echo timezone=America/New_York + read -r line + [[ locales="en_US.UTF-8 de_DE.UTF-8" =~ ^(#)?[a-zA-Z] ]] + parsed='locales="en_US.UTF-8 de_DE.UTF-8"' + [[ locales="en_US.UTF-8 de_DE.UTF-8" =~ ^#[a-zA-Z] ]] ++ echo 'locales="en_US.UTF-8 de_DE.UTF-8"' ++ cut -d= -f1 + param=locales + [[ -v locales ]] + [[ en_US.UTF-8 de_DE.UTF-8 == *\ * ]] + echo 'locales="en_US.UTF-8 de_DE.UTF-8"' + read -r line + [[ system_default_locale="en_US.UTF-8" =~ ^(#)?[a-zA-Z] ]] + parsed='system_default_locale="en_US.UTF-8"' + [[ system_default_locale="en_US.UTF-8" =~ ^#[a-zA-Z] ]] ++ echo 'system_default_locale="en_US.UTF-8"' ++ cut -d= -f1 + param=system_default_locale + [[ -v system_default_locale ]] + [[ en_US.UTF-8 == *\ * ]] + echo system_default_locale=en_US.UTF-8 + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # WiFi settings. An ethernet connection is recommended. =~ ^(#)?[a-zA-Z] ]] + echo '# WiFi settings. An ethernet connection is recommended.' + read -r line + [[ # If you have a RPi4, RPi3, RPi0W or a supported external WiFi dongle, the WiFi =~ ^(#)?[a-zA-Z] ]] + echo '# If you have a RPi4, RPi3, RPi0W or a supported external WiFi dongle, the WiFi' + read -r line + [[ # interface can be setup and used for the initial installation. =~ ^(#)?[a-zA-Z] ]] + echo '# interface can be setup and used for the initial installation.' + read -r line + [[ # Fill in your SSID and password below, leave empty or put comment in front to =~ ^(#)?[a-zA-Z] ]] + echo '# Fill in your SSID and password below, leave empty or put comment in front to' + read -r line + [[ # have your WiFi remain unchanged/uninitialized. Make sure your Ethernet works. =~ ^(#)?[a-zA-Z] ]] + echo '# have your WiFi remain unchanged/uninitialized. Make sure your Ethernet works.' + read -r line + [[ # ATTENTION: you need to escape these special characters: $, `, ", \, (newline) =~ ^(#)?[a-zA-Z] ]] + echo '# ATTENTION: you need to escape these special characters: $, `, ", \, (newline)' + read -r line + [[ # 'Escaping' means to put an additional \ in front of that character =~ ^(#)?[a-zA-Z] ]] + echo '# '\''Escaping'\'' means to put an additional \ in front of that character' + read -r line + [[ wifi_ssid="" =~ ^(#)?[a-zA-Z] ]] + parsed='wifi_ssid=""' + [[ wifi_ssid="" =~ ^#[a-zA-Z] ]] ++ echo 'wifi_ssid=""' ++ cut -d= -f1 + param=wifi_ssid + [[ -v wifi_ssid ]] + [[ '' == *\ * ]] + echo wifi_ssid= + read -r line + [[ wifi_password="" =~ ^(#)?[a-zA-Z] ]] + parsed='wifi_password=""' + [[ wifi_password="" =~ ^#[a-zA-Z] ]] ++ echo 'wifi_password=""' ++ cut -d= -f1 + param=wifi_password + [[ -v wifi_password ]] + [[ '' == *\ * ]] + echo wifi_password= + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # Wi-Fi setting. Select a two-letter country code suitable for your location =~ ^(#)?[a-zA-Z] ]] + echo '# Wi-Fi setting. Select a two-letter country code suitable for your location' + read -r line + [[ # E.g. US (default), DE, AU, NZ... =~ ^(#)?[a-zA-Z] ]] + echo '# E.g. US (default), DE, AU, NZ...' + read -r line + [[ # You may infringe on local legislature otherwise =~ ^(#)?[a-zA-Z] ]] + echo '# You may infringe on local legislature otherwise' + read -r line + [[ # See https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 or /usr/share/zoneinfo/zone.tab =~ ^(#)?[a-zA-Z] ]] + echo '# See https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 or /usr/share/zoneinfo/zone.tab' + read -r line + [[ wifi_country="" =~ ^(#)?[a-zA-Z] ]] + parsed='wifi_country=""' + [[ wifi_country="" =~ ^#[a-zA-Z] ]] ++ echo 'wifi_country=""' ++ cut -d= -f1 + param=wifi_country + [[ -v wifi_country ]] + [[ '' == *\ * ]] + echo wifi_country= + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # Eventually disable all IPv6 e.g. on installation problems =~ ^(#)?[a-zA-Z] ]] + echo '# Eventually disable all IPv6 e.g. on installation problems' + read -r line + [[ # values: "enable", "disable" =~ ^(#)?[a-zA-Z] ]] + echo '# values: "enable", "disable"' + read -r line + [[ ipv6=enable =~ ^(#)?[a-zA-Z] ]] + parsed=ipv6=enable + [[ ipv6=enable =~ ^#[a-zA-Z] ]] ++ echo ipv6=enable ++ cut -d= -f1 + param=ipv6 + [[ -v ipv6 ]] + [[ enable == *\ * ]] + echo ipv6=enable + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # repo and branch to clone from =~ ^(#)?[a-zA-Z] ]] + echo '# repo and branch to clone from' + read -r line + [[ repositoryurl=https://github.com/openhab/openhabian.git =~ ^(#)?[a-zA-Z] ]] + parsed=repositoryurl=https://github.com/openhab/openhabian.git + [[ repositoryurl=https://github.com/openhab/openhabian.git =~ ^#[a-zA-Z] ]] ++ echo repositoryurl=https://github.com/openhab/openhabian.git ++ cut -d= -f1 + param=repositoryurl + [[ -v repositoryurl ]] + [[ https://github.com/openhab/openhabian == *\ * ]] + echo repositoryurl=https://github.com/openhab/openhabian + read -r line + [[ clonebranch=openHAB3 =~ ^(#)?[a-zA-Z] ]] + parsed=clonebranch=openHAB3 + [[ clonebranch=openHAB3 =~ ^#[a-zA-Z] ]] ++ echo clonebranch=openHAB3 ++ cut -d= -f1 + param=clonebranch + [[ -v clonebranch ]] + [[ main == *\ * ]] + echo clonebranch=main + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # debug verbosity mode =~ ^(#)?[a-zA-Z] ]] + echo '# debug verbosity mode' + read -r line + [[ # off, on (verbose output in log) or maximum (show every command) =~ ^(#)?[a-zA-Z] ]] + echo '# off, on (verbose output in log) or maximum (show every command)' + read -r line + [[ debugmode=off =~ ^(#)?[a-zA-Z] ]] + parsed=debugmode=off + [[ debugmode=off =~ ^#[a-zA-Z] ]] ++ echo debugmode=off ++ cut -d= -f1 + param=debugmode + [[ -v debugmode ]] + [[ maximum == *\ * ]] + echo debugmode=maximum + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # fake hardware =~ ^(#)?[a-zA-Z] ]] + echo '# fake hardware' + read -r line + [[ # force treating your box as if it was a ... =~ ^(#)?[a-zA-Z] ]] + echo '# force treating your box as if it was a ...' + read -r line + [[ # pi4, pi4_8gb, cm4, pi400, pi3, cm3, pi3+, cm3+, pi2, pi1, cm1, pi0, pi0w, x86 =~ ^(#)?[a-zA-Z] ]] + echo '# pi4, pi4_8gb, cm4, pi400, pi3, cm3, pi3+, cm3+, pi2, pi1, cm1, pi0, pi0w, x86' + read -r line + [[ # hw= =~ ^(#)?[a-zA-Z] ]] + echo '# hw=' + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # Hardware architecture =~ ^(#)?[a-zA-Z] ]] + echo '# Hardware architecture' + read -r line + [[ # x86_64, amd64, armv6l, armv7l, aarch64, arm64 =~ ^(#)?[a-zA-Z] ]] + echo '# x86_64, amd64, armv6l, armv7l, aarch64, arm64' + read -r line + [[ # hwarch= =~ ^(#)?[a-zA-Z] ]] + echo '# hwarch=' + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # OS distribution/release =~ ^(#)?[a-zA-Z] ]] + echo '# OS distribution/release' + read -r line + [[ # Valid arguments: raspios, raspbian, debian, ubuntu, stretch, buster, bionic, focal =~ ^(#)?[a-zA-Z] ]] + echo '# Valid arguments: raspios, raspbian, debian, ubuntu, stretch, buster, bionic, focal' + read -r line + [[ # osrelease= =~ ^(#)?[a-zA-Z] ]] + echo '# osrelease=' + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # Java architecture mode =~ ^(#)?[a-zA-Z] ]] + echo '# Java architecture mode' + read -r line + [[ # Valid arguments: "Adopt11", "Zulu11-32", or "Zulu11-64" =~ ^(#)?[a-zA-Z] ]] + echo '# Valid arguments: "Adopt11", "Zulu11-32", or "Zulu11-64"' + read -r line + [[ java_opt=Zulu11-32 =~ ^(#)?[a-zA-Z] ]] + parsed=java_opt=Zulu11-32 + [[ java_opt=Zulu11-32 =~ ^#[a-zA-Z] ]] ++ echo java_opt=Zulu11-32 ++ cut -d= -f1 + param=java_opt + [[ -v java_opt ]] + [[ Zulu11-32 == *\ * ]] + echo java_opt=Zulu11-32 + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # install zram per default, set to "disable" to skip installation =~ ^(#)?[a-zA-Z] ]] + echo '# install zram per default, set to "disable" to skip installation' + read -r line + [[ zraminstall=enable =~ ^(#)?[a-zA-Z] ]] + parsed=zraminstall=enable + [[ zraminstall=enable =~ ^#[a-zA-Z] ]] ++ echo zraminstall=enable ++ cut -d= -f1 + param=zraminstall + [[ -v zraminstall ]] + [[ enable == *\ * ]] + echo zraminstall=enable + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # start comitup hotspot if internet is not reachable =~ ^(#)?[a-zA-Z] ]] + echo '# start comitup hotspot if internet is not reachable' + read -r line + [[ hotspot=enable =~ ^(#)?[a-zA-Z] ]] + parsed=hotspot=enable + [[ hotspot=enable =~ ^#[a-zA-Z] ]] ++ echo hotspot=enable ++ cut -d= -f1 + param=hotspot + [[ -v hotspot ]] + [[ enable == *\ * ]] + echo hotspot=enable + read -r line + [[ hotspotpw=openhabian =~ ^(#)?[a-zA-Z] ]] + parsed=hotspotpw=openhabian + [[ hotspotpw=openhabian =~ ^#[a-zA-Z] ]] ++ echo hotspotpw=openhabian ++ cut -d= -f1 + param=hotspotpw + [[ -v hotspotpw ]] + echo hotspotpw=openhabian + eval hotspotpw=openhabian ++ hotspotpw=openhabian + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # external SD card device to backup and mirror the internal SD card to =~ ^(#)?[a-zA-Z] ]] + echo '# external SD card device to backup and mirror the internal SD card to' + read -r line + [[ # backupdrive=/dev/sda =~ ^(#)?[a-zA-Z] ]] + echo '# backupdrive=/dev/sda' + read -r line + [[ storageconfig=openhab-dir =~ ^(#)?[a-zA-Z] ]] + parsed=storageconfig=openhab-dir + [[ storageconfig=openhab-dir =~ ^#[a-zA-Z] ]] ++ echo storageconfig=openhab-dir ++ cut -d= -f1 + param=storageconfig + [[ -v storageconfig ]] + [[ openhab-dir == *\ * ]] + echo storageconfig=openhab-dir + read -r line + [[ storagedir=/storage =~ ^(#)?[a-zA-Z] ]] + parsed=storagedir=/storage + [[ storagedir=/storage =~ ^#[a-zA-Z] ]] ++ echo storagedir=/storage ++ cut -d= -f1 + param=storagedir + [[ -v storagedir ]] + [[ /storage == *\ * ]] + echo storagedir=/storage + read -r line + [[ storagetapes=15 =~ ^(#)?[a-zA-Z] ]] + parsed=storagetapes=15 + [[ storagetapes=15 =~ ^#[a-zA-Z] ]] ++ echo storagetapes=15 ++ cut -d= -f1 + param=storagetapes + [[ -v storagetapes ]] + [[ 15 == *\ * ]] + echo storagetapes=15 + read -r line + [[ storagecapacity=1024 =~ ^(#)?[a-zA-Z] ]] + parsed=storagecapacity=1024 + [[ storagecapacity=1024 =~ ^#[a-zA-Z] ]] ++ echo storagecapacity=1024 ++ cut -d= -f1 + param=storagecapacity + [[ -v storagecapacity ]] + [[ 1024 == *\ * ]] + echo storagecapacity=1024 + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # mail relay settings =~ ^(#)?[a-zA-Z] ]] + echo '# mail relay settings' + read -r line + [[ # adminmail=john.doe@foo.bar =~ ^(#)?[a-zA-Z] ]] + echo '# adminmail=john.doe@foo.bar' + read -r line + [[ # relayuser=john.doe@foo.bar =~ ^(#)?[a-zA-Z] ]] + echo '# relayuser=john.doe@foo.bar' + read -r line + [[ # relaypass=secret =~ ^(#)?[a-zA-Z] ]] + echo '# relaypass=secret' + read -r line + [[ # smarthost=smtp.gmail.com =~ ^(#)?[a-zA-Z] ]] + echo '# smarthost=smtp.gmail.com' + read -r line + [[ # smartport=587 =~ ^(#)?[a-zA-Z] ]] + echo '# smartport=587' + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # Tailscale VPN =~ ^(#)?[a-zA-Z] ]] + echo '# Tailscale VPN' + read -r line + [[ # preauthkey=tskey-xxxxxxxxxxxxxxxxx =~ ^(#)?[a-zA-Z] ]] + echo '# preauthkey=tskey-xxxxxxxxxxxxxxxxx' + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # Custom log files =~ ^(#)?[a-zA-Z] ]] + echo '# Custom log files' + read -r line + [[ # custom_log_files=("/var/log/foo.log" "/var/log/bar.log") =~ ^(#)?[a-zA-Z] ]] + echo '# custom_log_files=("/var/log/foo.log" "/var/log/bar.log")' + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # vim: filetype=sh =~ ^(#)?[a-zA-Z] ]] + echo '# vim: filetype=sh' + read -r line + set_cpu_speed + is_raspios + [[ '' == \r\a\s\p\i\o\s ]] + is_raspbian + [[ '' == \r\a\s\p\b\i\a\n ]] ++ cat /etc/os-release + [[ PRETTY_NAME="Raspbian GNU/Linux 10 (buster)" NAME="Raspbian GNU/Linux" VERSION_ID="10" VERSION="10 (buster)" VERSION_CODENAME=buster ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs" =~ Raspbian ]] + return 0 + return 0 + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + echo 'GOVERNOR="ondemand"' + echo ondemand + config_ipv6 + local aptConf=/etc/apt/apt.conf.d/S90force-ipv4 + local sysctlConf=/etc/sysctl.d/99-sysctl.conf + [[ enable == \d\i\s\a\b\l\e ]] + [[ enable == \e\n\a\b\l\e ]] + grep -qs '^[[:space:]]*# Disable all IPv6 functionality' /etc/sysctl.d/99-sysctl.conf + [[ -n 1 ]] + export DEBIAN_FRONTEND=noninteractive + DEBIAN_FRONTEND=noninteractive + wait_for_apt_to_finish_update ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_20:25:15_BST [openHABian] Updating Linux package information... ' 2021-04-08_20:25:15_BST [openHABian] Updating Linux package information... + [[ -z '' ]] + apt_update + PID_APT=2077 + tail --pid=2077 -f /dev/null + apt-get update + echo OK OK + load_create_config + local 'questionText=\nWelcome to openHABian!\n\nPlease provide the name of your Linux user i.e. the account you normally log in with.\n\nTypical user names are '\''pi'\'' or '\''ubuntu'\''.' + local input + [[ -f /etc/openhabian.conf ]] ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_20:25:28_BST [openHABian] Loading configuration file '\''/etc/openhabian.conf'\''... ' 2021-04-08_20:25:28_BST [openHABian] Loading configuration file '/etc/openhabian.conf'... ++ getent group bpsopenhab + [[ ! -n bpsopenhab:x:1000: ]] + id -u bpsopenhab + source /etc/openhabian.conf ++ hostname=bpsopenhabtemplate ++ username=bpsopenhab ++ userpw=dp4bpsoh ++ adminkeyurl= ++ timezone=America/New_York ++ locales='en_US.UTF-8 de_DE.UTF-8' ++ system_default_locale=en_US.UTF-8 ++ wifi_ssid= ++ wifi_password= ++ wifi_country= ++ ipv6=enable ++ repositoryurl=https://github.com/openhab/openhabian ++ clonebranch=main ++ debugmode=maximum ++ java_opt=Zulu11-32 ++ zraminstall=enable ++ hotspot=enable ++ hotspotpw=openhabian ++ storageconfig=openhab-dir ++ storagedir=/storage ++ storagetapes=15 ++ storagecapacity=1024 + echo OK OK + change_swapsize + is_pi + is_pifour + [[ '' == \p\i\4 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]11[0-9a-fA-F]$' /proc/cpuinfo + return 0 + return 0 + local free + local minFree + local swap + local totalMemory ++ awk '/MemTotal/ {print $2}' /proc/meminfo + totalMemory=3919132 + [[ -z 3919132 ]] + swap=7838264 + minFree=15676528 ++ df -hk / ++ awk '/dev/ { print $4 }' + free=12143052 + [[ 12143052 -ge 15676528 ]] + [[ 12143052 -ge 7838264 ]] + size=3919132 + (( size/=1024 )) ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_20:25:32_BST [openHABian] Adjusting swap size to 3827 MB... ' 2021-04-08_20:25:32_BST [openHABian] Adjusting swap size to 3827 MB... + cond_redirect dphys-swapfile swapoff + [[ -n '' ]] + echo -e '\n\033[90;01m$ dphys-swapfile swapoff \033[39;49;00m' $ dphys-swapfile swapoff  + dphys-swapfile swapoff + return 0 + cond_redirect sed -i 's|^#*.*CONF_SWAPSIZE=.*$|CONF_SWAPSIZE=3827|g' /etc/dphys-swapfile + [[ -n '' ]] + echo -e '\n\033[90;01m$ sed -i s|^#*.*CONF_SWAPSIZE=.*$|CONF_SWAPSIZE=3827|g /etc/dphys-swapfile \033[39;49;00m' $ sed -i s|^#*.*CONF_SWAPSIZE=.*$|CONF_SWAPSIZE=3827|g /etc/dphys-swapfile  + sed -i 's|^#*.*CONF_SWAPSIZE=.*$|CONF_SWAPSIZE=3827|g' /etc/dphys-swapfile + return 0 + cond_redirect dphys-swapfile swapon + [[ -n '' ]] + echo -e '\n\033[90;01m$ dphys-swapfile swapon \033[39;49;00m' $ dphys-swapfile swapon  + dphys-swapfile swapon + return 0 + echo 'OK (reboot required)' OK (reboot required) + timezone_setting + [[ -n '' ]] + [[ -n America/New_York ]] ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_20:25:32_BST [openHABian] Setting timezone based on openhabian.conf... ' 2021-04-08_20:25:32_BST [openHABian] Setting timezone based on openhabian.conf... + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + running_on_github + [[ -n '' ]] + return 1 + cond_redirect timedatectl set-timezone America/New_York + [[ -n '' ]] + echo -e '\n\033[90;01m$ timedatectl set-timezone America/New_York \033[39;49;00m' $ timedatectl set-timezone America/New_York  + timedatectl set-timezone America/New_York + return 0 ++ cat /etc/timezone + echo 'OK (America/New_York)' OK (America/New_York) + setup_ntp enable + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + is_raspios + [[ '' == \r\a\s\p\i\o\s ]] + is_raspbian + [[ '' == \r\a\s\p\b\i\a\n ]] ++ cat /etc/os-release + [[ PRETTY_NAME="Raspbian GNU/Linux 10 (buster)" NAME="Raspbian GNU/Linux" VERSION_ID="10" VERSION="10 (buster)" VERSION_CODENAME=buster ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs" =~ Raspbian ]] + return 0 + return 0 + [[ enable == \e\n\a\b\l\e ]] ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:25:33_EDT [openHABian] Enabling time synchronization using NTP... ' 2021-04-08_15:25:33_EDT [openHABian] Enabling time synchronization using NTP... + cond_redirect cp /opt/openhabian/includes/50-timesyncd.conf /lib/dhcpcd/dhcpcd-hooks/ + [[ -n '' ]] + echo -e '\n\033[90;01m$ cp /opt/openhabian/includes/50-timesyncd.conf /lib/dhcpcd/dhcpcd-hooks/ \033[39;49;00m' $ cp /opt/openhabian/includes/50-timesyncd.conf /lib/dhcpcd/dhcpcd-hooks/  + cp /opt/openhabian/includes/50-timesyncd.conf /lib/dhcpcd/dhcpcd-hooks/ + return 0 + cond_redirect timedatectl set-ntp true + [[ -n '' ]] + echo -e '\n\033[90;01m$ timedatectl set-ntp true \033[39;49;00m' $ timedatectl set-ntp true  + timedatectl set-ntp true + return 0 + echo OK OK + locale_setting + local locale + dpkg -s locales + [[ -n '' ]] ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:25:33_EDT [openHABian] Setting locale based on openhabian.conf... ' 2021-04-08_15:25:33_EDT [openHABian] Setting locale based on openhabian.conf... + is_ubuntu + [[ '' == \u\b\u\n\t\u ]] ++ cat /etc/os-release + [[ PRETTY_NAME="Raspbian GNU/Linux 10 (buster)" NAME="Raspbian GNU/Linux" VERSION_ID="10" VERSION="10 (buster)" VERSION_CODENAME=buster ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs" =~ Ubuntu ]] + return 1 + for loc in $locales + sed -i '/^#[[:space:]]en_US.UTF-8/s/^#[[:space:]]//' /etc/locale.gen + for loc in $locales + sed -i '/^#[[:space:]]de_DE.UTF-8/s/^#[[:space:]]//' /etc/locale.gen + cond_redirect locale-gen + [[ -n '' ]] + echo -e '\n\033[90;01m$ locale-gen \033[39;49;00m' $ locale-gen  + locale-gen Generating locales (this might take a while)... de_DE.UTF-8... done en_GB.UTF-8... done en_US.UTF-8... done Generation complete. + return 0 + cond_redirect dpkg-reconfigure --frontend=noninteractive locales + [[ -n '' ]] + echo -e '\n\033[90;01m$ dpkg-reconfigure --frontend=noninteractive locales \033[39;49;00m' $ dpkg-reconfigure --frontend=noninteractive locales  + dpkg-reconfigure --frontend=noninteractive locales Generating locales (this might take a while)... de_DE.UTF-8... done en_GB.UTF-8... done en_US.UTF-8... done Generation complete. + return 0 ++ grep '^[[:space:]]*LANG=' /etc/default/locale ++ sed 's|LANG=||g' + locale=en_GB.UTF-8 + cond_redirect update-locale LANG=en_GB.UTF-8 LC_ALL=en_GB.UTF-8 LC_CTYPE=en_GB.UTF-8 LANGUAGE=en_GB.UTF-8 + [[ -n '' ]] + echo -e '\n\033[90;01m$ update-locale LANG=en_GB.UTF-8 LC_ALL=en_GB.UTF-8 LC_CTYPE=en_GB.UTF-8 LANGUAGE=en_GB.UTF-8 \033[39;49;00m' $ update-locale LANG=en_GB.UTF-8 LC_ALL=en_GB.UTF-8 LC_CTYPE=en_GB.UTF-8 LANGUAGE=en_GB.UTF-8  + update-locale LANG=en_GB.UTF-8 LC_ALL=en_GB.UTF-8 LC_CTYPE=en_GB.UTF-8 LANGUAGE=en_GB.UTF-8 + return 0 + echo 'OK (reboot required)' OK (reboot required) + [[ -n '' ]] + hostname_change + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + local newHostname + [[ -n '' ]] ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:26:11_EDT [openHABian] Setting hostname of the base system based on openhabian.conf... ' 2021-04-08_15:26:11_EDT [openHABian] Setting hostname of the base system based on openhabian.conf... + newHostname=bpsopenhabtemplate + cond_redirect hostnamectl set-hostname bpsopenhabtemplate + [[ -n '' ]] + echo -e '\n\033[90;01m$ hostnamectl set-hostname bpsopenhabtemplate \033[39;49;00m' $ hostnamectl set-hostname bpsopenhabtemplate  + hostnamectl set-hostname bpsopenhabtemplate + return 0 + sed -i 's|127.0.1.1.*$|127.0.1.1 bpsopenhabtemplate|g' /etc/hosts + echo OK OK + [[ -n '' ]] + memory_split + is_pi + is_pifour + [[ '' == \p\i\4 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]11[0-9a-fA-F]$' /proc/cpuinfo + return 0 + return 0 ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:26:11_EDT [openHABian] Setting the GPU memory split down to 16MB for headless system... ' 2021-04-08_15:26:11_EDT [openHABian] Setting the GPU memory split down to 16MB for headless system... + grep -qs '^[[:space:]]*gpu_mem' /boot/config.txt + echo gpu_mem=16 + echo OK OK + enable_rpi_audio + is_pi + is_pifour + [[ '' == \p\i\4 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]11[0-9a-fA-F]$' /proc/cpuinfo + return 0 + return 0 ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:26:11_EDT [openHABian] Enabling Audio output... ' 2021-04-08_15:26:11_EDT [openHABian] Enabling Audio output... + grep -qs '^[[:space:]]*dtparam=audio' /boot/config.txt + cond_redirect sed -i 's|dtparam=audio.*$|dtparam=audio=on|g' /boot/config.txt + [[ -n '' ]] + echo -e '\n\033[90;01m$ sed -i s|dtparam=audio.*$|dtparam=audio=on|g /boot/config.txt \033[39;49;00m' $ sed -i s|dtparam=audio.*$|dtparam=audio=on|g /boot/config.txt  + sed -i 's|dtparam=audio.*$|dtparam=audio=on|g' /boot/config.txt + return 0 + cond_redirect adduser bpsopenhab audio + [[ -n '' ]] + echo -e '\n\033[90;01m$ adduser bpsopenhab audio \033[39;49;00m' $ adduser bpsopenhab audio  + adduser bpsopenhab audio The user `bpsopenhab' is already a member of `audio'. + return 0 + echo OK OK + basic_packages ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:26:12_EDT [openHABian] Installing basic can'\''t-be-wrong packages (screen, vim, ...)... ' 2021-04-08_15:26:12_EDT [openHABian] Installing basic can't-be-wrong packages (screen, vim, ...)... ++ command -v raspi-config + [[ -x /usr/bin/raspi-config ]] + cond_redirect apt-get purge --yes raspi-config + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get purge --yes raspi-config \033[39;49;00m' $ apt-get purge --yes raspi-config  + apt-get purge --yes raspi-config Reading package lists... Building dependency tree... Reading state information... The following package was automatically installed and is no longer required: triggerhappy Use 'apt autoremove' to remove it. The following packages will be REMOVED: raspi-config* 0 upgraded, 0 newly installed, 1 to remove and 30 not upgraded. After this operation, 124 kB disk space will be freed. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 41077 files and directories currently installed.) Removing raspi-config (20210212) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 41069 files and directories currently installed.) Purging configuration files for raspi-config (20210212) ... Processing triggers for systemd (241-7~deb10u6+rpi1) ... + return 0 + cond_redirect apt-get install --yes screen vim nano mc vfu bash-completion htop curl wget multitail git util-linux bzip2 zip unzip xz-utils cpufrequtils software-properties-common man-db whiptail acl usbutils dirmngr arping + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get install --yes screen vim nano mc vfu bash-completion htop curl wget multitail git util-linux bzip2 zip unzip xz-utils cpufrequtils software-properties-common man-db whiptail acl usbutils dirmngr arping \033[39;49;00m' $ apt-get install --yes screen vim nano mc vfu bash-completion htop curl wget multitail git util-linux bzip2 zip unzip xz-utils cpufrequtils software-properties-common man-db whiptail acl usbutils dirmngr arping  + apt-get install --yes screen vim nano mc vfu bash-completion htop curl wget multitail git util-linux bzip2 zip unzip xz-utils cpufrequtils software-properties-common man-db whiptail acl usbutils dirmngr arping Reading package lists... Building dependency tree... Reading state information... bash-completion is already the newest version (1:2.8-6). bzip2 is already the newest version (1.0.6-9.2~deb10u1). bzip2 set to manually installed. dirmngr is already the newest version (2.2.12-1+rpi1+deb10u1). git is already the newest version (1:2.20.1-2+deb10u3). htop is already the newest version (2.2.0-1). man-db is already the newest version (2.8.5-2). nano is already the newest version (3.2-3). unzip is already the newest version (6.0-23+deb10u2). usbutils is already the newest version (1:010-3). util-linux is already the newest version (2.33.1-0.1). wget is already the newest version (1.20.1-1.1). wget set to manually installed. whiptail is already the newest version (0.52.20-8). whiptail set to manually installed. xz-utils is already the newest version (5.2.4-1). xz-utils set to manually installed. The following package was automatically installed and is no longer required: triggerhappy Use 'apt autoremove' to remove it. The following additional packages will be installed: gir1.2-glib-2.0 gir1.2-packagekitglib-1.0 libappstream4 libcpufreq0 libcurl4 libgirepository-1.0-1 libglib2.0-bin libgstreamer1.0-0 libncurses5 libnet1 libpackagekit-glib2-18 libpcap0.8 libstemmer0d libutempter0 libyaml-0-2 mc-data packagekit packagekit-tools python3-dbus python3-distro-info python3-gi python3-pycurl python3-software-properties unattended-upgrades vim-runtime Suggested packages: gstreamer1.0-tools arj catdvi | texlive-binaries dbview djvulibre-bin epub-utils genisoimage gv imagemagick libaspell-dev links | w3m | lynx odt2txt poppler-utils python-boto python-tz xpdf | pdf-viewer appstream python-dbus-doc python3-dbus-dbg libcurl4-gnutls-dev python-pycurl-doc python3-pycurl-dbg byobu | screenie | iselect bsd-mailx default-mta | mail-transport-agent needrestart powermgmt-base ctags vim-doc vim-scripts The following NEW packages will be installed: acl arping cpufrequtils gir1.2-glib-2.0 gir1.2-packagekitglib-1.0 libappstream4 libcpufreq0 libgirepository-1.0-1 libglib2.0-bin libgstreamer1.0-0 libncurses5 libnet1 libpackagekit-glib2-18 libpcap0.8 libstemmer0d libutempter0 libyaml-0-2 mc mc-data multitail packagekit packagekit-tools python3-dbus python3-distro-info python3-gi python3-pycurl python3-software-properties screen software-properties-common unattended-upgrades vfu vim vim-runtime zip The following packages will be upgraded: curl libcurl4 2 upgraded, 34 newly installed, 0 to remove and 28 not upgraded. Need to get 594 kB/14.3 MB of archives. After this operation, 55.6 MB of additional disk space will be used. Get:1 http://mirror.umd.edu/raspbian/raspbian buster/main armhf libcpufreq0 armhf 008-1.1 [11.2 kB] Get:2 http://mirror.umd.edu/raspbian/raspbian buster/main armhf cpufrequtils armhf 008-1.1 [33.9 kB] Get:3 http://mirror.umd.edu/raspbian/raspbian buster/main armhf curl armhf 7.64.0-4+deb10u2 [254 kB] Get:4 http://mirror.umd.edu/raspbian/raspbian buster/main armhf libcurl4 armhf 7.64.0-4+deb10u2 [294 kB] apt-listchanges: Reading changelogs... Preconfiguring packages ... Fetched 594 kB in 2s (379 kB/s) Selecting previously unselected package libcpufreq0. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 41066 files and directories currently installed.) Preparing to unpack .../00-libcpufreq0_008-1.1_armhf.deb ... Unpacking libcpufreq0 (008-1.1) ... Selecting previously unselected package cpufrequtils. Preparing to unpack .../01-cpufrequtils_008-1.1_armhf.deb ... Unpacking cpufrequtils (008-1.1) ... Selecting previously unselected package libstemmer0d:armhf. Preparing to unpack .../02-libstemmer0d_0+svn585-1_armhf.deb ... Unpacking libstemmer0d:armhf (0+svn585-1) ... Selecting previously unselected package libutempter0:armhf. Preparing to unpack .../03-libutempter0_1.1.6-3_armhf.deb ... Unpacking libutempter0:armhf (1.1.6-3) ... Selecting previously unselected package screen. Preparing to unpack .../04-screen_4.6.2-3+deb10u1_armhf.deb ... Unpacking screen (4.6.2-3+deb10u1) ... Selecting previously unselected package acl. Preparing to unpack .../05-acl_2.2.53-4_armhf.deb ... Unpacking acl (2.2.53-4) ... Selecting previously unselected package libnet1:armhf. Preparing to unpack .../06-libnet1_1.1.6+dfsg-3.1_armhf.deb ... Unpacking libnet1:armhf (1.1.6+dfsg-3.1) ... Selecting previously unselected package libpcap0.8:armhf. Preparing to unpack .../07-libpcap0.8_1.8.1-6_armhf.deb ... Unpacking libpcap0.8:armhf (1.8.1-6) ... Selecting previously unselected package arping. Preparing to unpack .../08-arping_2.19-6_armhf.deb ... Unpacking arping (2.19-6) ... Preparing to unpack .../09-curl_7.64.0-4+deb10u2_armhf.deb ... Unpacking curl (7.64.0-4+deb10u2) over (7.64.0-4+deb10u1) ... Preparing to unpack .../10-libcurl4_7.64.0-4+deb10u2_armhf.deb ... Unpacking libcurl4:armhf (7.64.0-4+deb10u2) over (7.64.0-4+deb10u1) ... Selecting previously unselected package libgirepository-1.0-1:armhf. Preparing to unpack .../11-libgirepository-1.0-1_1.58.3-2_armhf.deb ... Unpacking libgirepository-1.0-1:armhf (1.58.3-2) ... Selecting previously unselected package gir1.2-glib-2.0:armhf. Preparing to unpack .../12-gir1.2-glib-2.0_1.58.3-2_armhf.deb ... Unpacking gir1.2-glib-2.0:armhf (1.58.3-2) ... Selecting previously unselected package libpackagekit-glib2-18:armhf. Preparing to unpack .../13-libpackagekit-glib2-18_1.1.12-5_armhf.deb ... Unpacking libpackagekit-glib2-18:armhf (1.1.12-5) ... Selecting previously unselected package gir1.2-packagekitglib-1.0. Preparing to unpack .../14-gir1.2-packagekitglib-1.0_1.1.12-5_armhf.deb ... Unpacking gir1.2-packagekitglib-1.0 (1.1.12-5) ... Selecting previously unselected package libyaml-0-2:armhf. Preparing to unpack .../15-libyaml-0-2_0.2.1-1_armhf.deb ... Unpacking libyaml-0-2:armhf (0.2.1-1) ... Selecting previously unselected package libappstream4:armhf. Preparing to unpack .../16-libappstream4_0.12.5-1_armhf.deb ... Unpacking libappstream4:armhf (0.12.5-1) ... Selecting previously unselected package libglib2.0-bin. Preparing to unpack .../17-libglib2.0-bin_2.58.3-2+deb10u2_armhf.deb ... Unpacking libglib2.0-bin (2.58.3-2+deb10u2) ... Selecting previously unselected package libgstreamer1.0-0:armhf. Preparing to unpack .../18-libgstreamer1.0-0_1.14.4-1_armhf.deb ... Unpacking libgstreamer1.0-0:armhf (1.14.4-1) ... Selecting previously unselected package libncurses5:armhf. Preparing to unpack .../19-libncurses5_6.1+20181013-2+deb10u2_armhf.deb ... Unpacking libncurses5:armhf (6.1+20181013-2+deb10u2) ... Selecting previously unselected package mc-data. Preparing to unpack .../20-mc-data_3%3a4.8.22-1_all.deb ... Unpacking mc-data (3:4.8.22-1) ... Selecting previously unselected package mc. Preparing to unpack .../21-mc_3%3a4.8.22-1_armhf.deb ... Unpacking mc (3:4.8.22-1) ... Selecting previously unselected package multitail. Preparing to unpack .../22-multitail_6.4.2-3_armhf.deb ... Unpacking multitail (6.4.2-3) ... Selecting previously unselected package packagekit. Preparing to unpack .../23-packagekit_1.1.12-5_armhf.deb ... Unpacking packagekit (1.1.12-5) ... Selecting previously unselected package packagekit-tools. Preparing to unpack .../24-packagekit-tools_1.1.12-5_armhf.deb ... Unpacking packagekit-tools (1.1.12-5) ... Selecting previously unselected package python3-dbus. Preparing to unpack .../25-python3-dbus_1.2.8-3_armhf.deb ... Unpacking python3-dbus (1.2.8-3) ... Selecting previously unselected package python3-distro-info. Preparing to unpack .../26-python3-distro-info_0.21_all.deb ... Unpacking python3-distro-info (0.21) ... Selecting previously unselected package python3-gi. Preparing to unpack .../27-python3-gi_3.30.4-1_armhf.deb ... Unpacking python3-gi (3.30.4-1) ... Selecting previously unselected package python3-pycurl. Preparing to unpack .../28-python3-pycurl_7.43.0.2-0.1_armhf.deb ... Unpacking python3-pycurl (7.43.0.2-0.1) ... Selecting previously unselected package python3-software-properties. Preparing to unpack .../29-python3-software-properties_0.96.20.2-2_all.deb ... Unpacking python3-software-properties (0.96.20.2-2) ... Selecting previously unselected package software-properties-common. Preparing to unpack .../30-software-properties-common_0.96.20.2-2_all.deb ... Unpacking software-properties-common (0.96.20.2-2) ... Selecting previously unselected package unattended-upgrades. Preparing to unpack .../31-unattended-upgrades_1.11.2_all.deb ... Unpacking unattended-upgrades (1.11.2) ... Selecting previously unselected package vfu. Preparing to unpack .../32-vfu_4.16+repack-1_armhf.deb ... Unpacking vfu (4.16+repack-1) ... Selecting previously unselected package vim-runtime. Preparing to unpack .../33-vim-runtime_2%3a8.1.0875-5_all.deb ... Adding 'diversion of /usr/share/vim/vim81/doc/help.txt to /usr/share/vim/vim81/doc/help.txt.vim-tiny by vim-runtime' Adding 'diversion of /usr/share/vim/vim81/doc/tags to /usr/share/vim/vim81/doc/tags.vim-tiny by vim-runtime' Unpacking vim-runtime (2:8.1.0875-5) ... Selecting previously unselected package vim. Preparing to unpack .../34-vim_2%3a8.1.0875-5_armhf.deb ... Unpacking vim (2:8.1.0875-5) ... Selecting previously unselected package zip. Preparing to unpack .../35-zip_3.0-11_armhf.deb ... Unpacking zip (3.0-11) ... Setting up python3-dbus (1.2.8-3) ... Setting up libyaml-0-2:armhf (0.2.1-1) ... Setting up libglib2.0-bin (2.58.3-2+deb10u2) ... Setting up libpackagekit-glib2-18:armhf (1.1.12-5) ... Setting up libnet1:armhf (1.1.6+dfsg-3.1) ... Setting up libncurses5:armhf (6.1+20181013-2+deb10u2) ... Setting up acl (2.2.53-4) ... Setting up vfu (4.16+repack-1) ... Setting up zip (3.0-11) ... Setting up python3-pycurl (7.43.0.2-0.1) ... Setting up python3-software-properties (0.96.20.2-2) ... Setting up libpcap0.8:armhf (1.8.1-6) ... Setting up mc-data (3:4.8.22-1) ... Setting up libutempter0:armhf (1.1.6-3) ... Setting up libcpufreq0 (008-1.1) ... Setting up multitail (6.4.2-3) ... Setting up libcurl4:armhf (7.64.0-4+deb10u2) ... Setting up libgirepository-1.0-1:armhf (1.58.3-2) ... Setting up curl (7.64.0-4+deb10u2) ... Setting up libstemmer0d:armhf (0+svn585-1) ... Setting up vim-runtime (2:8.1.0875-5) ... Setting up python3-distro-info (0.21) ... Setting up libgstreamer1.0-0:armhf (1.14.4-1) ... Setcap worked! gst-ptp-helper is not suid! Setting up vim (2:8.1.0875-5) ... update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vim (vim) in auto mode update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vimdiff (vimdiff) in auto mode update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rvim (rvim) in auto mode update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rview (rview) in auto mode update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vi (vi) in auto mode update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/view (view) in auto mode update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/ex (ex) in auto mode Setting up arping (2.19-6) ... Setting up mc (3:4.8.22-1) ... Setting up screen (4.6.2-3+deb10u1) ... Setting up libappstream4:armhf (0.12.5-1) ... Setting up unattended-upgrades (1.11.2) ... Creating config file /etc/apt/apt.conf.d/20auto-upgrades with new version Creating config file /etc/apt/apt.conf.d/50unattended-upgrades with new version Created symlink /etc/systemd/system/multi-user.target.wants/unattended-upgrades.service → /lib/systemd/system/unattended-upgrades.service. Synchronizing state of unattended-upgrades.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable unattended-upgrades Setting up cpufrequtils (008-1.1) ... update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults Setting up gir1.2-glib-2.0:armhf (1.58.3-2) ... Setting up packagekit (1.1.12-5) ... Setting up packagekit-tools (1.1.12-5) ... Setting up gir1.2-packagekitglib-1.0 (1.1.12-5) ... Setting up python3-gi (3.30.4-1) ... Setting up software-properties-common (0.96.20.2-2) ... Processing triggers for install-info (6.5.0.dfsg.1-4+b1) ... Processing triggers for mime-support (3.62) ... Processing triggers for libc-bin (2.28-10+rpi1) ... Processing triggers for systemd (241-7~deb10u6+rpi1) ... Processing triggers for man-db (2.8.5-2) ... Processing triggers for dbus (1.12.20-0+deb10u1) ... + return 0 + echo OK OK + needed_packages + local 'bluetoothPackages=bluez python3-dev libbluetooth-dev raspberrypi-sys-mods pi-bluetooth' ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:26:54_EDT [openHABian] Installing additional needed packages... ' 2021-04-08_15:26:54_EDT [openHABian] Installing additional needed packages... + cond_redirect apt-get install --yes apt-transport-https bc sysstat jq moreutils avahi-daemon python3 python3-pip python3-wheel python3-setuptools avahi-autoipd fontconfig + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get install --yes apt-transport-https bc sysstat jq moreutils avahi-daemon python3 python3-pip python3-wheel python3-setuptools avahi-autoipd fontconfig \033[39;49;00m' $ apt-get install --yes apt-transport-https bc sysstat jq moreutils avahi-daemon python3 python3-pip python3-wheel python3-setuptools avahi-autoipd fontconfig  + apt-get install --yes apt-transport-https bc sysstat jq moreutils avahi-daemon python3 python3-pip python3-wheel python3-setuptools avahi-autoipd fontconfig Reading package lists... Building dependency tree... Reading state information... python3 is already the newest version (3.7.3-1). python3 set to manually installed. The following package was automatically installed and is no longer required: triggerhappy Use 'apt autoremove' to remove it. The following additional packages will be installed: dh-python fontconfig-config fonts-dejavu-core libexpat1-dev libfontconfig1 libio-pty-perl libipc-run-perl libjq1 libonig5 libpython3-dev libpython3.7 libpython3.7-dev libpython3.7-minimal libpython3.7-stdlib libsensors-config libsensors5 python-pip-whl python3-asn1crypto python3-cffi-backend python3-crypto python3-cryptography python3-dev python3-distutils python3-entrypoints python3-keyring python3-keyrings.alt python3-lib2to3 python3-secretstorage python3-xdg python3.7 python3.7-dev python3.7-minimal Suggested packages: lm-sensors libtime-duration-perl libtimedate-perl python-crypto-doc python-cryptography-doc python3-cryptography-vectors gnome-keyring libkf5wallet-bin gir1.2-gnomekeyring-1.0 python-secretstorage-doc python-setuptools-doc python3.7-venv python3.7-doc binfmt-support isag The following NEW packages will be installed: apt-transport-https avahi-autoipd bc dh-python fontconfig fontconfig-config fonts-dejavu-core jq libexpat1-dev libfontconfig1 libio-pty-perl libipc-run-perl libjq1 libonig5 libpython3-dev libpython3.7-dev libsensors-config libsensors5 moreutils python-pip-whl python3-asn1crypto python3-cffi-backend python3-crypto python3-cryptography python3-dev python3-distutils python3-entrypoints python3-keyring python3-keyrings.alt python3-lib2to3 python3-pip python3-secretstorage python3-setuptools python3-wheel python3-xdg python3.7-dev sysstat The following packages will be upgraded: avahi-daemon libpython3.7 libpython3.7-minimal libpython3.7-stdlib python3.7 python3.7-minimal 6 upgraded, 37 newly installed, 0 to remove and 22 not upgraded. Need to get 53.1 MB/59.8 MB of archives. After this operation, 90.3 MB of additional disk space will be used. Get:1 http://mirror.umd.edu/raspbian/raspbian buster/main armhf python3.7 armhf 3.7.3-2+deb10u3 [330 kB] Get:2 http://mirror.umd.edu/raspbian/raspbian buster/main armhf libpython3.7 armhf 3.7.3-2+deb10u3 [1,253 kB] Get:3 http://mirror.umd.edu/raspbian/raspbian buster/main armhf libpython3.7-stdlib armhf 3.7.3-2+deb10u3 [1,664 kB] Get:4 http://mirror.umd.edu/raspbian/raspbian buster/main armhf python3.7-minimal armhf 3.7.3-2+deb10u3 [1,464 kB] Get:5 http://mirror.umd.edu/raspbian/raspbian buster/main armhf libpython3.7-minimal armhf 3.7.3-2+deb10u3 [583 kB] Get:6 http://mirror.umd.edu/raspbian/raspbian buster/main armhf avahi-autoipd armhf 0.7-4+deb10u1 [53.3 kB] Get:7 http://mirror.umd.edu/raspbian/raspbian buster/main armhf avahi-daemon armhf 0.7-4+deb10u1 [85.1 kB] Get:8 http://mirror.umd.edu/raspbian/raspbian buster/main armhf libpython3.7-dev armhf 3.7.3-2+deb10u3 [47.2 MB] Get:9 http://mirror.umd.edu/raspbian/raspbian buster/main armhf python3.7-dev armhf 3.7.3-2+deb10u3 [513 kB] apt-listchanges: Reading changelogs... Preconfiguring packages ... Fetched 53.1 MB in 8s (6,257 kB/s) (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 43952 files and directories currently installed.) Preparing to unpack .../00-python3.7_3.7.3-2+deb10u3_armhf.deb ... Unpacking python3.7 (3.7.3-2+deb10u3) over (3.7.3-2+deb10u2) ... Preparing to unpack .../01-libpython3.7_3.7.3-2+deb10u3_armhf.deb ... Unpacking libpython3.7:armhf (3.7.3-2+deb10u3) over (3.7.3-2+deb10u2) ... Preparing to unpack .../02-libpython3.7-stdlib_3.7.3-2+deb10u3_armhf.deb ... Unpacking libpython3.7-stdlib:armhf (3.7.3-2+deb10u3) over (3.7.3-2+deb10u2) ... Preparing to unpack .../03-python3.7-minimal_3.7.3-2+deb10u3_armhf.deb ... Unpacking python3.7-minimal (3.7.3-2+deb10u3) over (3.7.3-2+deb10u2) ... Preparing to unpack .../04-libpython3.7-minimal_3.7.3-2+deb10u3_armhf.deb ... Unpacking libpython3.7-minimal:armhf (3.7.3-2+deb10u3) over (3.7.3-2+deb10u2) ... Selecting previously unselected package bc. Preparing to unpack .../05-bc_1.07.1-2_armhf.deb ... Unpacking bc (1.07.1-2) ... Selecting previously unselected package apt-transport-https. Preparing to unpack .../06-apt-transport-https_1.8.2.2_all.deb ... Unpacking apt-transport-https (1.8.2.2) ... Selecting previously unselected package avahi-autoipd. Preparing to unpack .../07-avahi-autoipd_0.7-4+deb10u1_armhf.deb ... Unpacking avahi-autoipd (0.7-4+deb10u1) ... Preparing to unpack .../08-avahi-daemon_0.7-4+deb10u1_armhf.deb ... Unpacking avahi-daemon (0.7-4+deb10u1) over (0.7-4+b1) ... dpkg: warning: unable to delete old directory '/etc/resolvconf/update-libc.d': Directory not empty dpkg: warning: unable to delete old directory '/etc/resolvconf': Directory not empty Selecting previously unselected package python3-lib2to3. Preparing to unpack .../09-python3-lib2to3_3.7.3-1_all.deb ... Unpacking python3-lib2to3 (3.7.3-1) ... Selecting previously unselected package python3-distutils. Preparing to unpack .../10-python3-distutils_3.7.3-1_all.deb ... Unpacking python3-distutils (3.7.3-1) ... Selecting previously unselected package dh-python. Preparing to unpack .../11-dh-python_3.20190308_all.deb ... Unpacking dh-python (3.20190308) ... Selecting previously unselected package fonts-dejavu-core. Preparing to unpack .../12-fonts-dejavu-core_2.37-1_all.deb ... Unpacking fonts-dejavu-core (2.37-1) ... Selecting previously unselected package fontconfig-config. Preparing to unpack .../13-fontconfig-config_2.13.1-2_all.deb ... Unpacking fontconfig-config (2.13.1-2) ... Selecting previously unselected package libfontconfig1:armhf. Preparing to unpack .../14-libfontconfig1_2.13.1-2_armhf.deb ... Unpacking libfontconfig1:armhf (2.13.1-2) ... Selecting previously unselected package fontconfig. Preparing to unpack .../15-fontconfig_2.13.1-2_armhf.deb ... Unpacking fontconfig (2.13.1-2) ... Selecting previously unselected package libonig5:armhf. Preparing to unpack .../16-libonig5_6.9.1-1_armhf.deb ... Unpacking libonig5:armhf (6.9.1-1) ... Selecting previously unselected package libjq1:armhf. Preparing to unpack .../17-libjq1_1.5+dfsg-2+b1_armhf.deb ... Unpacking libjq1:armhf (1.5+dfsg-2+b1) ... Selecting previously unselected package jq. Preparing to unpack .../18-jq_1.5+dfsg-2+b1_armhf.deb ... Unpacking jq (1.5+dfsg-2+b1) ... Selecting previously unselected package libexpat1-dev:armhf. Preparing to unpack .../19-libexpat1-dev_2.2.6-2+deb10u1_armhf.deb ... Unpacking libexpat1-dev:armhf (2.2.6-2+deb10u1) ... Selecting previously unselected package libio-pty-perl. Preparing to unpack .../20-libio-pty-perl_1%3a1.08-1.1+b4_armhf.deb ... Unpacking libio-pty-perl (1:1.08-1.1+b4) ... Selecting previously unselected package libipc-run-perl. Preparing to unpack .../21-libipc-run-perl_20180523.0-1_all.deb ... Unpacking libipc-run-perl (20180523.0-1) ... Selecting previously unselected package libpython3.7-dev:armhf. Preparing to unpack .../22-libpython3.7-dev_3.7.3-2+deb10u3_armhf.deb ... Unpacking libpython3.7-dev:armhf (3.7.3-2+deb10u3) ... Selecting previously unselected package libpython3-dev:armhf. Preparing to unpack .../23-libpython3-dev_3.7.3-1_armhf.deb ... Unpacking libpython3-dev:armhf (3.7.3-1) ... Selecting previously unselected package libsensors-config. Preparing to unpack .../24-libsensors-config_1%3a3.5.0-3_all.deb ... Unpacking libsensors-config (1:3.5.0-3) ... Selecting previously unselected package libsensors5:armhf. Preparing to unpack .../25-libsensors5_1%3a3.5.0-3_armhf.deb ... Unpacking libsensors5:armhf (1:3.5.0-3) ... Selecting previously unselected package moreutils. Preparing to unpack .../26-moreutils_0.62-1+b1_armhf.deb ... Unpacking moreutils (0.62-1+b1) ... Selecting previously unselected package python-pip-whl. Preparing to unpack .../27-python-pip-whl_18.1-5+rpt1_all.deb ... Unpacking python-pip-whl (18.1-5+rpt1) ... Selecting previously unselected package python3-asn1crypto. Preparing to unpack .../28-python3-asn1crypto_0.24.0-1_all.deb ... Unpacking python3-asn1crypto (0.24.0-1) ... Selecting previously unselected package python3-cffi-backend. Preparing to unpack .../29-python3-cffi-backend_1.12.2-1_armhf.deb ... Unpacking python3-cffi-backend (1.12.2-1) ... Selecting previously unselected package python3-crypto. Preparing to unpack .../30-python3-crypto_2.6.1-9+b1_armhf.deb ... Unpacking python3-crypto (2.6.1-9+b1) ... Selecting previously unselected package python3-cryptography. Preparing to unpack .../31-python3-cryptography_2.6.1-3+deb10u2_armhf.deb ... Unpacking python3-cryptography (2.6.1-3+deb10u2) ... Selecting previously unselected package python3.7-dev. Preparing to unpack .../32-python3.7-dev_3.7.3-2+deb10u3_armhf.deb ... Unpacking python3.7-dev (3.7.3-2+deb10u3) ... Selecting previously unselected package python3-dev. Preparing to unpack .../33-python3-dev_3.7.3-1_armhf.deb ... Unpacking python3-dev (3.7.3-1) ... Selecting previously unselected package python3-entrypoints. Preparing to unpack .../34-python3-entrypoints_0.3-1_all.deb ... Unpacking python3-entrypoints (0.3-1) ... Selecting previously unselected package python3-secretstorage. Preparing to unpack .../35-python3-secretstorage_2.3.1-2_all.deb ... Unpacking python3-secretstorage (2.3.1-2) ... Selecting previously unselected package python3-keyring. Preparing to unpack .../36-python3-keyring_17.1.1-1_all.deb ... Unpacking python3-keyring (17.1.1-1) ... Selecting previously unselected package python3-keyrings.alt. Preparing to unpack .../37-python3-keyrings.alt_3.1.1-1_all.deb ... Unpacking python3-keyrings.alt (3.1.1-1) ... Selecting previously unselected package python3-pip. Preparing to unpack .../38-python3-pip_18.1-5+rpt1_all.deb ... Unpacking python3-pip (18.1-5+rpt1) ... Selecting previously unselected package python3-setuptools. Preparing to unpack .../39-python3-setuptools_40.8.0-1_all.deb ... Unpacking python3-setuptools (40.8.0-1) ... Selecting previously unselected package python3-wheel. Preparing to unpack .../40-python3-wheel_0.32.3-2_all.deb ... Unpacking python3-wheel (0.32.3-2) ... Selecting previously unselected package python3-xdg. Preparing to unpack .../41-python3-xdg_0.25-5_all.deb ... Unpacking python3-xdg (0.25-5) ... Selecting previously unselected package sysstat. Preparing to unpack .../42-sysstat_12.0.3-2_armhf.deb ... Unpacking sysstat (12.0.3-2) ... Setting up python3-entrypoints (0.3-1) ... Setting up apt-transport-https (1.8.2.2) ... Setting up libio-pty-perl (1:1.08-1.1+b4) ... Setting up libsensors-config (1:3.5.0-3) ... Setting up bc (1.07.1-2) ... Setting up python3-xdg (0.25-5) ... Setting up libpython3.7-minimal:armhf (3.7.3-2+deb10u3) ... Setting up python3-wheel (0.32.3-2) ... Setting up libexpat1-dev:armhf (2.2.6-2+deb10u1) ... Setting up avahi-autoipd (0.7-4+deb10u1) ... Setting up fonts-dejavu-core (2.37-1) ... Setting up libipc-run-perl (20180523.0-1) ... Setting up libsensors5:armhf (1:3.5.0-3) ... Setting up python3.7-minimal (3.7.3-2+deb10u3) ... Setting up avahi-daemon (0.7-4+deb10u1) ... Removing obsolete conffile /etc/network/if-up.d/avahi-daemon ... Removing obsolete conffile /etc/resolvconf/update-libc.d/avahi-daemon ... Setting up python3-crypto (2.6.1-9+b1) ... Setting up python-pip-whl (18.1-5+rpt1) ... Setting up python3-lib2to3 (3.7.3-1) ... Setting up python3-asn1crypto (0.24.0-1) ... Setting up sysstat (12.0.3-2) ... Creating config file /etc/default/sysstat with new version update-alternatives: using /usr/bin/sar.sysstat to provide /usr/bin/sar (sar) in auto mode Created symlink /etc/systemd/system/multi-user.target.wants/sysstat.service → /lib/systemd/system/sysstat.service. Setting up libonig5:armhf (6.9.1-1) ... Setting up python3-cffi-backend (1.12.2-1) ... Setting up python3-distutils (3.7.3-1) ... Setting up dh-python (3.20190308) ... Setting up libpython3.7-stdlib:armhf (3.7.3-2+deb10u3) ... Setting up moreutils (0.62-1+b1) ... Setting up python3-setuptools (40.8.0-1) ... Setting up libpython3.7:armhf (3.7.3-2+deb10u3) ... Setting up libjq1:armhf (1.5+dfsg-2+b1) ... Setting up fontconfig-config (2.13.1-2) ... Setting up libpython3.7-dev:armhf (3.7.3-2+deb10u3) ... Setting up python3-cryptography (2.6.1-3+deb10u2) ... Setting up python3-pip (18.1-5+rpt1) ... Setting up python3-keyrings.alt (3.1.1-1) ... Setting up jq (1.5+dfsg-2+b1) ... Setting up libfontconfig1:armhf (2.13.1-2) ... Setting up python3.7 (3.7.3-2+deb10u3) ... Setting up fontconfig (2.13.1-2) ... Regenerating fonts cache... done. Setting up libpython3-dev:armhf (3.7.3-1) ... Setting up python3.7-dev (3.7.3-2+deb10u3) ... Setting up python3-secretstorage (2.3.1-2) ... Setting up python3-dev (3.7.3-1) ... Setting up python3-keyring (17.1.1-1) ... Processing triggers for mime-support (3.62) ... Processing triggers for libc-bin (2.28-10+rpi1) ... Processing triggers for systemd (241-7~deb10u6+rpi1) ... Processing triggers for man-db (2.8.5-2) ... Processing triggers for dbus (1.12.20-0+deb10u1) ... Processing triggers for install-info (6.5.0.dfsg.1-4+b1) ... + return 0 + echo OK OK + is_pizerow + [[ '' == \p\i\0\w ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]0[cC][0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pithree + [[ '' == \p\i\3 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]0[8dDeE][0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pithreeplus + [[ '' == \p\i\3\+ ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]0[dDeE][0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pifour + [[ '' == \p\i\4 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]11[0-9a-fA-F]$' /proc/cpuinfo + return 0 + [[ -z '' ]] + cond_redirect apt-get install --yes python3-smbus python3-serial + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get install --yes python3-smbus python3-serial \033[39;49;00m' $ apt-get install --yes python3-smbus python3-serial  + apt-get install --yes python3-smbus python3-serial Reading package lists... Building dependency tree... Reading state information... The following package was automatically installed and is no longer required: triggerhappy Use 'apt autoremove' to remove it. The following additional packages will be installed: i2c-tools libi2c0 read-edid Suggested packages: libi2c-dev python-smbus python3-wxgtk3.0 | python3-wxgtk The following NEW packages will be installed: i2c-tools libi2c0 python3-serial python3-smbus read-edid 0 upgraded, 5 newly installed, 0 to remove and 22 not upgraded. Need to get 176 kB of archives. After this operation, 750 kB of additional disk space will be used. Get:1 http://mirror.umd.edu/raspbian/raspbian buster/main armhf libi2c0 armhf 4.1-1 [9,348 B] Get:2 http://mirror.umd.edu/raspbian/raspbian buster/main armhf i2c-tools armhf 4.1-1 [71.7 kB] Get:3 http://mirror.umd.edu/raspbian/raspbian buster/main armhf python3-serial all 3.4-4 [67.6 kB] Get:4 http://mirror.umd.edu/raspbian/raspbian buster/main armhf python3-smbus armhf 4.1-1 [11.7 kB] Get:5 http://mirror.umd.edu/raspbian/raspbian buster/main armhf read-edid armhf 3.0.2-1 [15.4 kB] Fetched 176 kB in 2s (95.8 kB/s) Selecting previously unselected package libi2c0:armhf. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 45410 files and directories currently installed.) Preparing to unpack .../libi2c0_4.1-1_armhf.deb ... Unpacking libi2c0:armhf (4.1-1) ... Selecting previously unselected package i2c-tools. Preparing to unpack .../i2c-tools_4.1-1_armhf.deb ... Unpacking i2c-tools (4.1-1) ... Selecting previously unselected package python3-serial. Preparing to unpack .../python3-serial_3.4-4_all.deb ... Unpacking python3-serial (3.4-4) ... Selecting previously unselected package python3-smbus:armhf. Preparing to unpack .../python3-smbus_4.1-1_armhf.deb ... Unpacking python3-smbus:armhf (4.1-1) ... Selecting previously unselected package read-edid. Preparing to unpack .../read-edid_3.0.2-1_armhf.deb ... Unpacking read-edid (3.0.2-1) ... Setting up libi2c0:armhf (4.1-1) ... Setting up read-edid (3.0.2-1) ... Setting up python3-serial (3.4-4) ... Setting up i2c-tools (4.1-1) ... Setting up python3-smbus:armhf (4.1-1) ... Processing triggers for man-db (2.8.5-2) ... Processing triggers for libc-bin (2.28-10+rpi1) ... + return 0 + echo OK OK ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:28:12_EDT [openHABian] Installing pigpio package... ' 2021-04-08_15:28:12_EDT [openHABian] Installing pigpio package... + cond_redirect apt-get install --yes pigpio + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get install --yes pigpio \033[39;49;00m' $ apt-get install --yes pigpio  + apt-get install --yes pigpio Reading package lists... Building dependency tree... Reading state information... The following package was automatically installed and is no longer required: triggerhappy Use 'apt autoremove' to remove it. The following additional packages will be installed: libpigpio-dev libpigpio1 libpigpiod-if-dev libpigpiod-if1 libpigpiod-if2-1 pigpio-tools pigpiod The following NEW packages will be installed: libpigpio-dev libpigpio1 libpigpiod-if-dev libpigpiod-if1 libpigpiod-if2-1 pigpio pigpio-tools pigpiod 0 upgraded, 8 newly installed, 0 to remove and 22 not upgraded. Need to get 348 kB of archives. After this operation, 1,029 kB of additional disk space will be used. Get:1 http://archive.raspberrypi.org/debian buster/main armhf libpigpio1 armhf 1.79-1+rpt1 [91.4 kB] Get:2 http://archive.raspberrypi.org/debian buster/main armhf libpigpio-dev armhf 1.79-1+rpt1 [78.5 kB] Get:3 http://archive.raspberrypi.org/debian buster/main armhf libpigpiod-if1 armhf 1.79-1+rpt1 [20.5 kB] Get:4 http://archive.raspberrypi.org/debian buster/main armhf libpigpiod-if2-1 armhf 1.79-1+rpt1 [24.4 kB] Get:5 http://archive.raspberrypi.org/debian buster/main armhf libpigpiod-if-dev armhf 1.79-1+rpt1 [76.9 kB] Get:6 http://archive.raspberrypi.org/debian buster/main armhf pigpio-tools armhf 1.79-1+rpt1 [42.9 kB] Get:7 http://archive.raspberrypi.org/debian buster/main armhf pigpiod armhf 1.79-1+rpt1 [9,900 B] Get:8 http://archive.raspberrypi.org/debian buster/main armhf pigpio armhf 1.79-1+rpt1 [3,564 B] Fetched 348 kB in 1s (443 kB/s) Selecting previously unselected package libpigpio1. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 45496 files and directories currently installed.) Preparing to unpack .../0-libpigpio1_1.79-1+rpt1_armhf.deb ... Unpacking libpigpio1 (1.79-1+rpt1) ... Selecting previously unselected package libpigpio-dev. Preparing to unpack .../1-libpigpio-dev_1.79-1+rpt1_armhf.deb ... Unpacking libpigpio-dev (1.79-1+rpt1) ... Selecting previously unselected package libpigpiod-if1. Preparing to unpack .../2-libpigpiod-if1_1.79-1+rpt1_armhf.deb ... Unpacking libpigpiod-if1 (1.79-1+rpt1) ... Selecting previously unselected package libpigpiod-if2-1. Preparing to unpack .../3-libpigpiod-if2-1_1.79-1+rpt1_armhf.deb ... Unpacking libpigpiod-if2-1 (1.79-1+rpt1) ... Selecting previously unselected package libpigpiod-if-dev. Preparing to unpack .../4-libpigpiod-if-dev_1.79-1+rpt1_armhf.deb ... Unpacking libpigpiod-if-dev (1.79-1+rpt1) ... Selecting previously unselected package pigpio-tools. Preparing to unpack .../5-pigpio-tools_1.79-1+rpt1_armhf.deb ... Unpacking pigpio-tools (1.79-1+rpt1) ... Selecting previously unselected package pigpiod. Preparing to unpack .../6-pigpiod_1.79-1+rpt1_armhf.deb ... Unpacking pigpiod (1.79-1+rpt1) ... Selecting previously unselected package pigpio. Preparing to unpack .../7-pigpio_1.79-1+rpt1_armhf.deb ... Unpacking pigpio (1.79-1+rpt1) ... Setting up pigpio-tools (1.79-1+rpt1) ... Setting up libpigpiod-if1 (1.79-1+rpt1) ... Setting up libpigpiod-if2-1 (1.79-1+rpt1) ... Setting up libpigpio1 (1.79-1+rpt1) ... Setting up pigpiod (1.79-1+rpt1) ... Setting up libpigpiod-if-dev (1.79-1+rpt1) ... Setting up libpigpio-dev (1.79-1+rpt1) ... Setting up pigpio (1.79-1+rpt1) ... Processing triggers for man-db (2.8.5-2) ... Processing triggers for libc-bin (2.28-10+rpi1) ... + return 0 + echo OK OK ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:28:22_EDT [openHABian] Installing additional bluetooth packages... ' 2021-04-08_15:28:22_EDT [openHABian] Installing additional bluetooth packages... + is_stretch + [[ '' == \s\t\r\e\t\c\h ]] ++ cat /etc/os-release + [[ PRETTY_NAME="Raspbian GNU/Linux 10 (buster)" NAME="Raspbian GNU/Linux" VERSION_ID="10" VERSION="10 (buster)" VERSION_CODENAME=buster ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs" =~ stretch ]] + return 1 + bluetoothPackages+=' python3-bluez' + cond_redirect apt-get install --yes bluez python3-dev libbluetooth-dev raspberrypi-sys-mods pi-bluetooth python3-bluez + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get install --yes bluez python3-dev libbluetooth-dev raspberrypi-sys-mods pi-bluetooth python3-bluez \033[39;49;00m' $ apt-get install --yes bluez python3-dev libbluetooth-dev raspberrypi-sys-mods pi-bluetooth python3-bluez  + apt-get install --yes bluez python3-dev libbluetooth-dev raspberrypi-sys-mods pi-bluetooth python3-bluez Reading package lists... Building dependency tree... Reading state information... python3-dev is already the newest version (3.7.3-1). python3-dev set to manually installed. bluez is already the newest version (5.50-1.2~deb10u1+rpt2). bluez set to manually installed. pi-bluetooth is already the newest version (0.1.15). raspberrypi-sys-mods is already the newest version (20210310). The following package was automatically installed and is no longer required: triggerhappy Use 'apt autoremove' to remove it. The following additional packages will be installed: libbluetooth3 The following NEW packages will be installed: libbluetooth-dev libbluetooth3 python3-bluez 0 upgraded, 3 newly installed, 0 to remove and 22 not upgraded. Need to get 234 kB/327 kB of archives. After this operation, 992 kB of additional disk space will be used. Get:1 http://archive.raspberrypi.org/debian buster/main armhf libbluetooth-dev armhf 5.50-1.2~deb10u1+rpt2 [190 kB] Get:2 http://mirror.umd.edu/raspbian/raspbian buster/main armhf python3-bluez armhf 0.22+really0.22-1 [43.5 kB] Fetched 234 kB in 1s (316 kB/s) Selecting previously unselected package libbluetooth3:armhf. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 45542 files and directories currently installed.) Preparing to unpack .../libbluetooth3_5.50-1.2~deb10u1+rpt2_armhf.deb ... Unpacking libbluetooth3:armhf (5.50-1.2~deb10u1+rpt2) ... Selecting previously unselected package libbluetooth-dev:armhf. Preparing to unpack .../libbluetooth-dev_5.50-1.2~deb10u1+rpt2_armhf.deb ... Unpacking libbluetooth-dev:armhf (5.50-1.2~deb10u1+rpt2) ... Selecting previously unselected package python3-bluez. Preparing to unpack .../python3-bluez_0.22+really0.22-1_armhf.deb ... Unpacking python3-bluez (0.22+really0.22-1) ... Setting up libbluetooth3:armhf (5.50-1.2~deb10u1+rpt2) ... Setting up python3-bluez (0.22+really0.22-1) ... Setting up libbluetooth-dev:armhf (5.50-1.2~deb10u1+rpt2) ... Processing triggers for libc-bin (2.28-10+rpi1) ... + return 0 + echo OK OK + bashrc_copy ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:28:30_EDT [openHABian] Adding slightly tuned bash configuration files to system... ' 2021-04-08_15:28:30_EDT [openHABian] Adding slightly tuned bash configuration files to system... + cp /opt/openhabian/includes/bash.bashrc /etc/bash.bashrc + cp /opt/openhabian/includes/bashrc-root /root/.bashrc + cp /opt/openhabian/includes/bash_profile /home/bpsopenhab/.bash_profile + chown bpsopenhab:bpsopenhab /home/bpsopenhab/.bash_profile + echo OK OK + vimrc_copy ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:28:30_EDT [openHABian] Adding slightly tuned vim configuration file to system... ' 2021-04-08_15:28:30_EDT [openHABian] Adding slightly tuned vim configuration file to system... + cp /opt/openhabian/includes/vimrc /etc/vim/vimrc + echo OK OK + install_tailscale install + local 'installText=We will install the tailscale VPN client on your system. Use it to securely interconnect multiple openHAB(ian) instances.\nSee https://tailscale.com/blog/how-tailscale-works/ for a comprehensive explanation how it creates a secure VPN. For personal use, you can get a free solo service from tailscale.com.' + local 'removeText=We will remove the tailscale VPN client from your system.\n\nDouble-check ~/.ssh/authorized_keys and eventually remove the admin key.' + local serviceTargetDir=/lib/systemd/system + [[ -n 1 ]] + [[ ! -v preauthkey ]] + [[ install == \r\e\m\o\v\e ]] + [[ install != \i\n\s\t\a\l\l ]] + dpkg -s mailutils exim4 + exim_setup + [[ -n 1 ]] + [[ -z '' ]] ++ timestamp ++ date +%F_%T_%Z + echo '2021-04-08_15:28:30_EDT [openHABian] Beginning Mail Transfer Agent setup... CANCELED (no configuration provided)' 2021-04-08_15:28:30_EDT [openHABian] Beginning Mail Transfer Agent setup... CANCELED (no configuration provided) + return 0 + [[ -n '' ]] ++ timestamp ++ date +%F_%T_%Z + echo '2021-04-08_15:28:30_EDT [openHABian] Installing tailscale VPN... ' 2021-04-08_15:28:30_EDT [openHABian] Installing tailscale VPN... + add_keys https://pkgs.tailscale.com/stable/raspbian/buster.gpg + local repoKey ++ mktemp /tmp/openhabian.XXXXX + repoKey=/tmp/openhabian.MueuG ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:28:30_EDT [openHABian] Adding required keys to apt... ' 2021-04-08_15:28:30_EDT [openHABian] Adding required keys to apt... + cond_redirect wget -qO /tmp/openhabian.MueuG https://pkgs.tailscale.com/stable/raspbian/buster.gpg + [[ -n '' ]] + echo -e '\n\033[90;01m$ wget -qO /tmp/openhabian.MueuG https://pkgs.tailscale.com/stable/raspbian/buster.gpg \033[39;49;00m' $ wget -qO /tmp/openhabian.MueuG https://pkgs.tailscale.com/stable/raspbian/buster.gpg  + wget -qO /tmp/openhabian.MueuG https://pkgs.tailscale.com/stable/raspbian/buster.gpg + return 0 + cond_redirect apt-key add /tmp/openhabian.MueuG + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-key add /tmp/openhabian.MueuG \033[39;49;00m' $ apt-key add /tmp/openhabian.MueuG  + apt-key add /tmp/openhabian.MueuG Warning: apt-key output should not be parsed (stdout is not a terminal) OK + return 0 + echo OK OK + rm -f /tmp/openhabian.MueuG + wget -qO /etc/apt/sources.list.d/tailscale.list https://pkgs.tailscale.com/stable/raspbian/buster.list + cond_redirect apt-get update + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get update \033[39;49;00m' $ apt-get update  + apt-get update Hit:1 http://davesteele.github.io/comitup/repo comitup InRelease Hit:2 http://raspbian.raspberrypi.org/raspbian buster InRelease Hit:3 https://deb.nodesource.com/node_14.x buster InRelease Hit:4 http://archive.raspberrypi.org/debian buster InRelease Get:5 https://pkgs.tailscale.com/stable/raspbian buster InRelease Ign:6 https://dl.bintray.com/openhab/apt-repo2 stable InRelease Get:7 https://dl.bintray.com/openhab/apt-repo2 stable Release [6,051 B] Get:8 https://pkgs.tailscale.com/stable/raspbian buster/main armhf Packages [2,552 B] Fetched 12.6 kB in 3s (4,077 B/s) Reading package lists... + return 0 + cond_redirect apt-get install --yes tailscale + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get install --yes tailscale \033[39;49;00m' $ apt-get install --yes tailscale  + apt-get install --yes tailscale Reading package lists... Building dependency tree... Reading state information... The following package was automatically installed and is no longer required: triggerhappy Use 'apt autoremove' to remove it. The following NEW packages will be installed: tailscale 0 upgraded, 1 newly installed, 0 to remove and 22 not upgraded. Need to get 10.9 MB of archives. After this operation, 19.0 MB of additional disk space will be used. Get:1 https://pkgs.tailscale.com/stable/raspbian buster/main armhf tailscale armhf 1.6.0 [10.9 MB] Fetched 10.9 MB in 2s (4,755 kB/s) Selecting previously unselected package tailscale. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 45621 files and directories currently installed.) Preparing to unpack .../tailscale_1.6.0_armhf.deb ... Unpacking tailscale (1.6.0) ... Setting up tailscale (1.6.0) ... Created symlink /etc/systemd/system/multi-user.target.wants/tailscaled.service → /lib/systemd/system/tailscaled.service. + return 0 + echo OK OK + return 0 + setup_tailscale + local preAuthKey=tskey-7b367ac5aff6324439e97f30 + local consoleProperties=/var/lib/openhab/etc/org.apache.karaf.shell.cfg + local tailscaleIP + [[ -n 1 ]] + [[ -z tskey-7b367ac5aff6324439e97f30 ]] + [[ -n '' ]] + tailscale up --authkey tskey-7b367ac5aff6324439e97f30 + [[ -n '' ]] ++ ip a show tailscale0 ++ awk '/inet / { print substr($2,1,length($2)-3)}' + tailscaleIP= + [[ -n '' ]] + cond_redirect sed -i -e 's|^preauthkey=.*$|preauthkey=xxxxxxxx|g' /etc/openhabian.conf + [[ -n '' ]] + echo -e '\n\033[90;01m$ sed -i -e s|^preauthkey=.*$|preauthkey=xxxxxxxx|g /etc/openhabian.conf \033[39;49;00m' $ sed -i -e s|^preauthkey=.*$|preauthkey=xxxxxxxx|g /etc/openhabian.conf  + sed -i -e 's|^preauthkey=.*$|preauthkey=xxxxxxxx|g' /etc/openhabian.conf + return 0 + echo OK OK + return 0 + misc_system_settings ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:28:52_EDT [openHABian] Applying miscellaneous system settings... ' 2021-04-08_15:28:52_EDT [openHABian] Applying miscellaneous system settings... + cond_echo 'Creating a README note for end user'\''s home folder' + [[ -z '' ]] + echo -e '\033[33;01mCreating a README note for end user'\''s home folder\033[39;49;00m' Creating a README note for end user's home folder + echo -e 'This is your linux user'\''s "home" folder.\nPlace personal files, programs or scripts here.' + cond_echo 'Creating SSH key files' + [[ -z '' ]] + echo -e '\033[33;01mCreating SSH key files\033[39;49;00m' Creating SSH key files + cond_redirect mkdir -p /home/bpsopenhab/.ssh + [[ -n '' ]] + echo -e '\n\033[90;01m$ mkdir -p /home/bpsopenhab/.ssh \033[39;49;00m' $ mkdir -p /home/bpsopenhab/.ssh  + mkdir -p /home/bpsopenhab/.ssh + return 0 + cond_redirect chmod 700 /home/bpsopenhab/.ssh + [[ -n '' ]] + echo -e '\n\033[90;01m$ chmod 700 /home/bpsopenhab/.ssh \033[39;49;00m' $ chmod 700 /home/bpsopenhab/.ssh  + chmod 700 /home/bpsopenhab/.ssh + return 0 + cond_redirect touch /home/bpsopenhab/.ssh/authorized_keys + [[ -n '' ]] + echo -e '\n\033[90;01m$ touch /home/bpsopenhab/.ssh/authorized_keys \033[39;49;00m' $ touch /home/bpsopenhab/.ssh/authorized_keys  + touch /home/bpsopenhab/.ssh/authorized_keys + return 0 + cond_redirect chmod 600 /home/bpsopenhab/.ssh/authorized_keys + [[ -n '' ]] + echo -e '\n\033[90;01m$ chmod 600 /home/bpsopenhab/.ssh/authorized_keys \033[39;49;00m' $ chmod 600 /home/bpsopenhab/.ssh/authorized_keys  + chmod 600 /home/bpsopenhab/.ssh/authorized_keys + return 0 + cond_redirect chown -R bpsopenhab:bpsopenhab /home/bpsopenhab/.ssh + [[ -n '' ]] + echo -e '\n\033[90;01m$ chown -R bpsopenhab:bpsopenhab /home/bpsopenhab/.ssh \033[39;49;00m' $ chown -R bpsopenhab:bpsopenhab /home/bpsopenhab/.ssh  + chown -R bpsopenhab:bpsopenhab /home/bpsopenhab/.ssh + return 0 + is_raspbian + [[ '' == \r\a\s\p\b\i\a\n ]] ++ cat /etc/os-release + [[ PRETTY_NAME="Raspbian GNU/Linux 10 (buster)" NAME="Raspbian GNU/Linux" VERSION_ID="10" VERSION="10 (buster)" VERSION_CODENAME=buster ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs" =~ Raspbian ]] + return 0 + sed -i /SystemMax/d /etc/systemd/journald.conf + echo -e 'SystemMaxUse=50M\nSystemMaxFileSize=10M\nSystemMaxFiles=5' + cond_echo 'Creating persistent systemd journal folder location: /var/log/journal' + [[ -z '' ]] + echo -e '\033[33;01mCreating persistent systemd journal folder location: /var/log/journal\033[39;49;00m' Creating persistent systemd journal folder location: /var/log/journal + cond_redirect mkdir -p /var/log/journal + [[ -n '' ]] + echo -e '\n\033[90;01m$ mkdir -p /var/log/journal \033[39;49;00m' $ mkdir -p /var/log/journal  + mkdir -p /var/log/journal + return 0 + cond_redirect systemd-tmpfiles --create --prefix /var/log/journal + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemd-tmpfiles --create --prefix /var/log/journal \033[39;49;00m' $ systemd-tmpfiles --create --prefix /var/log/journal  + systemd-tmpfiles --create --prefix /var/log/journal + return 0 + cond_echo 'Keeping at most 30 days of systemd journal entries' + [[ -z '' ]] + echo -e '\033[33;01mKeeping at most 30 days of systemd journal entries\033[39;49;00m' Keeping at most 30 days of systemd journal entries + cond_redirect journalctl --vacuum-time=30d + [[ -n '' ]] + echo -e '\n\033[90;01m$ journalctl --vacuum-time=30d \033[39;49;00m' $ journalctl --vacuum-time=30d  + journalctl --vacuum-time=30d Deleted archived journal /var/log/journal/619e3d8f4b2d4ebb92fe948fcea98932/system@e38bd63d03294826bfacae86a014e521-0000000000000001-0005b89f9b8579e9.journal (8.0M). Vacuuming done, freed 8.0M of archived journals from /var/log/journal/619e3d8f4b2d4ebb92fe948fcea98932. + return 0 + echo 'GOVERNOR="ondemand"' + grep -qs '^[[:space:]]*dtparam=i2c_arm=on' /boot/config.txt + echo dtparam=i2c_arm=on + cond_redirect install -m 755 /opt/openhabian/includes/INA219.py /usr/local/bin/waveshare_ups + [[ -n '' ]] + echo -e '\n\033[90;01m$ install -m 755 /opt/openhabian/includes/INA219.py /usr/local/bin/waveshare_ups \033[39;49;00m' $ install -m 755 /opt/openhabian/includes/INA219.py /usr/local/bin/waveshare_ups  + install -m 755 /opt/openhabian/includes/INA219.py /usr/local/bin/waveshare_ups + return 0 + cond_echo 'Setting a distinguishable apt User-Agent' + [[ -z '' ]] + echo -e '\033[33;01mSetting a distinguishable apt User-Agent\033[39;49;00m' Setting a distinguishable apt User-Agent + echo 'Acquire { http::User-Agent "Debian APT-HTTP/1.3 openHABian"; };' + echo OK OK + add_admin_ssh_key + [[ -z '' ]] + return 0 + firemotd_setup + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + running_on_github + [[ -n '' ]] + return 1 + local firemotdDir=/opt/FireMotD + local targetDir=/etc/systemd/system/ + dpkg -s bc sysstat jq moreutils make + firemotd_download /opt ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:28:52_EDT [openHABian] Downloading FireMotD... ' 2021-04-08_15:28:52_EDT [openHABian] Downloading FireMotD... + [[ -d /opt/FireMotD ]] + cond_echo '\nUpdate... ' + [[ -z '' ]] + echo -e '\033[33;01m\nUpdate... \033[39;49;00m'  Update...  + cond_redirect update_git_repo /opt/FireMotD master + [[ -n '' ]] + echo -e '\n\033[90;01m$ update_git_repo /opt/FireMotD master \033[39;49;00m' $ update_git_repo /opt/FireMotD master  + update_git_repo /opt/FireMotD master + local branch + local path + branch=master + path=/opt/FireMotD ++ timestamp ++ date +%F_%T_%Z ++ basename /opt/FireMotD + echo -n '2021-04-08_15:28:52_EDT [openHABian] Updating FireMotD, master branch from git... ' 2021-04-08_15:28:52_EDT [openHABian] Updating FireMotD, master branch from git... + cond_redirect git -C /opt/FireMotD fetch origin + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/FireMotD fetch origin \033[39;49;00m' $ git -C /opt/FireMotD fetch origin  + git -C /opt/FireMotD fetch origin + return 0 + cond_redirect git -C /opt/FireMotD fetch --tags --force --prune + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/FireMotD fetch --tags --force --prune \033[39;49;00m' $ git -C /opt/FireMotD fetch --tags --force --prune  + git -C /opt/FireMotD fetch --tags --force --prune + return 0 + cond_redirect git -C /opt/FireMotD reset --hard origin/master + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/FireMotD reset --hard origin/master \033[39;49;00m' $ git -C /opt/FireMotD reset --hard origin/master  + git -C /opt/FireMotD reset --hard origin/master HEAD is now at 3d2bea6 fix + return 0 + cond_redirect git -C /opt/FireMotD clean --force -x -d + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/FireMotD clean --force -x -d \033[39;49;00m' $ git -C /opt/FireMotD clean --force -x -d  + git -C /opt/FireMotD clean --force -x -d + return 0 + cond_redirect git -C /opt/FireMotD checkout master + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/FireMotD checkout master \033[39;49;00m' $ git -C /opt/FireMotD checkout master  + git -C /opt/FireMotD checkout master Already on 'master' Your branch is up to date with 'origin/master'. + return 0 + echo OK OK + return 0 + echo OK OK ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:28:53_EDT [openHABian] Installing FireMotD... ' 2021-04-08_15:28:53_EDT [openHABian] Installing FireMotD... + cond_redirect make --always-make --directory=/opt/FireMotD install + [[ -n '' ]] + echo -e '\n\033[90;01m$ make --always-make --directory=/opt/FireMotD install \033[39;49;00m' $ make --always-make --directory=/opt/FireMotD install  + make --always-make --directory=/opt/FireMotD install make: Entering directory '/opt/FireMotD' cp FireMotD /usr/local/bin/FireMotD chmod 755 /usr/local/bin/FireMotD mkdir -p /usr/share/firemotd/data mkdir -p /usr/share/firemotd/templates mkdir -p /usr/share/firemotd/themes mkdir -p /usr/share/firemotd/cache cp templates/* /usr/share/firemotd/templates cp themes/* /usr/share/firemotd/themes make: Leaving directory '/opt/FireMotD' + return 0 + cond_redirect make --always-make --directory=/opt/FireMotD bash_completion + [[ -n '' ]] + echo -e '\n\033[90;01m$ make --always-make --directory=/opt/FireMotD bash_completion \033[39;49;00m' $ make --always-make --directory=/opt/FireMotD bash_completion  + make --always-make --directory=/opt/FireMotD bash_completion make: Entering directory '/opt/FireMotD' cp bash_completion.d/FireMotD /etc/bash_completion.d/FireMotD make: Leaving directory '/opt/FireMotD' + return 0 + echo OK OK ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:28:53_EDT [openHABian] Generating FireMotD theme... ' 2021-04-08_15:28:53_EDT [openHABian] Generating FireMotD theme... + cond_redirect FireMotD -S -d -D all + [[ -n '' ]] + echo -e '\n\033[90;01m$ FireMotD -S -d -D all \033[39;49;00m' $ FireMotD -S -d -D all  + FireMotD -S -d -D all 2021-04-08 15:28:53,601: FireMotD: Info: Debug mode 2021-04-08 15:28:53,621: FireMotD: Info: FireMotD action save started 2021-04-08 15:28:53,639: FireMotD: Info: Action "save" 2021-04-08 15:28:53,658: FireMotD: Info: Exportfile /usr/share/firemotd/data/FireMotD.json not found. 2021-04-08 15:28:53,677: FireMotD: Info: Template type set to all. Overwriting.. 2021-04-08 15:28:53,728: FireMotD: Info: Exploring HostIp 2021-04-08 15:28:53,842: FireMotD: Info: Exploring Release 2021-04-08 15:28:53,972: FireMotD: Info: Exploring Kernel 2021-04-08 15:28:54,061: FireMotD: Info: Exploring Platform 2021-04-08 15:28:54,217: FireMotD: Info: Exploring InstallDate 2021-04-08 15:28:54,290: FireMotD: Info: Exploring Updates 2021-04-08 15:29:02,612: FireMotD: Info: Exploring Httpd 2021-04-08 15:29:02,673: FireMotD: Info: Exploring Nginx 2021-04-08 15:29:02,733: FireMotD: Info: Exploring Mysql 2021-04-08 15:29:02,809: FireMotD: Info: Exploring Postgres 2021-04-08 15:29:02,869: FireMotD: Info: Exploring Php 2021-04-08 15:29:02,951: FireMotD: Info: Exploring Elasticsearch 2021-04-08 15:29:03,008: FireMotD: Info: Exploring Logstash 2021-04-08 15:29:03,066: FireMotD: Info: Exploring Kibana 2021-04-08 15:29:03,126: FireMotD: Info: Export system data to "/usr/share/firemotd/data/FireMotD.json" finished. 2021-04-08 15:29:03,149: FireMotD: Info: ExportFile: -rwxrw-rw- 1 root root 3232 Apr 8 15:29 /usr/share/firemotd/data/FireMotD.json 2021-04-08 15:29:03,164: FireMotD: Info: FireMotD action save finished + return 0 + cond_redirect FireMotD -G Gray + [[ -n '' ]] + echo -e '\n\033[90;01m$ FireMotD -G Gray \033[39;49;00m' $ FireMotD -G Gray  + FireMotD -G Gray + return 0 + echo OK OK + grep -qs FireMotD /home/bpsopenhab/.bash_profile ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:29:06_EDT [openHABian] Setting up FireMotD apt updates count service... ' 2021-04-08_15:29:06_EDT [openHABian] Setting up FireMotD apt updates count service... + cond_echo '\nMake FireMotD check for new updates every night... ' + [[ -z '' ]] + echo -e '\033[33;01m\nMake FireMotD check for new updates every night... \033[39;49;00m'  Make FireMotD check for new updates every night...  + cond_redirect install -m 644 /opt/openhabian/includes/firemotd.service /opt/openhabian/includes/firemotd.timer /etc/systemd/system/ + [[ -n '' ]] + echo -e '\n\033[90;01m$ install -m 644 /opt/openhabian/includes/firemotd.service /opt/openhabian/includes/firemotd.timer /etc/systemd/system/ \033[39;49;00m' $ install -m 644 /opt/openhabian/includes/firemotd.service /opt/openhabian/includes/firemotd.timer /etc/systemd/system/  + install -m 644 /opt/openhabian/includes/firemotd.service /opt/openhabian/includes/firemotd.timer /etc/systemd/system/ + return 0 + cond_redirect systemctl -q daemon-reload + cond_redirect systemctl enable --now firemotd.timer + cond_echo '\nMake FireMotD check for new updates after using apt... ' + [[ -z '' ]] + echo -e '\033[33;01m\nMake FireMotD check for new updates after using apt... \033[39;49;00m'  Make FireMotD check for new updates after using apt...  + cond_redirect install -m 644 /opt/openhabian/includes/15firemotd /etc/apt/apt.conf.d/ + [[ -n '' ]] + echo -e '\n\033[90;01m$ install -m 644 /opt/openhabian/includes/15firemotd /etc/apt/apt.conf.d/ \033[39;49;00m' $ install -m 644 /opt/openhabian/includes/15firemotd /etc/apt/apt.conf.d/  + install -m 644 /opt/openhabian/includes/15firemotd /etc/apt/apt.conf.d/ + return 0 + cond_echo '\nInitial FireMotD updates check' + [[ -z '' ]] + echo -e '\033[33;01m\nInitial FireMotD updates check\033[39;49;00m'  Initial FireMotD updates check + cond_redirect FireMotD -S + [[ -n '' ]] + echo -e '\n\033[90;01m$ FireMotD -S \033[39;49;00m' $ FireMotD -S  + FireMotD -S + return 0 + echo OK OK + java_install_or_update Zulu11-32 + local branch ++ git -C /opt/openhabian rev-parse --abbrev-ref HEAD + branch=main ++ command -v java + [[ -x '' ]] ++ command -v java + [[ -x '' ]] + [[ Zulu11-32 == \Z\u\l\u\1\1\-\3\2 ]] + [[ -n 1 ]] + java_zulu_dir + local dir + for dir in /opt/jdk/* + [[ -d /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf ]] + return 0 ++ timestamp ++ date +%F_%T_%Z + echo '2021-04-08_15:29:17_EDT [openHABian] Installing cached version of Java to ensure that some form of Java is installed!' 2021-04-08_15:29:17_EDT [openHABian] Installing cached version of Java to ensure that some form of Java is installed! + java_zulu_prerequisite Zulu11-32 ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:29:17_EDT [openHABian] Installing Java Zulu prerequisites (libc, libstdc++, zlib1g)... ' 2021-04-08_15:29:17_EDT [openHABian] Installing Java Zulu prerequisites (libc, libstdc++, zlib1g)... + [[ Zulu11-32 == \Z\u\l\u\1\1\-\6\4 ]] + is_arm + is_armv6l + [[ '' == \a\r\m\v\6\l ]] + case "$(uname -m)" in ++ uname -m + return 1 + is_armv7l + [[ '' == \a\r\m\v\7\l ]] + case "$(uname -m)" in ++ uname -m + return 0 + return 0 + dpkg -s libc6:armhf libstdc++6:armhf zlib1g:armhf + echo OK OK + return 0 + java_zulu_install Zulu11-32 + local jdkBin + local jdkLib ++ find /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin ... -print -quit + jdkBin=/opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin ++ find /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/lib ... -print -quit + jdkLib=/opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/lib + [[ Zulu11-32 == \Z\u\l\u\1\1\-\3\2 ]] ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:29:17_EDT [openHABian] Installing Java Zulu 11 32-Bit OpenJDK... ' 2021-04-08_15:29:17_EDT [openHABian] Installing Java Zulu 11 32-Bit OpenJDK... + openhab_is_running + openhab_is_installed + openhab2_is_installed ++ dpkg -s openhab2 ++ grep Status ++ cut '-d ' -f2 + [[ '' == \i\n\s\t\a\l\l ]] + return 1 + openhab3_is_installed ++ dpkg -s openhab ++ grep Status ++ cut '-d ' -f2 + [[ '' == \i\n\s\t\a\l\l ]] + return 1 + return 1 + return 1 + cond_redirect java_alternatives_reset + [[ -n '' ]] + echo -e '\n\033[90;01m$ java_alternatives_reset \033[39;49;00m' $ java_alternatives_reset  + java_alternatives_reset + update-alternatives --quiet --remove-all java + update-alternatives --quiet --remove-all jjs + update-alternatives --quiet --remove-all keytool + update-alternatives --quiet --remove-all pack200 + update-alternatives --quiet --remove-all rmid + update-alternatives --quiet --remove-all rmiregistry + update-alternatives --quiet --remove-all unpack200 + update-alternatives --quiet --remove-all jexec + return 2 + cond_redirect update-alternatives --install /usr/bin/java java /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/java 1000000 + [[ -n '' ]] + echo -e '\n\033[90;01m$ update-alternatives --install /usr/bin/java java /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/java 1000000 \033[39;49;00m' $ update-alternatives --install /usr/bin/java java /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/java 1000000  + update-alternatives --install /usr/bin/java java /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/java 1000000 update-alternatives: using /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/java to provide /usr/bin/java (java) in auto mode + return 0 + cond_redirect update-alternatives --install /usr/bin/jjs jjs /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/jjs 1000000 + [[ -n '' ]] + echo -e '\n\033[90;01m$ update-alternatives --install /usr/bin/jjs jjs /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/jjs 1000000 \033[39;49;00m' $ update-alternatives --install /usr/bin/jjs jjs /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/jjs 1000000  + update-alternatives --install /usr/bin/jjs jjs /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/jjs 1000000 update-alternatives: using /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/jjs to provide /usr/bin/jjs (jjs) in auto mode + return 0 + cond_redirect update-alternatives --install /usr/bin/keytool keytool /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/keytool 1000000 + [[ -n '' ]] + echo -e '\n\033[90;01m$ update-alternatives --install /usr/bin/keytool keytool /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/keytool 1000000 \033[39;49;00m' $ update-alternatives --install /usr/bin/keytool keytool /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/keytool 1000000  + update-alternatives --install /usr/bin/keytool keytool /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/keytool 1000000 update-alternatives: using /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/keytool to provide /usr/bin/keytool (keytool) in auto mode + return 0 + cond_redirect update-alternatives --install /usr/bin/pack200 pack200 /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/pack200 1000000 + [[ -n '' ]] + echo -e '\n\033[90;01m$ update-alternatives --install /usr/bin/pack200 pack200 /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/pack200 1000000 \033[39;49;00m' $ update-alternatives --install /usr/bin/pack200 pack200 /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/pack200 1000000  + update-alternatives --install /usr/bin/pack200 pack200 /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/pack200 1000000 update-alternatives: using /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/pack200 to provide /usr/bin/pack200 (pack200) in auto mode + return 0 + cond_redirect update-alternatives --install /usr/bin/rmid rmid /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/rmid 1000000 + [[ -n '' ]] + echo -e '\n\033[90;01m$ update-alternatives --install /usr/bin/rmid rmid /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/rmid 1000000 \033[39;49;00m' $ update-alternatives --install /usr/bin/rmid rmid /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/rmid 1000000  + update-alternatives --install /usr/bin/rmid rmid /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/rmid 1000000 update-alternatives: using /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/rmid to provide /usr/bin/rmid (rmid) in auto mode + return 0 + cond_redirect update-alternatives --install /usr/bin/rmiregistry rmiregistry /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/rmiregistry 1000000 + [[ -n '' ]] + echo -e '\n\033[90;01m$ update-alternatives --install /usr/bin/rmiregistry rmiregistry /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/rmiregistry 1000000 \033[39;49;00m' $ update-alternatives --install /usr/bin/rmiregistry rmiregistry /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/rmiregistry 1000000  + update-alternatives --install /usr/bin/rmiregistry rmiregistry /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/rmiregistry 1000000 update-alternatives: using /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/rmiregistry to provide /usr/bin/rmiregistry (rmiregistry) in auto mode + return 0 + cond_redirect update-alternatives --install /usr/bin/unpack200 unpack200 /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/unpack200 1000000 + [[ -n '' ]] + echo -e '\n\033[90;01m$ update-alternatives --install /usr/bin/unpack200 unpack200 /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/unpack200 1000000 \033[39;49;00m' $ update-alternatives --install /usr/bin/unpack200 unpack200 /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/unpack200 1000000  + update-alternatives --install /usr/bin/unpack200 unpack200 /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/unpack200 1000000 update-alternatives: using /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/unpack200 to provide /usr/bin/unpack200 (unpack200) in auto mode + return 0 + cond_redirect update-alternatives --install /usr/bin/jexec jexec /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/lib/jexec 1000000 + [[ -n '' ]] + echo -e '\n\033[90;01m$ update-alternatives --install /usr/bin/jexec jexec /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/lib/jexec 1000000 \033[39;49;00m' $ update-alternatives --install /usr/bin/jexec jexec /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/lib/jexec 1000000  + update-alternatives --install /usr/bin/jexec jexec /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/lib/jexec 1000000 update-alternatives: using /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/lib/jexec to provide /usr/bin/jexec (jexec) in auto mode + return 0 + echo /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/lib + echo /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/lib/jli + echo /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/lib/client + ldconfig + echo OK OK + java_zulu_install_crypto_extension + [[ -n '' ]] + local jdkSecurity + local policyTempLocation ++ realpath /usr/bin/java ++ sed 's|/java||' + jdkSecurity=/opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/../lib/security ++ mktemp -d /tmp/openhabian.XXXXX + policyTempLocation=/tmp/openhabian.u8Ont ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:29:18_EDT [openHABian] Installing Java Zulu CEK to enable unlimited cipher strength... ' 2021-04-08_15:29:18_EDT [openHABian] Installing Java Zulu CEK to enable unlimited cipher strength... + cond_redirect mkdir -p /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/../lib/security + [[ -n '' ]] + echo -e '\n\033[90;01m$ mkdir -p /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/../lib/security \033[39;49;00m' $ mkdir -p /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/../lib/security  + mkdir -p /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/../lib/security + return 0 + cond_redirect wget -qO /tmp/openhabian.u8Ont/crypto.zip https://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip + [[ -n '' ]] + echo -e '\n\033[90;01m$ wget -qO /tmp/openhabian.u8Ont/crypto.zip https://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip \033[39;49;00m' $ wget -qO /tmp/openhabian.u8Ont/crypto.zip https://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip  + wget -qO /tmp/openhabian.u8Ont/crypto.zip https://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip + return 0 + cond_redirect unzip /tmp/openhabian.u8Ont/crypto.zip -d /tmp/openhabian.u8Ont + [[ -n '' ]] + echo -e '\n\033[90;01m$ unzip /tmp/openhabian.u8Ont/crypto.zip -d /tmp/openhabian.u8Ont \033[39;49;00m' $ unzip /tmp/openhabian.u8Ont/crypto.zip -d /tmp/openhabian.u8Ont  + unzip /tmp/openhabian.u8Ont/crypto.zip -d /tmp/openhabian.u8Ont Archive: /tmp/openhabian.u8Ont/crypto.zip creating: /tmp/openhabian.u8Ont/ZuluJCEPolicies/ inflating: /tmp/openhabian.u8Ont/ZuluJCEPolicies/LICENSE inflating: /tmp/openhabian.u8Ont/ZuluJCEPolicies/README.txt inflating: /tmp/openhabian.u8Ont/ZuluJCEPolicies/DISCLAIMER inflating: /tmp/openhabian.u8Ont/ZuluJCEPolicies/local_policy.jar inflating: /tmp/openhabian.u8Ont/ZuluJCEPolicies/US_export_policy.jar + return 0 + cond_redirect cp -u /tmp/openhabian.u8Ont/ZuluJCEPolicies/local_policy.jar /tmp/openhabian.u8Ont/ZuluJCEPolicies/US_export_policy.jar /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/../lib/security + [[ -n '' ]] + echo -e '\n\033[90;01m$ cp -u /tmp/openhabian.u8Ont/ZuluJCEPolicies/local_policy.jar /tmp/openhabian.u8Ont/ZuluJCEPolicies/US_export_policy.jar /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/../lib/security \033[39;49;00m' $ cp -u /tmp/openhabian.u8Ont/ZuluJCEPolicies/local_policy.jar /tmp/openhabian.u8Ont/ZuluJCEPolicies/US_export_policy.jar /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/../lib/security  + cp -u /tmp/openhabian.u8Ont/ZuluJCEPolicies/local_policy.jar /tmp/openhabian.u8Ont/ZuluJCEPolicies/US_export_policy.jar /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/../lib/security + return 0 + echo OK OK + cond_redirect rm -rf /tmp/openhabian.u8Ont + [[ -n '' ]] + echo -e '\n\033[90;01m$ rm -rf /tmp/openhabian.u8Ont \033[39;49;00m' $ rm -rf /tmp/openhabian.u8Ont  + rm -rf /tmp/openhabian.u8Ont + return 0 + openhab_is_installed + openhab2_is_installed ++ dpkg -s openhab2 ++ grep Status ++ cut '-d ' -f2 + [[ '' == \i\n\s\t\a\l\l ]] + return 1 + openhab3_is_installed ++ dpkg -s openhab ++ grep Status ++ cut '-d ' -f2 + [[ '' == \i\n\s\t\a\l\l ]] + return 1 + return 1 + [[ Zulu11-32 == \A\d\o\p\t\1\1 ]] + [[ Zulu11-32 != \A\d\o\p\t\1\1 ]] ++ java -version + [[ openjdk version "11.0.10" 2021-01-19 LTS OpenJDK Runtime Environment Zulu11.45+27-CA (build 11.0.10+9-LTS) OpenJDK Client VM Zulu11.45+27-CA (build 11.0.10+9-LTS, mixed mode) == *\A\d\o\p\t\O\p\e\n\J\D\K* ]] + [[ Zulu11-32 == \Z\u\l\u\1\1\-\6\4 ]] + [[ Zulu11-32 != \A\d\o\p\t\1\1 ]] + cond_redirect java_zulu_update_available Zulu11-32 + [[ -n '' ]] + echo -e '\n\033[90;01m$ java_zulu_update_available Zulu11-32 \033[39;49;00m' $ java_zulu_update_available Zulu11-32  + java_zulu_update_available Zulu11-32 ++ command -v java + [[ -x /usr/bin/java ]] + local availableVersion + local filter + local javaArch + local javaVersion + local jdkBin + local link + local requestedArch ++ command -v jq + [[ -x /usr/bin/jq ]] + filter='[.jdk_version[] | tostring] | join(".")' ++ find /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin ... -print -quit + jdkBin=/opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin ++ /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/java -version ++ grep -m 1 -o '[0-9]\{0,3\}\.[0-9]\{0,3\}\.[0-9]\{0,3\}[\.+][0-9]\{0,3\}' ++ head -1 ++ sed 's|+|.|g' + javaVersion=11.0.10.9 + link='https://api.azul.com/zulu/download/community/v1.0/bundles/latest/?os=linux&ext=tar.gz&javafx=false' + [[ Zulu11-32 == \Z\u\l\u\1\1\-\3\2 ]] + is_arm + is_armv6l + [[ '' == \a\r\m\v\6\l ]] + case "$(uname -m)" in ++ uname -m + return 1 + is_armv7l + [[ '' == \a\r\m\v\7\l ]] + case "$(uname -m)" in ++ uname -m + return 0 + return 0 + requestedArch=aarch32hf ++ curl -s -H 'Accept: application/json' 'https://api.azul.com/zulu/download/community/v1.0/bundles/latest/?os=linux&ext=tar.gz&javafx=false&jdk_version=11&arch=arm&hw_bitness=32&abi=hard_float' ++ jq -r '[.jdk_version[] | tostring] | join(".")' + availableVersion=11.0.10.9 + [[ -z aarch32hf ]] + [[ -z 11.0.10.9 ]] + [[ /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin == *\a\a\r\c\h\3\2\h\f* ]] + javaArch=aarch32hf + [[ /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin == *\i\6\8\6* ]] + [[ /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin == *\a\a\r\c\h\6\4* ]] + [[ /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin == *\x\6\4* ]] + [[ 11.0.10.9 == \1\1\.\0\.\1\0\.\9 ]] + [[ aarch32hf == \a\a\r\c\h\3\2\h\f ]] + return 1 + return 1 ++ command -v java + [[ -x /usr/bin/java ]] + cond_redirect java -version + [[ -n '' ]] + echo -e '\n\033[90;01m$ java -version \033[39;49;00m' $ java -version  + java -version openjdk version "11.0.10" 2021-01-19 LTS OpenJDK Runtime Environment Zulu11.45+27-CA (build 11.0.10+9-LTS) OpenJDK Client VM Zulu11.45+27-CA (build 11.0.10+9-LTS, mixed mode) + return 0 + openhab_setup openHAB3 stable + local introText + local successText + local repo + local openhabVersion + [[ openHAB3 == \o\p\e\n\H\A\B\3 ]] + ohPkgName=openhab + [[ stable == \u\n\s\t\a\b\l\e ]] + [[ stable == \s\t\a\b\l\e ]] + introText='You are about to install or change to the latest stable openHAB3 release.\n\nPlease be aware that downgrading from a newer unstable snapshot build is not officially supported. Please consult with the documentation or community forum and be sure to take a full openHAB configuration backup first!' + successText='The stable release of openHAB3 is now installed on your system.\n\nPlease test the correct behavior of your setup. You might need to adapt your configuration, if available. If you made changes to the files in '\''/var/lib/openhab'\'' they were replaced, but you can restore them from backup files next to the originals.\n\nCheck the "openHAB Release Notes" and the official announcements to learn about additons, fixes and changes.' + repo='deb https://dl.bintray.com/openhab/apt-repo2 stable main' + [[ stable == \u\n\s\t\a\b\l\e ]] + [[ stable == \s\t\a\b\l\e ]] ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:29:22_EDT [openHABian] Beginning install of latest openHAB3 release (stable)... ' 2021-04-08_15:29:22_EDT [openHABian] Beginning install of latest openHAB3 release (stable)... + [[ -n '' ]] + echo OK OK + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + [[ -z '' ]] + add_keys 'https://bintray.com/user/downloadSubjectPublicKey?username=openhab' + local repoKey ++ mktemp /tmp/openhabian.XXXXX + repoKey=/tmp/openhabian.Xo55i ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:29:22_EDT [openHABian] Adding required keys to apt... ' 2021-04-08_15:29:22_EDT [openHABian] Adding required keys to apt... + cond_redirect wget -qO /tmp/openhabian.Xo55i 'https://bintray.com/user/downloadSubjectPublicKey?username=openhab' + [[ -n '' ]] + echo -e '\n\033[90;01m$ wget -qO /tmp/openhabian.Xo55i https://bintray.com/user/downloadSubjectPublicKey?username=openhab \033[39;49;00m' $ wget -qO /tmp/openhabian.Xo55i https://bintray.com/user/downloadSubjectPublicKey?username=openhab  + wget -qO /tmp/openhabian.Xo55i 'https://bintray.com/user/downloadSubjectPublicKey?username=openhab' + return 0 + cond_redirect apt-key add /tmp/openhabian.Xo55i + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-key add /tmp/openhabian.Xo55i \033[39;49;00m' $ apt-key add /tmp/openhabian.Xo55i  + apt-key add /tmp/openhabian.Xo55i Warning: apt-key output should not be parsed (stdout is not a terminal) OK + return 0 + echo OK OK + rm -f /tmp/openhabian.Xo55i + rm -f /etc/apt/sources.list.d/openhab2.list + echo 'deb https://dl.bintray.com/openhab/apt-repo2 stable main' ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:29:23_EDT [openHABian] Installing selected openHAB3 version... ' 2021-04-08_15:29:23_EDT [openHABian] Installing selected openHAB3 version... + cond_redirect apt-get update + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get update \033[39;49;00m' $ apt-get update  + apt-get update Hit:1 http://davesteele.github.io/comitup/repo comitup InRelease Hit:2 http://raspbian.raspberrypi.org/raspbian buster InRelease Hit:3 http://archive.raspberrypi.org/debian buster InRelease Get:4 https://pkgs.tailscale.com/stable/raspbian buster InRelease Ign:5 https://dl.bintray.com/openhab/apt-repo2 stable InRelease Get:6 https://dl.bintray.com/openhab/apt-repo2 stable Release [6,051 B] Hit:7 https://deb.nodesource.com/node_14.x buster InRelease Fetched 10.1 kB in 2s (4,263 B/s) Reading package lists... + return 0 ++ apt-cache madison openhab ++ head -n 1 ++ cut '-d|' -f2 ++ xargs + openhabVersion=3.0.1-2 + cond_redirect apt-get install --allow-downgrades --yes --option Dpkg::Options::=--force-confnew openhab=3.0.1-2 openhab-addons=3.0.1-2 + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get install --allow-downgrades --yes --option Dpkg::Options::=--force-confnew openhab=3.0.1-2 openhab-addons=3.0.1-2 \033[39;49;00m' $ apt-get install --allow-downgrades --yes --option Dpkg::Options::=--force-confnew openhab=3.0.1-2 openhab-addons=3.0.1-2  + apt-get install --allow-downgrades --yes --option Dpkg::Options::=--force-confnew openhab=3.0.1-2 openhab-addons=3.0.1-2 Reading package lists... Building dependency tree... Reading state information... The following package was automatically installed and is no longer required: triggerhappy Use 'apt autoremove' to remove it. Suggested packages: default-jre | java11-runtime | java11-runtime-headless The following NEW packages will be installed: openhab openhab-addons 0 upgraded, 2 newly installed, 0 to remove and 22 not upgraded. Need to get 0 B/296 MB of archives. After this operation, 307 MB of additional disk space will be used. Selecting previously unselected package openhab. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 45625 files and directories currently installed.) Preparing to unpack .../openhab_3.0.1-2_all.deb ... Unpacking openhab (3.0.1-2) ... Selecting previously unselected package openhab-addons. Preparing to unpack .../openhab-addons_3.0.1-2_all.deb ... Unpacking openhab-addons (3.0.1-2) ... Setting up openhab (3.0.1-2) ... [openHAB] Please use the following commands to launch openHAB on a system restart. sudo /bin/systemctl daemon-reload sudo /bin/systemctl enable openhab.service [openHAB] You can start openHAB manually by executing the command: sudo /bin/systemctl start openhab.service Setting up openhab-addons (3.0.1-2) ... Processing triggers for systemd (241-7~deb10u6+rpi1) ... Updating FireMotD available updates count ... + return 0 + echo OK OK ++ id -g bpsopenhab + gid=1000 + cond_redirect usermod -g openhab bpsopenhab + cond_redirect usermod -aG 1000 bpsopenhab ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:30:13_EDT [openHABian] Setting up openHAB service... ' 2021-04-08_15:30:13_EDT [openHABian] Setting up openHAB service... + zram_dependency install openhab + local zramServiceConfig=/etc/systemd/system/zram-config.service + local install=yes + [[ -f /etc/ztab ]] + return 0 + cond_redirect systemctl -q daemon-reload + cond_redirect systemctl enable openhab.service + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl enable openhab.service \033[39;49;00m' $ systemctl enable openhab.service  + systemctl enable openhab.service Created symlink /etc/systemd/system/multi-user.target.wants/openhab.service → /lib/systemd/system/openhab.service. + return 0 + echo OK OK + openhab_misc + is_arm + is_armv6l + [[ '' == \a\r\m\v\6\l ]] + case "$(uname -m)" in ++ uname -m + return 1 + is_armv7l + [[ '' == \a\r\m\v\7\l ]] + case "$(uname -m)" in ++ uname -m + return 0 + return 0 ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:30:14_EDT [openHABian] Optimizing openHAB to run on low memory single board computers... ' 2021-04-08_15:30:14_EDT [openHABian] Optimizing openHAB to run on low memory single board computers... + has_lowmem + local totalMemory ++ awk '/MemTotal/ {print $2}' /proc/meminfo + totalMemory=3919132 + [[ -z 3919132 ]] + [[ 3919132 -lt 900000 ]] + return 1 + cond_redirect sed -i -e 's|^EXTRA_JAVA_OPTS=.*$|EXTRA_JAVA_OPTS="-Xms192m -Xmx320m"|g' /etc/default/openhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ sed -i -e s|^EXTRA_JAVA_OPTS=.*$|EXTRA_JAVA_OPTS="-Xms192m -Xmx320m"|g /etc/default/openhab \033[39;49;00m' $ sed -i -e s|^EXTRA_JAVA_OPTS=.*$|EXTRA_JAVA_OPTS="-Xms192m -Xmx320m"|g /etc/default/openhab  + sed -i -e 's|^EXTRA_JAVA_OPTS=.*$|EXTRA_JAVA_OPTS="-Xms192m -Xmx320m"|g' /etc/default/openhab + return 0 + echo OK OK ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:30:14_EDT [openHABian] Setting openHAB HTTP/HTTPS ports... ' 2021-04-08_15:30:14_EDT [openHABian] Setting openHAB HTTP/HTTPS ports... + cond_redirect sed -i -e 's|^#*.*OPENHAB_HTTP_PORT=.*$|OPENHAB_HTTP_PORT=8080|g' /etc/default/openhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ sed -i -e s|^#*.*OPENHAB_HTTP_PORT=.*$|OPENHAB_HTTP_PORT=8080|g /etc/default/openhab \033[39;49;00m' $ sed -i -e s|^#*.*OPENHAB_HTTP_PORT=.*$|OPENHAB_HTTP_PORT=8080|g /etc/default/openhab  + sed -i -e 's|^#*.*OPENHAB_HTTP_PORT=.*$|OPENHAB_HTTP_PORT=8080|g' /etc/default/openhab + return 0 + cond_redirect sed -i -e 's|^#*.*OPENHAB_HTTPS_PORT=.*$|OPENHAB_HTTPS_PORT=8443|g' /etc/default/openhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ sed -i -e s|^#*.*OPENHAB_HTTPS_PORT=.*$|OPENHAB_HTTPS_PORT=8443|g /etc/default/openhab \033[39;49;00m' $ sed -i -e s|^#*.*OPENHAB_HTTPS_PORT=.*$|OPENHAB_HTTPS_PORT=8443|g /etc/default/openhab  + sed -i -e 's|^#*.*OPENHAB_HTTPS_PORT=.*$|OPENHAB_HTTPS_PORT=8443|g' /etc/default/openhab + return 0 + echo OK OK + create_systemd_dependencies + local targetDir=/etc/systemd/system/openhab.service.d ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:30:14_EDT [openHABian] Creating dependencies to jointly start services that depend on each other... ' 2021-04-08_15:30:14_EDT [openHABian] Creating dependencies to jointly start services that depend on each other... + cond_redirect mkdir -p /etc/systemd/system/openhab.service.d + [[ -n '' ]] + echo -e '\n\033[90;01m$ mkdir -p /etc/systemd/system/openhab.service.d \033[39;49;00m' $ mkdir -p /etc/systemd/system/openhab.service.d  + mkdir -p /etc/systemd/system/openhab.service.d + return 0 + cond_redirect rm -f /etc/systemd/system/openhab.service.d/override.conf + [[ -n '' ]] + echo -e '\n\033[90;01m$ rm -f /etc/systemd/system/openhab.service.d/override.conf \033[39;49;00m' $ rm -f /etc/systemd/system/openhab.service.d/override.conf  + rm -f /etc/systemd/system/openhab.service.d/override.conf + return 0 + cond_redirect cp /opt/openhabian/includes/openhab-override.conf /etc/systemd/system/openhab.service.d/override.conf + [[ -n '' ]] + echo -e '\n\033[90;01m$ cp /opt/openhabian/includes/openhab-override.conf /etc/systemd/system/openhab.service.d/override.conf \033[39;49;00m' $ cp /opt/openhabian/includes/openhab-override.conf /etc/systemd/system/openhab.service.d/override.conf  + cp /opt/openhabian/includes/openhab-override.conf /etc/systemd/system/openhab.service.d/override.conf + return 0 + echo OK OK + cond_redirect systemctl -q daemon-reload + [[ openHAB3 == \o\p\e\n\H\A\B\3 ]] + dashboard_add_tile openhabiandocs + local application + local dashboardConfig + local ipAddress + local openhabConfig + local tileDesc + local tileImg + local tileURL + application=openhabiandocs + openhabConfig=/etc/openhab + dashboardConfig=/etc/openhab/services/runtime.cfg ++ ip route get 8.8.8.8 ++ xargs ++ awk '{print $7}' + ipAddress=192.168.1.17 ++ grep '^[[:space:]]*tile_desc_openhabiandocs' /opt/openhabian/includes/dashboard-imagedata ++ sed 's|tile_desc_openhabiandocs=||g; s|"||g' + tileDesc='openHABian Help' ++ grep '^[[:space:]]*tile_imagedata_openhabiandocs' /opt/openhabian/includes/dashboard-imagedata ++ sed 's|tile_imagedata_openhabiandocs=||g; s|"||g' + tileImg='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAV4AAADKCAMAAADaddjJAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABCFBMVEX6+vz7+vz7/Pz39/rz8/Xl5eXz7u/V2Nuoqaqss7rBvLvt7e/t7vH58/Pl29nh4+fx8fL4+Pjo6On129WyuL7DyMz0zcL45eD7y7P56+j46+j45ODk5uqXl5j/3MXvmH7yuqnyrZjvm4Lwn4bur5zQzs/p4t+2vMPZ3OHf3+DN0dbv8PG9wsjc3+Pe4eTJzdLn6e3r7fDiu7D+7eLvt6frzcbwo4zb3uGkrLObpKzmo47Zvrf+59j/1Ljq6uri4uL09PXx8vTy8/afqLCIk5yEjpeOl6GUnaZ7hpHw7e319vj7rnr8l1P/8+v/4c3/yqf/w5v+uIr9sX/8oGPn6ert7/D/vpP///94KvEMAAAAAWJLR0RXfQrZHwAAAAd0SU1FB+QHGhcQDeGfQ8YAAChlSURBVHja7X2LYqNIkiCFsztNYwolrezrmVN7e3YXI0FOMnXeHcEdAtSuKs/2jJBrzrf//ykXkclTdlm4XvIrLCMeCUJBKN4RaRgAr169MoZgmkdH5pHxGOBIvfqbe+Ebf7NXBvnu++E9m6ZpmN/0Jj4RgBDgVhusDtePPvIN7oHeo3vuv/UoPbaOfxhQsGm/OjlyHOe1O2EHQ91eYISZxhEBHCMygR6OjnbXb8PwxxB/A+1HvdOPeqOQ+IzbHxNeeYcZ0GPvx++n3PnxJ+d//PyHP/z0x+9//p/W99Zsatm/HPND4/DjQMaMARSQkxYPJwotwPpqTMCx3mAk/WYorAwew9FJg7+jZpB5tIPfE6J4Kux9RbpDU3r6L7/axz/+6ddf//Tzn/71X//t33/991+Of6G//OL/8svxoZH4cWDGGbX3jEEK4wGfL8IItlwRzueLecjnf57POaIi5HRBpU1huaB8EfIFpTM8cc7nIqZkMZ/PPcRqHM4lDefh/C9zGnIPkX0kOP/zXM5Dw4gAr8YJ97kI+RsxP5q53bOf/q8/nf/6H8f/+etPf/3rj3/9l1//9Nfz/zi2j48Bt8fhsXNoLH4Uu8yg3y33jQL0CisIAkvChowDESTwL4I0CJD4Yn8aBBxH4G5YBME0xB837LICQQNLBKFC75/hsAY8HdF7Yunt0Diy8VFJEUwDjntO+uj98X//wTD+z7HzE+D317Mff/3xp+9/9J2Qf/c9n07pobF4B34N4r7eMwapdyblnxcBUi+hJ3I2+8sbCXukIlKXntHX8PrujJ599xpWz+h3SK3GyQkMspn0TmZvkJ//ZSFnJ7A+W8C/6+Ojgc3FTM4WnvocEKsL154dzRZzaR71GJfzw5TGxy6uZbYLID33u+++/w7B/eOhkfh50PLA+h2FktkTbKer1c+rlVr8XP+tTm88In3yK3W+OpmZ5u4Y02z2He0IPeJPf2iZmNIUiNLMmMk+ojc8DHUCNYeIwZIwwyTEJEcE1xlBYGp9r3bJ8MWMZvnq1dGr/R/82aDQa5ofu7uHgV6jpaZm3WzezTuUp7vg1U0b63NgMskn8E9dl4L0tGleLGHldTg7ySMvyllu44gSVvLJGpcEx09sEuVRTkg0ATqZTAj8TXBVval9/R31mPbYFxx/EsEC/qMIdkUn6n4iva3gexLden0YcaI29aI9HJGTW8fD6BMbLrd7PzD85NbrqzcjV0ATgONE+GkcTqfJVBxT27M9Ly9sPSAv9LLI6x3wxvA+9Mc1UK+TnfdJb8wXHk/wIbffR6OywW6uvz657fpED/h+9/ok+v728fqR3Pi+zSO69f4d0G7YZAJEWcgz17PtZT4BTBaui4yrBCCsVMBYjkMBpayc4CnswfCHhwwMgagl0xusvwvAaRawq+wGHPrGHwf0EFZjlQzwS/pHkWbLZveh7/xRgMYXqXGHLIPtQsnKwUMoyQv5jgXErsOKZbikvmQx50vOKdgrRS6XElaWy7BFLy71qlre52MIvszIMKU0TW94yBz4ZmR9X/wOb4LJ0DT4zTQi5Q8wtJfgYCjceR8cU0hbxkKA7S1jwQvLSkQynQphWco+Fx1C9RIX5T7sRsDJQTExAEkkB2vcmAtDpEaYBhfe3LSZAbJdjxQUXzAuigxi24mBpxmBBaK93mvoy8BzUO9vDJ/j68IyxIUVGIY15Yb5xqDafmee8W2BGR+3A2q0LQtUHpiUOSsAgHyXOVAw/heNQHNYj4j3UC+3Ejexkhk8I5oG8D8PLDNJPP8iTqSwAceplWj8BpZMqZxa8wtOEyEtN0kAT6klUh/O9iyL4xgLTriADdAdLe4n1BLeRWIGAZ8aRsINBkcuUs6NgKaI8W8J9IeY+gBnZ/EPsR+7mj5q1LMhZzV6GoTRMl9HcWC1VraIvusjU9MPUsKtt9OUW+YxfSsuAvruvYjTAFAjxSVNDUsarjCNIIUtGlzOE99LuJdM0yTgNKBCmO+s1Lq0gJ4TI+CpEQTvpqkQb6w45fB++d4PEssCAg8S/g5+c5QKI/Et43iMI/gLovf4mB8fH08prBwfJ2d9Xtehtiwnu6pC3uK3Xjg9WXfnRyZzIVIaiDSUNDAvwsBYTC2+OOZTN42tC576CaKXeIo5BHHqX3pAxG4qLJ5I244Avb6Zchmm0jNI6iX+e0B+Sj0RRkksDC4u5r4FzyEFjmGnAo8IeHCpn7rpt48Stvx3By+KeJ2S7Shot+gOZcsbFBnf/XG2JaJ0Kkw65Z40Y48aEfUNI6TWlBKgVWFTYx7ph+8Z0uMBl7AzEF5IeACSah5J25ABN+IpCDsa8Og9bIRBKOURtaUhkdNSbgUucqLY8IP5m6krBKfvg/k3x+7H0e50zHQAeQ+5bFdz2IteBOuL3igZeTkQoQ8I+ohF5pAjczB7uC1b9DuN5qB5795LR1/2Tkcy1IcV30YU0nBZUFGECVVK79IrLO6FVISyQ3G7VDoErD8cn+RDBsSXeJteXqbp23fpu7dpevl2ypP04jJ9+7fL3BzitmUPY6j3BTRzWPIQZEIgOCw5FzEtghjMCdjKG22hU95a3vuC3xFQ3qUymLU6Vva0X/26r1H8XKEjyI+B01ceNIphkdNvq7s/UviYzlsO3ssaqU6r+p7xF/SOgJ7Su2sLNwZc2VhtZbfhUD6567KxL8Hy5ouIEFvaGEUxzXk8MyISgU1AJMVd6MExbD8ink0i1yWGa0cYpKEMIzV2ZDNDRpEdGSyKcGF6NDJsSk5sRkwSmYYtI9eXEbG9iJHwBHfidSN3JqUfgk0oI0OHfYhp4IWplxP03MHVDClZ6GKA2WZu4XmwX5oeHCDoMyAzj+TKj0SpbcDC0Jfx4JYx1OS5cGQMehVy8zOMpskwL5Yq9BbikhV5vi5L1lMX2qWzh3qpLyzhWWIKAjIRlgUiU3Lh21YgwD5D75wVeFQEAU8CjwsQpFMrkPDOwXYWHo/hkAWydYqbhFvC8uIpjJvCyRacjaJ45sPF8APwfB7BBl5RJAFefjoNTBdTbKbw4fBhEQlwLEpsD+T2ifDB6rZEbKsrWJh44/ozuA4PCEexPoWbpxIWgSBgqRcwxhcqUQeOiCCZijGeI7ZGYoTLACaSwMKvLySoD3ANTA2y+K7eW1Py2d3Ua9teKIFIYwqadAgU4PmRDQTJqeu7Nl240peGHbozP6bEDReuCIBCwNKlMCIkVFLp+pz60qc2bPpeaFIweBfhjFAuXUnDkNq+j6OBJD25oAasGDMq4BxXegugXvzhUAT8MI/5YE8v6IyLyBe+Cb8uGVMw1HGAB2Oo5S3owvNDai78eI6nuTYJqVzYkR+6BL4PjpTSXfjw+T6lI6kXbTUK3yNWL7jvyWu6pOHZcgmff9a3LJwWw+Xru9F7E/awans/K/8y9hjpG5P9S9of2f9ZwDT5sjUoYaZ5q+qw7ptsZa1KFDz/UrfwreAQ5vJAbVjvKA61A71vsjX7F/y/7lJ8o6OISE+lGkTMIHkkbZBP5E1ku3K+8EMzUsc8L/IwFSSihM5yAiQceaZJWAwCzZUg3CIKLMUHYUWk7WFehheZFAQQMXM4CNLIRVFjgAAk8MO1Z7BhmzbxTuDaEXAoOGCjaLKjyJQ2tWcU5V9EThgIRhpFzKQmpSqFAQQriCs8i0SSRBRuOZLyc9FbY2xtqoyyvoVWdh5erZZ1vh3kvXf9mglKCxBIKNWChYtpnfMQpRWKnSlIHA/4uo8iKdD8HgRQAHaj8L2AepaXXCRpkCZJIjG/5ZK73EqUGQnSD4ZZNlfBq0QqERjkKikU2PxFalmplyTvrTS1AjDtL94nQUKURMPzAspRTqKBKiV8LlxNRFqKJh63ghiFXwBiWXK8ISsI4s9Dr9YGpIeRnxzpt8cFWhdkn27rA3eLtggkTLiY+yCjKZV2DOLAk6FY+CAZZiB25pFH5yA+pAQpBEtK44USMRKkmhdH3Oe+G1IrISCGOJ8TkJEwTIASwX2QK8zFjC0ZEhtEIMgYHyUcfCilIvYjzIPmfhxyEF2czmKGkmsBwsgHCUUw28uL/BPp+/MQdplytghlSIkdzkEKysViHodsQWEfplZ/nt9PYwtuC3URr3WWl2Vn/A403oYJ03Gi7fNsD0Lu3v4M+EaMWOHKzJVyQvMdyi13UNux4herbRyUfZfDmrEhvbYWcevNacj37L6K2fOEmkCdob+hs84GoaAe+b6gdxT0FDGz/u+JNY3Rkg2pGhH8+vHpvYcA/WMvOA9lwZeYQqLx1znRO5dDE2jDXa/F5NC3vgsPK8qmgakIZmGhm8KaYuFRPjQjnB7dNqTLGPuaou130MEMipURKlGK/W5GEl1hoDlIGZmRCVYFIwsKdg1Z5+s15qVh7loEr4h65gJLQ47ABMmJYbsYVoF3Yuemaa5xPYrm1DRMNC7AgpBz9+uhtxZfQLWeXBYSqXdIrp2a1ld7na/JeyNqCQP1e4EuN8YtCivK22WheysIPSSGqTUNORgCYL8EYCug0aDG0MLiyiQA20bYHMyWXFqE4xbo4Z5MhLIjKJgUXDvwvqIOxG6HXk4kY228razZRumUI/XeTwPQ+MGQwJwQ36K2FajAn0/BCERfIRgeiB0+x70CLS6fCeVVFAHQvSf10+BmLHiEliETFoETlG4f0YCj700Zcvi0/H11nZ+H3huhirLBZu28aRzoA3x/C71XFU3hLxt/9WoDy8GavVj4Q/BN7cAhR009kGmSurIJ1omhSrrRIjHXv5t4rhoW4RHza0dk+2pv1KXm1DKtHDgi9R5NyA9FMXuI8qwHmjbzEM1/zgWt3Q69AFwfw51j5wW9owCRtWZSiAQDNoIPTAunl7fXYVxpEy967yjQqFvnufQACm/d13fLIWbLJr+3RE35v14SHfZD2TOI0WRbm7X3oSZeZ2hTtJraE3DpfAu+8ndNmWv9v24cO4wNVIqWeFtSHsN7zTfEdu3QU9+EKG9i1PT3YGSmkpxBhs99eP/NNFw/h4HEwxH5UdS7Sr2GMfQGLRIdsRgpd72mxt3DcfJNizpTlcXYKqra7MT4o+capq10DDhftR1g+LlwNNI3Z/6Gad11VA4jF8bRpz6Kf5SdFDMBsb+vy3KNxFs2qm7Zmsi9Gqw9ei/GsrWSb6HaPxUeRStB5DH3bZXJBvooqLQBKLUXFynlwrKsC8tKMHiRWJakb5SiS7gfK4NiOpfKZAj8SGm7Pmz5BPRXqkIc6KxGrResCDwxCLjvzeudGDwXNsVPlAaI7xMMUUw9jI0ENsE4B9wtHhWx8EKdZoeKs4t6Mre5DvWLTwsL/WODuPtjdVadZdXqp9V2e/WfWZXdMC3Kkg1E293MwcRswHgee77P8d6o7Yt4TrnncuoGMYbA4UvIWYCRGOG/wbgQDLTSqeWDEfae0jCcw/dE4wIuAViUJ3AVn09jgtmFsU/noc9o7Ea+FDQCQ4HjMJuHZhiGPvd4NOcBnkhpHIJ5gViLbcyRB4sYd4R87nPKwkWMB10fbtin8OzgumHI1UbIYx9j+WCETPmntQ35h8LZ2Yd/fvj7hyv4g/erv//zatdJ1jmAx/p72bgjg19dtNDvtBtiDp8iMUZGQMYNZLuDP3LKyacWc/1jgvj6Y/VzlWVnWX6WV0DI2R/XA7dOS8ZOS8kPRe994PB/nYbtmi0jWJtrbULUbNdpAsU9p9mL3jsKsibsruSZNjLW5tADOfT5Plh/70MEjT6MwTOjFWZ5w2idYUCoxzG+rt772SrpJ13gKyjCGo/SonQJIvI1CNoiD6e0V8fWGcU9FXivv/d3M/IJYRHoseQEVNMQVAftyrZp5EUmA5mFui0MUUoxI3OeExPzZSTopR42a4PRJhyfSzcMBSimmCKKuaSo/pKIeqq9E4MtAsrt3BNKsf4Nrv4G83gkdmdCbfY3+JKgvqKiHCnXWWSaxPPQJW948nfTdCXIONCIzd9MT5robwPN8ssUx9XoDYJkak2nlgXK3zLmYQ+Tg2BFOdLfSy9NKlXCJui3oMzaArRZ2J6m1kUQJhdWksJfshBJklgUxiSwz7qAG4D9Pk+tNE1kAAdhEKy+T97bSlH1tF83PuGYZBrwN6gTo9sdE4L83EZHL/W1xq217sVcnRJjGo+NHnpsChdrF7LSbXmOez2V6KM97Ry1R/FFfp01P8i94poW17n8f5PXOZa/9urYWoPY6THjPcyBzE0vnPtUwrfl85CbIabgUh4Ec+FL0FEBj6CvL8TU5zGhqGfy0EqDAPThANNxwP54w6cJHogpB4TlnMvYByLkYuHHJvzMYNMzQYX1QxnaISiznuEJOhfSk7GYU98PMak4AgPCxyRYzEIVIWYZgwoOzyD2ZSxt6kuDwkUJ/HbhEYRwH9KjMve8L+JSuaUms7xV0S173BiZww8jNYePMTRTmUGDZxTd0C4P5Nf4cs6qtmxiAJ0tMYjJdysg2l4UsxFQU6cKU+QtFtu8yP6OxqWjCHm5V3PweIgBmAjb5EUzz3P98ASdMlh1QahUUiaC9eh3wmeEeRF2tTQNWwWCQewQG0sxdB0GSDgM6pAjrKNwpcttg0VHno15rCC+UOC5xI1M27OpZ6t0Urj6kfYj0RDEpcpTpTl10WkEvxJX9ekz4Jwjk3neEfk6ITdNpZOAAqMSYK6Hk0ZDcBr/Qr+4otUf9mgO9L1BfJAhkipposSPhRFc353PVRAY8zwxUiuEb/joAbIxSCmmU2CSU9+eomfBjbl2y/hwBZRtWv4kIqEuBnkXsB/DkZ4PoyxMbaV0qoRWgFxflXJw2/ctHIQiS4JgQ+eNj/UcQdOARSjx+1V6kWp0FVizgbdoYSFmg0XnhnHRZens4b2gFhm2C4Jl5oswXmA1xAJkEKceCaWPKadTwRdYoRCCHgZqWEiBTF0b5JgNsogSQHXs2pgzSjGnl7oho7EIfUltlESuyyX14SdBBXUFAQlFOcVaDPhdgPgKfGzJ69mcSg7UC2KOxtz1XZ/6YYzpridATiHWZpCFj3mrcEtfhXx1KHhSTvL1BMuBJq0U62rY2KDnQ1mbFWMTXz/Su8Ier8Tne/jQjcNH3h0Hd+GrNqrvqHPN+qUVA+3BYR0J12WZ+3nvCxi3KGZlybreIz1nWWNSjMpOf4EaEGNrlsu17pbRaWVdwlMXy2zyHWCl8B/ylAAPBjRGpeAxuuh50ZNjfZO4XW2YyfKHyaFv/TFAE5jE6A2oKkWd9LTeyeLr5No9Qpkv0CRB5WwNL4BOrLFeOLMl27YC4AW9o2Dod6xRuh4kqLcKQz/2tnxB7xhgO2jc2aitY2fg7MW3s7G894EngX1l0CSZL9HfkOvCq+XZpMxzmrNJ3mkNTb5DHcx0zvhdMy4Qi8uA8oVh0+AkCF13wenMpVw+N21Dk2YR8BDNYvQ7nGFmQhAHWF0K22c7ZVg1ooE53IUqPr1M0/RyMb0IpPDRd55iDevFA55k5KuAVnZzTPXQud5BrtJUwrovVHg2FHYNe9jjTrcXMWZwELnwDLoIF7MFpe6M7p3i56lBTZJ5PtElQsV1Y7g1cNOd82K1jQbWbzMwkG5l3yLuPGd1zO2r1lY8HWC3wiBVurGW29R/59vUVjwF0AhbyyKf5NfF5Bq4hMz7ZkXZct5BzG20Yva8QWNO8iDBdkuF6t201DMo9MJtZc+voy2M/WZFtdqwTeawzcZ5sFO+fXXQ6M1Vkw9BJxgvx/qVhlydXuae0ncb/ruHeul7Y7W62l592G6vADaH/pqHgibPQTMETJ1uqq/K4XIg6bB31OSuyxJpZJvV6fZ0ta2qavVsyfeGA6dmsM4gXlFnPg2xfuhbfwzQE11Dv26jNjQobo81Ac4X9I4AjbJ8Wep6n0nHcMtd7tAZFar79D7IVhnLNllmrE6rDb4/R9BIO8OmjGEI4i28pc9012O2pfF97ZFBtJ2iaNtuPzCUbh+2q0N/04OARte1LoihYcyHPKLL0BnQ8F70gmjbbFer09Pq1KlOq9Vq80ypt/PkKi6R971jvXwSp6cD156dQ9/6YwDW0wrKni2sybbcoeTe8tA3/jigE2Idpx1wg0FjWacxNsahl60yJPxNxtAPbzgrkHGnq42jWjDDXvgoh2UMFOPMOK3g+iAK1aejrXdozHwZ9A6DP7c40KKuJT0bPIZ9l5be5sPVlTbb4H21yq6uspXeVEJvpY+cb69W2wyPbq+qLS5xQHVozHwRGNpiLZgKyztZUU5HxGPQC9YfGG2AzxUsT7Nq61Tn59XqvKoQnzi1NeJyBbu324qtcLndgDBcqYfxNEShtoh1em9elMxcm3mYK8NYRnnRZ8V90+4e81Ywp/mkNu272QWG862nAGd4Irwd8SXeJskUu/9Y2BDWp5dCXFoWTjAndH/68gYXvu+0IE8EW/cGRBhPLy+tt4nEepzLVOYC3tM0sdJ3wizb+ETZ2cmjfQ7IE0B8OefO+QYfyAbkGqwCAAGfb5zzKjtXah+IvyyrTlco7tg5SsMNyLoNSkCQiSyrMkOJRwcsQCURH4kerfJ2SzWJNnb6hxVsTQJrHry8fN3z8/acE84YzYHmzmr1AeVUVWVb5LKr86tVI+muNnq10m9bGPjh6r+RG+Og7TYDS+/qHPnw6rwWh04tJ7eKOR8ac+PQWxOmuaMyDNuoN+701sUzhjkQYqDZVm1XTrZaARpXGVhy21OQaVVVKYkG0u1cCTrYka1OYftqVZ3j/mqDog8eAZ4OJ4PhlzF15ulKycXHoVncVBp2oLY12nTUjhWP/YTBlsN6H12/73qDnd0zHi/nBkSRj5HswIzra7xq96Hv/FFAbTrIHOvgcxNUstxsreSGMXQ2cW3QjeK96uogjTabijnV5hwEEpAiyrNDf+lvB3VoBwtxsUAmlly8DsNwGceUFj0fZFeVWfOL/Zem9qaWYyC4/huF1zbbonB6HFLpi0CpNdtQzZMjEnHNubCmoap2XrZKWd9/Nnq2QRtEG5ps6JBEYYTyCwQTCLFDf+lvBwpVBA23PI9wCqZ8Milz4Ad53dVhJzlVbeq8knHXP/QXPCw0squeFEQLN2cYwmzEWi9TkjxztI2FRjcwB/Q5oFlnsKaPkFHUy7S+mmUO2F4OiDfQfMHq2qAVBnbZxnnyD0njK5Ieeh7X+bqvkZXXNZaBUaA512DfGccaaGFcoUeyqpR4g1UQdR/Q8lplH5Q1d3V66K//1dGrfvSvgziORRGr9mhFiLO98mURi+uQx6oxqgiOOeu5H0ZabSjLNtk5Oh/BgFuh2QUG3FW1qVanSsod+ut/dfQq6i2o8AWXYT3tkYUtCHEe6Gs1f1GM+dRBaPQtjPFW2y2feegv/e2g5rJrnQcFzAGrr3CtKMsJ6A9n+VolVms9og5ijspzeAGj73Mw2I3wxO3i7h7+XhRlzoZV6IKsMjTgNoxt1NbTiKXtgxsuHLPR0do+/x2u+z6I/eiluXO1Ahn2IUNTDYy2D+h13KqY2tWHD8/CuEC+MFGGAkH+cO1RdPquh9EJzRB6LrRRsTbQjbNsCyLNyartaQY6GgqzapNVavVZsBeNskJVA6m+tUlI6VTkbGAN7xoZ981zeBaovPWLKwP3GhutcT+O1awboEXIzrHbT0RtHGYvaSQjQZPjenI9qSkz19069cbkhq+36Vw0RjFjbJUZmBqJbkkH/rOnb6bdQEFfIehHLsrBG+uVtjkj00hyZ6vDYhg/03GyZyHPerAbClrfUCV62dQ1hkfG2uB3gGExTCS52qDzYbXdPg91rAONtjV6FHKpHY06qYRd113j0OGwzHutkTWruIe4Yhg1/xwz7/GCxlrBQ1/VEFOOve997P8VFCFXLfqx0pgPiXekU+cFNHrPsDs+YDIRwscerYIutcNhKmIO6sQ0dtgOD95/adMwqm1mVBVSLphsz7E8qDEU1mhdSDpZa7+DLr8qcj1zRTkpm5BmO8vjfuawsB0l0JRcQxH33BivYRiD1OjaKu7AUHqC0x3u5gfZzxwiwlaVAxJtUymP5BNJerwX5H2cDvMceupaL8esxfSh7/xRgEZVRAvkB+hrQDROinKNWsS6MS/6tKvckWPsg5cHoNALOJRxqFwO8H8WUj2RJG7npq6waCKZLfGOaMGHD2PjONkmq0DCMWdjZCvM9a82qhLmPNtgjj8eyZ4uU9bY8vxQRSpCboFqthQxNi8XVlC09kSXY9YowHdelr43qqsG0BWJnshVVlcCYDLJBxR3K7bFWYqeOnqVnoCuhnyJdZkThssS7Ysb5kTnjLjrsoQCrV6tVqfV6nxVYSbkNttgciPmRn6ADTgEG5mRYcLk02Uj7KMwNIYHDkkyGSXZPjLGebrEehMF3eyuN/DaCrS+W6dJI3lRHcaA1rFyusxZ4eWqZiUvltfw6y9wA6OZ12hWFJM81yaFcw+9TKWKwBlZBmvZM3wgGlcysfR0JkIU8G7BMsRe7jghSRCqDnKwGTpdj84xsTZvswL5tgLRVedJPj/81m5IP8bJTUJQyfIY3mROsUVcWGA+SbGEPXEQxrThDs44q40xnbW/crJqhYUpz8/r0GeyJjKGZmPd+W+azBynVyb//Ajxk2BXsu3axWXnZ6h33N/f+4yhR6gat+YQzQNtt7drFHrZFhNIMgcUXFXLBqYb6MGG42ycjSpkqx5Jgc9noBeRmxc4zzbWtUUyX+dhka+lXKtZLLp+Zo5yN5SjY20LTCPB4uxasl1htbCqAOjsuQ9Xh0bA10YvAqUcM/8xUS8WXFrC8rEhasAHif89BjGG904Iyzan2FIH5RtWxG/QaIMl2nNZlVXPgHqRQM08DGkI/9KiRQhqg/Sl9EOLv+53cWjEnE52uPcHfXTjKUO/GBvgOuqJtbxz8+4uPysB9RnBsIdLB+tuZ9vYsMXwuH4OcPHVxkDPI7IgNXN3VjkqAnJ+jufr2bwPjYGvi96PlLyWuk1nL5mkabfDxvZzkAWItlXdXKTxRqpOGdolma1q5+ShcfA10asD8WJ5XeQyXxa5l3tea1J0mu8gY3KcYmaDaMu2qwwdkpnuNnKqMFthdfy2Os9UQ5LVU7aVtdRaBlPM8g8CC1P5kqL1jXVeyCYB9V79HG4C9nXoA3vahrLGYp4XtKBqruICFl0RUEe6fRVidE3xs4eaDTg3eG/Zf+9N/jo+xwxgVeHj0R/yTNL9h7Dbl3cg3Qb62MA+HpUhaW+udB6Jaqz1/NIjjWYq0oE/geyScdlOFt/Ppt576Zyw6nyrW2qtsCnJE7fQboPblbKB9ru7t/wk3vs8mfWQJ+gIO/43M2c6TX5D2fp1xvZzeAFNvTkvyjJfxjlm8easoBhlK/j1ushf54M+UH32u+/KToV9IiuGpUAVttnC7lib7TnuNUal+TwBUG3ipiJJ0rdpklpWMk3fwkYawq4gTd6m1lCiKVzrNOu7LkvfG9k/ddIIppCA9bbRnSE/6O6Rq2fSkgTxRBORJlMrSP+WpoGFM1OlFg9xlip4WZ3KUHYdB/b1c8A0klPVOWurRdtqs0W3JIo6bLW1fS7oVfXCGHLP2ZJjJB44hEr/h1VYm+wqbvrtvnkON3jB8+ANBrtF4d0Rdu3UIL3iqyfu6PpiUO6gt7YhGi5QDvb0y2D30h+2HsmyjbNhm8pZZQ7Wa2PzR+ZszrOn7WnooGWpN+3hLuWpP8dCl81+12VxUpvTq8Zo22arqmkd+bwySmpXjZorc6mRmKt6CpUqWZaT1kXWlAQ5Y/o5gGjboNNxpZpHVqqsraqu1CYG3J5wUuQQvYoalzHlXEw5p3EoAh7zJWyHnMNuEfJ82MxMv40KxA/e+vLsmWDX0H7cIo6bwqvYwgI3WsQ4SQhgNxAib1Xee/VzeIGaOWDhlSq0opN2isx8d7bMHvMd1c8h22J6JOZGgmyDNZRzm80zeyisR5I7zpuy17isbHWGhhXffVmaGput9kVefbjqwfOwJlpoXYx9B6TjtCpEO11QGw4qx/RzANHGqnOVPXKKaZKYKVmdVqfPDr3abMuVlXa2xlxpVXk1OcNe36wj7k4haxoPfMqnnR/6+35j0JgqAuwFFwQC53LkRRxQamG+tMQy7kk7SWZH558aynxmrLf29xZYsi30tOU8vI7jApPOBF2iepa3UeOacEem8MHFs0x1k9U+ZGZsnOrcMTIs3nayuu5ASbtNs8Wwym2TVacb9iSic+0PftIWWQ3s5LLtiDzw6YxKI8mZ6iGJqSPnq9XVVXWaKTPuHI0LXcWt80jApttiG/qrekqbuhDuCUSPHHYDcQOveZvD18q90cGgiBinq9MKHZCniLsKNLMKs0k2WyXqrraVmtQGe8FgcdspuoJ1uQAqHSAPHz8ruVUhG3Skb9JHyp3j9/ycnVU9w012jhtY9Irv7PEzgxtfW6m0OaeoM+SdI6c10QZNzJqEiJfp8EZCjTVscYqvvMvlvYHcsqmyuE8ayflGzVpj4MRt546z2oDo0jKs+eGcq8Z8IMtw6hukaGwz2RwFqVcZeuP8HK/BskfFkOsf/HJJORVWz3vjdJyhdakPDJC9l5aeMtxU2t65ElorJbnQmMOJNLerej6b1aYWgZnupbzKcMCpnvkGawc223bat6vVozJMWnuXNS2gdthCWypYdnvG9XPAbiSAQaDM6srBUm0MYKqJbLBJyRbtOdWIC/QvlWayPWVYEwD7z9WcNjjSwZKBqwxrvLcoBUH5eFQM+kYoqJcr3Z/ktZdfhjCin0MfNupB3vveBuc/SthRc3vm780IRa++4kWyjQONuZyqiSs69PWnFiwbhbdnEE9e8DsKNLqWVmCB4kD7syj0JtpuMevcq5/DC9TozWkY0mUsa9duz3XTy5/uT8300s9hHJS7oo01ZNq3hVkv6f8+/RyePfQk1632ROfhbRlxOdKl8wJNpLjNbTAbvtvTErq0h0b7HdfP4QWQevHHXnBKr6/P1BykPQ3B2UFrpzq85PeOA42wayy5CvSi6LPYsubAmg23hYN7+zm4khz6mz0I0DjLseZqebaMgYpz1iu26rOOXhLfPt5L3gZSeoTO0vmbN7BGI1ce+pseBPo28I5J7AwN5I5R7A8Gkb9Zwd/ei3fpO1CoLy/ev0veJof+pgcBNhRerPEs9EVbWxHktDS9h/d6l554Z6Xv0vcifXfJ0zRI3tmH/qqHgBt5Dj0U76SWDSevuPOqpjQiPpfcpZLH88jjdkgP/U0PAhpzhZCTPPcKmef5ZNJ1L/pIN4eXaMVY0CRJVa02doqbBgG3ip7zcSDc+qbFoe/8UYBWwPJC0iKk+FdQGnYzBjlNn62eYefUatuhb/0xwJDv3pywrRwQbTv2hTmMgxvu9IHrofHl9JIldQbfC3MYBz3Utrm+tc9h6EEfOHz3GsVRpC4+8ibMW7fJEzD8EJUONnsploWX1zXaAydOK+O65B22t7aCcy4pERTNQEr9OfUWgsrYPwlhk9mwsF1YzCX1YQSfcTojXMApklKJTb98nJ8ENrwZ9SWdh74dUY+GhAqbC0pJTCWV+aGxtxc0JpcJKA0JRivaliPlTaz2dIl9zEFSbolICEy6tFTDuVmgIyLwJ/2EW24c1BPmwF4X3gnnU8uOrWCqGuOjB2SaiDkVPLiAQQtsmE9hIIm5SGYc0zIevqWiqTQHfUEul0XffujnPPVWdLcHstffy5A/2ITAC8CnBonsKPIIySMzslluSE8d8WC3bdi2BGZAIiNyJbHxQ+BMAGJGxLRtym2D5XCa4REYx2yD2DmJHj73YDegzwQmrTXcwzup+fShb/0RwP8HZ/woncNgl5UAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjAtMDctMjZUMjM6MTU6MjkrMDA6MDBtserTAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIwLTA3LTI2VDIzOjE1OjI3KzAwOjAwTNMpMgAAAABJRU5ErkJggg==' ++ grep '^[[:space:]]*tile_url_openhabiandocs' /opt/openhabian/includes/dashboard-imagedata ++ sed 's|tile_url_openhabiandocs=||g; s|"||g; s|{HOSTNAME}|192.168.1.17|g' + tileURL=https://www.openhab.org/docs/installation/openhabian.html ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:30:15_EDT [openHABian] Adding an openHAB dashboard tile for '\''openhabiandocs'\''... ' 2021-04-08_15:30:15_EDT [openHABian] Adding an openHAB dashboard tile for 'openhabiandocs'... + case $application in + true + openhab_is_installed + openhab2_is_installed ++ dpkg -s openhab2 ++ grep Status ++ cut '-d ' -f2 + [[ '' == \i\n\s\t\a\l\l ]] + return 1 + openhab3_is_installed ++ dpkg -s openhab ++ grep Status ++ cut '-d ' -f2 + [[ install == \i\n\s\t\a\l\l ]] + return 0 + return 0 + [[ -d /etc/openhab/services ]] + touch /etc/openhab/services/runtime.cfg + grep -qs openhabiandocs-link /etc/openhab/services/runtime.cfg + [[ -z openHABian Help ]] + [[ -z https://www.openhab.org/docs/installation/openhabian.html ]] + [[ -z data:image/png;base64,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 ]] + echo -e '\norg.openhab.core.ui.tiles:openhabiandocs-link-name=openHABian Help\norg.openhab.core.ui.tiles:openhabiandocs-link-url=https://www.openhab.org/docs/installation/openhabian.html\norg.openhab.core.ui.tiles:openhabiandocs-link-imageurl=data:image/png;base64,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' + echo OK OK ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:30:15_EDT [openHABian] Restarting openHAB service to play it safe... ' 2021-04-08_15:30:15_EDT [openHABian] Restarting openHAB service to play it safe... + cond_redirect systemctl restart openhab.service + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl restart openhab.service \033[39;49;00m' $ systemctl restart openhab.service  + systemctl restart openhab.service + return 0 + echo OK OK + [[ -n '' ]] + vim_openhab_syntax ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:30:15_EDT [openHABian] Adding openHAB syntax to vim editor... ' 2021-04-08_15:30:15_EDT [openHABian] Adding openHAB syntax to vim editor... + cond_redirect mkdir -p /home/bpsopenhab/.vim/ftdetect /home/bpsopenhab/.vim/syntax + [[ -n '' ]] + echo -e '\n\033[90;01m$ mkdir -p /home/bpsopenhab/.vim/ftdetect /home/bpsopenhab/.vim/syntax \033[39;49;00m' $ mkdir -p /home/bpsopenhab/.vim/ftdetect /home/bpsopenhab/.vim/syntax  + mkdir -p /home/bpsopenhab/.vim/ftdetect /home/bpsopenhab/.vim/syntax + return 0 + cond_redirect wget -O /home/bpsopenhab/.vim/syntax/openhab.vim https://github.com/cyberkov/openhab-vim/raw/master/syntax/openhab.vim + [[ -n '' ]] + echo -e '\n\033[90;01m$ wget -O /home/bpsopenhab/.vim/syntax/openhab.vim https://github.com/cyberkov/openhab-vim/raw/master/syntax/openhab.vim \033[39;49;00m' $ wget -O /home/bpsopenhab/.vim/syntax/openhab.vim https://github.com/cyberkov/openhab-vim/raw/master/syntax/openhab.vim  + wget -O /home/bpsopenhab/.vim/syntax/openhab.vim https://github.com/cyberkov/openhab-vim/raw/master/syntax/openhab.vim --2021-04-08 15:30:15-- https://github.com/cyberkov/openhab-vim/raw/master/syntax/openhab.vim Resolving github.com (github.com)... 140.82.113.4 Connecting to github.com (github.com)|140.82.113.4|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://raw.githubusercontent.com/cyberkov/openhab-vim/master/syntax/openhab.vim [following] --2021-04-08 15:30:15-- https://raw.githubusercontent.com/cyberkov/openhab-vim/master/syntax/openhab.vim Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.111.133, ... Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 6065 (5.9K) [text/plain] Saving to: ‘/home/bpsopenhab/.vim/syntax/openhab.vim’ 0K ..... 100% 6.81M=0.001s 2021-04-08 15:30:15 (6.81 MB/s) - ‘/home/bpsopenhab/.vim/syntax/openhab.vim’ saved [6065/6065] + return 0 + cond_redirect wget -O /home/bpsopenhab/.vim/ftdetect/openhab.vim https://github.com/cyberkov/openhab-vim/raw/master/ftdetect/openhab.vim + [[ -n '' ]] + echo -e '\n\033[90;01m$ wget -O /home/bpsopenhab/.vim/ftdetect/openhab.vim https://github.com/cyberkov/openhab-vim/raw/master/ftdetect/openhab.vim \033[39;49;00m' $ wget -O /home/bpsopenhab/.vim/ftdetect/openhab.vim https://github.com/cyberkov/openhab-vim/raw/master/ftdetect/openhab.vim  + wget -O /home/bpsopenhab/.vim/ftdetect/openhab.vim https://github.com/cyberkov/openhab-vim/raw/master/ftdetect/openhab.vim --2021-04-08 15:30:15-- https://github.com/cyberkov/openhab-vim/raw/master/ftdetect/openhab.vim Resolving github.com (github.com)... 140.82.113.3 Connecting to github.com (github.com)|140.82.113.3|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://raw.githubusercontent.com/cyberkov/openhab-vim/master/ftdetect/openhab.vim [following] --2021-04-08 15:30:16-- https://raw.githubusercontent.com/cyberkov/openhab-vim/master/ftdetect/openhab.vim Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.109.133, 185.199.111.133, 185.199.108.133, ... Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.109.133|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 661 [text/plain] Saving to: ‘/home/bpsopenhab/.vim/ftdetect/openhab.vim’ 0K 100% 2.88M=0s 2021-04-08 15:30:16 (2.88 MB/s) - ‘/home/bpsopenhab/.vim/ftdetect/openhab.vim’ saved [661/661] + return 0 + chown -R bpsopenhab:bpsopenhab /home/bpsopenhab/.vim + echo OK OK + nano_openhab_syntax ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:30:16_EDT [openHABian] Adding openHAB syntax to nano editor... ' 2021-04-08_15:30:16_EDT [openHABian] Adding openHAB syntax to nano editor... + cond_redirect wget -O /usr/share/nano/openhab.nanorc https://github.com/airix1/openhabnano/raw/master/openhab.nanorc + [[ -n '' ]] + echo -e '\n\033[90;01m$ wget -O /usr/share/nano/openhab.nanorc https://github.com/airix1/openhabnano/raw/master/openhab.nanorc \033[39;49;00m' $ wget -O /usr/share/nano/openhab.nanorc https://github.com/airix1/openhabnano/raw/master/openhab.nanorc  + wget -O /usr/share/nano/openhab.nanorc https://github.com/airix1/openhabnano/raw/master/openhab.nanorc --2021-04-08 15:30:16-- https://github.com/airix1/openhabnano/raw/master/openhab.nanorc Resolving github.com (github.com)... 140.82.114.4 Connecting to github.com (github.com)|140.82.114.4|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://raw.githubusercontent.com/airix1/openhabnano/master/openhab.nanorc [following] --2021-04-08 15:30:16-- https://raw.githubusercontent.com/airix1/openhabnano/master/openhab.nanorc Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.110.133, 185.199.111.133, 185.199.109.133, ... Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.110.133|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 2321 (2.3K) [text/plain] Saving to: ‘/usr/share/nano/openhab.nanorc’ 0K .. 100% 8.27M=0s 2021-04-08 15:30:17 (8.27 MB/s) - ‘/usr/share/nano/openhab.nanorc’ saved [2321/2321] + return 0 + echo -e '\n## openHAB syntax\ninclude "/usr/share/nano/openhab.nanorc"' + echo OK OK + multitail_openhab_scheme ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:30:17_EDT [openHABian] Adding openHAB scheme to multitail... ' 2021-04-08_15:30:17_EDT [openHABian] Adding openHAB scheme to multitail... + cp /opt/openhabian/includes/multitail.openhab.conf /etc/multitail.openhab.conf + cond_redirect sed -i -e '/^.*multitail.*openhab.*$/d' /etc/multitail.conf + [[ -n '' ]] + echo -e '\n\033[90;01m$ sed -i -e /^.*multitail.*openhab.*$/d /etc/multitail.conf \033[39;49;00m' $ sed -i -e /^.*multitail.*openhab.*$/d /etc/multitail.conf  + sed -i -e '/^.*multitail.*openhab.*$/d' /etc/multitail.conf + return 0 + cond_redirect sed -i -e 's|^# misc.*$|# openHAB logs\\ninclude:/etc/multitail.openhab.conf\\n#\\n# misc|g' /etc/multitail.conf + [[ -n '' ]] + echo -e '\n\033[90;01m$ sed -i -e s|^# misc.*$|# openHAB logs\\ninclude:/etc/multitail.openhab.conf\\n#\\n# misc|g /etc/multitail.conf \033[39;49;00m' $ sed -i -e s|^# misc.*$|# openHAB logs\ninclude:/etc/multitail.openhab.conf\n#\n# misc|g /etc/multitail.conf  + sed -i -e 's|^# misc.*$|# openHAB logs\\ninclude:/etc/multitail.openhab.conf\\n#\\n# misc|g' /etc/multitail.conf + return 0 + echo OK OK + srv_bind_mounts + [[ -f /etc/ztab ]] ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:30:17_EDT [openHABian] Preparing openHAB folder mounts under '\''/srv/openhab-*'\''... ' 2021-04-08_15:30:17_EDT [openHABian] Preparing openHAB folder mounts under '/srv/openhab-*'... + cond_redirect umount -q /srv/openhab-sys /srv/openhab-conf /srv/openhab-userdata /srv/openhab-addons + [[ -n '' ]] + echo -e '\n\033[90;01m$ umount -q /srv/openhab-sys /srv/openhab-conf /srv/openhab-userdata /srv/openhab-addons \033[39;49;00m' $ umount -q /srv/openhab-sys /srv/openhab-conf /srv/openhab-userdata /srv/openhab-addons  + umount -q /srv/openhab-sys /srv/openhab-conf /srv/openhab-userdata /srv/openhab-addons umount: /srv/openhab-sys: no mount point specified. umount: /srv/openhab-conf: no mount point specified. umount: /srv/openhab-userdata: no mount point specified. umount: /srv/openhab-addons: no mount point specified. + return 128 + cond_redirect rm -f '/etc/systemd/system/srv*.mount' + [[ -n '' ]] + echo -e '\n\033[90;01m$ rm -f /etc/systemd/system/srv*.mount \033[39;49;00m' $ rm -f /etc/systemd/system/srv*.mount  + rm -f '/etc/systemd/system/srv*.mount' + return 0 + cond_redirect mkdir -p /srv/openhab-sys /srv/openhab-conf /srv/openhab-userdata /srv/openhab-addons + [[ -n '' ]] + echo -e '\n\033[90;01m$ mkdir -p /srv/openhab-sys /srv/openhab-conf /srv/openhab-userdata /srv/openhab-addons \033[39;49;00m' $ mkdir -p /srv/openhab-sys /srv/openhab-conf /srv/openhab-userdata /srv/openhab-addons  + mkdir -p /srv/openhab-sys /srv/openhab-conf /srv/openhab-userdata /srv/openhab-addons + return 0 + cond_redirect cp /opt/openhabian/includes/srv_readme.txt /srv/README.txt + [[ -n '' ]] + echo -e '\n\033[90;01m$ cp /opt/openhabian/includes/srv_readme.txt /srv/README.txt \033[39;49;00m' $ cp /opt/openhabian/includes/srv_readme.txt /srv/README.txt  + cp /opt/openhabian/includes/srv_readme.txt /srv/README.txt + return 0 + cond_redirect chmod ugo+w /srv /srv/README.txt + [[ -n '' ]] + echo -e '\n\033[90;01m$ chmod ugo+w /srv /srv/README.txt \033[39;49;00m' $ chmod ugo+w /srv /srv/README.txt  + chmod ugo+w /srv /srv/README.txt + return 0 + cond_redirect create_mount /usr/share/openhab sys + [[ -n '' ]] + echo -e '\n\033[90;01m$ create_mount /usr/share/openhab sys \033[39;49;00m' $ create_mount /usr/share/openhab sys  + create_mount /usr/share/openhab sys + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + local destination + local mountPoint + local source + destination=sys ++ systemd-escape --path /srv/openhab-sys --suffix mount + mountPoint='srv-openhab\x2dsys.mount' + source=/usr/share/openhab ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:30:17_EDT [openHABian] Creating mount /usr/share/openhab in '\''/srv/openhab-sys'\''... ' 2021-04-08_15:30:17_EDT [openHABian] Creating mount /usr/share/openhab in '/srv/openhab-sys'... + sed -e 's|%SRC|/usr/share/openhab|g; s|%DEST|sys|g' /opt/openhabian/includes/srv_mount_template + cond_redirect systemctl -q daemon-reload + cond_redirect systemctl enable --now 'srv-openhab\x2dsys.mount' + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl enable --now srv-openhab\x2dsys.mount \033[39;49;00m' $ systemctl enable --now srv-openhab-sys.mount  + systemctl enable --now 'srv-openhab\x2dsys.mount' Created symlink /etc/systemd/system/multi-user.target.wants/srv-openhab\x2dsys.mount → /etc/systemd/system/srv-openhab\x2dsys.mount. + return 0 + echo OK OK + return 0 + cond_redirect create_mount /etc/openhab conf + [[ -n '' ]] + echo -e '\n\033[90;01m$ create_mount /etc/openhab conf \033[39;49;00m' $ create_mount /etc/openhab conf  + create_mount /etc/openhab conf + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + local destination + local mountPoint + local source + destination=conf ++ systemd-escape --path /srv/openhab-conf --suffix mount + mountPoint='srv-openhab\x2dconf.mount' + source=/etc/openhab ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:30:18_EDT [openHABian] Creating mount /etc/openhab in '\''/srv/openhab-conf'\''... ' 2021-04-08_15:30:18_EDT [openHABian] Creating mount /etc/openhab in '/srv/openhab-conf'... + sed -e 's|%SRC|/etc/openhab|g; s|%DEST|conf|g' /opt/openhabian/includes/srv_mount_template + cond_redirect systemctl -q daemon-reload + cond_redirect systemctl enable --now 'srv-openhab\x2dconf.mount' + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl enable --now srv-openhab\x2dconf.mount \033[39;49;00m' $ systemctl enable --now srv-openhab-conf.mount  + systemctl enable --now 'srv-openhab\x2dconf.mount' Created symlink /etc/systemd/system/multi-user.target.wants/srv-openhab\x2dconf.mount → /etc/systemd/system/srv-openhab\x2dconf.mount. + return 0 + echo OK OK + return 0 + cond_redirect create_mount /var/lib/openhab userdata + [[ -n '' ]] + echo -e '\n\033[90;01m$ create_mount /var/lib/openhab userdata \033[39;49;00m' $ create_mount /var/lib/openhab userdata  + create_mount /var/lib/openhab userdata + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + local destination + local mountPoint + local source + destination=userdata ++ systemd-escape --path /srv/openhab-userdata --suffix mount + mountPoint='srv-openhab\x2duserdata.mount' + source=/var/lib/openhab ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:30:19_EDT [openHABian] Creating mount /var/lib/openhab in '\''/srv/openhab-userdata'\''... ' 2021-04-08_15:30:19_EDT [openHABian] Creating mount /var/lib/openhab in '/srv/openhab-userdata'... + sed -e 's|%SRC|/var/lib/openhab|g; s|%DEST|userdata|g' /opt/openhabian/includes/srv_mount_template + cond_redirect systemctl -q daemon-reload + cond_redirect systemctl enable --now 'srv-openhab\x2duserdata.mount' + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl enable --now srv-openhab\x2duserdata.mount \033[39;49;00m' $ systemctl enable --now srv-openhab-userdata.mount  + systemctl enable --now 'srv-openhab\x2duserdata.mount' Created symlink /etc/systemd/system/multi-user.target.wants/srv-openhab\x2duserdata.mount → /etc/systemd/system/srv-openhab\x2duserdata.mount. + return 0 + echo OK OK + return 0 + cond_redirect create_mount /usr/share/openhab/addons addons + [[ -n '' ]] + echo -e '\n\033[90;01m$ create_mount /usr/share/openhab/addons addons \033[39;49;00m' $ create_mount /usr/share/openhab/addons addons  + create_mount /usr/share/openhab/addons addons + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + local destination + local mountPoint + local source + destination=addons ++ systemd-escape --path /srv/openhab-addons --suffix mount + mountPoint='srv-openhab\x2daddons.mount' + source=/usr/share/openhab/addons ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:30:20_EDT [openHABian] Creating mount /usr/share/openhab/addons in '\''/srv/openhab-addons'\''... ' 2021-04-08_15:30:20_EDT [openHABian] Creating mount /usr/share/openhab/addons in '/srv/openhab-addons'... + sed -e 's|%SRC|/usr/share/openhab/addons|g; s|%DEST|addons|g' /opt/openhabian/includes/srv_mount_template + cond_redirect systemctl -q daemon-reload + cond_redirect systemctl enable --now 'srv-openhab\x2daddons.mount' + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl enable --now srv-openhab\x2daddons.mount \033[39;49;00m' $ systemctl enable --now srv-openhab-addons.mount  + systemctl enable --now 'srv-openhab\x2daddons.mount' Created symlink /etc/systemd/system/multi-user.target.wants/srv-openhab\x2daddons.mount → /etc/systemd/system/srv-openhab\x2daddons.mount. + return 0 + echo OK OK + return 0 + echo OK OK + [[ -f /etc/ztab ]] + samba_setup + local serviceFile=/lib/systemd/system/smbd.service ++ command -v samba + [[ -x '' ]] ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:30:21_EDT [openHABian] Installing Samba... ' 2021-04-08_15:30:21_EDT [openHABian] Installing Samba... + cond_redirect apt-get install --yes samba + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get install --yes samba \033[39;49;00m' $ apt-get install --yes samba  + apt-get install --yes samba Reading package lists... Building dependency tree... Reading state information... The following package was automatically installed and is no longer required: triggerhappy Use 'apt autoremove' to remove it. The following additional packages will be installed: attr ibverbs-providers libavahi-client3 libboost-atomic1.67.0 libboost-iostreams1.67.0 libboost-regex1.67.0 libboost-system1.67.0 libboost-thread1.67.0 libcephfs2 libcups2 libgfapi0 libgfrpc0 libgfxdr0 libglusterfs0 libgpgme11 libibverbs1 libjansson4 libldb1 libnspr4 libnss3 libpython2.7 librados2 libtdb1 libtevent0 python-crypto python-dnspython python-gpg python-ldb python-samba python-talloc python-tdb samba-common samba-common-bin samba-dsdb-modules samba-libs samba-vfs-modules tdb-tools Suggested packages: cups-common python-crypto-doc bind9 bind9utils ctdb ldb-tools ntp | chrony smbldap-tools ufw winbind heimdal-clients The following NEW packages will be installed: attr ibverbs-providers libavahi-client3 libboost-atomic1.67.0 libboost-iostreams1.67.0 libboost-regex1.67.0 libboost-system1.67.0 libboost-thread1.67.0 libcephfs2 libcups2 libgfapi0 libgfrpc0 libgfxdr0 libglusterfs0 libgpgme11 libibverbs1 libjansson4 libldb1 libnspr4 libnss3 libpython2.7 librados2 libtdb1 libtevent0 python-crypto python-dnspython python-gpg python-ldb python-samba python-talloc python-tdb samba samba-common samba-common-bin samba-dsdb-modules samba-libs samba-vfs-modules tdb-tools 0 upgraded, 38 newly installed, 0 to remove and 22 not upgraded. Need to get 197 kB/26.8 MB of archives. After this operation, 101 MB of additional disk space will be used. Get:1 http://mirror.umd.edu/raspbian/raspbian buster/main armhf libldb1 armhf 2:1.5.1+really1.4.6-3+deb10u1 [109 kB] Get:2 http://mirror.umd.edu/raspbian/raspbian buster/main armhf python-ldb armhf 2:1.5.1+really1.4.6-3+deb10u1 [33.3 kB] Get:3 http://mirror.umd.edu/raspbian/raspbian buster/main armhf libavahi-client3 armhf 0.7-4+deb10u1 [54.0 kB] Preconfiguring packages ... Fetched 197 kB in 1s (180 kB/s) Selecting previously unselected package python-dnspython. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 46817 files and directories currently installed.) Preparing to unpack .../00-python-dnspython_1.16.0-1_all.deb ... Unpacking python-dnspython (1.16.0-1) ... Selecting previously unselected package python-crypto. Preparing to unpack .../01-python-crypto_2.6.1-9+b1_armhf.deb ... Unpacking python-crypto (2.6.1-9+b1) ... Selecting previously unselected package libtdb1:armhf. Preparing to unpack .../02-libtdb1_1.3.16-2+b1_armhf.deb ... Unpacking libtdb1:armhf (1.3.16-2+b1) ... Selecting previously unselected package libtevent0:armhf. Preparing to unpack .../03-libtevent0_0.9.37-1_armhf.deb ... Unpacking libtevent0:armhf (0.9.37-1) ... Selecting previously unselected package libldb1:armhf. Preparing to unpack .../04-libldb1_2%3a1.5.1+really1.4.6-3+deb10u1_armhf.deb ... Unpacking libldb1:armhf (2:1.5.1+really1.4.6-3+deb10u1) ... Selecting previously unselected package libpython2.7:armhf. Preparing to unpack .../05-libpython2.7_2.7.16-2+deb10u1_armhf.deb ... Unpacking libpython2.7:armhf (2.7.16-2+deb10u1) ... Selecting previously unselected package python-ldb. Preparing to unpack .../06-python-ldb_2%3a1.5.1+really1.4.6-3+deb10u1_armhf.deb ... Unpacking python-ldb (2:1.5.1+really1.4.6-3+deb10u1) ... Selecting previously unselected package python-tdb. Preparing to unpack .../07-python-tdb_1.3.16-2+b1_armhf.deb ... Unpacking python-tdb (1.3.16-2+b1) ... Selecting previously unselected package libavahi-client3:armhf. Preparing to unpack .../08-libavahi-client3_0.7-4+deb10u1_armhf.deb ... Unpacking libavahi-client3:armhf (0.7-4+deb10u1) ... Selecting previously unselected package libcups2:armhf. Preparing to unpack .../09-libcups2_2.2.10-6+deb10u4_armhf.deb ... Unpacking libcups2:armhf (2.2.10-6+deb10u4) ... Selecting previously unselected package libjansson4:armhf. Preparing to unpack .../10-libjansson4_2.12-1_armhf.deb ... Unpacking libjansson4:armhf (2.12-1) ... Selecting previously unselected package python-talloc:armhf. Preparing to unpack .../11-python-talloc_2.1.14-2_armhf.deb ... Unpacking python-talloc:armhf (2.1.14-2) ... Selecting previously unselected package samba-libs:armhf. Preparing to unpack .../12-samba-libs_2%3a4.9.5+dfsg-5+deb10u1+rpi1_armhf.deb ... Unpacking samba-libs:armhf (2:4.9.5+dfsg-5+deb10u1+rpi1) ... Selecting previously unselected package python-samba. Preparing to unpack .../13-python-samba_2%3a4.9.5+dfsg-5+deb10u1+rpi1_armhf.deb ... Unpacking python-samba (2:4.9.5+dfsg-5+deb10u1+rpi1) ... Selecting previously unselected package samba-common. Preparing to unpack .../14-samba-common_2%3a4.9.5+dfsg-5+deb10u1+rpi1_all.deb ... Unpacking samba-common (2:4.9.5+dfsg-5+deb10u1+rpi1) ... Selecting previously unselected package samba-common-bin. Preparing to unpack .../15-samba-common-bin_2%3a4.9.5+dfsg-5+deb10u1+rpi1_armhf.deb ... Unpacking samba-common-bin (2:4.9.5+dfsg-5+deb10u1+rpi1) ... Selecting previously unselected package tdb-tools. Preparing to unpack .../16-tdb-tools_1.3.16-2+b1_armhf.deb ... Unpacking tdb-tools (1.3.16-2+b1) ... Selecting previously unselected package samba. Preparing to unpack .../17-samba_2%3a4.9.5+dfsg-5+deb10u1+rpi1_armhf.deb ... Unpacking samba (2:4.9.5+dfsg-5+deb10u1+rpi1) ... Selecting previously unselected package attr. Preparing to unpack .../18-attr_1%3a2.4.48-4_armhf.deb ... Unpacking attr (1:2.4.48-4) ... Selecting previously unselected package libibverbs1:armhf. Preparing to unpack .../19-libibverbs1_22.1-1_armhf.deb ... Unpacking libibverbs1:armhf (22.1-1) ... Selecting previously unselected package ibverbs-providers:armhf. Preparing to unpack .../20-ibverbs-providers_22.1-1_armhf.deb ... Unpacking ibverbs-providers:armhf (22.1-1) ... Selecting previously unselected package libboost-atomic1.67.0:armhf. Preparing to unpack .../21-libboost-atomic1.67.0_1.67.0-13+deb10u1_armhf.deb ... Unpacking libboost-atomic1.67.0:armhf (1.67.0-13+deb10u1) ... Selecting previously unselected package libboost-iostreams1.67.0:armhf. Preparing to unpack .../22-libboost-iostreams1.67.0_1.67.0-13+deb10u1_armhf.deb ... Unpacking libboost-iostreams1.67.0:armhf (1.67.0-13+deb10u1) ... Selecting previously unselected package libboost-regex1.67.0:armhf. Preparing to unpack .../23-libboost-regex1.67.0_1.67.0-13+deb10u1_armhf.deb ... Unpacking libboost-regex1.67.0:armhf (1.67.0-13+deb10u1) ... Selecting previously unselected package libboost-system1.67.0:armhf. Preparing to unpack .../24-libboost-system1.67.0_1.67.0-13+deb10u1_armhf.deb ... Unpacking libboost-system1.67.0:armhf (1.67.0-13+deb10u1) ... Selecting previously unselected package libboost-thread1.67.0:armhf. Preparing to unpack .../25-libboost-thread1.67.0_1.67.0-13+deb10u1_armhf.deb ... Unpacking libboost-thread1.67.0:armhf (1.67.0-13+deb10u1) ... Selecting previously unselected package libnspr4:armhf. Preparing to unpack .../26-libnspr4_2%3a4.20-1_armhf.deb ... Unpacking libnspr4:armhf (2:4.20-1) ... Selecting previously unselected package libnss3:armhf. Preparing to unpack .../27-libnss3_2%3a3.42.1-1+deb10u3_armhf.deb ... Unpacking libnss3:armhf (2:3.42.1-1+deb10u3) ... Selecting previously unselected package librados2:armhf. Preparing to unpack .../28-librados2_12.2.11+dfsg1-2.1+rpi1_armhf.deb ... Unpacking librados2:armhf (12.2.11+dfsg1-2.1+rpi1) ... Selecting previously unselected package libcephfs2:armhf. Preparing to unpack .../29-libcephfs2_12.2.11+dfsg1-2.1+rpi1_armhf.deb ... Unpacking libcephfs2:armhf (12.2.11+dfsg1-2.1+rpi1) ... Selecting previously unselected package libglusterfs0:armhf. Preparing to unpack .../30-libglusterfs0_5.5-3_armhf.deb ... Unpacking libglusterfs0:armhf (5.5-3) ... Selecting previously unselected package libgfxdr0:armhf. Preparing to unpack .../31-libgfxdr0_5.5-3_armhf.deb ... Unpacking libgfxdr0:armhf (5.5-3) ... Selecting previously unselected package libgfrpc0:armhf. Preparing to unpack .../32-libgfrpc0_5.5-3_armhf.deb ... Unpacking libgfrpc0:armhf (5.5-3) ... Selecting previously unselected package libgfapi0:armhf. Preparing to unpack .../33-libgfapi0_5.5-3_armhf.deb ... Unpacking libgfapi0:armhf (5.5-3) ... Selecting previously unselected package libgpgme11:armhf. Preparing to unpack .../34-libgpgme11_1.12.0-6_armhf.deb ... Unpacking libgpgme11:armhf (1.12.0-6) ... Selecting previously unselected package python-gpg. Preparing to unpack .../35-python-gpg_1.12.0-6_armhf.deb ... Unpacking python-gpg (1.12.0-6) ... Selecting previously unselected package samba-dsdb-modules:armhf. Preparing to unpack .../36-samba-dsdb-modules_2%3a4.9.5+dfsg-5+deb10u1+rpi1_armhf.deb ... Unpacking samba-dsdb-modules:armhf (2:4.9.5+dfsg-5+deb10u1+rpi1) ... Selecting previously unselected package samba-vfs-modules:armhf. Preparing to unpack .../37-samba-vfs-modules_2%3a4.9.5+dfsg-5+deb10u1+rpi1_armhf.deb ... Unpacking samba-vfs-modules:armhf (2:4.9.5+dfsg-5+deb10u1+rpi1) ... Setting up python-crypto (2.6.1-9+b1) ... Setting up libibverbs1:armhf (22.1-1) ... Setting up libpython2.7:armhf (2.7.16-2+deb10u1) ... Setting up libboost-regex1.67.0:armhf (1.67.0-13+deb10u1) ... Setting up ibverbs-providers:armhf (22.1-1) ... Setting up attr (1:2.4.48-4) ... Setting up libtdb1:armhf (1.3.16-2+b1) ... Setting up samba-common (2:4.9.5+dfsg-5+deb10u1+rpi1) ... Creating config file /etc/samba/smb.conf with new version Setting up libgpgme11:armhf (1.12.0-6) ... Setting up libjansson4:armhf (2.12-1) ... Setting up libglusterfs0:armhf (5.5-3) ... Setting up libtevent0:armhf (0.9.37-1) ... Setting up libnspr4:armhf (2:4.20-1) ... Setting up tdb-tools (1.3.16-2+b1) ... update-alternatives: using /usr/bin/tdbbackup.tdbtools to provide /usr/bin/tdbbackup (tdbbackup) in auto mode Setting up libboost-iostreams1.67.0:armhf (1.67.0-13+deb10u1) ... Setting up python-tdb (1.3.16-2+b1) ... Setting up libboost-atomic1.67.0:armhf (1.67.0-13+deb10u1) ... Setting up python-dnspython (1.16.0-1) ... Setting up libboost-system1.67.0:armhf (1.67.0-13+deb10u1) ... Setting up python-gpg (1.12.0-6) ... Setting up python-talloc:armhf (2.1.14-2) ... Setting up libavahi-client3:armhf (0.7-4+deb10u1) ... Setting up libgfxdr0:armhf (5.5-3) ... Setting up libldb1:armhf (2:1.5.1+really1.4.6-3+deb10u1) ... Setting up libboost-thread1.67.0:armhf (1.67.0-13+deb10u1) ... Setting up libnss3:armhf (2:3.42.1-1+deb10u3) ... Setting up python-ldb (2:1.5.1+really1.4.6-3+deb10u1) ... Setting up libcups2:armhf (2.2.10-6+deb10u4) ... Setting up libgfrpc0:armhf (5.5-3) ... Setting up librados2:armhf (12.2.11+dfsg1-2.1+rpi1) ... Setting up samba-libs:armhf (2:4.9.5+dfsg-5+deb10u1+rpi1) ... Setting up libcephfs2:armhf (12.2.11+dfsg1-2.1+rpi1) ... Setting up libgfapi0:armhf (5.5-3) ... Setting up samba-dsdb-modules:armhf (2:4.9.5+dfsg-5+deb10u1+rpi1) ... Setting up python-samba (2:4.9.5+dfsg-5+deb10u1+rpi1) ... Setting up samba-vfs-modules:armhf (2:4.9.5+dfsg-5+deb10u1+rpi1) ... Setting up samba-common-bin (2:4.9.5+dfsg-5+deb10u1+rpi1) ... Checking smb.conf with testparm Load smb config files from /etc/samba/smb.conf Loaded services file OK. WARNING: The 'netbios name' is too long (max. 15 chars). Server role: ROLE_STANDALONE Done Setting up samba (2:4.9.5+dfsg-5+deb10u1+rpi1) ... Adding group `sambashare' (GID 117) ... Done. Samba is not being run as an AD Domain Controller: Masking samba-ad-dc.service Please ignore the following error about deb-systemd-helper not finding those services. (samba-ad-dc.service masked) Created symlink /etc/systemd/system/multi-user.target.wants/nmbd.service → /lib/systemd/system/nmbd.service. Failed to preset unit: Unit file /etc/systemd/system/samba-ad-dc.service is masked. /usr/bin/deb-systemd-helper: error: systemctl preset failed on samba-ad-dc.service: No such file or directory Created symlink /etc/systemd/system/multi-user.target.wants/smbd.service → /lib/systemd/system/smbd.service. Processing triggers for systemd (241-7~deb10u6+rpi1) ... Processing triggers for man-db (2.8.5-2) ... Processing triggers for libc-bin (2.28-10+rpi1) ... Updating FireMotD available updates count ... + return 0 + echo OK OK ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:31:33_EDT [openHABian] Setting up Samba network shares... ' 2021-04-08_15:31:33_EDT [openHABian] Setting up Samba network shares... + cond_echo '\nCopying over custom '\''smb.conf'\''... ' + [[ -z '' ]] + echo -e '\033[33;01m\nCopying over custom '\''smb.conf'\''... \033[39;49;00m'  Copying over custom 'smb.conf'...  + cond_redirect cp /opt/openhabian/includes/smb.conf /etc/samba/smb.conf + [[ -n '' ]] + echo -e '\n\033[90;01m$ cp /opt/openhabian/includes/smb.conf /etc/samba/smb.conf \033[39;49;00m' $ cp /opt/openhabian/includes/smb.conf /etc/samba/smb.conf  + cp /opt/openhabian/includes/smb.conf /etc/samba/smb.conf + return 0 + cond_echo '\nWriting authentication data to openHABian default... ' + [[ -z '' ]] + echo -e '\033[33;01m\nWriting authentication data to openHABian default... \033[39;49;00m'  Writing authentication data to openHABian default...  + smbpasswd -e bpsopenhab + echo dp4bpsoh + echo dp4bpsoh + smbpasswd -s -a bpsopenhab + echo OK OK ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:31:33_EDT [openHABian] Setting up Samba service... ' 2021-04-08_15:31:33_EDT [openHABian] Setting up Samba service... + cond_redirect mkdir -p /var/log/samba /var/run/samba + [[ -n '' ]] + echo -e '\n\033[90;01m$ mkdir -p /var/log/samba /var/run/samba \033[39;49;00m' $ mkdir -p /var/log/samba /var/run/samba  + mkdir -p /var/log/samba /var/run/samba + return 0 + cond_redirect sed -i -E -e '/PIDFile/d; /NotifyAccess/ a PIDFile=smbd.pid\nRuntimeDirectory=samba' /lib/systemd/system/smbd.service + [[ -n '' ]] + echo -e '\n\033[90;01m$ sed -i -E -e /PIDFile/d; /NotifyAccess/ a PIDFile=smbd.pid\nRuntimeDirectory=samba /lib/systemd/system/smbd.service \033[39;49;00m' $ sed -i -E -e /PIDFile/d; /NotifyAccess/ a PIDFile=smbd.pid RuntimeDirectory=samba /lib/systemd/system/smbd.service  + sed -i -E -e '/PIDFile/d; /NotifyAccess/ a PIDFile=smbd.pid\nRuntimeDirectory=samba' /lib/systemd/system/smbd.service + return 0 + zram_dependency install nmbd smbd + local zramServiceConfig=/etc/systemd/system/zram-config.service + local install=yes + [[ -f /etc/ztab ]] + return 0 + cond_redirect systemctl enable --now smbd.service + echo OK OK + clean_config_userpw + cond_redirect sed -i -e 's|^userpw=.*$|\#userpw=xxxxxx|g' /etc/openhabian.conf + [[ -n '' ]] + echo -e '\n\033[90;01m$ sed -i -e s|^userpw=.*$|\#userpw=xxxxxx|g /etc/openhabian.conf \033[39;49;00m' $ sed -i -e s|^userpw=.*$|\#userpw=xxxxxx|g /etc/openhabian.conf  + sed -i -e 's|^userpw=.*$|\#userpw=xxxxxx|g' /etc/openhabian.conf + return 0 + frontail_setup + local frontailBase + local frontailUser=frontail ++ command -v npm + [[ -x '' ]] ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:31:35_EDT [openHABian] Installing Frontail prerequsites (NodeJS)... ' 2021-04-08_15:31:35_EDT [openHABian] Installing Frontail prerequsites (NodeJS)... + cond_redirect nodejs_setup + [[ -n '' ]] + echo -e '\n\033[90;01m$ nodejs_setup \033[39;49;00m' $ nodejs_setup  + nodejs_setup ++ command -v npm + [[ -x '' ]] + local link=https://unofficial-builds.nodejs.org/download/release/v14.16.0/node-v14.16.0-linux-armv6l.tar.xz + local myDistro + local temp ++ command -v lsb_release + [[ -x /usr/bin/lsb_release ]] ++ lsb_release -sc + myDistro=buster ++ mktemp /tmp/openhabian.XXXXX + temp=/tmp/openhabian.uM3lt + [[ -z '' ]] + is_armv6l + [[ '' == \a\r\m\v\6\l ]] + case "$(uname -m)" in ++ uname -m + return 1 + [[ -z '' ]] + add_keys https://deb.nodesource.com/gpgkey/nodesource.gpg.key + local repoKey ++ mktemp /tmp/openhabian.XXXXX + repoKey=/tmp/openhabian.V0TsR ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:31:35_EDT [openHABian] Adding required keys to apt... ' 2021-04-08_15:31:35_EDT [openHABian] Adding required keys to apt... + cond_redirect wget -qO /tmp/openhabian.V0TsR https://deb.nodesource.com/gpgkey/nodesource.gpg.key + [[ -n '' ]] + echo -e '\n\033[90;01m$ wget -qO /tmp/openhabian.V0TsR https://deb.nodesource.com/gpgkey/nodesource.gpg.key \033[39;49;00m' $ wget -qO /tmp/openhabian.V0TsR https://deb.nodesource.com/gpgkey/nodesource.gpg.key  + wget -qO /tmp/openhabian.V0TsR https://deb.nodesource.com/gpgkey/nodesource.gpg.key + return 0 + cond_redirect apt-key add /tmp/openhabian.V0TsR + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-key add /tmp/openhabian.V0TsR \033[39;49;00m' $ apt-key add /tmp/openhabian.V0TsR  + apt-key add /tmp/openhabian.V0TsR Warning: apt-key output should not be parsed (stdout is not a terminal) OK + return 0 + echo OK OK + rm -f /tmp/openhabian.V0TsR ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:31:36_EDT [openHABian] Adding NodeSource repository to apt... ' 2021-04-08_15:31:36_EDT [openHABian] Adding NodeSource repository to apt... + echo 'deb https://deb.nodesource.com/node_14.x buster main' + echo 'deb-src https://deb.nodesource.com/node_14.x buster main' + [[ -n '' ]] + cond_redirect apt-get update + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get update \033[39;49;00m' $ apt-get update  + apt-get update Hit:1 http://davesteele.github.io/comitup/repo comitup InRelease Hit:2 https://deb.nodesource.com/node_14.x buster InRelease Hit:3 http://raspbian.raspberrypi.org/raspbian buster InRelease Hit:4 http://archive.raspberrypi.org/debian buster InRelease Get:5 https://pkgs.tailscale.com/stable/raspbian buster InRelease Ign:6 https://dl.bintray.com/openhab/apt-repo2 stable InRelease Get:7 https://dl.bintray.com/openhab/apt-repo2 stable Release [6,051 B] Fetched 10.1 kB in 2s (4,952 B/s) Reading package lists... + return 0 + echo OK OK ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:31:41_EDT [openHABian] Installing NodeJS... ' 2021-04-08_15:31:41_EDT [openHABian] Installing NodeJS... + [[ -n '' ]] + cond_redirect apt-get install --yes nodejs + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get install --yes nodejs \033[39;49;00m' $ apt-get install --yes nodejs  + apt-get install --yes nodejs Reading package lists... Building dependency tree... Reading state information... The following package was automatically installed and is no longer required: triggerhappy Use 'apt autoremove' to remove it. The following NEW packages will be installed: nodejs 0 upgraded, 1 newly installed, 0 to remove and 22 not upgraded. Need to get 22.6 MB of archives. After this operation, 113 MB of additional disk space will be used. Get:1 https://deb.nodesource.com/node_14.x buster/main armhf nodejs armhf 14.16.1-1nodesource1 [22.6 MB] Fetched 22.6 MB in 4s (6,338 kB/s) Selecting previously unselected package nodejs. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 48289 files and directories currently installed.) Preparing to unpack .../nodejs_14.16.1-1nodesource1_armhf.deb ... Unpacking nodejs (14.16.1-1nodesource1) ... Setting up nodejs (14.16.1-1nodesource1) ... Processing triggers for man-db (2.8.5-2) ... Updating FireMotD available updates count ... + return 0 + echo OK OK + return 0 + echo OK OK ++ npm list -g ++ head -n 1 + frontailBase=/usr/lib/node_modules/frontail + id -u frontail + cond_redirect useradd --groups bpsopenhab,openhab -s /bin/bash -d /var/tmp frontail + [[ -n '' ]] + echo -e '\n\033[90;01m$ useradd --groups bpsopenhab,openhab -s /bin/bash -d /var/tmp frontail \033[39;49;00m' $ useradd --groups bpsopenhab,openhab -s /bin/bash -d /var/tmp frontail  + useradd --groups bpsopenhab,openhab -s /bin/bash -d /var/tmp frontail + return 0 ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:32:13_EDT [openHABian] Installing openHAB Log Viewer (frontail)... ' 2021-04-08_15:32:13_EDT [openHABian] Installing openHAB Log Viewer (frontail)... + [[ -d /usr/lib/node_modules/frontail ]] + frontail_download /opt ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:32:13_EDT [openHABian] Downloading frontail... ' 2021-04-08_15:32:13_EDT [openHABian] Downloading frontail... + [[ -d /opt/frontail ]] + cond_echo '\nUpdate... ' + [[ -z '' ]] + echo -e '\033[33;01m\nUpdate... \033[39;49;00m'  Update...  + cond_redirect update_git_repo /opt/frontail master + [[ -n '' ]] + echo -e '\n\033[90;01m$ update_git_repo /opt/frontail master \033[39;49;00m' $ update_git_repo /opt/frontail master  + update_git_repo /opt/frontail master + local branch + local path + branch=master + path=/opt/frontail ++ timestamp ++ date +%F_%T_%Z ++ basename /opt/frontail + echo -n '2021-04-08_15:32:13_EDT [openHABian] Updating frontail, master branch from git... ' 2021-04-08_15:32:13_EDT [openHABian] Updating frontail, master branch from git... + cond_redirect git -C /opt/frontail fetch origin + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/frontail fetch origin \033[39;49;00m' $ git -C /opt/frontail fetch origin  + git -C /opt/frontail fetch origin From https://github.com/Interstellar0verdrive/frontail_AEM + 201ea43...f247ea5 master -> origin/master (forced update) + return 0 + cond_redirect git -C /opt/frontail fetch --tags --force --prune + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/frontail fetch --tags --force --prune \033[39;49;00m' $ git -C /opt/frontail fetch --tags --force --prune  + git -C /opt/frontail fetch --tags --force --prune + return 0 + cond_redirect git -C /opt/frontail reset --hard origin/master + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/frontail reset --hard origin/master \033[39;49;00m' $ git -C /opt/frontail reset --hard origin/master  + git -C /opt/frontail reset --hard origin/master HEAD is now at f247ea5 Update README.md + return 0 + cond_redirect git -C /opt/frontail clean --force -x -d + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/frontail clean --force -x -d \033[39;49;00m' $ git -C /opt/frontail clean --force -x -d  + git -C /opt/frontail clean --force -x -d + return 0 + cond_redirect git -C /opt/frontail checkout master + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/frontail checkout master \033[39;49;00m' $ git -C /opt/frontail checkout master  + git -C /opt/frontail checkout master Already on 'master' Your branch is up to date with 'origin/master'. + return 0 + echo OK OK + return 0 + echo OK OK + cd /opt/frontail + cond_redirect npm install --force -g + [[ -n '' ]] + echo -e '\n\033[90;01m$ npm install --force -g \033[39;49;00m' $ npm install --force -g  + npm install --force -g npm WARN using --force I sure hope you know what you are doing. npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142 npm WARN deprecated har-validator@5.1.5: this library is no longer supported /usr/bin/frontail -> /usr/lib/node_modules/frontail/bin/frontail + frontail@4.9.2 added 134 packages from 157 contributors in 14.652s + return 0 + cond_redirect npm update --force -g + [[ -n '' ]] + echo -e '\n\033[90;01m$ npm update --force -g \033[39;49;00m' $ npm update --force -g  + npm update --force -g npm WARN using --force I sure hope you know what you are doing. + return 0 + echo OK OK ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:32:35_EDT [openHABian] Setting up openHAB Log Viewer (frontail) service... ' 2021-04-08_15:32:35_EDT [openHABian] Setting up openHAB Log Viewer (frontail) service... + sed -e 's|%FRONTAILBASE|/usr/lib/node_modules/frontail|g' /opt/openhabian/includes/frontail.service + cond_redirect chmod 644 /etc/systemd/system/frontail.service + [[ -n '' ]] + echo -e '\n\033[90;01m$ chmod 644 /etc/systemd/system/frontail.service \033[39;49;00m' $ chmod 644 /etc/systemd/system/frontail.service  + chmod 644 /etc/systemd/system/frontail.service + return 0 + cond_redirect systemctl -q daemon-reload + cond_redirect systemctl enable --now frontail.service + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl enable --now frontail.service \033[39;49;00m' $ systemctl enable --now frontail.service  + systemctl enable --now frontail.service Created symlink /etc/systemd/system/multi-user.target.wants/frontail.service → /etc/systemd/system/frontail.service. + return 0 + cond_redirect systemctl restart frontail.service + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl restart frontail.service \033[39;49;00m' $ systemctl restart frontail.service  + systemctl restart frontail.service + return 0 + echo OK OK + openhab_is_installed + openhab2_is_installed ++ dpkg -s openhab2 ++ grep Status ++ cut '-d ' -f2 + [[ '' == \i\n\s\t\a\l\l ]] + return 1 + openhab3_is_installed ++ dpkg -s openhab ++ cut '-d ' -f2 ++ grep Status + [[ install == \i\n\s\t\a\l\l ]] + return 0 + return 0 + dashboard_add_tile frontail + local application + local dashboardConfig + local ipAddress + local openhabConfig + local tileDesc + local tileImg + local tileURL + application=frontail + openhabConfig=/etc/openhab + dashboardConfig=/etc/openhab/services/runtime.cfg ++ ip route get 8.8.8.8 ++ awk '{print $7}' ++ xargs + ipAddress=192.168.1.17 ++ grep '^[[:space:]]*tile_desc_frontail' /opt/openhabian/includes/dashboard-imagedata ++ sed 's|tile_desc_frontail=||g; s|"||g' + tileDesc='openHAB Log Viewer' ++ grep '^[[:space:]]*tile_imagedata_frontail' /opt/openhabian/includes/dashboard-imagedata ++ sed 's|tile_imagedata_frontail=||g; s|"||g' + tileImg='data:image/png;base64,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' ++ grep '^[[:space:]]*tile_url_frontail' /opt/openhabian/includes/dashboard-imagedata ++ sed 's|tile_url_frontail=||g; s|"||g; s|{HOSTNAME}|192.168.1.17|g' + tileURL=http://192.168.1.17:9001 ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:32:36_EDT [openHABian] Adding an openHAB dashboard tile for '\''frontail'\''... ' 2021-04-08_15:32:36_EDT [openHABian] Adding an openHAB dashboard tile for 'frontail'... + case $application in + true + openhab_is_installed + openhab2_is_installed ++ dpkg -s openhab2 ++ grep Status ++ cut '-d ' -f2 + [[ '' == \i\n\s\t\a\l\l ]] + return 1 + openhab3_is_installed ++ dpkg -s openhab ++ grep Status ++ cut '-d ' -f2 + [[ install == \i\n\s\t\a\l\l ]] + return 0 + return 0 + [[ -d /etc/openhab/services ]] + touch /etc/openhab/services/runtime.cfg + grep -qs frontail-link /etc/openhab/services/runtime.cfg + [[ -z openHAB Log Viewer ]] + [[ -z http://192.168.1.17:9001 ]] + [[ -z data:image/png;base64,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 ]] + echo -e '\norg.openhab.core.ui.tiles:frontail-link-name=openHAB Log Viewer\norg.openhab.core.ui.tiles:frontail-link-url=http://192.168.1.17:9001\norg.openhab.core.ui.tiles:frontail-link-imageurl=data:image/png;base64,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' + echo OK OK + custom_frontail_log add '' + local frontailService=/etc/systemd/system/frontail.service + local addLog + local removeLog + local array + [[ -f /etc/systemd/system/frontail.service ]] + [[ add == \a\d\d ]] + [[ -n '' ]] + [[ -n '' ]] + return 0 + zram_setup + [[ -n 1 ]] + [[ enable == \d\i\s\a\b\l\e ]] + is_arm + is_armv6l + [[ '' == \a\r\m\v\6\l ]] + case "$(uname -m)" in ++ uname -m + return 1 + is_armv7l + [[ '' == \a\r\m\v\7\l ]] + case "$(uname -m)" in ++ uname -m + return 0 + return 0 + has_lowmem + local totalMemory ++ awk '/MemTotal/ {print $2}' /proc/meminfo + totalMemory=3919132 + [[ -z 3919132 ]] + [[ 3919132 -lt 900000 ]] + return 1 + is_pione + [[ '' == \p\i\1 ]] + grep -q '^Revision\s*:\s*00[0-9a-fA-F][0-9a-fA-F]$' /proc/cpuinfo + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]0[0-36][0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_cmone + [[ '' == \c\m\1 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]06[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pizero + [[ '' == \p\i\0 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]09[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pizerow + [[ '' == \p\i\0\w ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]0[cC][0-9a-fA-F]$' /proc/cpuinfo + return 1 ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:32:37_EDT [openHABian] Installing zram... ' 2021-04-08_15:32:37_EDT [openHABian] Installing zram... + cond_redirect init_zram_mounts install + [[ -n '' ]] + echo -e '\n\033[90;01m$ init_zram_mounts install \033[39;49;00m' $ init_zram_mounts install  + init_zram_mounts install + is_arm + is_armv6l + [[ '' == \a\r\m\v\6\l ]] + case "$(uname -m)" in ++ uname -m + return 1 + is_armv7l + [[ '' == \a\r\m\v\7\l ]] + case "$(uname -m)" in ++ uname -m + return 0 + return 0 + local 'introText=You are about to activate the zram feature.\nBe aware you do this at your own risk of data loss.\nPlease check out the "zram status" thread at https://community.openhab.org/t/zram-status/80996 before proceeding.' + local 'lowMemText=Your system has less than 1 GB of RAM. It is definitely NOT recommended to run zram (AND openHAB) on your box. If you proceed now you will do so at your own risk!' + local zramInstallLocation=/opt/zram + [[ install == \i\n\s\t\a\l\l ]] + [[ -f /etc/ztab ]] + [[ -n '' ]] + dpkg -s make libattr1-dev ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:32:37_EDT [openHABian] Installing zram required packages (make, libattr1-dev)... ' 2021-04-08_15:32:37_EDT [openHABian] Installing zram required packages (make, libattr1-dev)... + cond_redirect apt-get install --yes make libattr1-dev + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get install --yes make libattr1-dev \033[39;49;00m' $ apt-get install --yes make libattr1-dev  + apt-get install --yes make libattr1-dev Reading package lists... Building dependency tree... Reading state information... make is already the newest version (4.2.1-1.2). make set to manually installed. The following package was automatically installed and is no longer required: triggerhappy Use 'apt autoremove' to remove it. The following NEW packages will be installed: libattr1-dev 0 upgraded, 1 newly installed, 0 to remove and 22 not upgraded. Need to get 0 B/33.8 kB of archives. After this operation, 79.9 kB of additional disk space will be used. Selecting previously unselected package libattr1-dev:armhf. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 53203 files and directories currently installed.) Preparing to unpack .../libattr1-dev_1%3a2.4.48-4_armhf.deb ... Unpacking libattr1-dev:armhf (1:2.4.48-4) ... Setting up libattr1-dev:armhf (1:2.4.48-4) ... Processing triggers for man-db (2.8.5-2) ... Updating FireMotD available updates count ... + return 0 + echo OK OK + install_zram_code /opt/zram + local zramGit=https://github.com/ecdye/zram-config ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:32:46_EDT [openHABian] Installing zram code... ' 2021-04-08_15:32:46_EDT [openHABian] Installing zram code... + cond_redirect mkdir -p /opt/zram + [[ -n '' ]] + echo -e '\n\033[90;01m$ mkdir -p /opt/zram \033[39;49;00m' $ mkdir -p /opt/zram  + mkdir -p /opt/zram + return 0 + [[ -d /opt/zram/zram-config ]] + cond_redirect update_git_repo /opt/zram/zram-config openHAB + [[ -n '' ]] + echo -e '\n\033[90;01m$ update_git_repo /opt/zram/zram-config openHAB \033[39;49;00m' $ update_git_repo /opt/zram/zram-config openHAB  + update_git_repo /opt/zram/zram-config openHAB + local branch + local path + branch=openHAB + path=/opt/zram/zram-config ++ timestamp ++ date +%F_%T_%Z ++ basename /opt/zram/zram-config + echo -n '2021-04-08_15:32:46_EDT [openHABian] Updating zram-config, openHAB branch from git... ' 2021-04-08_15:32:46_EDT [openHABian] Updating zram-config, openHAB branch from git... + cond_redirect git -C /opt/zram/zram-config fetch origin + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/zram/zram-config fetch origin \033[39;49;00m' $ git -C /opt/zram/zram-config fetch origin  + git -C /opt/zram/zram-config fetch origin From https://github.com/ecdye/zram-config + 52fc322...c48a01a openHAB -> origin/openHAB (forced update) 705a4db..bf0ed3a main -> origin/main + 6864493...08e37d7 openHAB2 -> origin/openHAB2 (forced update) * [new tag] v1.2.3 -> v1.2.3 * [new tag] v1.2.2 -> v1.2.2 Fetching submodule overlayfs-tools From https://github.com/kmxz/overlayfs-tools 77bf3f7..291c7f4 master -> origin/master + return 0 + cond_redirect git -C /opt/zram/zram-config fetch --tags --force --prune + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/zram/zram-config fetch --tags --force --prune \033[39;49;00m' $ git -C /opt/zram/zram-config fetch --tags --force --prune  + git -C /opt/zram/zram-config fetch --tags --force --prune + return 0 + cond_redirect git -C /opt/zram/zram-config reset --hard origin/openHAB + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/zram/zram-config reset --hard origin/openHAB \033[39;49;00m' $ git -C /opt/zram/zram-config reset --hard origin/openHAB  + git -C /opt/zram/zram-config reset --hard origin/openHAB HEAD is now at c48a01a Add openHAB specific changes + return 0 + cond_redirect git -C /opt/zram/zram-config clean --force -x -d + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/zram/zram-config clean --force -x -d \033[39;49;00m' $ git -C /opt/zram/zram-config clean --force -x -d  + git -C /opt/zram/zram-config clean --force -x -d + return 0 + cond_redirect git -C /opt/zram/zram-config checkout openHAB + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/zram/zram-config checkout openHAB \033[39;49;00m' $ git -C /opt/zram/zram-config checkout openHAB  + git -C /opt/zram/zram-config checkout openHAB Already on 'openHAB' M overlayfs-tools Your branch is up to date with 'origin/openHAB'. + return 0 + echo OK OK + return 0 + echo OK OK ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:32:48_EDT [openHABian] Setting up OverlayFS... ' 2021-04-08_15:32:48_EDT [openHABian] Setting up OverlayFS... + cond_redirect make --always-make --directory=/opt/zram/zram-config/overlayfs-tools + [[ -n '' ]] + echo -e '\n\033[90;01m$ make --always-make --directory=/opt/zram/zram-config/overlayfs-tools \033[39;49;00m' $ make --always-make --directory=/opt/zram/zram-config/overlayfs-tools  + make --always-make --directory=/opt/zram/zram-config/overlayfs-tools make: Entering directory '/opt/zram/zram-config/overlayfs-tools' gcc -Wall -std=c99 -c main.c gcc -Wall -std=c99 -c logic.c gcc -Wall -std=c99 -c sh.c gcc -lm main.o logic.o sh.o -o overlay make: Leaving directory '/opt/zram/zram-config/overlayfs-tools' + return 0 + cond_redirect mkdir -p /usr/local/lib/zram-config/ + [[ -n '' ]] + echo -e '\n\033[90;01m$ mkdir -p /usr/local/lib/zram-config/ \033[39;49;00m' $ mkdir -p /usr/local/lib/zram-config/  + mkdir -p /usr/local/lib/zram-config/ + return 0 + cond_redirect install -m 755 /opt/zram/zram-config/overlayfs-tools/overlay /usr/local/lib/zram-config/overlay + [[ -n '' ]] + echo -e '\n\033[90;01m$ install -m 755 /opt/zram/zram-config/overlayfs-tools/overlay /usr/local/lib/zram-config/overlay \033[39;49;00m' $ install -m 755 /opt/zram/zram-config/overlayfs-tools/overlay /usr/local/lib/zram-config/overlay  + install -m 755 /opt/zram/zram-config/overlayfs-tools/overlay /usr/local/lib/zram-config/overlay + return 0 + echo OK OK ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:32:49_EDT [openHABian] Setting up zram... ' 2021-04-08_15:32:49_EDT [openHABian] Setting up zram... + cond_redirect install -m 755 /opt/zram/zram-config/zram-config /usr/local/sbin + [[ -n '' ]] + echo -e '\n\033[90;01m$ install -m 755 /opt/zram/zram-config/zram-config /usr/local/sbin \033[39;49;00m' $ install -m 755 /opt/zram/zram-config/zram-config /usr/local/sbin  + install -m 755 /opt/zram/zram-config/zram-config /usr/local/sbin + return 0 + cond_redirect install -m 644 /opt/openhabian/includes/ztab /etc/ztab + [[ -n '' ]] + echo -e '\n\033[90;01m$ install -m 644 /opt/openhabian/includes/ztab /etc/ztab \033[39;49;00m' $ install -m 644 /opt/openhabian/includes/ztab /etc/ztab  + install -m 644 /opt/openhabian/includes/ztab /etc/ztab + return 0 + cond_redirect mkdir -p /usr/local/share/zram-config/log + [[ -n '' ]] + echo -e '\n\033[90;01m$ mkdir -p /usr/local/share/zram-config/log \033[39;49;00m' $ mkdir -p /usr/local/share/zram-config/log  + mkdir -p /usr/local/share/zram-config/log + return 0 + cond_redirect install -m 644 /opt/zram/zram-config/zram-config.logrotate /etc/logrotate.d/zram-config + [[ -n '' ]] + echo -e '\n\033[90;01m$ install -m 644 /opt/zram/zram-config/zram-config.logrotate /etc/logrotate.d/zram-config \033[39;49;00m' $ install -m 644 /opt/zram/zram-config/zram-config.logrotate /etc/logrotate.d/zram-config  + install -m 644 /opt/zram/zram-config/zram-config.logrotate /etc/logrotate.d/zram-config + return 0 + echo OK OK + echo ReadWritePaths=/usr/local/share/zram-config/log + [[ -f /etc/systemd/system/find3server.service ]] + openhab_is_installed + openhab2_is_installed ++ dpkg -s openhab2 ++ grep Status ++ cut '-d ' -f2 + [[ '' == \i\n\s\t\a\l\l ]] + return 1 + openhab3_is_installed ++ dpkg -s openhab ++ grep Status ++ cut '-d ' -f2 + [[ install == \i\n\s\t\a\l\l ]] + return 0 + return 0 ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:32:49_EDT [openHABian] Setting up zram service... ' 2021-04-08_15:32:49_EDT [openHABian] Setting up zram service... + cond_redirect install -m 644 /opt/zram/zram-config/zram-config.service /etc/systemd/system/zram-config.service + [[ -n '' ]] + echo -e '\n\033[90;01m$ install -m 644 /opt/zram/zram-config/zram-config.service /etc/systemd/system/zram-config.service \033[39;49;00m' $ install -m 644 /opt/zram/zram-config/zram-config.service /etc/systemd/system/zram-config.service  + install -m 644 /opt/zram/zram-config/zram-config.service /etc/systemd/system/zram-config.service + return 0 + cond_redirect systemctl -q daemon-reload + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + running_on_github + [[ -n '' ]] + return 1 + cond_redirect systemctl mask unattended-upgrades.service + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl mask unattended-upgrades.service \033[39;49;00m' $ systemctl mask unattended-upgrades.service  + systemctl mask unattended-upgrades.service Created symlink /etc/systemd/system/unattended-upgrades.service → /dev/null. + return 0 + cond_redirect systemctl enable --now zram-config.service + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl enable --now zram-config.service \033[39;49;00m' $ systemctl enable --now zram-config.service  + systemctl enable --now zram-config.service Created symlink /etc/systemd/system/basic.target.wants/zram-config.service → /etc/systemd/system/zram-config.service. + return 0 + echo OK OK + return 0 + exim_setup + [[ -n 1 ]] + [[ -z '' ]] ++ timestamp ++ date +%F_%T_%Z + echo '2021-04-08_15:32:51_EDT [openHABian] Beginning Mail Transfer Agent setup... CANCELED (no configuration provided)' 2021-04-08_15:32:51_EDT [openHABian] Beginning Mail Transfer Agent setup... CANCELED (no configuration provided) + return 0 + permissions_corrections + local gpioDir=/sys/devices/platform/soc + groups=("audio" "bluetooth" "dialout" "gpio" "tty") + local groups + openhabFolders=("/etc/openhab" "/var/lib/openhab" "/var/log/openhab" "/usr/share/openhab") + local openhabFolders + local openhabHome=/var/lib/openhab + local retval=0 ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:32:51_EDT [openHABian] Applying file permissions recommendations... ' 2021-04-08_15:32:51_EDT [openHABian] Applying file permissions recommendations... + openhab_is_installed + openhab2_is_installed ++ dpkg -s openhab2 ++ grep Status ++ cut '-d ' -f2 + [[ '' == \i\n\s\t\a\l\l ]] + return 1 + openhab3_is_installed ++ dpkg -s openhab ++ grep Status ++ cut '-d ' -f2 + [[ install == \i\n\s\t\a\l\l ]] + return 0 + return 0 + cond_echo 'Setting Java and arping file capabilites' + [[ -z '' ]] + echo -e '\033[33;01mSetting Java and arping file capabilites\033[39;49;00m' Setting Java and arping file capabilites +++ command -v java ++ realpath /usr/bin/java + cond_redirect setcap 'cap_net_raw,cap_net_admin=+eip cap_net_bind_service=+ep' /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/java + [[ -n '' ]] + echo -e '\n\033[90;01m$ setcap cap_net_raw,cap_net_admin=+eip cap_net_bind_service=+ep /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/java \033[39;49;00m' $ setcap cap_net_raw,cap_net_admin=+eip cap_net_bind_service=+ep /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/java  + setcap 'cap_net_raw,cap_net_admin=+eip cap_net_bind_service=+ep' /opt/jdk/zulu11.45.27-ca-jdk11.0.10-linux_aarch32hf/bin/java + return 0 + cond_redirect setcap 'cap_net_raw,cap_net_admin=+eip cap_net_bind_service=+ep' /usr/sbin/arping + [[ -n '' ]] + echo -e '\n\033[90;01m$ setcap cap_net_raw,cap_net_admin=+eip cap_net_bind_service=+ep /usr/sbin/arping \033[39;49;00m' $ setcap cap_net_raw,cap_net_admin=+eip cap_net_bind_service=+ep /usr/sbin/arping  + setcap 'cap_net_raw,cap_net_admin=+eip cap_net_bind_service=+ep' /usr/sbin/arping + return 0 + for pGroup in "${groups[@]}" + grep -qs '^[[:space:]]*audio:' /etc/group + cond_redirect usermod --append --groups audio openhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ usermod --append --groups audio openhab \033[39;49;00m' $ usermod --append --groups audio openhab  + usermod --append --groups audio openhab + return 0 + cond_redirect usermod --append --groups audio bpsopenhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ usermod --append --groups audio bpsopenhab \033[39;49;00m' $ usermod --append --groups audio bpsopenhab  + usermod --append --groups audio bpsopenhab + return 0 + for pGroup in "${groups[@]}" + grep -qs '^[[:space:]]*bluetooth:' /etc/group + cond_redirect usermod --append --groups bluetooth openhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ usermod --append --groups bluetooth openhab \033[39;49;00m' $ usermod --append --groups bluetooth openhab  + usermod --append --groups bluetooth openhab + return 0 + cond_redirect usermod --append --groups bluetooth bpsopenhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ usermod --append --groups bluetooth bpsopenhab \033[39;49;00m' $ usermod --append --groups bluetooth bpsopenhab  + usermod --append --groups bluetooth bpsopenhab + return 0 + for pGroup in "${groups[@]}" + grep -qs '^[[:space:]]*dialout:' /etc/group + cond_redirect usermod --append --groups dialout openhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ usermod --append --groups dialout openhab \033[39;49;00m' $ usermod --append --groups dialout openhab  + usermod --append --groups dialout openhab + return 0 + cond_redirect usermod --append --groups dialout bpsopenhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ usermod --append --groups dialout bpsopenhab \033[39;49;00m' $ usermod --append --groups dialout bpsopenhab  + usermod --append --groups dialout bpsopenhab + return 0 + for pGroup in "${groups[@]}" + grep -qs '^[[:space:]]*gpio:' /etc/group + cond_redirect usermod --append --groups gpio openhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ usermod --append --groups gpio openhab \033[39;49;00m' $ usermod --append --groups gpio openhab  + usermod --append --groups gpio openhab + return 0 + cond_redirect usermod --append --groups gpio bpsopenhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ usermod --append --groups gpio bpsopenhab \033[39;49;00m' $ usermod --append --groups gpio bpsopenhab  + usermod --append --groups gpio bpsopenhab + return 0 + for pGroup in "${groups[@]}" + grep -qs '^[[:space:]]*tty:' /etc/group + cond_redirect usermod --append --groups tty openhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ usermod --append --groups tty openhab \033[39;49;00m' $ usermod --append --groups tty openhab  + usermod --append --groups tty openhab + return 0 + cond_redirect usermod --append --groups tty bpsopenhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ usermod --append --groups tty bpsopenhab \033[39;49;00m' $ usermod --append --groups tty bpsopenhab  + usermod --append --groups tty bpsopenhab + return 0 + cond_redirect usermod --append --groups openhab bpsopenhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ usermod --append --groups openhab bpsopenhab \033[39;49;00m' $ usermod --append --groups openhab bpsopenhab  + usermod --append --groups openhab bpsopenhab + return 0 + cond_redirect chown --silent openhab:openhab /srv /opt + [[ -n '' ]] + echo -e '\n\033[90;01m$ chown --silent openhab:openhab /srv /opt \033[39;49;00m' $ chown --silent openhab:openhab /srv /opt  + chown --silent openhab:openhab /srv /opt + return 0 + cond_redirect chmod --silent ugo+w /srv + [[ -n '' ]] + echo -e '\n\033[90;01m$ chmod --silent ugo+w /srv \033[39;49;00m' $ chmod --silent ugo+w /srv  + chmod --silent ugo+w /srv + return 0 + cond_redirect chown --recursive openhab:openhab /etc/openhab /var/lib/openhab /var/log/openhab /usr/share/openhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ chown --recursive openhab:openhab /etc/openhab /var/lib/openhab /var/log/openhab /usr/share/openhab \033[39;49;00m' $ chown --recursive openhab:openhab /etc/openhab /var/lib/openhab /var/log/openhab /usr/share/openhab  + chown --recursive openhab:openhab /etc/openhab /var/lib/openhab /var/log/openhab /usr/share/openhab + return 0 + cond_redirect chmod --recursive ug+wX /opt /etc/openhab /var/lib/openhab /var/log/openhab /usr/share/openhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ chmod --recursive ug+wX /opt /etc/openhab /var/lib/openhab /var/log/openhab /usr/share/openhab \033[39;49;00m' $ chmod --recursive ug+wX /opt /etc/openhab /var/lib/openhab /var/log/openhab /usr/share/openhab  + chmod --recursive ug+wX /opt /etc/openhab /var/lib/openhab /var/log/openhab /usr/share/openhab + return 0 + [[ -d /var/lib/openhab/.ssh ]] + cond_redirect fix_permissions /home/bpsopenhab bpsopenhab:bpsopenhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ fix_permissions /home/bpsopenhab bpsopenhab:bpsopenhab \033[39;49;00m' $ fix_permissions /home/bpsopenhab bpsopenhab:bpsopenhab  + fix_permissions /home/bpsopenhab bpsopenhab:bpsopenhab + [[ -e /home/bpsopenhab ]] + chown bpsopenhab:bpsopenhab /home/bpsopenhab + [[ -n '' ]] + return 0 + return 0 + [[ -f /etc/mosquitto/mosquitto.conf ]] + cond_redirect setfacl --recursive --remove-all /etc/openhab /var/lib/openhab /var/log/openhab /usr/share/openhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ setfacl --recursive --remove-all /etc/openhab /var/lib/openhab /var/log/openhab /usr/share/openhab \033[39;49;00m' $ setfacl --recursive --remove-all /etc/openhab /var/lib/openhab /var/log/openhab /usr/share/openhab  + setfacl --recursive --remove-all /etc/openhab /var/lib/openhab /var/log/openhab /usr/share/openhab + return 0 + cond_redirect fix_permissions /var/log/unattended-upgrades root:root 644 755 + [[ -n '' ]] + echo -e '\n\033[90;01m$ fix_permissions /var/log/unattended-upgrades root:root 644 755 \033[39;49;00m' $ fix_permissions /var/log/unattended-upgrades root:root 644 755  + fix_permissions /var/log/unattended-upgrades root:root 644 755 + [[ -e /var/log/unattended-upgrades ]] + chown root:root /var/log/unattended-upgrades + [[ -n 644 ]] + [[ -f /var/log/unattended-upgrades ]] + [[ -n 755 ]] + [[ -d /var/log/unattended-upgrades ]] + find /var/log/unattended-upgrades -type d -print0 + xargs -0 chmod 755 + return 0 + return 0 + cond_redirect fix_permissions /var/log/samba root:root 640 750 + [[ -n '' ]] + echo -e '\n\033[90;01m$ fix_permissions /var/log/samba root:root 640 750 \033[39;49;00m' $ fix_permissions /var/log/samba root:root 640 750  + fix_permissions /var/log/samba root:root 640 750 + [[ -e /var/log/samba ]] + chown root:root /var/log/samba + [[ -n 640 ]] + [[ -f /var/log/samba ]] + [[ -n 750 ]] + [[ -d /var/log/samba ]] + find /var/log/samba -type d -print0 + xargs -0 chmod 750 + return 0 + return 0 + cond_redirect fix_permissions /var/log/openhab openhab:bpsopenhab 664 775 + [[ -n '' ]] + echo -e '\n\033[90;01m$ fix_permissions /var/log/openhab openhab:bpsopenhab 664 775 \033[39;49;00m' $ fix_permissions /var/log/openhab openhab:bpsopenhab 664 775  + fix_permissions /var/log/openhab openhab:bpsopenhab 664 775 + [[ -e /var/log/openhab ]] + chown openhab:bpsopenhab /var/log/openhab + [[ -n 664 ]] + [[ -f /var/log/openhab ]] + [[ -n 775 ]] + [[ -d /var/log/openhab ]] + find /var/log/openhab -type d -print0 + xargs -0 chmod 775 + return 0 + return 0 + [[ -f /etc/ztab ]] + cond_redirect fix_permissions /opt/zram/log.bind/samba root:root 640 750 + [[ -n '' ]] + echo -e '\n\033[90;01m$ fix_permissions /opt/zram/log.bind/samba root:root 640 750 \033[39;49;00m' $ fix_permissions /opt/zram/log.bind/samba root:root 640 750  + fix_permissions /opt/zram/log.bind/samba root:root 640 750 + [[ -e /opt/zram/log.bind/samba ]] + return 0 + return 0 + cond_redirect fix_permissions /opt/zram/persistence.bind openhab:bpsopenhab 664 775 + [[ -n '' ]] + echo -e '\n\033[90;01m$ fix_permissions /opt/zram/persistence.bind openhab:bpsopenhab 664 775 \033[39;49;00m' $ fix_permissions /opt/zram/persistence.bind openhab:bpsopenhab 664 775  + fix_permissions /opt/zram/persistence.bind openhab:bpsopenhab 664 775 + [[ -e /opt/zram/persistence.bind ]] + return 0 + return 0 + cond_redirect fix_permissions /opt/zram/log.bind/openhab openhab:bpsopenhab 664 775 + [[ -n '' ]] + echo -e '\n\033[90;01m$ fix_permissions /opt/zram/log.bind/openhab openhab:bpsopenhab 664 775 \033[39;49;00m' $ fix_permissions /opt/zram/log.bind/openhab openhab:bpsopenhab 664 775  + fix_permissions /opt/zram/log.bind/openhab openhab:bpsopenhab 664 775 + [[ -e /opt/zram/log.bind/openhab ]] + return 0 + return 0 + echo OK OK + [[ -d /etc/homegear ]] + return 0 + setup_mirror_SD install + [[ -n 1 ]] + [[ -z /dev/sda ]] + local dest + local srcSize + local destSize + local minStorageSize=4000000000 + local serviceTargetDir=/etc/systemd/system + local storageDir=/storage + local 'sizeError=your destination SD card device does not have enough space, it needs to have at least twice as much as the source' + local 'infoText1=DANGEROUS OPERATION, USE WITH PRECAUTION!\n\nThis will *copy* your system root from your SD card to a USB attached card writer device. Are you sure' + local 'infoText2=is an SD card writer device equipped with a dispensible SD card? Are you sure, this will destroy all data on that card and you want to proceed writing to this device?' ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:32:52_EDT [openHABian] Setting up automated SD mirroring and backup... ' 2021-04-08_15:32:52_EDT [openHABian] Setting up automated SD mirroring and backup... + [[ install == \r\e\m\o\v\e ]] + [[ install != \i\n\s\t\a\l\l ]] + is_pi + is_pifour + [[ '' == \p\i\4 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]11[0-9a-fA-F]$' /proc/cpuinfo + return 0 + return 0 + mkdir -p /storage + cond_redirect apt-get install --yes gdisk + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get install --yes gdisk \033[39;49;00m' $ apt-get install --yes gdisk  + apt-get install --yes gdisk Reading package lists... Building dependency tree... Reading state information... The following package was automatically installed and is no longer required: triggerhappy Use 'apt autoremove' to remove it. The following NEW packages will be installed: gdisk 0 upgraded, 1 newly installed, 0 to remove and 22 not upgraded. Need to get 0 B/181 kB of archives. After this operation, 699 kB of additional disk space will be used. Selecting previously unselected package gdisk. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 53225 files and directories currently installed.) Preparing to unpack .../gdisk_1.0.3-1.1_armhf.deb ... Unpacking gdisk (1.0.3-1.1) ... Setting up gdisk (1.0.3-1.1) ... Processing triggers for man-db (2.8.5-2) ... Updating FireMotD available updates count ... + return 0 + echo OK OK + cond_redirect install -m 755 /opt/openhabian/includes/set-partuuid /usr/local/sbin + [[ -n '' ]] + echo -e '\n\033[90;01m$ install -m 755 /opt/openhabian/includes/set-partuuid /usr/local/sbin \033[39;49;00m' $ install -m 755 /opt/openhabian/includes/set-partuuid /usr/local/sbin  + install -m 755 /opt/openhabian/includes/set-partuuid /usr/local/sbin + return 0 + [[ -n '' ]] + dest=/dev/sda ++ blockdev --getsize64 /dev/sda blockdev: cannot open /dev/sda: No medium found + [[ -n '' ]] + echo 'FAILED (bad destination)' FAILED (bad destination) + return 1 + install_cleanup ++ timestamp ++ date +%F_%T_%Z + echo -n '2021-04-08_15:33:03_EDT [openHABian] Cleaning up... ' 2021-04-08_15:33:03_EDT [openHABian] Cleaning up... + cond_redirect systemctl -q daemon-reload + cond_redirect apt-get clean + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get clean \033[39;49;00m' $ apt-get clean  + apt-get clean + return 0 + cond_redirect apt-get autoremove --yes + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get autoremove --yes \033[39;49;00m' $ apt-get autoremove --yes  + apt-get autoremove --yes Reading package lists... Building dependency tree... Reading state information... The following packages will be REMOVED: triggerhappy 0 upgraded, 0 newly installed, 1 to remove and 22 not upgraded. After this operation, 97.3 kB disk space will be freed. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 53246 files and directories currently installed.) Removing triggerhappy (0.5.0-1) ... Warning: Stopping triggerhappy.service, but it can still be activated by: triggerhappy.socket Processing triggers for man-db (2.8.5-2) ... Updating FireMotD available updates count ... + return 0 + echo OK OK + cd / + rm -f /opt/openHABian-install-inprogress + touch /opt/openHABian-install-successful ++ timestamp ++ date +%F_%T_%Z + echo '2021-04-08_15:33:22_EDT [openHABian] Execution of '\''openhabian-config unattended'\'' completed.' 2021-04-08_15:33:22_EDT [openHABian] Execution of 'openhabian-config unattended' completed. ++ timestamp ++ date +%F_%T_%Z + echo '2021-04-08_15:33:22_EDT [openHABian] First time setup successfully finished. Rebooting your system!' 2021-04-08_15:33:22_EDT [openHABian] First time setup successfully finished. Rebooting your system! ++ timestamp ++ date +%F_%T_%Z + echo '2021-04-08_15:33:22_EDT [openHABian] After rebooting the openHAB dashboard will be available at: http://openhabian:8080' 2021-04-08_15:33:22_EDT [openHABian] After rebooting the openHAB dashboard will be available at: http://openhabian:8080 ++ timestamp ++ date +%F_%T_%Z + echo '2021-04-08_15:33:22_EDT [openHABian] After rebooting to gain access to a console, simply reconnect using ssh.' 2021-04-08_15:33:22_EDT [openHABian] After rebooting to gain access to a console, simply reconnect using ssh. + sleep 12 ++ command -v python3 + [[ -x /usr/bin/python3 ]] + bash /boot/webserver.bash inst_done + sleep 12 ++ command -v python3 + [[ -x /usr/bin/python3 ]] + bash /boot/webserver.bash cleanup + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + reboot