Sleek app - Cannot execute binary file

Hello,

Installed snap/snapd and snap-store.

Snap-store runs but installs or uninstalls throw error: “Requires authentication with @snapd”. I’m not understanding what to do here; any advice is appreciated.

Second, I installed Sleek app from the terminal command line. Executing Sleek from the Terminal command line gives the following errors:

  • /snap/sleek/272/snap/command-chain/desktop-launch: line 580: /snap/sleek/272/sleek/sleek: cannot execute binary file: Exec format error
  • /snap/sleek/272/snap/command-chain/desktop-launch: line 580: /snap/sleek/272/sleek/sleek: Success

Running on a ARM64 Chromebook device Linux (Beta).

Snap Version:
snap 2.49
snapd 2.49
series 16
debian 10
kernal 5.4.74-10576-gb6cc41974db3

Again, advice is appreciated and thank you.

–bill

This is an issue with the sleek snap, they have this in their snapcraft.yaml:

architectures:
- build-on: [amd64, armhf, arm64, s390x, ppc64el]
- build-on: i386
  run-on: i386

this results in a multi-architecture snap when built on amd64, armhf, arm64, s390x, and ppc64el that probably only runs on amd64 (though it could only run on say s390x, I think that is not deterministic.

What they probably want is something like:

architectures:
- build-on: amd64
- build-on: armhf
- build-on: arm64
- build-on: s390x
- build-on: ppc64el
- build-on: i386

which will produce a revision per architecture that is specific to the architecture it was built on.

You could try reaching out to them at the contact-url from their snap listing @ https://snapcraft.io/sleek

in that case they could simply drop architectures: completely since that just duplicates the default …

1 Like

Thank you for that information. I will contact the developer.

Hi @bill. I’m the developer of sleek.

When I created the yaml last year it took me many hours to figure out that it was only the combination seen in @ijohnson post, that would build for all architectures without failing all the time.

Anyhow, I followed @ogra 's advice and removed the architectures from the yaml file. 4 of the 6 builds were successful, the one for arm64 included. Maybe this fixes your problem.

Can you please try to install/uninstall using sleek in edge channel by typing

sudo snap install --edge sleek

@ijohnson, @ogra, after removing architectures from the yaml, building for ppc64el and s390x fail. Both with this error. Do you have any idea how to fix this?

x11proto-xext-dev set to automatically installed.
x11proto-xf86vidmode-dev set to automatically installed.
x11proto-xinerama-dev set to automatically installed.
xkb-data set to automatically installed.
xorg-sgml-doctools set to automatically installed.
xtrans-dev set to automatically installed.
zlib1g-dev set to automatically installed.
Failed to install or refresh a snap: 'node' does not exist or is not available on the desired channel '12/stable'. Use `snap info node` to get a list of channels the snap is available on.
Build failed
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/lpbuildd/target/build_snap.py", line 257, in run
    self.pull()
  File "/usr/lib/python3/dist-packages/lpbuildd/target/build_snap.py", line 223, in pull
    env=env)
  File "/usr/lib/python3/dist-packages/lpbuildd/target/build_snap.py", line 100, in run_build_command
    return self.backend.run(args, env=full_env, **kwargs)
  File "/usr/lib/python3/dist-packages/lpbuildd/target/lxd.py", line 537, in run
    subprocess.check_call(cmd, **kwargs)
  File "/usr/lib/python3.6/subprocess.py", line 311, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['lxc', 'exec', 'lp-bionic-ppc64el', '--env', 'LANG=C.UTF-8', '--env', 'SHELL=/bin/sh', '--env', 'SNAPCRAFT_LOCAL_SOURCES=1', '--env', 'SNAPCRAFT_SETUP_CORE=1', '--env', 'SNAPCRAFT_BUILD_INFO=1', '--env', 'SNAPCRAFT_IMAGE_INFO={"build-request-id": "lp-62909240", "build-request-timestamp": "2021-03-22T12:19:55Z", "build_url": "https://launchpad.net/~build.snapcraft.io/+snap/0bd466522b32144f4aca7878faa1937b/+build/1345150"}', '--env', 'SNAPCRAFT_BUILD_ENVIRONMENT=host', '--env', 'http_proxy=http://10.10.10.1:8222/', '--env', 'https_proxy=http://10.10.10.1:8222/', '--env', 'GIT_PROXY_COMMAND=/usr/local/bin/snap-git-proxy', '--', '/bin/sh', '-c', 'cd /build/sleek && linux64 snapcraft pull']' returned non-zero exit status 2.
Revoking proxy token...
RUN: /usr/share/launchpad-buildd/bin/in-target scan-for-processes --backend=lxd --series=bionic --arch=ppc64el SNAPBUILD-1345150
Scanning for processes to kill in build SNAPBUILD-1345150

Hi @ran if you want to build everywhere except s390x and ppc64el, then you should use something like:

architectures:
- build-on: amd64
- build-on: armhf
- build-on: arm64
- build-on: i386

I actually would like to build for all platforms :slight_smile:

Though s390x and ppc64el are not really relevant to me, as I don’t see a single sleek user on those architectures in metrics.

if you check the little pulldown menu next to the green install button at:

… you can see it is only available for the x86 and arm architectures… as long as your snap uses the node snap in any way as stage or build snaps, you are bound to use the same (or less) architectures the node snap uses … as the error says above, it is simply not available on s390x or ppc64el …

2 Likes

@ogra thanks for mentioning it. Then I will just exclude s390x and ppc64el as suggested by @ijohnson, which should solve the problem.

Of course @bill I’m still interested if the arm64 build now works for you.

2 Likes

@ran I installed edge sleek 0.9.7 and received following error:

Screenshot 2021-03-23 9.03.33 AM

Ok interesting, but at least we are one step closer, now that you able to install it. Can I ask you if the AppImage is working for you? https://github.com/ransome1/sleek/releases/download/v0.9.7-Beta/sleek-0.9.7-Beta.AppImage

Just to make sure it is not a general problem of sleek or Electron with ARM architectures.

I’ve not tried the AppImage. I don’t know how to install an AppImage but will figure it out then let you know what happened.

You just need to download it, give it permission to be executed and than a double click on it should start sleek.

Hi @ran, i say this in jest but you give me too much credit for thinking I understand anything about how to use Linux command line. :thinking: :laughing: Anyway, I’m working on it. Will get back to you.

chmod -x ./sleek-0.9.7-Beta.AppImage

./sleek-0.9.7-Beta.AppImage

Should do it :wink:

Thanks. I installed Nautilus file manager, made the file executible, then right click on the file in Nautilus and selected Run.

Sleek did not open. A file was created with some weird characters as part of the filename then (invalid encoding) at the end of the file name.

What else can I tell you that will help?

Can use your terminal and cd to the directory where the AppImage is and execute it?

./sleek-0.9.7-Beta.AppImage

That might give you some output on the error in your terminal.

oh, I’m running this on a Lenovo Chromebook Duet which is ARM based processor. So, this is Linux (Beta) on an ARM based Chromebook…and I’m wondering if the Linux (Beta) on this chromebook may be incompatible in some way but idk.

in the Terminal typed ./sleek-0.9.7-Beta.AppImage

error is

-bash: ./sleek-0.9.7-Beta.AppImage: cannot execute binary file: Exec format error

Started over and did this:

$ chmod -x ./sleek-0.9.7-Beta.AppImage
$ ./sleek-0.9.7-Beta.AppImage

error received

-bash: ./sleek-0.9.7-Beta.AppImage: Permission denied