faq
flatforty
contribute
subscribe
configure
search
rdf
main
parent
thread
|
CFBundles and NSBundles are folders
by kram32768 on Wednesday 03/Jan/2007, @20:17
|
.app bundles are just folders in OS X
I have made them by hand before, so I know. just like any other CFBundle object (carbon) or NSBundle object (cocoa) they are just a series of folders, and I think linux could learn from apple on mach-o bundles. if kde used them, no more need for that huge /usr/share/apps folder of the /usr/share/applnk folder either. here is the format of a CFBundle:
Konqueror.App
Contents
Info.plist
MacOS
konqueror
Resources
browser-window.nib
toolbar-customizer-window.nib
...
my point, something like that does not even need to be mounted, it can still be installed the linux way, and anywhere you want it, usually in the /Applications folder though. If anything got mounted other than the .dmg, then you could never unmount the .dmg without unmounting what the .dmg is using, same rule applies to Mac OS classic (9.2.2 and below). another thing, anything that is supermounted, appears on the desktop, btw, darwin tends to supermount all volumes in the /Volumes folder, which isn't that different than HAL on linux 2.6 is doing. I plan on doing research on the apple interface builder format (.nib files) and write knib which can make, modify, and view nib files, also if you havent known yet, the code for CFBundle is in CoreFoundation Lite, thus we can use bundles on linux, I plan to learn objective c and make a cocoa style wrapper for kde sometime that wraps around CF-Lite, btw, I am ready to make a slackware 11 packageand an rpm and a deb, I have the compatibility headers too, the ones that are needed to build cf-lite, and I have a successful build of cf-299.33, even better than on apple's site, I not only have libCoreFoundation.a, but also libCoreFoundation_debug.a and libCoreFoundation_profile.a too, and the headers are all set up, even including AssertMacros.h, AvailabilityMacros.h, and TargetConditionals.h, from darwin 8.0, intel. yes, CF built nicely. I have even tested it on gentoo, in order to link with it, you need to add these -L/usr/include/CoreFoundation -L/usr/include -I/usr/include/CoreFoundation -I/usr/include -lpthread -lm -lCoreFoundation to gcc while building a program or library linked against libCoreFoundation, note: these instructions are for working with my build only, the apple build stores the stuff in /tmp/CoreFoundation.dst/usr/local instead of /usr, so make adjustments accordingly if you choose to build it yourself. |
|
|