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

Windows installer #360

Closed
p0nce opened this issue May 14, 2019 · 20 comments
Closed

Windows installer #360

p0nce opened this issue May 14, 2019 · 20 comments
Labels
Enhancement This issue is about a new feature rather than a bug.

Comments

@p0nce
Copy link
Collaborator

p0nce commented May 14, 2019

No description provided.

@p0nce p0nce added the Enhancement This issue is about a new feature rather than a bug. label May 14, 2019
@abaga129
Copy link
Contributor

abaga129 commented May 16, 2019

I'll start tracking the work here. You can assign this to me if you would like.

  • Convert HTML and MD license files to plain text files
  • duplicate windows-keyfile fields from pace.json in plugin.json
  • Only show format name for each section (VST, VST3, etc) instead of (VST (32bit), VST (64bit), etc)
  • Sign .exe using signtool from Windows SDK (only tested on Windows 10)
  • Use header bmp image to customize installer
  • Replace default Nullsoft Install System vX.X.X text with plugin.vendorName
  • Separate description for VST (32bit) and VST (64bit) install directory pages. This will make things clearer to the user.
  • Add descriptions to each section of the components page that will suggest what hosts/applications each format is used for.
  • Improve Space Required estimation on the components page.

I've found a way to set the background image, however it requires a bmp image rather than a png. I believe we can covert the background image using the dub package imageformats. The background image can only be set by using the Ultra-Modern User Interface for NSIS. This extension makes the UI look nicer anyways so I'm okay with this.

@p0nce
Copy link
Collaborator Author

p0nce commented May 16, 2019

Hi, can we disallow HTML file as licence file since there is no rightful way to convert it to text?

@p0nce
Copy link
Collaborator Author

p0nce commented May 16, 2019

With regards to PNG, could you instead add a new key to the plugin.json, and the user would add a .bmp file no? imageformats is not exactly maintained

@abaga129
Copy link
Contributor

Hi, can we disallow HTML file as licence file since there is no rightful way to convert it to text?

Sure. Should we have a license.txt for Windows and a license.html/license.md for MacOS? Or just a license.txt for all?

With regards to PNG, could you instead add a new key to the plugin.json, and the user would add a .bmp file no? imageformats is not exactly maintained

That would definitely be the simpler route. And I suppose it wouldn't be too much to ask the user to convert the png to bmp.

@0xEAB
Copy link
Contributor

0xEAB commented May 16, 2019

Ultra-Modern User Interface for NSIS

Doesn't look that modern to me. Screenshot on the linked page reminds me of 2010.

and the user would add a .bmp file no?

PowerShell should allow us to convert images, too

@p0nce
Copy link
Collaborator Author

p0nce commented May 16, 2019

The less dependencies the better, so if we can avoid depending on Ultra-Modern and the cost is not having a background image, then I'm all for not having a background image!

@0xEAB
Copy link
Contributor

0xEAB commented May 16, 2019

Also, it shouldn't be to hard to use a custom solution for background images. Nevertheless, does anyone use background images for their installers nowadays?

@abaga129
Copy link
Contributor

abaga129 commented May 16, 2019

Doesn't look that modern to me. Screenshot on the linked page reminds me of 2010.

Yeah its a bit misleading! Changing the background makes it look a little better though.

I think Modern UI (which is built into NSIS) looks better than UltraModern UI (can be installed with NSIS all as one install). Modern UI only has the ability to change the header image though. If we are going to have a separate bmp it may be better to just make a header bmp that has the company logo and use that instead.

@p0nce The installer I sent you previously was built with Modern UI.

@p0nce
Copy link
Collaborator Author

p0nce commented May 16, 2019

I liked that installer! Let's go header and separate bmp then? Looks like a win as you said.

@abaga129
Copy link
Contributor

abaga129 commented May 18, 2019

Great!

So do we want to have a separate text and html file for the license? Or only a single text file to be used on the mac installer as well? I'm fine with either way.

@0xEAB
Copy link
Contributor

0xEAB commented May 18, 2019

I'd say those formatted (RTF, HTML, etc.) license text neither look modern nor good nor justify the bloat they might introduce.

@p0nce
Copy link
Collaborator Author

p0nce commented May 18, 2019

Yup, I'd say we should force a Markdown licence, that will look acceptable in text form and is converted to HTML for the Mac installer already. I don't think anyone use Dplug with a HTML licence and allowing it to be fully custom doesn't really work (it's too much powerful for the use case).

@abaga129
Copy link
Contributor

What should we do about keyPassword-windows and keyFile-windows? These are needed to sign the installer.

  1. Leave them in pace.json and reuse the paceConfig object (my least favorite option, but this is what I'm currently doing)
  2. Move them to plugin.json.
  3. Duplicate the fields in plugin.json

I'm not sure if it makes much sense since to move the fields to plugin.json since it seems unrelated to the plugin itself.

@abaga129
Copy link
Contributor

abaga129 commented May 21, 2019

Another option would be maybe to make the pace.json a little more ambiguous and rename it to something like credentials.json since it is used for more than just Pace Eden now. Or maybe I'm just over complicating things 😃

@p0nce
Copy link
Collaborator Author

p0nce commented May 21, 2019

Mmmm it seems for the Mac installer I've choosen to duplicate the field "developerIdentity-osx" into plugin.json. I guess the idea was that the PACE signing could use a different certificate than the binaries... and the values are indeed different in my tree (!?). I don't think a different certificate is actually used.

So I'd vote for 3 if only to make that mistake consistent. :| and 2 later on but this is not your problem anymore :)

@abaga129
Copy link
Contributor

Unfortunately I had to disable the Space Required feature from the components page for the installer. The reason is that File /r "someFilesToCopy" from the installer adds to the calculated Space Required. The reason we are copying the files this way is because of a work around that allows us to have separate install directories for VST 32bit and VST 64bit.

@0xEAB
Copy link
Contributor

0xEAB commented May 26, 2019

Shouldn't it be possible to let the user select what sub-components (VST, VST3, x64, x86) to install, plus have a size count for each of those? At least, that's what other installers do.

@p0nce
Copy link
Collaborator Author

p0nce commented May 26, 2019

I don't think "space required" is super interesting. A dplug plug-in will almost always display a small size, which isn't particularly a good thing as far as consumer go. You may remove that feature without damage. I don't think it really affect the decision to install or not.

@abaga129
Copy link
Contributor

abaga129 commented May 26, 2019

Shouldn't it be possible to let the user select what sub-components
I actually considered this. It would actually be simpler to go this route. Right now for VST and VST3 it installs both 32bit and 64bit. LV2 installs based on the bitness of the users OS.

@p0nce
Copy link
Collaborator Author

p0nce commented May 27, 2019

Implemented by @abaga129 in #361

@p0nce p0nce closed this as completed May 27, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement This issue is about a new feature rather than a bug.
Projects
None yet
Development

No branches or pull requests

3 participants