brewpi-remix / brewpi-tools-rmx

START HERE: BrewPi Remix Tools
https://www.brewpiremix.com
GNU General Public License v3.0
17 stars 6 forks source link

Upgrade from 0.8.0 to 0.8.1 fails flashing controller #71

Open TheFiZi opened 1 month ago

TheFiZi commented 1 month ago

Had to run this before I could get the upgrade going git config --global --add safe.directory /home/brewpi

At the end of the upgrade it asked me if I wanted to flash my controller, I chose 'Y' and got:

Do you want to flash your controller now? [y/N]: y
Traceback (most recent call last):
  File "/home/brewpi/updateFirmware.py", line 39, in <module>
    import autoSerial
  File "/home/brewpi/autoSerial.py", line 35, in <module>
    import BrewPiUtil
  File "/home/brewpi/BrewPiUtil.py", line 42, in <module>
    import git
ModuleNotFoundError: No module named 'git'

Full upgrade log:

root@nutmeg:/home/brewpi# curl -L upgrade.brewpiremix.com | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   795  100   795    0     0   7871      0 --:--:-- --:--:-- --:--:--  7950
100 10712  100 10712    0     0  48913      0 --:--:-- --:--:-- --:--:-- 48913

***Script doUpdate.sh starting.***

Downloading current version of this script.

Executing current version of script.

WARN: Unable to find a local BrewPi-Tools-RMX repository.

Checking /home/brewpi for necessary updates.
remote: Enumerating objects: 21, done.
remote: Counting objects: 100% (21/21), done.
remote: Compressing objects: 100% (21/21), done.
remote: Total 21 (delta 7), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (21/21), 14.24 KiB | 441.00 KiB/s, done.
From https://github.com/brewpi-remix/brewpi-script-rmx
   c16adae..a805939  main       -> origin/main

/home/brewpi is not up to date, updating from GitHub:
Fetching origin
hint: Pulling without specifying how to reconcile divergent branches is
hint: discouraged. You can squelch this message by running one of the following
hint: commands sometime before your next pull:
hint:
hint:   git config pull.rebase false  # merge (the default strategy)
hint:   git config pull.rebase true   # rebase
hint:   git config pull.ff only       # fast-forward only
hint:
hint: You can replace "git config" with "git config --global" to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
hint: or --ff-only on the command line to override the configured default per
hint: invocation.
Fetching origin
Updating c16adae..a805939
Fast-forward
 brewpi.py             | 20 ++++++++++----------
 requirements.txt      | 14 +++++++-------
 temperatureProfile.py |  2 +-
 utils/doDepends.sh    |  4 ++--
 4 files changed, 20 insertions(+), 20 deletions(-)

Checking /var/www/html for necessary updates.

No valid repo passed to function (repo = '/var/www/html').

***Script doDepends.sh starting.***

Fixing any broken installations before proceeding.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Checking for previously installed php5 packages.

No php5 packages found.

Checking for previously installed nginx packages.

No nginx daemon found running on port 80.

Fixing any broken installations before proceeding.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Checking and installing required packages via apt.

Installing 'libopenblas-dev'.

Selecting previously unselected package libopenblas0-pthread:armhf.
(Reading database ... 107255 files and directories currently installed.)
Preparing to unpack .../libopenblas0-pthread_0.3.13+ds-3+rpi1+deb11u1_armhf.deb ...
Unpacking libopenblas0-pthread:armhf (0.3.13+ds-3+rpi1+deb11u1) ...
Selecting previously unselected package libopenblas0:armhf.
Preparing to unpack .../libopenblas0_0.3.13+ds-3+rpi1+deb11u1_armhf.deb ...
Unpacking libopenblas0:armhf (0.3.13+ds-3+rpi1+deb11u1) ...
Selecting previously unselected package libopenblas-pthread-dev:armhf.
Preparing to unpack .../libopenblas-pthread-dev_0.3.13+ds-3+rpi1+deb11u1_armhf.deb ...
Unpacking libopenblas-pthread-dev:armhf (0.3.13+ds-3+rpi1+deb11u1) ...
Selecting previously unselected package libopenblas-dev:armhf.
Preparing to unpack .../libopenblas-dev_0.3.13+ds-3+rpi1+deb11u1_armhf.deb ...
Unpacking libopenblas-dev:armhf (0.3.13+ds-3+rpi1+deb11u1) ...
Setting up libopenblas0-pthread:armhf (0.3.13+ds-3+rpi1+deb11u1) ...
update-alternatives: using /usr/lib/arm-linux-gnueabihf/openblas-pthread/libblas.so.3 to provide /usr/lib/arm-linux-gnueabihf/libblas.so.3 (libblas.so.3-arm-linux-gnueabihf) in auto mode
update-alternatives: using /usr/lib/arm-linux-gnueabihf/openblas-pthread/liblapack.so.3 to provide /usr/lib/arm-linux-gnueabihf/liblapack.so.3 (liblapack.so.3-arm-linux-gnueabihf) in auto mode
update-alternatives: using /usr/lib/arm-linux-gnueabihf/openblas-pthread/libopenblas.so.0 to provide /usr/lib/arm-linux-gnueabihf/libopenblas.so.0 (libopenblas.so.0-arm-linux-gnueabihf) in auto mode
Setting up libopenblas0:armhf (0.3.13+ds-3+rpi1+deb11u1) ...
Setting up libopenblas-pthread-dev:armhf (0.3.13+ds-3+rpi1+deb11u1) ...
update-alternatives: using /usr/lib/arm-linux-gnueabihf/openblas-pthread/libblas.so to provide /usr/lib/arm-linux-gnueabihf/libblas.so (libblas.so-arm-linux-gnueabihf) in auto mode
update-alternatives: using /usr/lib/arm-linux-gnueabihf/openblas-pthread/liblapack.so to provide /usr/lib/arm-linux-gnueabihf/liblapack.so (liblapack.so-arm-linux-gnueabihf) in auto mode
update-alternatives: using /usr/lib/arm-linux-gnueabihf/openblas-pthread/libopenblas.so to provide /usr/lib/arm-linux-gnueabihf/libopenblas.so (libopenblas.so-arm-linux-gnueabihf) in auto mode
Setting up libopenblas-dev:armhf (0.3.13+ds-3+rpi1+deb11u1) ...
Processing triggers for libc-bin (2.31-13+rpt2+rpi1+deb11u10) ...

