Skip to content

Binaries under bin directory lack executable permissions for the snap and .deb packages for Linux #1567

Description

@pedernal

Most appropriate sub-area of Processing 4?

Build process, Export

Processing version

processing-4.5.6-1434

Operating system

Debian 7.1.8-1 x86_64 GNU/Linux

Bug description

It seems like there are executable permission lacking for windress for Processing for snap and for java for the .deb package.

While using the snap build of Processing one is able to run sketches and export them as a Linux executable, but while trying to export a Windows executable an IOException is raised due to permission denial for /snap/processing/39/opt/processing/lib/app/resources/modes/java/application/launch4j/bin/windres in snap. As for the .deb build, one is not able to run any sketches at all due to the same Exception for /opt/processing/lib/app/resources/jdk/bin/java. These issues seemed to be linked to #1074.

As it can be seen for the snap build, the windres binary doesn't have executable permissions:

$: ls -lA /snap/processing/39/opt/processing/lib/app/resources/modes/java/application/launch4j/bin/windres
-rw-r--r-- 1 root root 1124960 Jul 19 19:15 /snap/processing/39/opt/processing/lib/app/resources/modes/java/application/launch4j/bin/windres

And for the .deb package, the java library permissions seem to be:

ls -lA /opt/processing/lib/app/resources/jdk/bin/java
-rw-r--r-- 1 root root 16320 Jul 19 19:15 /opt/processing/lib/app/resources/jdk/bin/java

The relevant error message in for the snap build case while trying to Export a sketch for Windows:

Caused by: java.io.IOException: Cannot run program "/snap/processing/39/opt/processing/lib/app/resources/modes/java/application/launch4j/bin/windres": error=13, Permission denied
	at java.base/java.lang.ProcessBuilder.start(Unknown Source)
	at java.base/java.lang.ProcessBuilder.start(Unknown Source)
	at java.base/java.lang.Runtime.exec(Unknown Source)
	at java.base/java.lang.Runtime.exec(Unknown Source)
	at net.sf.launch4j.Util.exec(Util.java:128)
	... 59 more

And the one for the .deb build case while trying to run a sketch:

Caused by: java.io.IOException: Cannot run program "/opt/processing/lib/app/resources/jdk/bin/java": error=13, Permission denied
	at java.base/java.lang.ProcessBuilder.start(Unknown Source)
	at java.base/java.lang.ProcessBuilder.start(Unknown Source)
	at java.base/java.lang.Runtime.exec(Unknown Source)
	at java.base/java.lang.Runtime.exec(Unknown Source)
	at processing.core.PApplet.exec(PApplet.java:3203)
	... 2 more

The .deb package also fails to export a Windows executable for the same reasons for /opt/processing/lib/app/resources/modes/java/application/launch4j/bin/windres.

Steps to reproduce this

For the snap build:

  1. Create new sketch and save it.
  2. Go to: File → Export Application...
  3. Check the Windows (Intel 64-bit) option
  4. Click Export

For the .deb package:

  1. Create a new sketch.
  2. Attempt to run it.

snippet

void setup() { println("Hello World for Windows from Linux!"); exit(); }

Additional context

I also tested the flatpak build and it seems to be in the same situation as with the snap build, but for the binary at /app/lib/app/resources/modes/java/application/launch4j/bin/windres.
For the .deb package, manually changing the permissions to all the files under /opt/processing/lib/app/resources/modes/java/application/launch4j/bin/ seemed to have solved both the issue with running sketches and exporting an Windows executable successfully.

Would you like to work on the issue?

No, I’m just reporting the issue

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions