openhab / openhabian

openHABian - empowering the smart home, for Raspberry Pi and Debian systems
https://community.openhab.org/t/13379
ISC License
822 stars 251 forks source link

OH3.0.0M5 stuck during installation (use debugemode=maximum to fix) #1299

Closed PatrickGlatz closed 3 years ago

PatrickGlatz commented 3 years ago

Hello @mstormi,

i had several difficulties to set up OH3 on a fresh system. As ou have requested i have reworked it. This is what i found and what my approach was finally:

## Issue information: grabbed a fresh sealed SD card, openHABian v1.6.1 32bit, used Raspberry Pi Imager on a Mac, wrote the image, edited the openhabian.conf with the following fields: hostname=openHAB username=openhabadm userpw=xxxxxx debugmode=maximum

Inserted the SD card, waited for 1 hour, ssh'd to the pi, executed sudo openhabian-config went to '40 | openHAB related' and then '42 | Upgrade to openHAB 3'. Confirmed all message boxes. The installation was ongoing but then it stopped and asked if i want to use the local or the repo version of several files, like /etc/openhab/services/addons.cfg /etc/openhab/services/runtime.cfg /var/lib/openhab/etc/org.ops4j.pax.logging.cfg /var/lib/openhab/etc/users.properties /var/lib/openhab/etc/keystore

When debugmode is set to 'off' these questions are not appearing and the installation stucks!!! No information on what is going on, no option to interrupt.

What i would expect is, that even with debugmode=off the installation runs through, using either default values or interrupting and asking.

Another issue is, that the installation finally fails with hint to the zramsync directory not being copied. This is why ZRAM activation fails. I guess it is related to this issue: #1287

Thanks in advance Patrick

## System information: Raspberry Pi 4, 4GB openhabian v1.6.1 32bit SanDisk ultra micro SDHC 16GB Original Raspberry Pi 4 power supply

[13:31:33] localadm@Mac: 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" [13:31:34] localadm@Mac: uname -m armv7l

**## Debug information:**
[localadm@Mac] ~ : ssh openhabadm@192.168.178.255
The authenticity of host '192.168.178.255 (192.168.178.255)' can't be established.
ECDSA key fingerprint is SHA256:abcdefghijklmnopqrstuvwxyz.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.178.255' (ECDSA) to the list of known hosts.
openhabadm@192.168.178.255's password: 
Linux openHAB 5.4.79-v7l+ #1373 SMP Mon Nov 23 13:27:40 GMT 2020 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