All required apt packages have been installed.

No apt updates to apply.

Downloading current boards configuration.

Modifying UART speeds for BLEacon support.

BrewPi user venv already exists.

Checking and installing required dependencies via pip3.
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting simplejson~=3.19.2
  Downloading https://www.piwheels.org/simple/simplejson/simplejson-3.19.2-cp39-cp39-linux_armv7l.whl (127 kB)
     |████████████████████████████████| 127 kB 232 kB/s
Collecting requests~=2.31.0
  Downloading https://www.piwheels.org/simple/requests/requests-2.31.0-py3-none-any.whl (62 kB)
     |████████████████████████████████| 62 kB 20 kB/s
Collecting psutil~=5.9.6
  Downloading https://www.piwheels.org/simple/psutil/psutil-5.9.8-cp39-abi3-linux_armv7l.whl (282 kB)
     |████████████████████████████████| 282 kB 28 kB/s
Collecting configobj~=5.0.8
  Downloading https://www.piwheels.org/simple/configobj/configobj-5.0.8-py2.py3-none-any.whl (35 kB)
Collecting aioblescan~=0.2.6
  Downloading https://www.piwheels.org/simple/aioblescan/aioblescan-0.2.14-py3-none-any.whl (27 kB)
Collecting GitPython~=3.1.40
  Downloading https://www.piwheels.org/simple/gitpython/GitPython-3.1.43-py3-none-any.whl (207 kB)
     |████████████████████████████████| 207 kB 248 kB/s
Collecting pyserial~=3.5
  Using cached https://www.piwheels.org/simple/pyserial/pyserial-3.5-py2.py3-none-any.whl (90 kB)
Collecting numpy~=1.26.2
  Downloading https://www.piwheels.org/simple/numpy/numpy-1.26.4-cp39-cp39-linux_armv7l.whl (5.6 MB)
     |████████████████████████████████| 5.6 MB 9.0 MB/s
Collecting packaging~=23.2
  Downloading https://www.piwheels.org/simple/packaging/packaging-23.2-py3-none-any.whl (53 kB)
     |████████████████████████████████| 53 kB 381 kB/s
Collecting six
  Using cached https://www.piwheels.org/simple/six/six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting gitdb<5,>=4.0.1
  Downloading https://www.piwheels.org/simple/gitdb/gitdb-4.0.11-py3-none-any.whl (62 kB)
     |████████████████████████████████| 62 kB 114 kB/s
Collecting certifi>=2017.4.17
  Downloading https://www.piwheels.org/simple/certifi/certifi-2024.7.4-py3-none-any.whl (162 kB)
     |████████████████████████████████| 162 kB 228 kB/s
Collecting charset-normalizer<4,>=2
  Downloading https://www.piwheels.org/simple/charset-normalizer/charset_normalizer-3.3.2-py3-none-any.whl (48 kB)
     |████████████████████████████████| 48 kB 159 kB/s
Collecting idna<4,>=2.5
  Downloading https://www.piwheels.org/simple/idna/idna-3.7-py3-none-any.whl (66 kB)
     |████████████████████████████████| 66 kB 208 kB/s
Collecting urllib3<3,>=1.21.1
  Downloading https://www.piwheels.org/simple/urllib3/urllib3-2.2.2-py3-none-any.whl (121 kB)
     |████████████████████████████████| 121 kB 239 kB/s
