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

Packaging and Signing #12

Open
ghost opened this issue Feb 15, 2018 · 2 comments
Open

Packaging and Signing #12

ghost opened this issue Feb 15, 2018 · 2 comments
Labels
Priority: Low No one cares Type: Question Further information is requested

Comments

@ghost
Copy link

ghost commented Feb 15, 2018

This is an issue to discuss options for Packaging and Signing.

The intent is to make it easy as possible to package and sign the code.
Its one of those things very much ignored, but needed to get stuff out the door as they say :)

Its often easier these days to let a good CI system do this to whatever extent it can. It also saves you running a ton of VM's, etc, as the Signing tools only exist in each OS.
Bitrise is what i am currently using. Its designed for Mobile, but can also do Desktop OSX. For Windows the only game in town is AppVeyor, which i will add later.
At the moment i have a Github repo where i am working through signing.
Its very much a work in progress ! Lots of experimental stuff and not much working yet.
https://github.com/gedw99/ci
For Mobile, i use a Flutter Webview. We can change it, but it gets the job done for now.
For Desktop i am still using zserge's webview. Once we get this golang <--> rust stuff going can swap out.
Happy to work on it in my repo or bring together this this one. Whatever works.

Windows Store.
The Window 10 SDK includes MAKEAPPX and SIGNTOOL, and these are the commands used to make an Appx. Am scratching around looking for golang tooling. It might be that Rust has awesume tooling for this, but i am not a rust coder.

Apple Store
Am working through this too. Not sure right now.

@quadrupleslap
Copy link
Owner

Sorry, I don't have much experience with application packaging. Here's everything I know:

  • Both macOS and Windows require that you use a sandbox, and list all the capabilities that you need in advance. For macOS, this is in an entitlements file, and on Windows this is in the package manifest.
  • Like you said, packaging needs MakeAppX and SignTool on Windows, and codesign on macOS. I don't know if any other tools are necessary.
  • The Rust ecosystem doesn't have any good packaging solutions right now, but I think it really needs one. Also, both Rust and Go produce completely statically compiled libraries (ignoring libc), so they should be able to use the same tool.
  • Packaging and signing should probably exist as a separate tool, and not in a GUI library.
  • IIRC .AppX is just a zip file, and macOS' .app is just a directory, so in theory you wouldn't even need any of the tools.
  • Ignoring Linux is probably a good idea because there's a million different package managers.

Maybe there could be a simple tool that takes in a config file (which has package metadata, the path to the binary, the path to relevant certificates, and a list of necessary capabilities), and spits out a package for both platforms?

@ghost
Copy link
Author

ghost commented Feb 22, 2018

Regarding the last sentence, yep thats exactly what i want too.

worth looking around to see whats already there in rust for packaging first.

btw https://github.com/DenisKolodin/yew look amazing. Am getting into Rust and WASM

@quadrupleslap quadrupleslap added Type: Question Further information is requested Priority: Low No one cares labels Mar 16, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Priority: Low No one cares Type: Question Further information is requested
Projects
None yet
Development

No branches or pull requests

1 participant