Classic confinement for paraemu snap


#1

yesterday I uploaded a snap package and it was rejected because
for having confinement classic, but when changing it by devmode ( and grade deve ) the software crashes:

@jamesh can you help me?


#2

Without knowing what the application is doing, it is hard to say what the cause is. If I had to guess, the application is probably calling a system call disallowed by the seccomp filter. If that’s the case, you can probably find an audit message in the output of dmesg.

You might also be able to get some information by running the app under strace. This can be done with:

sudo snap run --strace appname

That might help you narrow down what the application is doing when it crashes.


#3

The application is basically a frontend for console emulators written in python.
Now I’ll see what I can do, thanks


#4

The output is:

[pid  8584] execve("/snap/paraemu/x1/command-paraemu.wrapper", ["/snap/paraemu/x1/command-paraemu"...], 0xc8200ac900 /* 68 vars */ <unfinished ...>
[pid  8588] <... futex resumed>)        = ?
[pid  8588] +++ exited with 0 +++
[pid  8587] <... futex resumed>)        = ?
[pid  8586] +++ exited with 0 +++
[pid  8589] <... futex resumed>)        = ?
[pid  8587] +++ exited with 0 +++
[pid  8589] +++ exited with 0 +++
<... execve resumed> )                  = 0
brk(NULL)                               = 0x5625f67d9000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=199957, ...}) = 0
mmap(NULL, 199957, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f315ed86000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\t\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1868984, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f315ed85000
mmap(NULL, 3971488, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f315e7c8000
mprotect(0x7f315e988000, 2097152, PROT_NONE) = 0
mmap(0x7f315eb88000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c0000) = 0x7f315eb88000
mmap(0x7f315eb8e000, 14752, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f315eb8e000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f315ed84000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f315ed83000
arch_prctl(ARCH_SET_FS, 0x7f315ed84700) = 0
mprotect(0x7f315eb88000, 16384, PROT_READ) = 0
mprotect(0x5625f4ad4000, 8192, PROT_READ) = 0
mprotect(0x7f315edb7000, 4096, PROT_READ) = 0
munmap(0x7f315ed86000, 199957)          = 0
getuid()                                = 1000
getgid()                                = 1000
getpid()                                = 8584
rt_sigaction(SIGCHLD, {sa_handler=0x5625f48c8540, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER, sa_restorer=0x7f315e7fd4b0}, NULL, 8) = 0
geteuid()                               = 1000
brk(NULL)                               = 0x5625f67d9000
brk(0x5625f67fa000)                     = 0x5625f67fa000
getppid()                               = 8582
stat("/home/abel/paraEmu", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
stat(".", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
open("/snap/paraemu/x1/command-paraemu.wrapper", O_RDONLY) = 3
fcntl(3, F_DUPFD, 10)                   = 10
close(3)                                = 0
fcntl(10, F_SETFD, FD_CLOEXEC)          = 0
geteuid()                               = 1000
getegid()                               = 1000
rt_sigaction(SIGINT, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x5625f48c8540, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER, sa_restorer=0x7f315e7fd4b0}, NULL, 8) = 0
rt_sigaction(SIGQUIT, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGQUIT, {sa_handler=SIG_DFL, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER, sa_restorer=0x7f315e7fd4b0}, NULL, 8) = 0
rt_sigaction(SIGTERM, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTERM, {sa_handler=SIG_DFL, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER, sa_restorer=0x7f315e7fd4b0}, NULL, 8) = 0
read(10, "#!/bin/sh\nR1=\"$SNAP/usr/local/bi"..., 8192) = 461
execve("/snap/paraemu/x1/usr/bin/paraemu", ["/snap/paraemu/x1/usr/bin/paraemu"], 0x5625f67da748 /* 69 vars */) = 0
brk(NULL)                               = 0x22ab000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3c0ebba000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("tls/x86_64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("tls/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("x86_64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/snap/paraemu/x1/lib/tls/x86_64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/snap/paraemu/x1/lib/tls/x86_64", 0x7fff6da38df0) = -1 ENOENT (No such file or directory)
open("/snap/paraemu/x1/lib/tls/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/snap/paraemu/x1/lib/tls", 0x7fff6da38df0) = -1 ENOENT (No such file or directory)
open("/snap/paraemu/x1/lib/x86_64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/snap/paraemu/x1/lib/x86_64", 0x7fff6da38df0) = -1 ENOENT (No such file or directory)
open("/snap/paraemu/x1/lib/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/snap/paraemu/x1/lib", {st_mode=S_IFDIR|0755, st_size=177, ...}) = 0
open("/snap/paraemu/x1/usr/lib/tls/x86_64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/snap/paraemu/x1/usr/lib/tls/x86_64", 0x7fff6da38df0) = -1 ENOENT (No such file or directory)
open("/snap/paraemu/x1/usr/lib/tls/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/snap/paraemu/x1/usr/lib/tls", 0x7fff6da38df0) = -1 ENOENT (No such file or directory)
open("/snap/paraemu/x1/usr/lib/x86_64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/snap/paraemu/x1/usr/lib/x86_64", 0x7fff6da38df0) = -1 ENOENT (No such file or directory)
open("/snap/paraemu/x1/usr/lib/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/snap/paraemu/x1/usr/lib", {st_mode=S_IFDIR|0755, st_size=578, ...}) = 0
open("/snap/paraemu/x1/lib/x86_64-linux-gnu/tls/x86_64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/snap/paraemu/x1/lib/x86_64-linux-gnu/tls/x86_64", 0x7fff6da38df0) = -1 ENOENT (No such file or directory)
open("/snap/paraemu/x1/lib/x86_64-linux-gnu/tls/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/snap/paraemu/x1/lib/x86_64-linux-gnu/tls", 0x7fff6da38df0) = -1 ENOENT (No such file or directory)
open("/snap/paraemu/x1/lib/x86_64-linux-gnu/x86_64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/snap/paraemu/x1/lib/x86_64-linux-gnu/x86_64", 0x7fff6da38df0) = -1 ENOENT (No such file or directory)
open("/snap/paraemu/x1/lib/x86_64-linux-gnu/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/snap/paraemu/x1/lib/x86_64-linux-gnu", {st_mode=S_IFDIR|0755, st_size=1677, ...}) = 0
open("/snap/paraemu/x1/usr/lib/x86_64-linux-gnu/tls/x86_64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/snap/paraemu/x1/usr/lib/x86_64-linux-gnu/tls/x86_64", 0x7fff6da38df0) = -1 ENOENT (No such file or directory)
open("/snap/paraemu/x1/usr/lib/x86_64-linux-gnu/tls/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/snap/paraemu/x1/usr/lib/x86_64-linux-gnu/tls", 0x7fff6da38df0) = -1 ENOENT (No such file or directory)
open("/snap/paraemu/x1/usr/lib/x86_64-linux-gnu/x86_64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/snap/paraemu/x1/usr/lib/x86_64-linux-gnu/x86_64", 0x7fff6da38df0) = -1 ENOENT (No such file or directory)
open("/snap/paraemu/x1/usr/lib/x86_64-linux-gnu/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/snap/paraemu/x1/usr/lib/x86_64-linux-gnu", {st_mode=S_IFDIR|0755, st_size=19347, ...}) = 0
open("/var/lib/snapd/lib/gl/tls/x86_64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/var/lib/snapd/lib/gl/tls/x86_64", 0x7fff6da38df0) = -1 ENOENT (No such file or directory)
open("/var/lib/snapd/lib/gl/tls/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/var/lib/snapd/lib/gl/tls", {st_mode=S_IFDIR|0755, st_size=60, ...}) = 0
open("/var/lib/snapd/lib/gl/x86_64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/var/lib/snapd/lib/gl/x86_64", 0x7fff6da38df0) = -1 ENOENT (No such file or directory)
open("/var/lib/snapd/lib/gl/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/var/lib/snapd/lib/gl", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=1320, ...}) = 0
open("/var/lib/snapd/lib/gl32/tls/x86_64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/var/lib/snapd/lib/gl32/tls/x86_64", 0x7fff6da38df0) = -1 ENOENT (No such file or directory)
open("/var/lib/snapd/lib/gl32/tls/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/var/lib/snapd/lib/gl32/tls", {st_mode=S_IFDIR|0755, st_size=60, ...}) = 0
open("/var/lib/snapd/lib/gl32/x86_64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/var/lib/snapd/lib/gl32/x86_64", 0x7fff6da38df0) = -1 ENOENT (No such file or directory)
open("/var/lib/snapd/lib/gl32/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/var/lib/snapd/lib/gl32", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=1040, ...}) = 0
open("/var/lib/snapd/void/tls/x86_64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/var/lib/snapd/void/tls/x86_64", 0x7fff6da38df0) = -1 ENOENT (No such file or directory)
open("/var/lib/snapd/void/tls/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/var/lib/snapd/void/tls", 0x7fff6da38df0) = -1 ENOENT (No such file or directory)
open("/var/lib/snapd/void/x86_64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/var/lib/snapd/void/x86_64", 0x7fff6da38df0) = -1 ENOENT (No such file or directory)
open("/var/lib/snapd/void/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/var/lib/snapd/void", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/snap/paraemu/x1/usr/lib/i386-linux-gnu/tls/x86_64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/snap/paraemu/x1/usr/lib/i386-linux-gnu/tls/x86_64", 0x7fff6da38df0) = -1 ENOENT (No such file or directory)
open("/snap/paraemu/x1/usr/lib/i386-linux-gnu/tls/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/snap/paraemu/x1/usr/lib/i386-linux-gnu/tls", 0x7fff6da38df0) = -1 ENOENT (No such file or directory)
open("/snap/paraemu/x1/usr/lib/i386-linux-gnu/x86_64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/snap/paraemu/x1/usr/lib/i386-linux-gnu/x86_64", 0x7fff6da38df0) = -1 ENOENT (No such file or directory)
open("/snap/paraemu/x1/usr/lib/i386-linux-gnu/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/snap/paraemu/x1/usr/lib/i386-linux-gnu", {st_mode=S_IFDIR|0755, st_size=9100, ...}) = 0
open("/snap/paraemu/x1/lib/i386-linux-gnu/tls/x86_64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/snap/paraemu/x1/lib/i386-linux-gnu/tls/x86_64", 0x7fff6da38df0) = -1 ENOENT (No such file or directory)
open("/snap/paraemu/x1/lib/i386-linux-gnu/tls/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/snap/paraemu/x1/lib/i386-linux-gnu/tls", 0x7fff6da38df0) = -1 ENOENT (No such file or directory)
open("/snap/paraemu/x1/lib/i386-linux-gnu/x86_64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/snap/paraemu/x1/lib/i386-linux-gnu/x86_64", 0x7fff6da38df0) = -1 ENOENT (No such file or directory)
open("/snap/paraemu/x1/lib/i386-linux-gnu/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200^\0\0004\0\0\0"..., 832) = 832
close(3)                                = 0
stat("/snap/paraemu/x1/lib/i386-linux-gnu", {st_mode=S_IFDIR|0755, st_size=2121, ...}) = 0
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=199957, ...}) = 0
mmap(NULL, 199957, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f3c0eb89000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\310\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=167240, ...}) = 0
mmap(NULL, 2264256, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f3c0e76d000
mprotect(0x7f3c0e792000, 2093056, PROT_NONE) = 0
mmap(0x7f3c0e991000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24000) = 0x7f3c0e991000
close(3)                                = 0
open("tls/x86_64/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("tls/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("x86_64/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("libdl.so.2", O_RDONLY|O_CLOEXEC)  = -1 ENOENT (No such file or directory)
open("/snap/paraemu/x1/lib/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/snap/paraemu/x1/usr/lib/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/snap/paraemu/x1/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\16\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=14560, ...}) = 0
mmap(NULL, 2109712, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f3c0e569000
mprotect(0x7f3c0e56c000, 2093056, PROT_NONE) = 0
mmap(0x7f3c0e76b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f3c0e76b000
close(3)                                = 0
open("tls/x86_64/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("tls/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("x86_64/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("libc.so.6", O_RDONLY|O_CLOEXEC)   = -1 ENOENT (No such file or directory)
open("/snap/paraemu/x1/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/snap/paraemu/x1/usr/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/snap/paraemu/x1/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260\34\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=2030544, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3c0eb88000
mmap(NULL, 4131552, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f3c0e178000
mprotect(0x7f3c0e35f000, 2097152, PROT_NONE) = 0
mmap(0x7f3c0e55f000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1e7000) = 0x7f3c0e55f000
mmap(0x7f3c0e565000, 15072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3c0e565000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3c0eb87000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3c0eb85000
arch_prctl(ARCH_SET_FS, 0x7f3c0eb85740) = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=NULL} ---
+++ killed by SIGSEGV +++
error: signal: segmentation fault

i’ ll see if can find the trouble


#5

Were there any relevant audit messages? See the “Debugging” section in the following post (in particular about “seccomp violation”):

The arch_prctl syscall is allowed, so if it is the seccomp filter causing the segfault then it is likely the system call after that is causing the problem.


#6

Did you manage to get this fixed? Can you link to the yaml (on github or wherever) if you need help with it.


#7

This problem I could not fix it, I only made other corrections.
I could not upload the project to github either
But I was able to upload the snap to SourceForge (where I already had previous versions) there I had no problem.