Collecting smmap<6,>=3.0.1
  Downloading https://www.piwheels.org/simple/smmap/smmap-5.0.1-py3-none-any.whl (24 kB)
Installing collected packages: smmap, urllib3, six, idna, gitdb, charset-normalizer, certifi, simplejson, requests, pyserial, psutil, packaging, numpy, GitPython, configobj, aioblescan
Successfully installed GitPython-3.1.43 aioblescan-0.2.14 certifi-2024.7.4 charset-normalizer-3.3.2 configobj-5.0.8 gitdb-4.0.11 idna-3.7 numpy-1.26.4 packaging-23.2 psutil-5.9.8 pyserial-3.5 requests-2.31.0 simplejson-3.19.2 six-1.16.0 smmap-5.0.1 urllib3-2.2.2

Adding alias to activate BrewPi venv for root user.

Adding alias to BrewPi Menu for root user.

Adding alias to activate BrewPi menu for root user.

***Script doDepends.sh complete.***

***Script doCleanup.sh starting.***

Cleaning up BrewPi script directory.
Deleted 1164 old .pyc files.

Cleaning up empty directories.
Deleted 125 empty directories.

***Script doDaemon.sh starting.***

Unit file for brewpi.service exists and is the same version
(0.8.1 vs. 0.8.1). Overwrite anyway? [y/N]: y

Stopping brewpi daemon.
Disabling brewpi daemon.
Removed /etc/systemd/system/multi-user.target.wants/brewpi.service.
Removing unit file /etc/systemd/system/brewpi.service

Creating unit file for brewpi.
Reloading systemd config.
Enabling brewpi daemon.
Created symlink /etc/systemd/system/multi-user.target.wants/brewpi.service → /etc/systemd/system/brewpi.service.
Starting brewpi daemon.

Creating unit file for wificheck.
Reloading systemd config.
Enabling wificheck daemon.
Created symlink /etc/systemd/system/multi-user.target.wants/wificheck.service → /etc/systemd/system/wificheck.service.
Starting wificheck daemon.

***Script doDaemon.sh complete.***

***Script doPerms.sh starting.***

Fixing file permissions for /var/www/html.

Fixing file permissions for /home/brewpi.

Allowing BrewPi python access to Bluetooth interfaces.

Checking user accounts.

***Script doPerms.sh complete.***

***Script doCleanup.sh complete.***

Restarting BrewPi.

Restarting Apache2.

Do you want to flash your controller now? [y/N]: y
Traceback (most recent call last):
  File "/home/brewpi/updateFirmware.py", line 39, in <module>
    import autoSerial
  File "/home/brewpi/autoSerial.py", line 35, in <module>
    import BrewPiUtil
  File "/home/brewpi/BrewPiUtil.py", line 42, in <module>
    import git
ModuleNotFoundError: No module named 'git'

***Script doUpdate.sh complete.***
lbussy commented 1 month ago

I have a pinned issue somewhere about this. I need to get off my ass and release a fix. Sorry it impacted you.

TheFiZi commented 1 month ago

No worries, is there a workaround I can run for now?

lbussy commented 1 month ago

Oh man, this is a new one. Sorry. I need to take a look but it might be tomorrow before I can. If your Arduino is flashed, skip that part.

TheFiZi commented 1 month ago

Worked around the first problem by doing the following:

sudo pip install -r requirements.txt
curl -L upgrade.brewpiremix.com | sudo bash

New error

Updating firmware.

Arduino program script started.
Traceback (most recent call last):
  File "/home/brewpi/updateFirmware.py", line 447, in <module>
    result = main()
  File "/home/brewpi/updateFirmware.py", line 442, in main
    result = updateFromGitHub(beta, doShield, userInput)
  File "/home/brewpi/updateFirmware.py", line 400, in updateFromGitHub
    result = programmer.programController(config, board, localFileName, {
  File "/home/brewpi/programController.py", line 197, in programController
    return programmer.program(hexFile, restoreWhat)
  File "/home/brewpi/programController.py", line 239, in program
    if version.parse(self.versionNew) >= version.parse(self.versionOld): # Only restore settings on same or newer
  File "/usr/local/lib/python3.9/dist-packages/packaging/version.py", line 54, in parse
    return Version(version)
  File "/usr/local/lib/python3.9/dist-packages/packaging/version.py", line 198, in __init__
    match = self._regex.search(version)
TypeError: expected string or bytes-like object

***Script doUpdate.sh complete.***
TheFiZi commented 1 month ago

Zero rush on this now. I needed my BrewPi running so I just wiped/re-installed the BrewPi-Remix installation and told it not to backup any config from the controller. I'm back up and running.

Not my first rodeo, last time I wrote down my device settings. Thanks past me.

lbussy commented 1 month ago

There should not have been any reason to re-flash during an install if the controller was already working - the config is in EEPROM and not impacted by the Pi-based software.

(and yes, this one is still "on the list" as I am trying to get unburied at work)