signing.py: permission denied

Hi:
I am a new to Arduino programing so I apologize in advance if I have missed something that I should have been aware of.
I am running Ubuntu 18.04 and Arduino 1.8.6
Any sketches that I have written for the Uno and Nano boards are working fine (the only Arduino board types I have).
If I select one of the 8266 boards (excepting the Huzzar board) I get the following error when I verify the sketch:

fork/exec /home/richard/.arduino15/packages/esp8266/hardware/esp8266/2.5.0-beta1/tools/signing.py: permission denied
Error compiling for board WeMos D1 R1.

The interesting thing is this error occurs whether or not I have a sketch written or not. By that I mean I even get error with this:

void setup() {
}
void loop() {
}

I have removed the ESP8266 addon boards and restarted the computer followed by re adding the ESP8266 series boards using the URL:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

In frustration I have also uninstalled the Arduino IDE and reinstalled it and still the issue remains.

I have spent 2 days troubleshooting this and am now at a loss. Any assistance will be greatly appreciated!

It's a bug in the 2.5.0-beta1 release of the ESP8266 core. They forgot to make signing.py executable:

There are two options to fix it:

The first option is to use a chmod command to make the file executable (as explained at the above link).

The second option is to roll back to the 2.4.2 release:

  • Tools > Board > Boards Manager
  • Wait for downloads to finish.
  • Scroll down until you see "esp8266 by ESP8266 Community". Click on it.
  • Select "2.4.2" from the dropdown menu.
  • Click "Install".
  • Wait for installation to finish.
  • Click "Close".

After rolling back to 2.4.2, you may get periodic notifications from the IDE that a new boards update is available. You'll need to refrain from updating to 2.5.0-beta1 or else the same error will be back.

In the future, you might be wary of installing any boards or library version marked as beta. These are primarily intended for beta testing and may not be as stable as the production release versions.