David R. Morrison wrote:
Dear Fink developers,

We agreed some time ago to allow Application bundle packages in Fink, and we now have a few of them. There is an AppBundles declaration available in .info files (although I understand from some previous email traffic that it does not really serve people's needs -- that is something we should work on).

The AppBundles declaration has one problem (which I remember complaining about a long time ago): It is not documented what is its implicit prefix. Is it %i as for the Files field or %b as for the DocFiles field (both of which are not very clearly documented in this respect either)? I think it is %b, which is probably not the most useful, apps being complete only after installation, in general. In any case, trying one way or the other, I never managed to use it in my packages.

I'm writing today to try to clarify where such packages should install their files. We need to update our docs about the file heierarchy to reflect this, as well as to modify 'fink validate' to accept files in appropriate locations.

What I believe we agreed to was that Application bundle packages would install their application bundles into /sw/Applications and that the postinstall script would then create a symlink from this into /Applications. This is in fact what the AppBundles declaration is meant to accomplish. (The reasoning here was that when it comes time to uninstall, if the symlink has been moved we'll just abandon the attempt to uninstall it, and we can be more confident that things in /sw/Applications did not move than that things in /Applications did not move.)

I thought the symlink should go into /Applications/Fink/, not into /Applications/ directly. At least that's where the packages I have seen (or made myself) put it. The AppBundles documentation says so, too.

I have packages that make the symlink in the InstallScript, not in the PostInstScript. My argument was that I prefer to see in the file list what the package installs. OTOH I received one complaint from a guy who had /Applications as a symlink, which then was duly removed by uninstalling the package in question. So I guess I won't insist on this, and I'll accept that requiring that the symlink should be made in the PostInstScript is OK, and I will update my packages correspondingly in the near future.

The question is, though, what to do about /Library and /Frameworks installation paths. A variety of things are currently being used in the small handful of Fink packages which install bundles. We have

 /sw/Library/Frameworks
 /sw/Library/Python

represented in current packages.

So one possible policy would be to say that application bundles should go in /sw/Applications, with symlinks in postinstall (preferably generated by the AppBundles declaration), and that any supporting material should go into /sw/Library, with the layout one would normally expect in an OS X Library directory.

I agree, but the formulation "any supporting material" sounds restrictive, it is too general. The dylibs used by an app can very well be the standard Fink dylibs in /sw/lib. I don't think we would want to force the use of /sw/Library. We should use it only when the package absolutely wants to build frameworks, as a replacement for /Library.

I would say even the mixture of both is OK, as it is used by the aquaterm package which has a /sw/lib/libaquaterm.1.0.0.dylib with an install_name of /sw/Library/Frameworks/AquaTerm.framework/Versions/A/AquaTerm. This ensures backward compatibility and allows "dual use", by linking either with "-L/sw/lib -laquaterm" or with "-F/sw/Library -framework AquaTerm".

For /sw/Library/Python, there is probably only the snappea-nox package using it, but it could be a more general repository for python modules using the system python. It seemed the most natural place to use for this. I don't remember if /sw/lib/python2.3/site-packages/ (with or without installing Fink's python23) would have worked or not. The PYTHONPATH env variable allows a lot of flexibility here.

I would also love to see Fink packages that use the system Tcl/Tk frameworks, but I am not sure where they should install things and how this would work.

--
Martin




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to