davidgiven/fluxengine

build/ab.mk:31: .obj//build.mk: No such file or directory - build attempt fails immediately

Closed this issue · 5 comments

Hi David,

I am trying to build for the very first time, on Linux Ubuntu 18.04.6 LTS

I probably have some missing dependencies, but the build is failing straight away like this:

$ make
build/ab.mk:31: .obj//build.mk: No such file or directory
AB
Traceback (most recent call last):
File "build/ab.py", line 562, in
main()
File "build/ab.py", line 551, in main
loadbuildfile(f)
File "build/ab.py", line 520, in loadbuildfile
filename = filename.replace("/", ".").removesuffix(".py")
AttributeError: 'str' object has no attribute 'removesuffix'
make: *** No rule to make target '+all', needed by 'all'. Stop.

I get the same result using a git clone of latest or using a download of the latest "release"

Any hint about how to get further in the build process would be welcome.

thanks

Neal.

Could you run these commands and let me know what comes out, please?

echo $PYTHON

and

python3

~/local_build/fluxengine$ echo $PYTHON

~/local_build/fluxengine$ python3
Python 3.6.9 (default, Mar 10 2023, 16:46:00) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> quit
Use quit() or Ctrl-D (i.e. EOF) to exit
>>> 

thanks,

Neal

Seems that removesuffix() was added in Python 3.9. Can you upgrade? Ubuntu 18 is now six years old.

Can you upgrade? Ubuntu 18 is now six years old.
I probably should. I wonder how much of my life it will consume to get everything else working again..
I think my first attempt will be to pull a newer Python and see whether that is enough or just the start of a different world of pain.

thanks,
Neal.

Thanks - I bit the bullet and upgraded through to LTS 24.04 (good for another 12 years!!)

I suggest these two tweaks to your build instructions:

For Linux with Ubuntu/Debian: ... libwxgtk3.0-gtk3-dev (libwxgtk3.2-dev on ubuntu 24.04 and later)

You may need to set up permissions to allow user-access the the USB device. On ubuntu something like this:

# this gives access for ALL users. Google for more restrictive rule setup
$ sudo echo  "SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"1209\", ATTRS{idProduct}==\"6e00\", MODE:=\"0666\"" > /etc/udev/rules.d/90-fluxengine.rules
$ sudo udevadm control --reload-rules
# now unplug the fluxengine hardware from the USB and reconnect it to trigger the new rule