Merge Packaging

You might be familiar with Packaging a Shoes script or directory (.shy). You had two choices Should Shoes be included or should Shoes download itself on the users system. I call those repack (include) and dnlif (download if needed). It a way to Install Shoes on the users system and then run your script (or .shy) You could do it from any platform for any platform (a 5x5x2 matrix)

You might notice that is kind of what virus do, only they don’t ask for permission. Windows 10 does not like the repack style and they probably only tolerate dnlif because no one has flagged it (and because the Mozilla/Firefox installer does the same thing). There are voodoo dead chicken dances that users could go through and it might work.

From a slightly different direction, some folks would prefer Shoes would not be shown to their end user (and side installed for all to see). They’d like to to have some control over the Windows installer (images, shortcuts and so on). That was only possible if you built Shoes from source which was never easy for Windows or OSX and full of hidden gotcha’s since Ruby 1.9.3. The old HacketyHack program( aka HH) did a style of packaging where it copied/replaced/modified Shoes source and build a new program but that packaging style disappeared in Shoes 3.2. It had it’s own rakefiles the used arcane entry points in the Shoes rakefiles. It had it’s own NSIS installer script for Windows.

Do you see two vecters pointing into one solution? I did and I call it merge packaging. If you have Shoes installed on your Windows machine and all them gems you want the end user to have then that could be merged with your scripts and your nsis installer scripts. Voolah! . Which only works if use Shoes/Windows 3.3.1 (the beta) or better. It’s not really a part of Shoes because it’s platform specific. It only runs on Windows and only builds for Windows. And it’s not GUI – you’ll have to use the Windows command line. But, It works!! It solves the Win-10 problem and you can exert as much control of the install experience as you’re will to do.

There’s no GUI although you could write one buts its kind of low benefit/high cost to you or me since you’ll be modifying the installer to do what you want. As an example, the exe-shoes project has a copy of my YTM sample code which requires the ‘rubyserial’ native gem installed on the packaging system. Just to demonstrate.

One could imagine an OSX version (mostly creating the dpg/dmg and the plists) and Linux versions (.deb, .rpm …. the fpm gem can do that). Like Windows, those would only be a template for you to start with because if you want to hide Shoes you need to do it your way, not mine. Your name, your webserver, your installer, your credentials at the app stores(s) or linux repo’s. Shoes can’t provide that for you script. That’s on you. I’m happy to work with anyone trying to do those things or fill in the missing pieces (OSX & Linux) but it not really Shoes infrastructure so it not going to happen unless there willing contributers.

Leave a Reply

Your email address will not be published. Required fields are marked *