###############################################################################
###############  openHAB  #####################################################
###############################################################################
##        Ip = 192.168.178.255
##   Release = Raspbian GNU/Linux 10 (buster)
##    Kernel = Linux 5.4.79-v7l+
##  Platform = Raspberry Pi 4 Model B Rev 1.1
##    Uptime = 0 day(s). 0:13:40
## CPU Usage = 0.25% avg over 4 cpu(s) (4 core(s) x 1 socket(s))
##  CPU Load = 1m: 0.04, 5m: 0.60, 15m: 0.60
##    Memory = Free: 2.30GB (62%), Used: 1.43GB (38%), Total: 3.73GB
##      Swap = Free: 0.09GB (100%), Used: 0.00GB (0%), Total: 0.09GB
##      Root = Free: 11.33GB (82%), Used: 2.37GB (18%), Total: 14.32GB
##   Updates = 0 apt updates available.
##  Sessions = 1 session(s)
## Processes = 136 running processes of 32768 maximum processes
###############################################################################

              Welcome to            __  _____    ____  _
            ____  ____  ___  ____  / / / /   |  / __ )(_)___ _____
           / __ \/ __ \/ _ \/ __ \/ /_/ / /| | / __  / / __ `/ __ \
          / /_/ / /_/ /  __/ / / / __  / ___ |/ /_/ / / /_/ / / / /
          \____/ .___/\___/_/ /_/_/ /_/_/  |_/_____/_/\__,_/_/ /_/
              /_/
                  openHAB 2.5.11-1 (Release Build)

Looking for a place to get started? Check out 'sudo openhabian-config' and the
documentation at https://www.openhab.org/docs/installation/openhabian.html
The openHAB dashboard can be reached at http://openHAB:8080
To interact with openHAB on the command line, execute: 'openhab-cli --help'

[12:58:17] openhabadm@openHAB:~$ sudo openhabian-config 

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for openhabadm: 
2020-12-14_12:58:33_CET [openHABian] Checking for root privileges... OK
+ export UNATTENDED MIGRATION 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/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=/home/openhabadm
+ cd /opt
+ config_ipv6
+ local aptConf=/etc/apt/apt.conf/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 '' ]]
+ apt_update
+ PID_APT=12433
+ whiptail_check
+ apt-get update
++ command -v whiptail
+ [[ -x /usr/bin/whiptail ]]
+ 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 '2020-12-14_12:58:33_CET [openHABian] Loading configuration file '\''/etc/openhabian.conf'\''... '
2020-12-14_12:58:33_CET [openHABian] Loading configuration file '/etc/openhabian.conf'... ++ getent group openhabadm
+ [[ ! -n openhabadm:x:1000:openhabadm,frontail ]]
+ id -u openhabadm
+ source /etc/openhabian.conf
++ hostname=openHAB
++ username=openhabadm
++ timezone=Europe/Berlin
++ locales='en_US.UTF-8 de_DE.UTF-8'
++ system_default_locale=en_US.UTF-8
++ wifi_ssid=
++ wifi_psk=
++ wifi_country=
++ ipv6=enable
++ repositoryurl=https://github.com/openhab/openhabian
++ clonebranch=stable
++ debugmode=maximum
++ cached_java_opt=Zulu8-32
++ java_opt=Zulu8-32
++ hotspot=enable
+ echo OK
OK
+ openhabian_console_check
+ [[ -z 1 ]]
++ tput cols
+ [[ 194 -ge 120 ]]
+ return 0
+ openhabian_update_check
+ [[ -z 1 ]]
+ local branch
+ local introText
+ local unsupportedHWText
+ local unsupportedOSText
+ branch=stable
+ introText='Additions, improvements or fixes were added to the openHABian configuration tool. Would you like to update now and benefit from them? The update will not automatically apply changes to your system.\n\nUpdating is recommended.'
+ unsupportedHWText='You are running on old hardware that is no longer officially supported.\nopenHABian may still work with this or not.\nWe recommend that you replace your hardware with a current SBC such as a RPi4/2GB.\nDo you really want to continue using openHABian on this system?'
+ unsupportedOSText='You are running an old Linux release that is no longer officially supported.\nWe recommend upgrading to the most current stable release of your distribution (or current Long Term Support version for distributions that offer LTS).\nDo you really want to continue using openHABian on this system?'
++ timestamp
++ date +%F_%T_%Z
++ get_git_revision
++ local branch
++ local latestTag
++ local revCount
++ local shorthash
+++ git -C /opt/openhabian rev-parse --abbrev-ref HEAD
++ branch=stable
+++ git -C /opt/openhabian describe --tags --abbrev=0
++ latestTag=v1.6.1
+++ git -C /opt/openhabian log --oneline
+++ wc -l
++ revCount=963
+++ git -C /opt/openhabian log --pretty=format:%h -n 1
++ shorthash=1fa8959
++ echo '[stable]v1.6.1-963(1fa8959)'
+ echo '2020-12-14_12:58:33_CET [openHABian] openHABian configuration tool version: [stable]v1.6.1-963(1fa8959)'
2020-12-14_12:58:33_CET [openHABian] openHABian configuration tool version: [stable]v1.6.1-963(1fa8959)
++ timestamp
++ date +%F_%T_%Z
+ echo -n '2020-12-14_12:58:33_CET [openHABian] Checking for changes in origin branch stable... '
2020-12-14_12:58:33_CET [openHABian] Checking for changes in origin branch stable... + is_pine64
++ uname -r
+ [[ 5.4.79-v7l+ =~ pine64-longsleep ]]
+ return 1
+ is_jessie
+ [[ '' == \j\e\s\s\i\e ]]
++ 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" =~ jessie ]]
+ return 1
+ is_xenial
+ [[ '' == \x\e\n\i\a\l ]]
++ 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" =~ xenial ]]
+ return 1
+ git -C /opt/openhabian config user.email openhabian@openHABian
+ git -C /opt/openhabian config user.name openhabian
+ git -C /opt/openhabian fetch --quiet origin
++ git -C /opt/openhabian rev-parse stable
++ git -C /opt/openhabian rev-parse '@{u}'
+ [[ 1fa89598a0d636b78270484530512ef60c81acdf == 1fa89598a0d636b78270484530512ef60c81acdf ]]
+ echo OK
OK
+ openhabian_announcements
+ [[ -z 1 ]]
+ local newsFile
+ local readNews
+ newsFile=/opt/openhabian/NEWS.md
+ readNews=/opt/openhabian/docs/LASTNEWS.md
+ cmp --silent /opt/openhabian/NEWS.md /opt/openhabian/docs/LASTNEWS.md
++ cat /opt/openhabian/NEWS.md
+ whiptail --title 'openHABian announcements' --yes-button 'Stop Displaying' --no-button 'Keep Displaying' --defaultno --scrolltext --yesno 'Hit tab to unselect the buttons and scroll through the text using UP/DOWN or
PGUP/PGDN.
All announcements will be stored in /opt/openhabian/docs/NEWSLOG.md for you to
lookup.

## November 14, 2020
## WiFi Hotspot
Whenever your system has a WiFi interface that fails to initialize on installation or startup,
openHABian will now launch a [WiFi hotspot](docs/openhabian.md#WiFi-Hotspot) you can use to bootstrap WiFi i.e. to connect your
system to an existing WiFi network.

## October 28, 2020
## openHAB3 readiness (BETA)
openHABian now provides menu options 4X to upgrade your system to openHAB3 and to downgrade
back to current openHAB2 as well. See [documentation](docs/openhabian.md) for details.
Please be aware that openHAB3 as well as openHABian are not thoroughly tested so be prepared
to meet bugs and problems. Don'\''t use this on your production system.

## October 6, 2020
## Tailscale VPN network (BETA)
Tailscale is a management toolset to establish a WireGuard based VPN between multiple systems
if you want to connect to openHAB(ian) instances outside your LAN over Internet.
It'\''ll take care to detect and open ports when you and your peers are located behind firewalls.
This makes use of the tailscale service. Don'\''t worry, for private use it'\''s free of charge.

## October 1, 2020
## Offline installation (BETA)
We now allow for deploying openHABian to destination networks without Internet connectivity.
While the optional components still require access to download, the openHABian core is
fully contained in the download image and can be installed and run without Internet.
This will also provide a failsafe installation when any of the online sources for the tools
we need to download is unavailable for whatever reason.

## August 29, 2020
## Auto-backup
openHABian can automatically take daily syncs of your internal SD card to
another card in an external port. This allows for fast swapping of cards
to reduce impact of a failed SD card.
The remaining space on the external device can also be used to setup openHABian'\''s Amanda backup system.' 27 85
++ timestamp
++ date +%F_%T_%Z
+ echo -n '2020-12-14_12:58:36_CET [openHABian] Switching to branch stable... '
2020-12-14_12:58:36_CET [openHABian] Switching to branch stable... + git -C /opt/openhabian checkout --quiet stable
+ echo OK
OK
+ [[ -n '' ]]
+ show_main_menu
+ local choice
+ local version
+++ get_git_revision
+++ local branch
+++ local latestTag
+++ local revCount
+++ local shorthash
++++ git -C /opt/openhabian rev-parse --abbrev-ref HEAD
+++ branch=stable
++++ git -C /opt/openhabian describe --tags --abbrev=0
+++ latestTag=v1.6.1
++++ git -C /opt/openhabian log --oneline
++++ wc -l
+++ revCount=963
++++ git -C /opt/openhabian log --pretty=format:%h -n 1
+++ shorthash=1fa8959
+++ echo '[stable]v1.6.1-963(1fa8959)'
++ whiptail --title 'Welcome to the openHABian Configuration Tool [stable]v1.6.1-963(1fa8959)' --menu 'Setup Options' 18 116 11 --cancel-button Exit --ok-button Execute '00 | About openHABian' 'Information about the openHABian project and this tool' '' '' '01 | Select Branch' 'Select the openHABian config tool version ("branch") to run' '02 | Upgrade System' 'Upgrade all installed software packages (incl. openHAB) to their latest version' '03 | openHAB Stable' 'Install or upgrade to the latest stable release of openHAB 2' '' '' '10 | Apply Improvements' 'Apply the latest improvements to the basic openHABian setup ►' '20 | Optional Components' 'Choose from a set of optional software components ►' '30 | System Settings' 'A range of system and hardware related configuration steps ►' '40 | openHAB related' 'Switch the installed openHAB version or apply tweaks ►' '50 | Backup/Restore' 'Manage backups and restore your system ►'
+ choice='40 | openHAB related'
+ RET=0
+ '[' 0 -eq 1 ']'
+ '[' 0 -eq 255 ']'
+ [[ 40 | openHAB related == '' ]]
+ [[ 40 | openHAB related == \0\0* ]]
+ [[ 40 | openHAB related == \0\1* ]]
+ [[ 40 | openHAB related == \0\2* ]]
+ [[ 40 | openHAB related == \0\3* ]]
+ [[ 40 | openHAB related == \1\0* ]]
+ [[ 40 | openHAB related == \2\0* ]]
+ [[ 40 | openHAB related == \3\0* ]]
+ [[ 40 | openHAB related == \4\0* ]]
++ whiptail --title 'openHAB Setup Options' --menu 'Setup Options' 21 116 14 --cancel-button Back --ok-button Execute '41 | openHAB release' 'Install or switch to the latest openHAB release' '   | openHAB testing' 'Install or switch to the latest openHAB testing build' '   | openHAB snapshot' 'Install or switch to the latest openHAB SNAPSHOT build' '42 | Upgrade to openHAB 3' 'Upgrade OS environment to openHAB 3 testing milestone (BETA !)' '   | Downgrade to openHAB 2' 'Downgrade OS environment from openHAB 3 back to openHAB 2 stable' '43 | Remote Console' 'Bind the openHAB SSH console to all external interfaces' '44 | Reverse Proxy' 'Setup Nginx with password authentication and/or HTTPS access' '45 | Delay rules load' 'Delay loading rules to speed up overall startup' '   | Default order' 'Reset config load order to default (random)' '46 | Zulu 8 OpenJDK 32-bit' 'Install Zulu 8 32-bit OpenJDK as primary Java provider' '   | Zulu 8 OpenJDK 64-bit' 'Install Zulu 8 64-bit OpenJDK as primary Java provider' '   | Zulu 11 OpenJDK 32-bit' 'Install Zulu 11 32-bit OpenJDK as primary Java provider' '   | Zulu 11 OpenJDK 64-bit' 'Install Zulu 11 64-bit OpenJDK as primary Java provider' '   | AdoptOpenJDK 11' 'Install AdoptOpenJDK 11 as primary Java provider'
+ choice2='42 | Upgrade to openHAB 3'
+ '[' 0 -eq 1 ']'
+ '[' 1 -eq 255 ']'
+ wait_for_apt_to_finish_update
++ timestamp
++ date +%F_%T_%Z
+ echo -n '2020-12-14_12:58:48_CET [openHABian] Updating Linux package information... '
2020-12-14_12:58:48_CET [openHABian] Updating Linux package information... + [[ -z 12433 ]]
+ tail --pid=12433 -f /dev/null
+ echo OK
OK
++ openhab3_is_installed
+++ dpkg -s openhab
+++ grep Status
+++ cut '-d ' -f2
++ [[ '' == \i\n\s\t\a\l\l ]]
++ return 1
++ echo openHAB2
+ version=openHAB2
+ case "$choice2" in
+ migrate_installation openHAB3 testing
+ local 'failText=is already installed on your system !\n\nCanceling migration, returning to menu.'
+ local frontailService=/etc/systemd/system/frontail.service
+ local homegearService=/etc/systemd/system/homegear.service
+ local frontailJSON=/usr/lib/node_modules/frontail/preset/openhab.json
+ local 'amandaConfigs=/etc/amanda/openhab-*/disklist'
+ local ztab=/etc/ztab
+ local serviceDir=/etc/systemd/system
+ local services
+ local 'mountUnits=/etc/systemd/system/srv-openhab*'
+ local from
+ local to
+ local distro
+ local javaVersion
+ [[ -z 1 ]]
++ timestamp
++ date +%F_%T_%Z
+ echo -n '2020-12-14_12:58:48_CET [openHABian] Preparing openHAB installation... '
2020-12-14_12:58:48_CET [openHABian] Preparing openHAB installation... + [[ openHAB3 == \o\p\e\n\H\A\B\3 ]]
+ false
+ from=openhab2
+ to=openhab
+ distro=testing
+ services='srv-openhab2\x2daddons.mount srv-openhab2\x2dconf.mount srv-openhab2\x2dlogs.mount srv-openhab2\x2duserdata.mount  srv-openhab2\x2dsys.mount'
++ java -version
++ awk -F '"' '/version/ {print $2}'
++ sed -e 's/_.*//g; s/^1\.//g; s/\..*//g; s/-.*//g;'
+ javaVersion=8
+ [[ '' != \d\i\s\a\b\l\e ]]
+ [[ -s /etc/ztab ]]
+ backup_openhab_config
+ openhab_is_installed
+ openhab2_is_installed
++ dpkg -s openhab2
++ grep Status
++ cut '-d ' -f2
+ [[ install == \i\n\s\t\a\l\l ]]
+ return 0
+ return 0
+ local filePath
+ local 'introText=This will create a backup of your openHAB configuration using openHAB'\''s builtin backup tool.\n\nWould you like to backup?'
+ local successText
++ timestamp
++ date +%F_%T_%Z
+ echo -n '2020-12-14_12:58:48_CET [openHABian] Beginning openHAB backup... '
2020-12-14_12:58:48_CET [openHABian] Beginning openHAB backup... + [[ -n 1 ]]
+ [[ 0 == 0 ]]
+ whiptail --title 'openHAB backup?' --yes-button Continue --no-button Skip --yesno 'This will create a backup of your openHAB configuration using openHAB'\''s builtin backup tool.\n\nWould you like to backup?' 10 80
++ timestamp
++ date +%F_%T_%Z
+ echo -n '2020-12-14_12:58:50_CET [openHABian] Creating openHAB backup... '
2020-12-14_12:58:50_CET [openHABian] Creating openHAB backup... ++ openhab-cli backup
++ awk -F ' ' '/Success/ { print $NF }'
+ filePath=/var/lib/openhab2/backups/openhab2-backup-20_12_14-12_58_50.zip
+ echo OK
OK
+ successText='A backup of your openHAB configuration has successfully been made.\n\nIt is stored in /var/lib/openhab2/backups/openhab2-backup-20_12_14-12_58_50.zip.'
+ [[ -n 1 ]]
+ whiptail --title 'Operation Successful!' --msgbox 'A backup of your openHAB configuration has successfully been made.\n\nIt is stored in /var/lib/openhab2/backups/openhab2-backup-20_12_14-12_58_50.zip.' 10 90
+ apt --yes remove openhab2 openhab2-addons
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  openhab2 openhab2-addons
0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
After this operation, 294 MB disk space will be freed.
(Reading database ... 53349 files and directories currently installed.)
Removing openhab2-addons (2.5.11-1) ...
Removing openhab2 (2.5.11-1) ...
Processing triggers for systemd (241-7~deb10u5+rpi1) ...
Updating FireMotD available updates count ... 
+ [[ -z 8 ]]
+ [[ 8 -lt 11 ]]
++ timestamp
++ date +%F_%T_%Z
+ echo -n '2020-12-14_12:59:00_CET [openHABian] WARNING: We were unable to detect Java 11 on your system so we will install the openHABian default (Zulu 11).'
2020-12-14_12:59:00_CET [openHABian] WARNING: We were unable to detect Java 11 on your system so we will install the openHABian default (Zulu 11).+ java_install_or_update Zulu11-32
+ local branch
++ git -C /opt/openhabian rev-parse --abbrev-ref HEAD
+ branch=stable
++ command -v java
+ [[ -x /usr/bin/java ]]
++ java -version
+ [[ openjdk version "1.8.0_272"
OpenJDK Runtime Environment (Zulu 8.50.0.259-CA-linux_aarch32hf) (build 1.8.0_272-b17)
OpenJDK Client VM (Zulu 8.50.0.259-CA-linux_aarch32hf) (build 25.272-b17, mixed mode) == *\Z\u\l\u* ]]
++ command -v java
+ [[ -x /usr/bin/java ]]
+ [[ Zulu11-32 == \A\d\o\p\t\1\1 ]]
+ [[ Zulu11-32 != \A\d\o\p\t\1\1 ]]
++ java -version
+ [[ openjdk version "1.8.0_272"
OpenJDK Runtime Environment (Zulu 8.50.0.259-CA-linux_aarch32hf) (build 1.8.0_272-b17)
OpenJDK Client VM (Zulu 8.50.0.259-CA-linux_aarch32hf) (build 25.272-b17, mixed mode) == *\A\d\o\p\t\O\p\e\n\J\D\K* ]]
+ [[ Zulu11-32 == \Z\u\l\u\8\-\6\4 ]]
+ [[ Zulu11-32 == \Z\u\l\u\1\1\-\6\4 ]]
+ [[ Zulu11-32 != \A\d\o\p\t\1\1 ]]
+ [[ Zulu11-32 == \Z\u\l\u\1\1\-\3\2 ]]
+ 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 filter8
+ local filter11
+ local javaArch
+ local javaVersion
+ local jdkBin
+ local link
+ local requestedArch
++ command -v jq
+ [[ -x /usr/bin/jq ]]
+ filter8='[.zulu_version[] | tostring] | join(".")'
+ filter11='[.jdk_version[] | tostring] | join(".")'
++ find /opt/jdk/zulu8.50.0.259-ca-jdk8.0.272-linux_aarch32hf/bin ... -print -quit
+ jdkBin=/opt/jdk/zulu8.50.0.259-ca-jdk8.0.272-linux_aarch32hf/bin
++ /opt/jdk/zulu8.50.0.259-ca-jdk8.0.272-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=8.50.0.259
+ 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\8\-\3\2 ]]
+ [[ 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.9.11
+ [[ -z aarch32hf ]]
+ [[ -z 11.0.9.11 ]]
+ [[ /opt/jdk/zulu8.50.0.259-ca-jdk8.0.272-linux_aarch32hf/bin == *\a\a\r\c\h\3\2\h\f* ]]
+ javaArch=aarch32hf
+ [[ /opt/jdk/zulu8.50.0.259-ca-jdk8.0.272-linux_aarch32hf/bin == *\i\6\8\6* ]]
+ [[ /opt/jdk/zulu8.50.0.259-ca-jdk8.0.272-linux_aarch32hf/bin == *\a\a\r\c\h\6\4* ]]
+ [[ /opt/jdk/zulu8.50.0.259-ca-jdk8.0.272-linux_aarch32hf/bin == *\x\6\4* ]]
+ [[ 8.50.0.259 == \1\1\.\0\.\9\.\1\1 ]]
+ return 0
+ java_zulu_prerequisite Zulu11-32
++ timestamp
++ date +%F_%T_%Z
+ echo -n '2020-12-14_12:59:01_CET [openHABian] Installing Java Zulu prerequisites (libc, libstdc++, zlib1g)... '
2020-12-14_12:59:01_CET [openHABian] Installing Java Zulu prerequisites (libc, libstdc++, zlib1g)... + [[ Zulu11-32 == \Z\u\l\u\8\-\6\4 ]]
+ [[ 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
+ [[ stable == \s\t\a\b\l\e ]]
+ [[ -z '' ]]
+ java_zulu_stable Zulu11-32
+ local updateText
+ local consoleText
+ updateText='Updating Java may result in issues as it has not recieved extensive testing to verify compatibility.\n\nIf you wish to continue and encounter any errors please let us know so we can look into them to improve future compatibility.'
+ consoleText='[openHABian] WARNING: Untested Java Version, you may experience issues as this version of Java has not recieved extensive testing to verify compatibility.'
+ [[ -n 1 ]]
+ whiptail --defaultno --title 'Untested Version of Java' --no-button Back --yes-button Continue --yesno 'Updating Java may result in issues as it has not recieved extensive testing to verify compatibility.\n\nIf you wish to continue and encounter any errors please let us know so we can look into them to improve future compatibility.' 11 80
+ java_zulu_fetch Zulu11-32
+ local downloadLink
+ local jdkInstallLocation
+ local link
+ jdkInstallLocation=/opt/jdk
+ link='https://api.azul.com/zulu/download/community/v1.0/bundles/latest/binary/?os=linux&ext=tar.gz&javafx=false'
+ [[ Zulu11-32 == \Z\u\l\u\8\-\3\2 ]]
+ [[ Zulu11-32 == \Z\u\l\u\1\1\-\3\2 ]]
++ timestamp
++ date +%F_%T_%Z
+ echo -n '2020-12-14_12:59:04_CET [openHABian] Downloading Java Zulu 11 32-Bit OpenJDK... '
2020-12-14_12:59:04_CET [openHABian] Downloading Java Zulu 11 32-Bit OpenJDK... + 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
++ curl 'https://api.azul.com/zulu/download/community/v1.0/bundles/latest/binary/?os=linux&ext=tar.gz&javafx=false&jdk_version=11&arch=arm&hw_bitness=32&abi=hard_float' -s -L -I -o /dev/null -w '%{url_effective}'
+ downloadLink=https://cdn.azul.com/zulu-embedded/bin/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf.tar.gz
+ [[ -z https://cdn.azul.com/zulu-embedded/bin/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf.tar.gz ]]
+ mkdir -p /opt/jdk
+ rm -rf /opt/jdk/zulu8.50.0.259-ca-jdk8.0.272-linux_aarch32hf
+ cond_redirect wget -O /opt/jdk/zulu.tar.gz https://cdn.azul.com/zulu-embedded/bin/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf.tar.gz
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ wget -O /opt/jdk/zulu.tar.gz https://cdn.azul.com/zulu-embedded/bin/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf.tar.gz \033[39;49;00m'

$ wget -O /opt/jdk/zulu.tar.gz https://cdn.azul.com/zulu-embedded/bin/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf.tar.gz 
+ wget -O /opt/jdk/zulu.tar.gz https://cdn.azul.com/zulu-embedded/bin/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf.tar.gz
--2020-12-14 12:59:05--  https://cdn.azul.com/zulu-embedded/bin/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf.tar.gz
Resolving cdn.azul.com (cdn.azul.com)... 104.18.20.159, 104.18.21.159
Connecting to cdn.azul.com (cdn.azul.com)|104.18.20.159|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 177956241 (170M) [application/gzip]
Saving to: ‘/opt/jdk/zulu.tar.gz’

/opt/jdk/zulu.tar.gz                             100%[========================================================================================================>] 169.71M  11.3MB/s    in 16s     

2020-12-14 12:59:21 (10.8 MB/s) - ‘/opt/jdk/zulu.tar.gz’ saved [177956241/177956241]

+ return 0
+ cond_redirect tar -xpzf /opt/jdk/zulu.tar.gz -C /opt/jdk
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ tar -xpzf /opt/jdk/zulu.tar.gz -C /opt/jdk \033[39;49;00m'

$ tar -xpzf /opt/jdk/zulu.tar.gz -C /opt/jdk 
+ tar -xpzf /opt/jdk/zulu.tar.gz -C /opt/jdk
+ return 0
+ cond_redirect rm -rf /opt/jdk/zulu.tar.gz
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ rm -rf /opt/jdk/zulu.tar.gz \033[39;49;00m'

$ rm -rf /opt/jdk/zulu.tar.gz 
+ rm -rf /opt/jdk/zulu.tar.gz
+ return 0
+ echo OK
OK
+ java_zulu_install Zulu11-32
+ local jdkArch
+ local jdkBin
+ local jdkLib
++ find /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin ... -print -quit
+ jdkBin=/opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin
++ find /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/lib ... -print -quit
+ jdkLib=/opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/lib
+ [[ Zulu11-32 == \Z\u\l\u\8\-\6\4 ]]
+ [[ 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
+ jdkArch=aarch32
+ [[ Zulu11-32 == \Z\u\l\u\8\-\3\2 ]]
+ [[ Zulu11-32 == \Z\u\l\u\1\1\-\3\2 ]]
++ timestamp
++ date +%F_%T_%Z
+ echo -n '2020-12-14_12:59:39_CET [openHABian] Installing Java Zulu 11 32-Bit OpenJDK... '
2020-12-14_12:59:39_CET [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
+ [[ deinstall == \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
+ update-alternatives --quiet --remove-all javac
+ return 2
+ cond_redirect update-alternatives --install /usr/bin/java java /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/java 1000000
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ update-alternatives --install /usr/bin/java java /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/java 1000000 \033[39;49;00m'

$ update-alternatives --install /usr/bin/java java /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/java 1000000 
+ update-alternatives --install /usr/bin/java java /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/java 1000000
update-alternatives: using /opt/jdk/zulu11.43.88-ca-jdk11.0.9-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.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/jjs 1000000
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ update-alternatives --install /usr/bin/jjs jjs /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/jjs 1000000 \033[39;49;00m'

$ update-alternatives --install /usr/bin/jjs jjs /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/jjs 1000000 
+ update-alternatives --install /usr/bin/jjs jjs /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/jjs 1000000
update-alternatives: using /opt/jdk/zulu11.43.88-ca-jdk11.0.9-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.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/keytool 1000000
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ update-alternatives --install /usr/bin/keytool keytool /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/keytool 1000000 \033[39;49;00m'

$ update-alternatives --install /usr/bin/keytool keytool /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/keytool 1000000 
+ update-alternatives --install /usr/bin/keytool keytool /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/keytool 1000000
update-alternatives: using /opt/jdk/zulu11.43.88-ca-jdk11.0.9-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.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/pack200 1000000
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ update-alternatives --install /usr/bin/pack200 pack200 /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/pack200 1000000 \033[39;49;00m'

$ update-alternatives --install /usr/bin/pack200 pack200 /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/pack200 1000000 
+ update-alternatives --install /usr/bin/pack200 pack200 /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/pack200 1000000
update-alternatives: using /opt/jdk/zulu11.43.88-ca-jdk11.0.9-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.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/rmid 1000000
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ update-alternatives --install /usr/bin/rmid rmid /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/rmid 1000000 \033[39;49;00m'

$ update-alternatives --install /usr/bin/rmid rmid /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/rmid 1000000 
+ update-alternatives --install /usr/bin/rmid rmid /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/rmid 1000000
update-alternatives: using /opt/jdk/zulu11.43.88-ca-jdk11.0.9-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.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/rmiregistry 1000000
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ update-alternatives --install /usr/bin/rmiregistry rmiregistry /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/rmiregistry 1000000 \033[39;49;00m'

$ update-alternatives --install /usr/bin/rmiregistry rmiregistry /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/rmiregistry 1000000 
+ update-alternatives --install /usr/bin/rmiregistry rmiregistry /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/rmiregistry 1000000
update-alternatives: using /opt/jdk/zulu11.43.88-ca-jdk11.0.9-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.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/unpack200 1000000
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ update-alternatives --install /usr/bin/unpack200 unpack200 /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/unpack200 1000000 \033[39;49;00m'

$ update-alternatives --install /usr/bin/unpack200 unpack200 /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/unpack200 1000000 
+ update-alternatives --install /usr/bin/unpack200 unpack200 /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/unpack200 1000000
update-alternatives: using /opt/jdk/zulu11.43.88-ca-jdk11.0.9-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.43.88-ca-jdk11.0.9-linux_aarch32hf/lib/jexec 1000000
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ update-alternatives --install /usr/bin/jexec jexec /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/lib/jexec 1000000 \033[39;49;00m'

$ update-alternatives --install /usr/bin/jexec jexec /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/lib/jexec 1000000 
+ update-alternatives --install /usr/bin/jexec jexec /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/lib/jexec 1000000
update-alternatives: using /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/lib/jexec to provide /usr/bin/jexec (jexec) in auto mode
+ return 0
+ [[ Zulu11-32 == \Z\u\l\u\8* ]]
+ [[ Zulu11-32 == \Z\u\l\u\1\1* ]]
+ echo /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/lib
+ echo /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/lib/jli
+ echo /opt/jdk/zulu11.43.88-ca-jdk11.0.9-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.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/../lib/security
++ mktemp -d /tmp/openhabian.XXXXX
+ policyTempLocation=/tmp/openhabian.TuTcd
++ timestamp
++ date +%F_%T_%Z
+ echo -n '2020-12-14_12:59:43_CET [openHABian] Installing Java Zulu CEK to enable unlimited cipher strength... '
2020-12-14_12:59:43_CET [openHABian] Installing Java Zulu CEK to enable unlimited cipher strength... + cond_redirect mkdir -p /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/../lib/security
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ mkdir -p /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/../lib/security \033[39;49;00m'

$ mkdir -p /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/../lib/security 
+ mkdir -p /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/../lib/security
+ return 0
+ cond_redirect wget -qO /tmp/openhabian.TuTcd/crypto.zip https://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ wget -qO /tmp/openhabian.TuTcd/crypto.zip https://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip \033[39;49;00m'

$ wget -qO /tmp/openhabian.TuTcd/crypto.zip https://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip 
+ wget -qO /tmp/openhabian.TuTcd/crypto.zip https://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip
+ return 0
+ cond_redirect unzip /tmp/openhabian.TuTcd/crypto.zip -d /tmp/openhabian.TuTcd
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ unzip /tmp/openhabian.TuTcd/crypto.zip -d /tmp/openhabian.TuTcd \033[39;49;00m'

$ unzip /tmp/openhabian.TuTcd/crypto.zip -d /tmp/openhabian.TuTcd 
+ unzip /tmp/openhabian.TuTcd/crypto.zip -d /tmp/openhabian.TuTcd
Archive:  /tmp/openhabian.TuTcd/crypto.zip
   creating: /tmp/openhabian.TuTcd/ZuluJCEPolicies/
  inflating: /tmp/openhabian.TuTcd/ZuluJCEPolicies/LICENSE  
  inflating: /tmp/openhabian.TuTcd/ZuluJCEPolicies/README.txt  
  inflating: /tmp/openhabian.TuTcd/ZuluJCEPolicies/DISCLAIMER  
  inflating: /tmp/openhabian.TuTcd/ZuluJCEPolicies/local_policy.jar  
  inflating: /tmp/openhabian.TuTcd/ZuluJCEPolicies/US_export_policy.jar  
+ return 0
+ cond_redirect cp -u /tmp/openhabian.TuTcd/ZuluJCEPolicies/local_policy.jar /tmp/openhabian.TuTcd/ZuluJCEPolicies/US_export_policy.jar /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/../lib/security
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ cp -u /tmp/openhabian.TuTcd/ZuluJCEPolicies/local_policy.jar /tmp/openhabian.TuTcd/ZuluJCEPolicies/US_export_policy.jar /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/../lib/security \033[39;49;00m'

$ cp -u /tmp/openhabian.TuTcd/ZuluJCEPolicies/local_policy.jar /tmp/openhabian.TuTcd/ZuluJCEPolicies/US_export_policy.jar /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/../lib/security 
+ cp -u /tmp/openhabian.TuTcd/ZuluJCEPolicies/local_policy.jar /tmp/openhabian.TuTcd/ZuluJCEPolicies/US_export_policy.jar /opt/jdk/zulu11.43.88-ca-jdk11.0.9-linux_aarch32hf/bin/../lib/security
+ return 0
+ echo OK
OK
+ cond_redirect rm -rf /tmp/openhabian.TuTcd
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ rm -rf /tmp/openhabian.TuTcd \033[39;49;00m'

$ rm -rf /tmp/openhabian.TuTcd 
+ rm -rf /tmp/openhabian.TuTcd
+ return 0
+ openhab_is_installed
+ openhab2_is_installed
++ dpkg -s openhab2
++ grep Status
++ cut '-d ' -f2
+ [[ deinstall == \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
++ 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.9" 2020-10-20 LTS
OpenJDK Runtime Environment Zulu11.43+88-CA (build 11.0.9+11-LTS)
OpenJDK Client VM Zulu11.43+88-CA (build 11.0.9+11-LTS, mixed mode)
+ return 0
++ timestamp
++ date +%F_%T_%Z
+ echo -n '2020-12-14_12:59:43_CET [openHABian] Installing openHAB... '
2020-12-14_12:59:43_CET [openHABian] Installing openHAB... + openhab_setup openHAB3 testing
+ local introText
+ local successText
+ local repo
+ local openhabVersion
+ [[ openHAB3 == \o\p\e\n\H\A\B\3 ]]
+ ohPkgName=openhab
+ [[ testing == \u\n\s\t\a\b\l\e ]]
+ [[ testing == \s\t\a\b\l\e ]]
+ [[ testing == \t\e\s\t\i\n\g ]]
+ introText='You are about to install or change to the latest milestone (testing) openHAB3 build. It contains the latest features and is supposed to run stable, but if you experience bugs or incompatibilities, please help with enhancing openHAB by posting them on the community forum or by raising a GitHub issue.\n\nPlease be aware that downgrading from a newer build is not officially supported.\n\nPlease consult with the documentation or community forum and be sure to take a full openHAB configuration backup first!'
+ successText='The testing 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://openhab.jfrog.io/openhab/openhab-linuxpkg testing main'
+ [[ testing == \u\n\s\t\a\b\l\e ]]
+ [[ testing == \s\t\a\b\l\e ]]
+ [[ testing == \t\e\s\t\i\n\g ]]
++ timestamp
++ date +%F_%T_%Z
+ echo -n '2020-12-14_12:59:43_CET [openHABian] Beginning install of latest openHAB3 milestone release (testing)... '
2020-12-14_12:59:43_CET [openHABian] Beginning install of latest openHAB3 milestone release (testing)... + [[ -n 1 ]]
+ whiptail --title 'openHAB software change, Continue?' --yes-button Continue --no-button Cancel --yesno 'You are about to install or change to the latest milestone (testing) openHAB3 build. It contains the latest features and is supposed to run stable, but if you experience bugs or incompatibilities, please help with enhancing openHAB by posting them on the community forum or by raising a GitHub issue.\n\nPlease be aware that downgrading from a newer build is not officially supported.\n\nPlease consult with the documentation or community forum and be sure to take a full openHAB configuration backup first!' 15 80
+ echo OK
OK
+ running_in_docker
+ grep -q 'docker\|lxc' /proc/1/cgroup
+ [[ -z '' ]]
+ add_keys 'https://bintray.com/user/downloadSubjectPublicKey?username=openhab'
+ local repoKey
++ mktemp /tmp/openhabian.XXXXX
+ repoKey=/tmp/openhabian.a1mcg
++ timestamp
++ date +%F_%T_%Z
+ echo -n '2020-12-14_12:59:49_CET [openHABian] Adding required keys to apt... '
2020-12-14_12:59:49_CET [openHABian] Adding required keys to apt... + cond_redirect wget -qO /tmp/openhabian.a1mcg 'https://bintray.com/user/downloadSubjectPublicKey?username=openhab'
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ wget -qO /tmp/openhabian.a1mcg https://bintray.com/user/downloadSubjectPublicKey?username=openhab \033[39;49;00m'

$ wget -qO /tmp/openhabian.a1mcg https://bintray.com/user/downloadSubjectPublicKey?username=openhab 
+ wget -qO /tmp/openhabian.a1mcg 'https://bintray.com/user/downloadSubjectPublicKey?username=openhab'
+ return 0
+ cond_redirect apt-key add /tmp/openhabian.a1mcg
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ apt-key add /tmp/openhabian.a1mcg \033[39;49;00m'

$ apt-key add /tmp/openhabian.a1mcg 
+ apt-key add /tmp/openhabian.a1mcg
OK
+ return 0
+ echo OK
OK
+ rm -f /tmp/openhabian.a1mcg
+ echo 'deb https://openhab.jfrog.io/openhab/openhab-linuxpkg testing main'
++ timestamp
++ date +%F_%T_%Z
+ echo -n '2020-12-14_12:59:51_CET [openHABian] Installing selected openHAB version... '
2020-12-14_12:59:51_CET [openHABian] Installing selected openHAB 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://raspbian.raspberrypi.org/raspbian buster InRelease
Hit:2 http://archive.raspberrypi.org/debian buster InRelease                                                                                                                                 
Get:3 http://davesteele.github.io/comitup/repo comitup InRelease [3,936 B]                                                                                                                   
Ign:4 https://dl.bintray.com/openhab/apt-repo2 stable InRelease                                                                                                                       
Get:5 https://dl.bintray.com/openhab/apt-repo2 stable Release [6,051 B]                                                                  
Get:6 https://openhab.jfrog.io/openhab/openhab-linuxpkg testing InRelease [12.5 kB]
Hit:7 https://deb.nodesource.com/node_12.x buster InRelease            
Get:9 https://openhab.jfrog.io/openhab/openhab-linuxpkg testing/main armhf Packages [8,486 B]
Fetched 31.0 kB in 2s (13.4 kB/s)  
Reading package lists... Done
+ return 0
++ apt-cache madison openhab
++ head -n 1
++ cut '-d|' -f2
++ xargs
+ openhabVersion=3.0.0~M5-1
+ cond_redirect apt-get install --allow-downgrades --yes openhab=3.0.0~M5-1 openhab-addons=3.0.0~M5-1
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ apt-get install --allow-downgrades --yes openhab=3.0.0~M5-1 openhab-addons=3.0.0~M5-1 \033[39;49;00m'

$ apt-get install --allow-downgrades --yes openhab=3.0.0~M5-1 openhab-addons=3.0.0~M5-1 
+ apt-get install --allow-downgrades --yes openhab=3.0.0~M5-1 openhab-addons=3.0.0~M5-1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
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 0 not upgraded.
Need to get 254 MB of archives.
After this operation, 265 MB of additional disk space will be used.
Get:1 https://openhab.jfrog.io/openhab/openhab-linuxpkg testing/main armhf openhab all 3.0.0~M5-1 [82.2 MB]
Get:2 https://openhab.jfrog.io/openhab/openhab-linuxpkg testing/main armhf openhab-addons all 3.0.0~M5-1 [172 MB]                                                                                
Fetched 254 MB in 23s (10.9 MB/s)                                                                                                                                                                
Selecting previously unselected package openhab.
(Reading database ... 52120 files and directories currently installed.)
Preparing to unpack .../openhab_3.0.0~M5-1_all.deb ...
Unpacking openhab (3.0.0~M5-1) ...
Selecting previously unselected package openhab-addons.
Preparing to unpack .../openhab-addons_3.0.0~M5-1_all.deb ...
Unpacking openhab-addons (3.0.0~M5-1) ...
Setting up openhab (3.0.0~M5-1) ...

Configuration file '/etc/openhab/services/addons.cfg'
 ==> File on system created by you or by a script.
 ==> File also in package provided by package maintainer.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** addons.cfg (Y/I/N/O/D/Z) [default=N] ? Y    
Installing new version of config file /etc/openhab/services/addons.cfg ...

Configuration file '/etc/openhab/services/runtime.cfg'
 ==> File on system created by you or by a script.
 ==> File also in package provided by package maintainer.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** runtime.cfg (Y/I/N/O/D/Z) [default=N] ? Y
Installing new version of config file /etc/openhab/services/runtime.cfg ...

Configuration file '/var/lib/openhab/etc/org.ops4j.pax.logging.cfg'
 ==> File on system created by you or by a script.
 ==> File also in package provided by package maintainer.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** org.ops4j.pax.logging.cfg (Y/I/N/O/D/Z) [default=N] ? Y
Installing new version of config file /var/lib/openhab/etc/org.ops4j.pax.logging.cfg ...

Configuration file '/var/lib/openhab/etc/users.properties'
 ==> File on system created by you or by a script.
 ==> File also in package provided by package maintainer.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** users.properties (Y/I/N/O/D/Z) [default=N] ? Y
Installing new version of config file /var/lib/openhab/etc/users.properties ...

Configuration file '/var/lib/openhab/etc/keystore'
 ==> File on system created by you or by a script.
 ==> File also in package provided by package maintainer.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** keystore (Y/I/N/O/D/Z) [default=N] ? Y 
Installing new version of config file /var/lib/openhab/etc/keystore ...
[openHAB] Previous 2.x install detected, making necessary changes
[openHAB] Performing post-update tasks for version 3.0.0:
  Moving:   From /var/lib/openhab/config/org/eclipse/smarthome/audio.config to /var/lib/openhab/config/org/openhab/audio.config
  Replacing: String org.eclipse.smarthome.audio to org.openhab.audio in file /var/lib/openhab/config/org/openhab/audio.config
  Moving:   From /var/lib/openhab/config/org/eclipse/smarthome/voice.config to /var/lib/openhab/config/org/openhab/voice.config
  Replacing: String org.eclipse.smarthome.voice to org.openhab.voice in file /var/lib/openhab/config/org/openhab/voice.config
  Moving:   From /var/lib/openhab/config/org/eclipse/smarthome/folder.config to /var/lib/openhab/config/org/openhab/folder.config
  Replacing: String org.eclipse.smarthome.folder to org.openhab.folder in file /var/lib/openhab/config/org/openhab/folder.config
  Moving:   From /var/lib/openhab/config/org/eclipse/smarthome/threadpool.config to /var/lib/openhab/config/org/openhab/threadpool.config
  Replacing: String org.eclipse.smarthome.threadpool to org.openhab.threadpool in file /var/lib/openhab/config/org/openhab/threadpool.config
  Moving:   From /var/lib/openhab/config/org/eclipse/smarthome/autoupdate.config to /var/lib/openhab/config/org/openhab/autoupdate.config
  Replacing: String org.eclipse.smarthome.autoupdate to org.openhab.autoupdate in file /var/lib/openhab/config/org/openhab/autoupdate.config
  Deleting Directory: /var/lib/openhab/config/org/eclipse/smarthome
  Deleting Directory: /var/lib/openhab/config/com/eclipsesource
[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.0~M5-1) ...
Processing triggers for systemd (241-7~deb10u5+rpi1) ...
Updating FireMotD available updates count ... 
+ return 0
+ cond_redirect apt-get install --allow-downgrades --yes openhab=3.0.0~M5-1 openhab-addons=3.0.0~M5-1
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ apt-get install --allow-downgrades --yes openhab=3.0.0~M5-1 openhab-addons=3.0.0~M5-1 \033[39;49;00m'

$ apt-get install --allow-downgrades --yes openhab=3.0.0~M5-1 openhab-addons=3.0.0~M5-1 
+ apt-get install --allow-downgrades --yes openhab=3.0.0~M5-1 openhab-addons=3.0.0~M5-1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
openhab-addons is already the newest version (3.0.0~M5-1).
openhab is already the newest version (3.0.0~M5-1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
+ return 0
+ echo OK
OK
++ id -g openhabadm
+ gid=115
+ cond_redirect usermod -g openhab openhabadm
+ cond_redirect usermod -aG 115 openhabadm
++ timestamp
++ date +%F_%T_%Z
+ echo -n '2020-12-14_13:02:22_CET [openHABian] Setting up openHAB service... '
2020-12-14_13:02:22_CET [openHABian] Setting up openHAB service... + 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 → /usr/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 '2020-12-14_13:02:23_CET [openHABian] Optimizing openHAB to run on low memory single board computers... '
2020-12-14_13:02:23_CET [openHABian] Optimizing openHAB to run on low memory single board computers... + has_lowmem
+ local totalMemory
++ awk '/MemTotal/ {print $2}' /proc/meminfo
+ totalMemory=3919796
+ [[ -z 3919796 ]]
+ [[ 3919796 -lt 900000 ]]
+ return 1
+ cond_redirect sed -i -e 's|^EXTRA_JAVA_OPTS=.*$|EXTRA_JAVA_OPTS="-Xms192m -Xmx320m"|g' /etc/default/openhab2
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ sed -i -e s|^EXTRA_JAVA_OPTS=.*$|EXTRA_JAVA_OPTS="-Xms192m -Xmx320m"|g /etc/default/openhab2 \033[39;49;00m'

$ sed -i -e s|^EXTRA_JAVA_OPTS=.*$|EXTRA_JAVA_OPTS="-Xms192m -Xmx320m"|g /etc/default/openhab2 
+ sed -i -e 's|^EXTRA_JAVA_OPTS=.*$|EXTRA_JAVA_OPTS="-Xms192m -Xmx320m"|g' /etc/default/openhab2
+ return 0
+ echo OK
OK
++ timestamp
++ date +%F_%T_%Z
+ echo -n '2020-12-14_13:02:23_CET [openHABian] Setting openHAB HTTP/HTTPS ports... '
2020-12-14_13:02:23_CET [openHABian] Setting openHAB HTTP/HTTPS ports... + cond_redirect sed -i -e 's|^#*.*OPENHAB_HTTP_PORT=.*$|OPENHAB_HTTP_PORT=8080|g' /etc/default/openhab2
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ sed -i -e s|^#*.*OPENHAB_HTTP_PORT=.*$|OPENHAB_HTTP_PORT=8080|g /etc/default/openhab2 \033[39;49;00m'

$ sed -i -e s|^#*.*OPENHAB_HTTP_PORT=.*$|OPENHAB_HTTP_PORT=8080|g /etc/default/openhab2 
+ sed -i -e 's|^#*.*OPENHAB_HTTP_PORT=.*$|OPENHAB_HTTP_PORT=8080|g' /etc/default/openhab2
+ return 0
+ cond_redirect sed -i -e 's|^#*.*OPENHAB_HTTPS_PORT=.*$|OPENHAB_HTTPS_PORT=8443|g' /etc/default/openhab2
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ sed -i -e s|^#*.*OPENHAB_HTTPS_PORT=.*$|OPENHAB_HTTPS_PORT=8443|g /etc/default/openhab2 \033[39;49;00m'

$ sed -i -e s|^#*.*OPENHAB_HTTPS_PORT=.*$|OPENHAB_HTTPS_PORT=8443|g /etc/default/openhab2 
+ sed -i -e 's|^#*.*OPENHAB_HTTPS_PORT=.*$|OPENHAB_HTTPS_PORT=8443|g' /etc/default/openhab2
+ return 0
+ echo OK
OK
+ create_systemd_dependencies
+ local targetDir=/etc/systemd/system/openhab2.service.d
++ timestamp
++ date +%F_%T_%Z
+ echo -n '2020-12-14_13:02:23_CET [openHABian] Creating dependencies to jointly start services that depend on each other... '
2020-12-14_13:02:23_CET [openHABian] Creating dependencies to jointly start services that depend on each other... + cond_redirect mkdir -p /etc/systemd/system/openhab2.service.d
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ mkdir -p /etc/systemd/system/openhab2.service.d \033[39;49;00m'

$ mkdir -p /etc/systemd/system/openhab2.service.d 
+ mkdir -p /etc/systemd/system/openhab2.service.d
+ return 0
+ cond_redirect rm -f /etc/systemd/system/openhab2.service.d/override.conf
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ rm -f /etc/systemd/system/openhab2.service.d/override.conf \033[39;49;00m'

$ rm -f /etc/systemd/system/openhab2.service.d/override.conf 
+ rm -f /etc/systemd/system/openhab2.service.d/override.conf
+ return 0
+ cond_redirect cp /opt/openhabian/includes/openhab2-override.conf /etc/systemd/system/openhab2.service.d/override.conf
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ cp /opt/openhabian/includes/openhab2-override.conf /etc/systemd/system/openhab2.service.d/override.conf \033[39;49;00m'

$ cp /opt/openhabian/includes/openhab2-override.conf /etc/systemd/system/openhab2.service.d/override.conf 
+ cp /opt/openhabian/includes/openhab2-override.conf /etc/systemd/system/openhab2.service.d/override.conf
+ return 0
+ echo OK
OK
+ cond_redirect systemctl -q daemon-reload
+ delayed_rules yes
+ openhab_is_installed
+ openhab2_is_installed
++ dpkg -s openhab2
++ grep Status
++ cut '-d ' -f2
+ [[ deinstall == \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
+ local targetDir=/etc/systemd/system/openhab2.service.d
+ [[ yes == \y\e\s ]]
++ timestamp
++ date +%F_%T_%Z
+ echo -n '2020-12-14_13:02:24_CET [openHABian] Adding delay on loading openHAB rules... '
2020-12-14_13:02:24_CET [openHABian] Adding delay on loading openHAB rules... + cat /opt/openhabian/includes/delayed-rules.conf
+ echo OK
OK
+ cond_redirect systemctl -q daemon-reload
+ cond_redirect systemctl restart openhab2.service
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ systemctl restart openhab2.service \033[39;49;00m'

$ systemctl restart openhab2.service 
+ systemctl restart openhab2.service
Failed to restart openhab2.service: Unit openhab2.service not found.
+ return 5
+ return 1
+ dashboard_add_tile openhabiandocs
+ local application
+ local dashboardConfig
+ local openhabConfig
+ local tileDesc
+ local tileImg
+ local tileURL
+ application=openhabiandocs
+ openhabConfig=/etc/openhab2
+ dashboardConfig=/etc/openhab2/services/dashboard.cfg
++ 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,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'
++ grep '^[[:space:]]*tile_url_openhabiandocs' /opt/openhabian/includes/dashboard-imagedata
++ sed 's|tile_url_openhabiandocs=||g; s|"||g'
+ tileURL=https://www.openhab.org/docs/installation/openhabian.html
++ timestamp
++ date +%F_%T_%Z
+ echo -n '2020-12-14_13:02:24_CET [openHABian] Adding an openHAB dashboard tile for '\''openhabiandocs'\''... '
2020-12-14_13:02:24_CET [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
+ [[ deinstall == \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/openhab2/services ]]
+ touch /etc/openhab2/services/dashboard.cfg
+ grep -qs openhabiandocs.link /etc/openhab2/services/dashboard.cfg
+ echo -n 'Replacing... '
Replacing... + cond_redirect sed -i -e '/^openhabiandocs.link.*$/d' /etc/openhab2/services/dashboard.cfg
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ sed -i -e /^openhabiandocs.link.*$/d /etc/openhab2/services/dashboard.cfg \033[39;49;00m'

$ sed -i -e /^openhabiandocs.link.*$/d /etc/openhab2/services/dashboard.cfg 
+ sed -i -e '/^openhabiandocs.link.*$/d' /etc/openhab2/services/dashboard.cfg
+ return 0
+ [[ -z openHABian Help ]]
+ [[ -z https://www.openhab.org/docs/installation/openhabian.html ]]
+ [[ -z data:image/png;base64,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 ]]
+ echo -e '\nopenhabiandocs.link-name=openHABian Help\nopenhabiandocs.link-url=https://www.openhab.org/docs/installation/openhabian.html\nopenhabiandocs.link-imageurl=data:image/png;base64,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'
+ echo OK
OK
+ [[ -n 1 ]]
+ whiptail --title 'Operation Successful!' --msgbox 'The testing 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.' 15 80
+ echo OK
OK
++ timestamp
++ date +%F_%T_%Z
+ echo -n '2020-12-14_13:02:29_CET [openHABian] Migrating Amanda config... '
2020-12-14_13:02:29_CET [openHABian] Migrating Amanda config... + for i in $amandaConfigs
+ [[ -s /etc/amanda/openhab-*/disklist ]]
+ echo OK
OK
++ timestamp
++ date +%F_%T_%Z
+ echo -n '2020-12-14_13:02:29_CET [openHABian] Migrating samba mount units... '
2020-12-14_13:02:29_CET [openHABian] Migrating samba mount units... + cond_redirect systemctl stop smbd nmbd
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ systemctl stop smbd nmbd \033[39;49;00m'

$ systemctl stop smbd nmbd 
+ systemctl stop smbd nmbd
+ return 0
+ cond_redirect systemctl disable --now 'srv-openhab2\x2daddons.mount' 'srv-openhab2\x2dconf.mount' 'srv-openhab2\x2dlogs.mount' 'srv-openhab2\x2duserdata.mount' 'srv-openhab2\x2dsys.mount'
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ systemctl disable --now srv-openhab2\x2daddons.mount srv-openhab2\x2dconf.mount srv-openhab2\x2dlogs.mount srv-openhab2\x2duserdata.mount srv-openhab2\x2dsys.mount \033[39;49;00m'

$ systemctl disable --now srv-openhab2-addons.mount srv-openhab2-conf.mount srv-openhab2-logs.mount srv-openhab2-userdata.mount srv-openhab2-sys.mount 
+ systemctl disable --now 'srv-openhab2\x2daddons.mount' 'srv-openhab2\x2dconf.mount' 'srv-openhab2\x2dlogs.mount' 'srv-openhab2\x2duserdata.mount' 'srv-openhab2\x2dsys.mount'
Removed /etc/systemd/system/multi-user.target.wants/srv-openhab2\x2daddons.mount.
Removed /etc/systemd/system/multi-user.target.wants/srv-openhab2\x2duserdata.mount.
Removed /etc/systemd/system/multi-user.target.wants/srv-openhab2\x2dlogs.mount.
Removed /etc/systemd/system/multi-user.target.wants/srv-openhab2\x2dsys.mount.
Removed /etc/systemd/system/multi-user.target.wants/srv-openhab2\x2dconf.mount.
+ return 0
+ for s in ${mountUnits}
+ [[ openhab == \o\p\e\n\h\a\b ]]
+ newname='/etc/systemd/system/srv-openhab\x2daddons.mount'
+ sed -e 's|openhab2|openhab|g' '/etc/systemd/system/srv-openhab2\x2daddons.mount'
+ rm -f '/etc/systemd/system/srv-openhab2\x2daddons.mount'
+ for s in ${mountUnits}
+ [[ openhab == \o\p\e\n\h\a\b ]]
+ newname='/etc/systemd/system/srv-openhab\x2dconf.mount'
+ sed -e 's|openhab2|openhab|g' '/etc/systemd/system/srv-openhab2\x2dconf.mount'
+ rm -f '/etc/systemd/system/srv-openhab2\x2dconf.mount'
+ for s in ${mountUnits}
+ [[ openhab == \o\p\e\n\h\a\b ]]
+ newname='/etc/systemd/system/srv-openhab\x2dlogs.mount'
+ sed -e 's|openhab2|openhab|g' '/etc/systemd/system/srv-openhab2\x2dlogs.mount'
+ rm -f '/etc/systemd/system/srv-openhab2\x2dlogs.mount'
+ for s in ${mountUnits}
+ [[ openhab == \o\p\e\n\h\a\b ]]
+ newname='/etc/systemd/system/srv-openhab\x2dsys.mount'
+ sed -e 's|openhab2|openhab|g' '/etc/systemd/system/srv-openhab2\x2dsys.mount'
+ rm -f '/etc/systemd/system/srv-openhab2\x2dsys.mount'
+ for s in ${mountUnits}
+ [[ openhab == \o\p\e\n\h\a\b ]]
+ newname='/etc/systemd/system/srv-openhab\x2duserdata.mount'
+ sed -e 's|openhab2|openhab|g' '/etc/systemd/system/srv-openhab2\x2duserdata.mount'
+ rm -f '/etc/systemd/system/srv-openhab2\x2duserdata.mount'
+ services='srv-openhab\x2daddons.mount srv-openhab\x2dconf.mount srv-openhab\x2dlogs.mount srv-openhab\x2duserdata.mount  srv-openhab\x2dsys.mount'
+ cond_redirect systemctl enable --now 'srv-openhab\x2daddons.mount' 'srv-openhab\x2dconf.mount' 'srv-openhab\x2dlogs.mount' 'srv-openhab\x2duserdata.mount' 'srv-openhab\x2dsys.mount'
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ systemctl enable --now srv-openhab\x2daddons.mount srv-openhab\x2dconf.mount srv-openhab\x2dlogs.mount srv-openhab\x2duserdata.mount srv-openhab\x2dsys.mount \033[39;49;00m'

$ systemctl enable --now srv-openhab-addons.mount srv-openhab-conf.mount srv-openhab-logs.mount srv-openhab-userdata.mount srv-openhab-sys.mount 
+ systemctl enable --now 'srv-openhab\x2daddons.mount' 'srv-openhab\x2dconf.mount' 'srv-openhab\x2dlogs.mount' 'srv-openhab\x2duserdata.mount' 'srv-openhab\x2dsys.mount'
Created symlink /etc/systemd/system/multi-user.target.wants/srv-openhab\x2daddons.mount → /etc/systemd/system/srv-openhab\x2daddons.mount.
Created symlink /etc/systemd/system/multi-user.target.wants/srv-openhab\x2dconf.mount → /etc/systemd/system/srv-openhab\x2dconf.mount.
Created symlink /etc/systemd/system/multi-user.target.wants/srv-openhab\x2dlogs.mount → /etc/systemd/system/srv-openhab\x2dlogs.mount.
Created symlink /etc/systemd/system/multi-user.target.wants/srv-openhab\x2duserdata.mount → /etc/systemd/system/srv-openhab\x2duserdata.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
+ cond_redirect systemctl start smbd nmbd
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ systemctl start smbd nmbd \033[39;49;00m'

$ systemctl start smbd nmbd 
+ systemctl start smbd nmbd
+ return 0
+ echo OK
OK
++ timestamp
++ date +%F_%T_%Z
+ echo -n '2020-12-14_13:02:30_CET [openHABian] Migrating frontail... '
2020-12-14_13:02:30_CET [openHABian] Migrating frontail... + sed -i 's|openhab2/|openhab/|g' /etc/systemd/system/frontail.service
+ sed -i 's|openhab2/|openhab/|g' /usr/lib/node_modules/frontail/preset/openhab.json
+ cond_redirect systemctl -q daemon-reload
+ 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
++ timestamp
++ date +%F_%T_%Z
+ echo -n '2020-12-14_13:02:31_CET [openHABian] Migrating homegear... '
2020-12-14_13:02:31_CET [openHABian] Migrating homegear... + sed -i 's|openhab2/|openhab/|g' /etc/systemd/system/homegear.service
sed: can't read /etc/systemd/system/homegear.service: No such file or directory
+ echo OK
OK
+ [[ -s /etc/ztab ]]
+ [[ '' != \d\i\s\a\b\l\e ]]
+ cond_redirect systemctl start zram-config.service zramsync.service
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ systemctl start zram-config.service zramsync.service \033[39;49;00m'

$ systemctl start zram-config.service zramsync.service 
+ systemctl start zram-config.service zramsync.service
Failed to start zram-config.service: Unit zram-config.service not found.
Failed to start zramsync.service: Unit zramsync.service not found.
+ return 5
+ echo 'FAILED (restart ZRAM)'
FAILED (restart ZRAM)
+ return 1
+ '[' 1 -ne 0 ']'
+ whiptail --msgbox 'There was an error or interruption during the execution of:\n  "40 | openHAB related"\n\nPlease try again. If the error persists, please read /opt/openhabian/docs/openhabian-DEBUG.md or https://github.com/openhab/openhabian/blob/master/docs/openhabian-DEBUG.md how to proceed.' 14 80
+ return 0
+ true
+ show_main_menu
+ local choice
+ local version
+++ get_git_revision
+++ local branch
+++ local latestTag
+++ local revCount
+++ local shorthash
++++ git -C /opt/openhabian rev-parse --abbrev-ref HEAD
+++ branch=stable
++++ git -C /opt/openhabian describe --tags --abbrev=0
+++ latestTag=v1.6.1
++++ wc -l
++++ git -C /opt/openhabian log --oneline
+++ revCount=963
++++ git -C /opt/openhabian log --pretty=format:%h -n 1
+++ shorthash=1fa8959
+++ echo '[stable]v1.6.1-963(1fa8959)'
++ whiptail --title 'Welcome to the openHABian Configuration Tool [stable]v1.6.1-963(1fa8959)' --menu 'Setup Options' 18 116 11 --cancel-button Exit --ok-button Execute '00 | About openHABian' 'Information about the openHABian project and this tool' '' '' '01 | Select Branch' 'Select the openHABian config tool version ("branch") to run' '02 | Upgrade System' 'Upgrade all installed software packages (incl. openHAB) to their latest version' '03 | openHAB Stable' 'Install or upgrade to the latest stable release of openHAB 2' '' '' '10 | Apply Improvements' 'Apply the latest improvements to the basic openHABian setup ►' '20 | Optional Components' 'Choose from a set of optional software components ►' '30 | System Settings' 'A range of system and hardware related configuration steps ►' '40 | openHAB related' 'Switch the installed openHAB version or apply tweaks ►' '50 | Backup/Restore' 'Manage backups and restore your system ►'
+ choice=
+ RET=1
+ '[' 1 -eq 1 ']'
+ return 255
+ system_check_default_password
+ 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 algo
+ local defaultPassword
+ local defaultUser
+ local generatedPassword
+ local introText
+ local originalPassword
+ local salt
+ 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
+ id -u pi
+ 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
+ defaultUser=openhabadm
+ defaultPassword=openhabian
++ grep -w openhabadm /etc/shadow
++ cut -d: -f2
+ originalPassword='$6$abcdef/defgh.uvwxyz/123456789'
++ echo '$6$abcdef/defgh.uvwxyz/123456789'
++ cut '-d$' -f2
+ algo=6
+ introText='The default password was detected on your system! That is a serious security concern. Bad guys or malicious programs in your subnet are able to gain root access!\n\nPlease set a strong password by typing the command '\''passwd openhabadm'\''!'
++ echo '$6$abcdef/defgh.uvwxyz/123456789'
++ cut '-d$' -f3
+ salt=XP98sjAZg9gxhGqt
+ export algo defaultPassword salt
++ perl -le 'print crypt("$ENV{defaultPassword}","\$$ENV{algo}\$$ENV{salt}\$")'
+ generatedPassword='$6$abcdef.ghijklm.'
++ timestamp
++ date +%F_%T_%Z
+ echo -n '2020-12-14_13:02:36_CET [openHABian] Checking for default openHABian username:password combination... '
2020-12-14_13:02:36_CET [openHABian] Checking for default openHABian username:password combination... ++ id -u openhabadm
+ [[ -n 1000 ]]
+ [[ $6$abcdef. == \$\6\$\a\b\c\d\e\f ]]
+ echo OK
OK
++ timestamp
++ date +%F_%T_%Z
+ echo -e '2020-12-14_13:02:36_CET [openHABian] We hope you got what you came for! See you again soon ;)'
2020-12-14_13:02:36_CET [openHABian] We hope you got what you came for! See you again soon ;)
+ cd /home/openhabadm
[13:02:36] openhabadm@openHAB:~$ 
mstormi commented 3 years ago

The issue is with the openhab package I think Running apt-get install --allow-downgrades --yes openhab=3.0.0~M5-1 openhab-addons=3.0.0~M5-1 shouldn't ask for input @BClark09 wdyt or am I mistaken? cc: @ecdye

BClark09 commented 3 years ago

apt-get install --allow-downgrades --yes openhab=3.0.0~M5-1 openhab-addons=3.0.0~M5-1 shouldn't ask for input

The --yes flag only answers the "are you sure" questions before installation. It doesn't automatically answer yes to all user prompts, such as replacing a user's configuration files. If the script is supposed to be non-interactive then you should add:

export DEBIAN_FRONTEND=noninteractive

This should answer the default (no) for questions asked in this issue but I would argue that this would not be the best answer for an upgrade, particularly from openHAB 2 to openHAB 3, which should replace these files to the maintainer's versions. To do this you'll need to add to the apt line:

apt-get install --allow-downgrades --yes --option Dpkg::Options::="--force-confnew" openhab=3.0.0~M5-1 openhab-addons=3.0.0~M5-1
mstormi commented 3 years ago

Thanks Ben DEBIAN_FRONTEND=noninteractive is set on unattended install (see openhabian-setup.conf) so I wonder if we should make that apply, too (i.e. for the interactive-at-least-in_theory installs of openhab package) ? Sort of does not feel right, but where we don't we will have to allow for interactivity (i.e. no output redirection). Either way you're right that we should inject maintainer versions so I'll change the command to your proposal.

mstormi commented 3 years ago

Fixed by https://github.com/openhab/openhabian/commit/f7691a17f1496885066bcb538abc4112745c7c6e