New PBI concept
Ok - I've run totally aground on this -> http://www.pcbsd.org/forums/viewtopic.php?t=455
It creates bloat, and I STILL can't get X applications to open the display - console apps and daemons run just fine that way though.
My assessments so far;
1. Don't people get SHIRTY when you cross the same question into multiple different threads, even when they are for different operating systems (net/free/open BSD) : )
2. Running fully independant dependencies may devour RAM and potentially create instability when multiple different versions of the same dependency are loaded into memory.
3. Current PBI's can't remove anything other than the app itself or they will rip out system libs that may be needed for other apps to function.
4. Applications and their support libraries must be treated differently/seperately by the installer system - but this should be invisible to the end user.
What do I suggest?
PBI's should be a wrapper for complete packages that;
i) Supply full seperate packages for each dependency (eg. glut/pango)
ii) Interact with FreeBSD's or a new database of installed packages to maintain a list of whats on the system and what can be safely removed.
iii) Execute each of the original packages' scripts to update system config files, refresh fonts, set permissions etc. (just hacking in files doesn't configure anything)
iv) Do all the lovely PBI stuff, like icons, menu updates and mime type registrations.
In this model, a PBI is actually like a conglomerate of all required packages for an application. People can write their own packages, or use the precompiled ones. The PBI install might be a nice graphical way of extrating a bunch of packages into the distfiles folder (or similar) and running pkg_add, with the outputs dumped into the PBI installer window. The PBI installer makes all the nice shell adjustments as well, that pkg_add does NOT do.
The PBI installer should also have the ability to link icons to documentation via a simple KDE link to a file, not a link to link in a /bin folder. End user friendliness suggests (demands?) a link to instructions / documentation / websites / man pages from a programs' KDE Menu entry.
The PBI installer could also ask if it is allowed to get dependencies remotely if there is a problem (pkg_add -r does this already from a terminal screen, the PBI installer could supply a checkbox to enable the -r option)
I still believe the best way to maintain stability is to get "hard" about what IS an acceptable version of a support library, perhaps the PBI installer could check against a list of "known good" versions kept and updated locally, and/or check remotely with a PC-BSD official site (radio checkbox).
This is not JUST a graphical frontend to the ports/packages collection as it makes all the required user interface/shell adjustments as well.