fix: extract linuxdeploy to /root (persists), add wrapper diagnostics
This commit is contained in:
@@ -181,8 +181,12 @@ jobs:
|
||||
-O /tmp/linuxdeploy.AppImage
|
||||
chmod +x /tmp/linuxdeploy.AppImage
|
||||
|
||||
(cd /tmp && /tmp/linuxdeploy.AppImage --appimage-extract)
|
||||
mv /tmp/squashfs-root /tmp/linuxdeploy-root
|
||||
rm -rf /root/linuxdeploy-root
|
||||
(cd /root && /tmp/linuxdeploy.AppImage --appimage-extract)
|
||||
mv /root/squashfs-root /root/linuxdeploy-root
|
||||
echo "Extracted linuxdeploy:"
|
||||
ls /root/linuxdeploy-root/
|
||||
ls /root/linuxdeploy-root/usr/bin/ 2>/dev/null || echo "no usr/bin"
|
||||
|
||||
gcc -o ~/.cache/tauri/linuxdeploy-x86_64.AppImage tools/ld_wrapper.c
|
||||
chmod +x ~/.cache/tauri/linuxdeploy-x86_64.AppImage
|
||||
@@ -192,6 +196,7 @@ jobs:
|
||||
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
|
||||
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ''
|
||||
NODE_OPTIONS: '--max_old_space_size=4096'
|
||||
RUST_LOG: tauri_bundler=debug
|
||||
run: npm run tauri -- build --bundles appimage,deb
|
||||
|
||||
- name: Upload to release
|
||||
|
||||
+33
-1
@@ -1,5 +1,37 @@
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
execv("/tmp/linuxdeploy-root/AppRun", argv);
|
||||
const char *appdir = "/root/linuxdeploy-root";
|
||||
char apprun[256], ldbin[256], new_path[4096];
|
||||
struct stat st;
|
||||
|
||||
snprintf(apprun, sizeof(apprun), "%s/AppRun", appdir);
|
||||
snprintf(ldbin, sizeof(ldbin), "%s/usr/bin/linuxdeploy", appdir);
|
||||
|
||||
fprintf(stderr, "[ld-wrapper] APPDIR=%s\n", appdir);
|
||||
fprintf(stderr, "[ld-wrapper] AppRun exists: %s\n", stat(apprun, &st) == 0 ? "yes" : "NO");
|
||||
fprintf(stderr, "[ld-wrapper] linuxdeploy exists: %s\n", stat(ldbin, &st) == 0 ? "yes" : "NO");
|
||||
fflush(stderr);
|
||||
|
||||
setenv("APPDIR", appdir, 1);
|
||||
char *old_path = getenv("PATH");
|
||||
snprintf(new_path, sizeof(new_path), "%s/usr/bin:%s", appdir, old_path ? old_path : "");
|
||||
setenv("PATH", new_path, 1);
|
||||
|
||||
if (stat(ldbin, &st) == 0) {
|
||||
fprintf(stderr, "[ld-wrapper] exec %s\n", ldbin);
|
||||
fflush(stderr);
|
||||
execv(ldbin, argv);
|
||||
perror("[ld-wrapper] execv linuxdeploy");
|
||||
}
|
||||
|
||||
fprintf(stderr, "[ld-wrapper] fallback exec %s\n", apprun);
|
||||
fflush(stderr);
|
||||
execv(apprun, argv);
|
||||
perror("[ld-wrapper] execv AppRun");
|
||||
return 1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user