Support for Raspberry Pi OS Bullseye

Raspberry Pi OS - Bullseye is now released.
Python2 has been removed from it, and thus our install scripts break.
This is valid for all our products: GoPiGo, BrickPi, GrovePi, PivotPi, etc.

We’re taking a look.

3 Likes

Oh, fun. . . .

We saw that coming, but it still vacuums thoroughly.
:face_with_raised_eyebrow:  :face_with_symbols_over_mouth:

P.S
This is the problem I was researching before I ran into the “update breaks GoPiGo OS issue” which is the issue I am researching now.

It seems the major issue is that wxPython is either not installed, or not findable by Python 3.x.x

2 Likes

Running

sudo apt install python2 -y;

before the install script gets around the problem for now.

3 Likes

Yea, but that’s like replacing a flat tire on a Mustang with a wooden-spoked wheel.  We really need to bring everything firmly into the 19’th century! :wink:

2 Likes

Cool. Wishing you success with minimal frustration.

2 Likes

I totally agree with you. I would have dropped python2 back in 2018

3 Likes

Once I figure out which update is crashing GPGOS’s robot functionality, I will telescope back to that task - getting the robot scripts to work in Python-3.n.

Unfortunately, Python-3 is a moving target, and later versions of Python-3 break functionality in earlier versions.  (Shakes head in disgust!)  How the :face_with_symbols_over_mouth: !!! do you build on such quicksand?

2 Likes

I was under the impression Python built-ins have been stable since version 3.5. Are you seeing compatibility issues after that?

2 Likes

No, I don’t do enough “real” Python.

I am referring to what I have read on the few Python lists I subscribe to and run across while trying to find out which devil-spawned imbecile decided on the mechanics of this (ahem!) “feature” or function.

And then assumed everyone lives on the Python Dev IRC and knows what’s going on, so why document in any reasonable detail?

i.e.  Would someone PLEASE explain what a “decorator” is, why we need it, and how does it “simplify” things?  All I can see is another layer of cruft on the language to serve as job security - since no one else can figure it out!  And it’s not like Python doesn’t have more inaineities than an episode of Benny Hill!

(Spoiler:  It does. :roll_eyes:  :face_with_raised_eyebrow:  :man_facepalming:)

2 Likes

Jim, the decorator is a programming shortcut. It is like getting code written or executed for free.

Example - I wanted to keep a “runlog.log” for every program that runs on Carl - when it started and when it finished. The simplest way to do that is a decorator:

# decorator @runLog.logRun will log a start and end entry:
#          "YYYY-MM-DD HH:MM|<file>.<func>: Started"
#          "YYYY-MM-DD HH:MM|<file>.<func>: Finished"
# Usage:
# import runLog
#
# @runLog.logRun
# def main():

You can see how I did it here.

There are a bunch of “standard decorator use cases”. I don’t typically use decorators, but I have seen them occasionally in Dexter code.

Here is an “Intro to Decorators”

https://python-course.eu/advanced-python/decorators-decoration.php

2 Likes

So, where’s the decorator?

All I see is a normal looking Python script.

Reminds me of the famous best-seller Everything You Hate About Pointers But Were Afraid To Ask

:wink:

2 Likes

The decorator is doubly obfuscated because it uses a decorator to define the decorator. I haven’t a clue how I figured out how to write it. I remember that inside the decorator code, the stack is crazy because I didn’t want to log that I was in the decorator, I wanted the decorator to log that I was entering and exiting the decorated function.

I have not attempted to use decorators after the trauma of that trial by fire.

BTW, we’ve hijacked cleo’s thread. Bad boys!

2 Likes

Functions calling functions that return functions to the calling functions. . . .

:crazy_face:

Job security?  Absolutely!

2 Likes

For BrickPi - can you give the exact sequence to update from V10 (as listed in the version file on the desktop) to Raspberry Pi (Pi OS) built on Bullseye?

Is it

sudo apt install python2 -y;
sudo apt-get update

or is it

sudo apt install python2 -y;
followed by launching the DI Software Update shortcut on the desktop

TIA

2 Likes

Short answer:
No.

Longer answer:
There is NO METHOD for turning Bullseye into something we can use at the present time because Bullseye changes too many things at too fundamental a level for the current Dexter Industries software to work.

You can run the already published install and update scripts on the legacy Buster version and try to get things working there, but for the time being, Bullseye isn’t working and is not likely to work in the foreseeable future.

2 Likes

Mark, your question is confusing. That V 10 in the Version file on your desktop implies you have Raspbian For Robots “on the Buster Raspbian Build” configured with your BrickPi.

There is no command sequence to update your existing BrickPi system to PiOS Bullseye.

The post you saw, is a suggested workaround that may install the BrickPi software onto a configured and working PiOS Bullseye operating system.

The install script referred to there is

$ curl -kL dexterindustries.com/update_brickpi3 | bash

and is used to install the BrickPi software over a working PiOS Bullseye system

BUT No one has tested the BrickPi software on PiOS Bullseye, so this really is not recommended at this time.

1 Like