[Lazarus] cross-distro (and OS) app installation - what would you like?

Phil Hess macpgmr at fastermac.net
Wed Jan 20 23:15:09 CET 2010

----- stoppok at muenster.de wrote:

> Please stop this flamewar, nobody is forced to use Graemes code.
> His only intention was to get some feedback and tell us about his
> ideas,
> thats how OSS works.

Another way OSS works is that you're not our mommy.

Okay, here's some feedback: Use a platform-specific tool for installation.

On Windows, Inno Setup is powerful and fairly easy to use. The trickiest parts are if you need to set things in the registry, register .ocx's, run auxiliary installers (Visual C++, etc.) - most of these things are n/a on other platforms.

On Mac, many app do not have or need installers. Instead you just unzip the .zip or open the .dmg and drag and drop the app anywhere you want. If you need user interaction for some reason or want to require someone with the right privileges to do the installing, then use PackageMaker to create a .pkg file (which can also be zipped up into a .dmg).

Most mobile devices will eventually use some kind of App Store type download installation - even with a Linux based device, using the old package managers would seem to be the wrong way to go.

I'm of the opinion more and more that platform-specific approaches, whether installers, help system, and maybe even GUI frameworks, make more sense than trying to fit multiple platforms under one roof, particularly if it's a Linux-imagined roof.

I bring up fpGUI in this context because I don't see it where it (or any Linux way of doing things) would make sense on Mac. Let's review what we already have:

- LCL with existing Carbon widgetset
- LCL with prototype Cocoa widgetset
- LCL with Qt widgetset (if you don't mind the overhead:  OOP LCL --> OOP widgetset --> non-OOP QtIntf library --> OOP Qt (C++) --> Cocoa).

All of these are acceptable native solutions, but they're not optimized solutions because they're limited to the VCL Gothic feature set.

With the new ObjP support in FPC trunk and the CocoaAll unit, this opens up two more ways of producing not only native OS X apps, but utilizing full native GUI capabilities:

- ObjP code-only. See NoNib.zip here for source for a simple code-only app - syntax is ObjP so it might look a bit weird in places:


- ObjP code with GUI designed with Interface Builder. Look at examples here:


Same with iPhone/iPod and future mobile devices of all kinds. They will probably have their own native ways of producing optimized GUIs for the device. With iPhone OS, we have iPhoneAll unit. See Dmitry's example at bottom of previous page for a working code-only iPhone OS app.



More information about the Lazarus mailing list