-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Binary built with GH actions doesn't run on other systems #159
Comments
I think this issue might be related to #108 (comment). That issue manifested as:
I indicated in #108 (comment), that the behavior may be different as of I'm looking into this. |
In your pastebin output, I see that
And I see that staticx extracted it at runtime:
And So I'm really confused about why
I'll have to look into Ubuntu 18.04's |
Thanks for your effort! :) If you need any support, please let me know. |
I tried reproducing this using a simple test, but was unable. I built a PyInstalled app and then ran it through Staticx, all in an Ubuntu 18.04 docker image. I then ran it in an Arch Linux image without issue. I confirmed the GLIBC versions were as you mentioned. Can you provide a link to your project and a failing binary file? |
The corresponding project is: https://github.com/mammo0/NordVPN-NetworkManager-Gui In the latest release you can find the binary that produced the output from above: https://github.com/mammo0/NordVPN-NetworkManager-Gui/releases/tag/20201015-1712_72ea624 To build this you need to have pyenv and Pipenv installed. You can also have a look at the GH workflow file for installing the dependencies on Ubuntu 18.04: https://github.com/mammo0/NordVPN-NetworkManager-Gui/blob/master/.github/workflows/build.yml |
Somehow, when PyInstaller bootloader loads Running with
Full log: Ugh, I think I've found the problem: https://github.com/bminor/glibc/blob/glibc-2.27/elf/dl-load.c#L1945-L1979 /* When the object has the RUNPATH information we don't use any
RPATHs. */ The wrapped executable has been patched as expected, with
But the problem is that the bundled
and because of this, its At a minimum, it looks like Edit: Idea: What if we use It looks like |
Did this bug exist prior to mammo0/NordVPN-NetworkManager-Gui@ca4b50f? |
Oh, looks like it's really complicated...
To test this I created a new branch and let GH build everything without pyenv. The default Python version in the runner is 3.6.9. The build log: 4_Build.txt The built binary: https://github.com/mammo0/NordVPN-NetworkManager-Gui/releases/tag/20201019-0807_debug_staticx_13bc371
Seems like some GDK library is not found. |
FYI: I merged #172 which will at least detect this problem during staticx build, rather than on the target machine. Also, I subsequently started to move Staticx itself from Travis to GH Actions (#194) and my new code is (properly) detecting this error:
In this case it seems that |
Thank you for putting so much effort into this :) |
With the problematic |
Hello,
as demanded by @JonathonReinhart I will open a new issue for my problem. It might be related to #86 and/or #129.
My goal is to build a Python application with Pyinstaller and afterwards make it portable with staticx. Everything works fine on my local machine. But then I tried to automate the build process with GitHub actions. Their runners run by default on Ubuntu 18.04.
Here is the build log of:
Pyinstaller (version 4.0):
and staticx (version 0.12.0): https://pastebin.com/tUF1dLFz
If I try to execute the built binary on my local PC (Arch Linux), I get the following error message:
My local PC uses the libc version 2.32. The build system uses 2.27.
The text was updated successfully, but these errors were encountered: