I’ve got the packager working just barely enough that I tried packaging a script for the Raspberry. It’s a little program I wrote a few years ago to ping the dns servers of my ISP and log the succeed/fail times. It’s called
isp.rb It’s not overly clever and it only has value to me but it’s a good Shoes script for testing packaging. Older Shoes packaged it up as isp.run. It’s a multi-arch world now days so I need to change it to output isp-x86_64.run, isp-i686.run and isp-armhf.run. I haven’t done that yet. (if you have an ARM Windows machine please contact me).
What might not be well known is that .run files actuall have help and info and other command line switches so
./isp.run --help or
--keep can help debug and packaged script install problem. Of course I found one. Somewhere in my notes or maybe it was the wiki I noted ‘this will break’ on future rubies. And it did. It broke when Shoes went from 1.8 to 1.9 and was ‘fixed’ for 1.9. The real problem is that Shoes has a copy of minitar and minitar doesn’t handle symbolic links so libruby.so.2.1 doesn’t point to libruby.so.2.1.0. The shoes launch script fixed that for 1.9.x (for packaged shoes). It a ‘oddness’ of Shoes packaging. Clearly I can and will fix it for 2.1.x with a hard coded hack to replace the 1.9.x hard coded hack (I wrote the first hack so I’m allowed to hack it again). Grandfather Hack rights if you will. It’ll break again when Ruby and Shoes moves to Ruby 2.2.x
Packaging has those oddities. Different ones for Windows, OSX and Linux. It one reason developers are afraid of it. In Shoes 3.2, Packaging allows multiple architures for (.run) and easily extended for .exe and OSX. I plan to only support 5 arches (with all the OSX variants it could easily be 6 more – no thank you). What Shoes 3.2 won’t do is packagee ‘download if needed’ which is what most people want to do. Shoes 3.2 will disappoint them.
I suspect Windows would be a lot easier to get working for Packaging [as I’ve defined it] but I care about the Linux and the Raspberry more so that’s first.