Skip to content
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

"Error: No tarball found inside binary" #56

Open
ghost opened this issue Sep 15, 2020 · 2 comments
Open

"Error: No tarball found inside binary" #56

ghost opened this issue Sep 15, 2020 · 2 comments

Comments

@ghost
Copy link

ghost commented Sep 15, 2020

Replicate

On Linux, follow the steps from #37 (comment) to create a Windows x64 build, but run the application on Windows. I don't know if the problem exists when performing the build steps on Windows.

Expected

Running the re-packed executable launches the application.

Actual

The following error message is displayed, then the program exits:

Error: Custom ( kind: Other, error: StringError("no tarball found inside binary") )

Workaround

The user must delete C:\Users\%USERNAME%\AppData\Local\warp\packages\*.exe\.

Details

This is especially problematic because if the user double-clicks on the executable, a command window is briefly shown then it closes without launching the app. The error message goes by too quickly for the user to see. Even if the error message remained visible (e.g., PAUSE in a .bat file), it is too cryptic to inform the user how to proceed.

@xcporter
Copy link

I'm having the same issue--whether I run warp-packer0.3.0 on windows or mac, when windows is the destination the first execution results in this error. After that, I notice that the cache has only part of the jre.
It seems like the initial unpacking of resources has failed.

@ghost
Copy link
Author

ghost commented Mar 8, 2021

This could be solved by deleting the AppData\Local\warp\{{target}} directory if a checksum differs. A simple algorithm:

  1. Attempt to open AppData\Local\warp\{{target}}
  2. If directory does not exist, proceed with install.
  3. If directory exists, open AppData\Local\warp\{{target}}\warp-checksum.txt
  4. If file does not exist, proceed with install.
  5. Otherwise, compare checksum with checksum on binary.
  6. If checksums differ, delete AppData\Local\warp\{{target}}, then proceed with install.
  7. If checksums are the same, run as usual.

The checksum could also be a timestamp. If the binary is newer than the target directory, then purge the directory. That would be a lot faster than computing a checksum each time and should have the same effect.

Thoughts?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant