dgiagio / warp Goto Github PK
View Code? Open in Web Editor NEWCreate self-contained single binary applications
License: MIT License
Create self-contained single binary applications
License: MIT License
It would be cool if other rust tooling was able to use the functionality that warp-packer
provides.
This would mostly mean putting some functions that are currently in main.rs
into a lib.rs
file and make them public.
Making the magic string public would also be very useful.
Another great step would be publishing to crates.io. But using it from GitHub would also be possible.
I am trying to setup docker build process and I am able to build and app, but for some reason the final executable is dynamically linked.
MyApp: ELF 64-bit LSB pie executable x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=d405babc210901599bb80605a87853e2a1f662ba, stripped
All relevant files could be found:
https://gist.github.com/leapingbytes/b046a1309ca8fa6c75e2b2bf6dc45720
Any suggestions would be highly appreciated.
I plan to use this project for cdr/code-server but I'll need ARM builds since I intend it to be used for ARM builds and possibly for normal builds as part of an experiment.
I try compile this project ,but failed like this:
[root@iz0xi6fyb0guktgu5ux21tz warp]# make
make build
make[1]: Entering directory `/root/warp'
cargo build -p warp-runner --release --target x86_64-unknown-linux-gnu
Compiling warp-runner v0.3.0 (/root/warp/warp-runner)
warning: trait objects without an explicit `dyn` are deprecated
--> warp-runner/src/main.rs:46:29
|
46 | fn main() -> Result<(), Box<Error>> {
| ^^^^^ help: use `dyn`: `dyn Error`
|
= note: `#[warn(bare_trait_objects)]` on by default
Finished release [optimized] target(s) in 3.16s
strip target/x86_64-unknown-linux-gnu/release/warp-runner
cargo build -p warp-runner --release --target x86_64-pc-windows-gnu
Compiling approx v0.1.1
error[E0463]: can't find crate for `std`
|
= note: the `x86_64-pc-windows-gnu` target may not be installed
error: aborting due to previous error
For more information about this error, try `rustc --explain E0463`.
error: Could not compile `approx`.
To learn more, run the command again with --verbose.
make[1]: *** [build] Error 101
make[1]: Leaving directory `/root/warp'
make: *** [all] Error 2
[root@iz0xi6fyb0guktgu5ux21tz warp]# ^C
Can you help me? Thank you very much
Windows - .NET Core 2.1
After packing, exe throws error:
Unhandled Exception: System.IO.FileNotFoundException:
Could not load file or assembly 'System.Runtime, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
Where are my dlls are:
CoreApp.dll
Microsoft.AspNetCore.Http.Abstractions.dll
Microsoft.AspNetCore.Http.Features.dll
Microsoft.Extensions.Primitives.dll
Newtonsoft.Json.dll
SendGrid.dll
SevenZipSharp.dll
System.Configuration.ConfigurationManager.dll
System.Runtime.CompilerServices.Unsafe.dll
System.Security.Cryptography.ProtectedData.dll
System.Security.Permissions.dll
System.Text.Encodings.Web.dll
Any clues?
I like to help for supporting Erlang. What do we need to make it possible?
I have a set of binaries (application + dependency libraries) that I'm using warp to pack as part of my automated workflow. However, lately, the packed binary has been failing to run with a "No tarball found inside binary" error message.
This only happens on Mac and Linux (Ubuntu). The packed binary runs as expected on Windows.
Also, and this is weird, this was working until today.
I even tried running the warp packer manually, outside my workflow, to the same result: works on Windows, does not work on other platforms.
I should also mention that on all 3 platforms, the packed binary does have the gzip magic header that the runner is looking for.
Any idea what might be going on? Since nothing has changed on the warp side, could something in my payload be tripping it? (Though, I can't think of anything I changed that could have caused it to drop dead so suddenly)
Is there any way to compile windows executables for 32-bit systems ?
I would like to exclude appsettings from build in dotnet core
Not sure if this is a big issue but raising so there is a record of a discussion.
Currently, the cache path using the application executable name prog
:
https://github.com/dgiagio/warp/blob/master/warp-runner/src/main.rs#L32-L38
Could this be problematic if:
Possible solution: include a deterministic GUID and warp-packer
time that is then subsequently used as the cache folder.
Windows does not support makefiles.
On linux I'm getting the x86_64-apple-darwin target may not be installed
How does one build this?
Do you think this would work to package Python applications?
Using conda-pack I have a standalone relocatable self-contained directory (containing Python core, all 3rd party dependencies and the application) and a launch script, say, on Linux. It just needs to be packed/unpacked, so it seems warp
might work for this use case also.
Hi. Thank you for a great tool
I'm currently using docker to build my project and thought of using warp-packer as a packing stage. Searched through the DockerHub but was unable to find one.
Is there a docker image available? If not, maybe it would be a good idea for a feature request?
Thank you.
Is there a way to version the generated exe ?
When downloading a file that already exists, browsers generally name the second version of the file something like "$file(1).exe"
. This causes warp-runner
to fail to run.
app
folderlaunch.cmd
script inside that folder with the only contents being echo "app ran!"
warp-packer --arch windows-x64 --input_dir app --exec launch.cmd --output "app(1).exe"
"app(1).exe"
'C:\Users\Mitch\AppData\Local\warp\packages\app' is not recognized as an internal or external command,
operable program or batch file.
SET WARP_TRACE=1
"app(1).exe"
2022-04-01 20:43:55,615 TRACE [warp_runner] self_path="C:\\dev\\warp\\app(1).exe"
2022-04-01 20:43:55,615 TRACE [warp_runner] self_file_name="app(1).exe"
2022-04-01 20:43:55,616 TRACE [warp_runner] cache_path="C:\\Users\\Mitch\\AppData\\Local\\warp\\packages\\app(1).exe"
2022-04-01 20:43:55,616 TRACE [warp_runner] target_exec="launch.cmd"
2022-04-01 20:43:55,617 TRACE [warp_runner] target_path="C:\\Users\\Mitch\\AppData\\Local\\warp\\packages\\app(1).exe\\launch.cmd"
2022-04-01 20:43:55,617 TRACE [warp_runner] cache is up-to-date
2022-04-01 20:43:55,618 TRACE [warp_runner::executor] target="C:\\Users\\Mitch\\AppData\\Local\\warp\\packages\\app(1).exe\\launch.cmd"
2022-04-01 20:43:55,618 TRACE [warp_runner::executor] args=[]
'C:\Users\Mitch\AppData\Local\warp\packages\app' is not recognized as an internal or external command,
operable program or batch file.
cmd /c %path%
(as used here) doesn't play nice with special characters.
In my case, I only have a launch.cmd
so that I could set an environment variable before my app ran.
However, I was able to move that env-var-setting to the very beginning of my executable, at which point I was able to bypass running cmd /c
.
A minimal example works fine, but when I tried on a larger application i got
Specify --help for a list of available options and commands.
Unrecognized command or argument 'MyApp.exe'
But I can run the app just fine from the warp packages folder in appdata.
Can I get some more verbose output somehow to try to figure out whats wrong?
Tried to run the following command on Ubuntu 18.04:
warp-packer --arch windows-x64 --input_dir ./bin/Release/netcoreapp2.2/win-x64/publish --exec nvidia-dicom.exe --output nvidia-dicom.exe
and got the following error:
Downloading runner from https://github.com/dgiagio/warp/releases/download/v0.1.1/windows-x64.warp-runner...
Error: Inner { kind: ClientError(404), url: Some("https://github.com/dgiagio/warp/releases/download/v0.1.1/windows-x64.warp-runner") }
Q: is this supported? packing a Windows build on Linux or vice versa?
Also, the link printed with the error points to 404 page.
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.
Running the re-packed executable launches the application.
The following error message is displayed, then the program exits:
Error: Custom ( kind: Other, error: StringError("no tarball found inside binary") )
The user must delete C:\Users\%USERNAME%\AppData\Local\warp\packages\*.exe\
.
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.
Or can I just change the -r and everything just works?
Got a simple Discord bot that the source is available for however that is 100% hostile to anyone that wants to "run" the bot and gives zero f***s about code.
So being able to publish the three binaries ready to go from my windows box would be pretty great.
Thanks
I'd like to be able to use Warp with .NET Core to target linux-musl-x64
. Right now only linux-x64
is supported.
Support for linux-musl-x64
would allow me to layer binaries onto the mcr.microsoft.com/dotnet/core/runtime-deps:3.1-alpine
container.
This would save over 100 (!) MB in container size compared to the Debian-based runtime-deps
container, bringing the total to around 23 MB (10 for container, 13 for binary) for a basic Hello World application.
And that would be really lightweight.
Hi, this looks fantastic.
Please consider publishing warp as:
That way, it will be easier for some folks to obtain the tool and keep track of updates when you issue new versions. It will also automatically be put on the PATH if desired by the user!
Hello.
Windows version of warp-packer currently does not seem to support proxy as I find it cannot proceed on with downloading warp-runner in my corporate environment.
Could you either add proxy support or give a guidance to use manually downloaded version of warp-runner instead?
Thanks.
it is look like that size of package is a little big. have any way to reduce it ?
Hey, sorry for posting this to the issues but I could not figure out how to create a self-contained version of jq. I'm using DockerSlim and the images come out wayyyyy smaller when I only include binaries. How could I use warp-packer to create a self-contained jq that has all the /usr/lib and /lib dependencies bundled into the single file?
I'm attempting to use warp-packer
to package a directory of files alongside a single go binary and hit the error titled. It's a bit cryptic so I started yanking stuff out and noticed it's only occurring when a directory exists in myapp
.
.
├── exec
├── hugo
└── site
├── archetypes
│ └── default.md
├── config.toml
├── content
│ └── post
│ └── welcome.md
├── data
├── layouts
├── static
└── themes
├── after-dark
│ ├── CHANGELOG.md
│ ├── COPYING
│ ├── README.md
│ ├── after-dark-6.13.2.tgz
│ ├── archetypes
│ │ ├── default.md
│ │ ├── post.md
│ │ └── search.md
│ ├── assets
│ │ └── css
│ │ ├── custom.css
│ │ ├── theme.css
│ │ └── vendor
│ │ └── hack
│ │ ├── dark-grey.css
│ │ ├── dark.css
│ │ ├── hack.css
│ │ ├── solarized-dark.css
│ │ └── standard.css
│ ├── bin
│ │ ├── help
│ │ ├── install
│ │ └── upgrade
│ ├── data
│ │ └── npm
│ │ └── latest.json
│ ├── docker
│ │ └── hugo
│ │ └── Dockerfile
│ ├── docs
│ │ ├── archetypes
│ │ │ ├── feature.md
│ │ │ ├── module.md
│ │ │ ├── shortcode.md
│ │ │ └── validate.md
│ │ ├── config.toml
│ │ ├── content
│ │ │ ├── _index.md
│ │ │ ├── extra
│ │ │ │ └── high-tea.md
│ │ │ ├── feature
│ │ │ │ ├── _index.md
│ │ │ │ ├── air-gapping.md
│ │ │ │ ├── code-highlighter.md
│ │ │ │ ├── custom-layouts.md
│ │ │ │ ├── custom-styles.md
│ │ │ │ ├── display-variants.md
│ │ │ │ ├── error-page.md
│ │ │ │ ├── fetch-injection.md
│ │ │ │ ├── fuzzy-search.md
│ │ │ │ ├── index-blocking.md
│ │ │ │ ├── jit-requests.md
│ │ │ │ ├── keywords-meta.md
│ │ │ │ ├── last-modified.md
│ │ │ │ ├── lazy-loading.md
│ │ │ │ ├── link-typing.md
│ │ │ │ ├── module-system.md
│ │ │ │ ├── online-help.md
│ │ │ │ ├── post-bylines.md
│ │ │ │ ├── post-images.md
│ │ │ │ ├── quick-installer.md
│ │ │ │ ├── referrer-policy.md
│ │ │ │ ├── related-content.md
│ │ │ │ ├── release-hashes.md
│ │ │ │ ├── section-menu.md
│ │ │ │ ├── snippets.md
│ │ │ │ ├── social-meta.md
│ │ │ │ ├── structured-data.md
│ │ │ │ ├── svg-favicon.md
│ │ │ │ ├── table-of-contents.md
│ │ │ │ ├── taxonomy-pages.md
│ │ │ │ ├── telegram-iv.md
│ │ │ │ ├── trim-color.md
│ │ │ │ ├── upgrade-script.md
│ │ │ │ └── webmaster-tools.md
│ │ │ ├── module
│ │ │ │ ├── _index.md
│ │ │ │ ├── fractal-forest.md
│ │ │ │ ├── hall-of-mirrors.md
│ │ │ │ ├── toxic-swamp
│ │ │ │ │ └── configuration.md
│ │ │ │ ├── toxic-swamp.md
│ │ │ │ └── voyeur.md
│ │ │ ├── search
│ │ │ │ └── _index.md
│ │ │ ├── shortcode
│ │ │ │ ├── _index.md
│ │ │ │ ├── alert.md
│ │ │ │ ├── blockquote.md
│ │ │ │ ├── button-group.md
│ │ │ │ ├── button.md
│ │ │ │ ├── card.md
│ │ │ │ ├── external.md
│ │ │ │ ├── figure.md
│ │ │ │ ├── form-group.md
│ │ │ │ ├── form.md
│ │ │ │ ├── help-block.md
│ │ │ │ ├── label.md
│ │ │ │ ├── progress.md
│ │ │ │ ├── text-area.md
│ │ │ │ ├── text-input.md
│ │ │ │ └── throbber.md
│ │ │ └── validate.md
│ │ ├── index.html
│ │ ├── layouts
│ │ │ ├── extra
│ │ │ │ ├── list.html
│ │ │ │ └── single.html
│ │ │ ├── feature
│ │ │ │ ├── list.html
│ │ │ │ └── single.html
│ │ │ ├── index.html
│ │ │ ├── module
│ │ │ │ ├── list.html
│ │ │ │ └── single.html
│ │ │ ├── partials
│ │ │ │ ├── category-link.html
│ │ │ │ ├── definition-data.html
│ │ │ │ ├── feature-link.html
│ │ │ │ ├── module-latest.html
│ │ │ │ ├── module-link.html
│ │ │ │ └── shortcode-link.html
│ │ │ ├── shortcode
│ │ │ │ ├── list.html
│ │ │ │ └── single.html
│ │ │ └── shortcodes
│ │ │ └── include.html
│ │ ├── resources
│ │ │ └── _gen
│ │ │ └── assets
│ │ │ └── css
│ │ │ └── css
│ │ │ ├── theme.css_d3f53f09220d597dac26fe7840c31fc9.content
│ │ │ └── theme.css_d3f53f09220d597dac26fe7840c31fc9.json
│ │ ├── s3_website.yml
│ │ ├── static
│ │ │ └── images
│ │ │ ├── addon-high-tea_1440x900-fs8.png
│ │ │ ├── addon-high-tea_720x450-fs8.png
│ │ │ ├── instant-view-fs8.png
│ │ │ ├── minimal-mac_1600x1200-fs8.png
│ │ │ ├── minimal-mac_800x600-fs8.png
│ │ │ ├── social-awareness-fs8.png
│ │ │ └── wtfpl.svg
│ │ └── themes
│ │ └── after-dark -> ../..
│ ├── images
│ │ ├── minimal-mac.png
│ │ ├── screenshot.png
│ │ └── tn.png
│ ├── layouts
│ │ ├── 404.html
│ │ ├── _default
│ │ │ ├── baseof.html
│ │ │ ├── index.json
│ │ │ ├── list.html
│ │ │ ├── search.html
│ │ │ ├── single.html
│ │ │ ├── taxonomy.html
│ │ │ └── terms.html
│ │ ├── index.html
│ │ ├── partials
│ │ │ ├── async-scripts.html
│ │ │ ├── components
│ │ │ │ ├── alert.html
│ │ │ │ ├── button.html
│ │ │ │ ├── buttongroup.html
│ │ │ │ ├── card.html
│ │ │ │ ├── common
│ │ │ │ │ └── textattrs.html
│ │ │ │ ├── form.html
│ │ │ │ ├── formactions.html
│ │ │ │ ├── formgroup.html
│ │ │ │ ├── helpblock.html
│ │ │ │ ├── label.html
│ │ │ │ ├── progress.html
│ │ │ │ ├── select.html
│ │ │ │ ├── textarea.html
│ │ │ │ ├── textinput.html
│ │ │ │ └── throbber.html
│ │ │ ├── global-styles.html
│ │ │ ├── head
│ │ │ │ ├── favicon.html
│ │ │ │ └── site-verification.html
│ │ │ ├── menu.html
│ │ │ ├── meta
│ │ │ │ ├── http-referrer.html
│ │ │ │ ├── name-author.html
│ │ │ │ ├── ogimage-maybe.html
│ │ │ │ ├── telegram-channel-maybe.html
│ │ │ │ └── theme-color.html
│ │ │ ├── modules-footer.html
│ │ │ ├── modules.html
│ │ │ ├── page-summary.html
│ │ │ ├── pagination.html
│ │ │ ├── post
│ │ │ │ ├── byline.html
│ │ │ │ ├── category-link.html
│ │ │ │ ├── meta.html
│ │ │ │ ├── related-content.html
│ │ │ │ └── tag-link.html
│ │ │ ├── powered-by.html
│ │ │ ├── shortcode
│ │ │ │ ├── external.html
│ │ │ │ └── navmenu.html
│ │ │ └── toc-maybe.html
│ │ ├── post
│ │ │ └── single.html
│ │ └── shortcodes
│ │ ├── blockquote.html
│ │ ├── external.html
│ │ ├── figure.html
│ │ ├── hackcss-alert.html
│ │ ├── hackcss-button.html
│ │ ├── hackcss-buttongroup.html
│ │ ├── hackcss-card.html
│ │ ├── hackcss-form.html
│ │ ├── hackcss-formgroup.html
│ │ ├── hackcss-helpblock.html
│ │ ├── hackcss-label.html
│ │ ├── hackcss-progress.html
│ │ ├── hackcss-textarea.html
│ │ ├── hackcss-textinput.html
│ │ ├── hackcss-throbber.html
│ │ └── navmenu.html
│ ├── package.json
│ └── static
│ ├── css
│ │ └── syntax.css
│ └── js
│ ├── fuse.min.js
│ ├── lazysizes.min.js
│ ├── lodash.custom.min.js
│ ├── mark.min.js
│ ├── smoothscroll.js
│ └── vue.min.js
└── fractal-forest
├── CHANGELOG.md
├── COPYING
├── Dockerfile
├── README.md
├── bin
│ └── generate-hashes.sh
├── layouts
│ └── partials
│ └── modules
│ └── fractal-forest
│ └── index.html
├── package.json
└── static
├── bpg
│ └── cinemagraph-6.bpg
└── js
├── bpgdec.js
├── bpgdec.js.sha384
├── bpgdec8.js
├── bpgdec8.js.sha384
├── bpgdec8a.js
└── bpgdec8a.js.sha384
68 directories, 205 files
Here's the contents of my exec
file:
#!/bin/sh
DIR="$(cd "$(dirname "$0")" ; pwd -P)"
HUGO_EXE="$DIR/hugo"
SITE_PATH="$DIR/site"
exec "$HUGO_EXE" -s "$SITE_PATH" "$@
Here's the command I ran to produce the error:
./warp-packer --arch macos-x64 --input_dir myappp --exec exec --output ad
And the output from the packer --version
flag: warp-packer 0.2.1
If I remove the site
directory packing works fine and I'm able to execute. Not sure what to try next. I wasn't able to find anything about the error online and finagling my exec
script had no effect.
Please let me know if you'd like me to upload a test case. The source code is open.
As far as I understood linux-arm
architecture is not supported.
Are there any plans to implement it?
Hello,
I think there is a name conflict between your and @seanmonstar warp project (https://github.com/seanmonstar/warp) and to avoid confusion one of you should rename. I am not suggesting one or another to follow with the rename but not doing so will cause confusion in future.
The application has a dependency to native library (.so) file. It is extracted from the resources of .dll file and placed into the same folder where the executalbe is running.
When the warped application is running it cannot see native libraries that are placed in the working directory.
Not warped application working fine.
Target OS: ubuntu 18.01
netcore SDK version: 2.1.502
Target framework: netcoreapp2.0
If I copy ntive libs into the publish warping it then everything works.
Dear developers,
great tool! Your README only includes linux as the target architecture in the Java section. Is there any reason for that?
I'm trying Warp with a WPF app in net core 3. When it runs it shows a console window followed by the WPF window, wich runs as expected.
There is a way to hide the runner window? It is confusing as it stays open as the WPF app is running.
How do you update the app local cache? Right now I’m having to manually delete this.
Very cool project!
I haven't dug too much into it, but had an idea.
Could you have a remote location for the exe or source files?
The idea is that you release updates for distributed users, so the remote users have the same experience as users on a network.
Using something like LZMA or bzip would reduce the size. I estimate on my app, a factor of like 1.8x.
I don't know how quick it would be to decompress, but having the choice would allow tailoring of that.
I assume gzip is used for speed.
Hi this looks like a promising tool, thanks for sharing.
Given this code:
using System;
namespace myapp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine($"Args: {string.Join(";", args)}");
}
}
}
I get different output compared to just using dotnet run
:
D:\dev\temp\myapp> dotnet run stuff
Args: stuff
D:\dev\temp\myapp> .\myapp.exe stuff
Args: myapp.exe;stuff
D:\dev\temp\myapp>
The expected result should not include myapp.exe
.
thank you for great work ! i have followed:#51 to wrap my java program on windows 10. and i succeed to build my "exe“. but when start the ”exe“, it always started with a cmd window. this is not elegant for my customers. i tried to hide it in the way below ,but failed, all this can do is to minimize the window.
@ECHO OFF
:: below is to minimized cmd window
if not DEFINED IS_MINIMIZED set IS_MINIMIZED=1 && start "" /min "%~dpnx0" %* && exit
SETLOCAL
SET "JAVA_EXE=%~dp0\jre\bin\java.exe"
SET "APP_JAR=%~dp0\demo.jar"
%JAVA_EXE% -jar %APP_JAR% -Djava.ext.dirs=%~dp0\jre\lib
this is the cmd i used to wrap my exe, i think the key is the param "exec", need your help~~
warp-packer.exe --arch windows-x64 --input_dir "./bundle" --exec run.cmd --output cntvFtpClientV5.exe
thank you for tool by the way.
is it possible like with node to make a single executable of a php application (such as laravel and composer)? I see a great need in bundling composer dependencies.
A common practice for slow loading applications (especially professional and enterprise applications) is to show a splash screen while they are loading. -- Some frameworks bake this in and make it a really easy thing to setup (i.e. in C#/WPF it's as simple as adding an image to the project and declaring it a splash screen).
Unfortunately, Warped executables can add a significant loading time and delay any built-in splash screens by quite a bit (i.e. it can add up to 7 seconds of loading time to my app, where the users sometimes click the exe multiple times).
I understand that adding a blanket "show this bitmap while unpacking" is probably a lot to swallow as a feature request (especially given the cross platform nature of this project), and could easily be considered "out of scope", and just in general be a huge headache to implement. -- So, instead, I'm suggesting an alternate route that would basically enable us to build this in ourselves, with hopefully minimal effort on your part...
Suggested Implementation
The workaround I suggest is this: let us declare a bootstrap executable (in addition to the main executable) while packaging.
Then during the unpacking step, you just unpack and run that bootstrap exe before anything else (and you just continue unpacking the rest of the files in the background, and proceed like normal -- no additional changes would be necessary).
This would give us a vector where we could put our own small bit of bootstrapping code (such as displaying a splash screen window) while the rest of the application was being unpacked. -- (And it would be our own responsibility to clean up the window / close the app, etc, once the full application started.)
Is this a reasonable request? -- if not, what would be a reasonable way to achieve the desired result?
I have to switch some of our net core binaries to run on a rhel 7.x instance and hit a show stopper where warp-packer as well as binaries I made with this awesome tool failed to run due to glib_c being on 2.17 for rhel 7.x, it wanted 2.18. I'm still learning (probably never will stop) my ways through linux and didn't see anything obvious where I could change this or an easy way to work around. It seemed my options were to either compile glibc outside and place it in rhel or upgrade rhel to 8.x, which is probably the better choice, but I'm not in control of those decisions in what I'm facing.
Thanks for any insight if this is something I can specify/config when running warp-packer.
Currently I don't see any way to reach the executable path from the packed process. One way to do this would be to pass the original directory to the process in an environment variable, for example WARP_EXECUTABLE_DIR
.
My use case is to keep a few config files next to my executable.
Running on windows similar to:
warp-packer --exec E:\path\to\folder\file.exe --input_dir E:\path\to\folder --output G:\some\test.exe --arch windows-x64
Then running test.exe
. Working locally, but copying on another machine getting:
Error: Os { code: 2, kind: NotFound, message: "The system cannot find the file specified." }
If I copy E:\path\to\folder
to that same machine and run file.exe
everything is working as expected.
The application being wrapped in a ,net core app. Note that I went through the steps with myapp.exe
from readme and that simple application also worked fine when copied to the other machine. So it looks there are some more complex interactions at work here...
Is it possible to get some debug output somehow?
currently warp packed exe will be expanded into folder tied to %userprofile%:
%appdata%..\Local\warp\packages\myProgramName.exe\
when running warp created service or for other reasons that is not suitable..
It would be really helpful to have a switch for warp created exe to control this... for example
myProgramName.exe --expandTo "C:\aaa"
thanks
Is there a possibility to clean up the package directory after the application is closed?
I am packaging an application which I use on my client's computers but I do not want any files left after the application is closed.
At the moment I clean up the package folder manually.
The problem is that I cannot clean the folder from my application while it runs.
Thanks a lot for the great work. I successfully packed a full .NET Framework executable and it runs flawlessly, and even though it packde a .config file inside. When the app changes the .config file, the next run it get the changes without issue, which means warp does not re-unpack it. It also makes my exe not readable by ILDASM which is another good feature.
Can I request another feature?
I need to add an icon to the executable file, but this maybe windows specific thing and different OS needs different implementation too, but it will be great to have it.
You can close this if you think you don't want to do that.
Thanks again for the great work.
Create a user with no login shell and no bin/bash
sudo useradd -r subversion
I am trying to create a systemd service which will be executed by a user of this category.
Executing the warped application using this user
sudo -u subversion ./warped
creates error
Error: Custom { kind: Other, error: StringError("no tarball found inside binary")
Is there a way run warped dotnet applications for users with no login shell users / no bin/bash users?
Is it possible to retrieve the assembly informations or give parameters to set it during the packaging ?
The executable generated has no assembly informations.
thread 'main' panicked at 'No data local dir found', libcore\option.rs:1000:5
note: Run with RUST_BACKTRACE=1
for a backtrace.
Hi! I'd love to use this with node.js. If this is possible (I'm assuming it would be one of the goals by the stub for a Java example, being a similar setup to node), please make an example for this at some point in the future. =-)
$ dotnet new console -o myApp
$ cd myApp
$ dotnet publish -c Release -r linux-x64
$ windows-x64.warp-packer.exe --arch linux-x64 --input_dir bin/Release/netcoreapp2.1/linux-x64/publish --exec myApp --output myAppOut
$ chmod 777 myAppOut
$ ./myAppOut
Error: Os { code: 13, kind: PermissionDenied, message: "Permission denied" }
$ chmod 777 /home/user01/.local/share/warp/packages/myApp/myApp
This is Bug or warp specification?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.