[haiku-development] PackageManager

  • From: Joseph Groover <looncraz@xxxxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Thu, 16 Jun 2011 20:46:52 -0500

Howdy!

I've had a good chance to go over my old PackageManager and get it compiled on Haiku and almost fully stripped from LoonCAFE. I didn't realize when I first started working on it that I had actually designed a really simple depot layout, so I'd like to pass on the basics to hopefully start the fire behind the PackageManager ( mine, or whichever, doesn't matter, as long we get one ).

As it stands we have the following:

Category
->CategoryID
Package
->PackageID
->DepencyList ( list of PackageIDs + optional version criteria )
InstalledPackage
->OverwriteLog
DepotInterface ( from app to depot )
NetworkInterface
->DepotHeader
->DepotCategoryList
->DepotPackageList
CachedDepot
InstalledPackageList
FilePolicy
PackageInstaller
PackageUninstaller

That is the application side, thus far. PackageInstaller & Uninstaller are not fully implemented and would just be automaters for the normal package format. I'm sure I missed something as well ;-)

The NetworkInterface has the basics setup for the following network configuration:

Standard http or ftp server.
.bmsg = compressed, flattened BMessage
/DepotHeader.bmsg
/DepotRedirect.php  - server load balancing
/depot/CategoryList.bmsg
/depot/[CategoryID]/CategoryList.bmsg
/depot/[CategoryID]/PackageList.bmsg
/depot/[CategoryID]/images/icon.png
/depot/[CategoryID]/images/background.png
/depot/[CategoryID]/[PackageID]/PackageHeader.bmsg
/depot/[CategoryID]/[PackageID]/images/icon.png
/depot/[CategoryID]/[PackageID]/images/background.png
/depot/[CategoryID]/[PackageID]/Package.pkg.gz

All ideas are welcome, I'm sure someone has put more thought into this than I did years ago, but this seems like a pretty simple method ( when you're a one man show, you look for simplicity :-) ).

Let me know what y'all think. Doesn't have to be .bmsg of course, could be xml or whatever.

Oh, the background image of a category is shown centered behind the package list in the PackageManager and the background for a package is shown in the PackageView.

I'd share, but the UI is not buildable w/out LoonCAFE so I am stripping the UI::Builder from LoonCAFE so I don't have to create a new UI just to get input :-)

--The loon

Other related posts: