[haiku-development] Re: Package manager

  • From: Brecht Machiels <brecht@xxxxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Wed, 05 Aug 2009 13:27:45 +0200

Stephan Assmus wrote:
On 2009-08-05 at 09:27:15 [+0200], Axel Dörfler <axeld@xxxxxxxxxxxxxxxx> wrote:
Ankur Sethi <get.me.ankur@xxxxxxxxx> wrote:
A bundle on OSX is just a folder which you can browse from the commandline (or open it in Finder through a context menu). Bundles are used not just for applications, but also for libraries (OS X developers call them Frameworks) and a few other purposes (like iPhoto
albums). If Haiku uses bundles for distributing apps in the future, it
might be a good idea to have them as simple folders instead of ZIP files, with metadata stored as attributes of the folder.
I haven't looked at the Wiki yet, but I have to say I rather dislike the way OS X handles bundles - hiding the fact that something is in fact a directory just doesn't sound right to me, and is also often confusing (to me, at least). The outcome, though, having mostly self-contained apps, is a worthwhile goal, though, but I think this could be achieved in a nicer way.

In a previous iteration of the discussion, I think we already discussed bundles a bit, although unfortunately I don't remember all the arguments. What I do recall is that there have been better arguments against them, or at least raised concerns about what it must handle, like maintaining the very purpose of shared libs. I think we agreed that we wanted to keep shared libs, which is of course not automatically an argument against bundles.

That an application bundle is in fact a folder with the application's icon and I can double-click it... I couldn't care less. That doesn't seem like a very good argument against bundles to me.

I see how it works on my girlfriend's Mac, and the bundle thing itself seems to be fine as far as usage is concerned. What doesn't work so well is the automatic disk image stuff. Or rather, it works too well, and my girlfriend ends up not installing applications, but using them out of their installer disk image. Then wondering why they are gone next boot and what those .dmg files on her desktop are. The problem here is that you almost never reboot the Mac, so the connection to what she did a couple weeks or even months ago when she downloaded the app (and it was auto-mounted) is gone.

That of course is not a problem of bundles, but how the system makes you perceive installations.

I see a problem with bundles for large applications and games. As a bundle does not need to be explicitly installed, there is no traditional install process. But at what point will the bundle's contents be extracted? For small bundles you could do this unnoticed in the background as the process is more or less instantaneous. For larger bundles however, I think there is no way around displaying a progress bar indicating the unpacking process. However, the latter resembles installing the bundle, which we wanted to avoid.

Another option is to develop a custom bundle format that includes some sort of disk image of the application that can be randomly accessed (I is not true for zip archives, I think?). In order to ensure good performance, this disk image cannot be compressed (or at least not much). That means it will have to be compressed for distribution. But if you have to extract the bundle before using it, then you might as well make use of installers, no? I suspect that this approach would be similar to MacOS disk images?

In short, are bundles really a good means of packaging *all* software? If not, is it really such a problem having to install a bundle. Installation could be reduced to just extracting the bundle.

I agree with Axel that making things easier for the user by means of bundles should not come at the cost of make things less transparent.

Regards,
Brecht

Other related posts: