summaryrefslogtreecommitdiff
path: root/epan/filesystem.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2013-08-12 01:20:20 +0000
committerGuy Harris <guy@alum.mit.edu>2013-08-12 01:20:20 +0000
commit829a4f213abd4908ef3ed5dd22bdfd850bd89edc (patch)
tree80b06cc3960a65ba3db3f168651a0ed5a3e5aa75 /epan/filesystem.c
parent237c5a7b606a54d9d25f0d6bd6a3e5efe48fe6a0 (diff)
downloadwireshark-829a4f213abd4908ef3ed5dd22bdfd850bd89edc.tar.gz
Add a comment discussing the layout of application bundles and the
directories we should - and perhaps should *not* - set up. svn path=/trunk/; revision=51307
Diffstat (limited to 'epan/filesystem.c')
-rw-r--r--epan/filesystem.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/epan/filesystem.c b/epan/filesystem.c
index 1208e821aa..50fe2592c9 100644
--- a/epan/filesystem.c
+++ b/epan/filesystem.c
@@ -247,6 +247,53 @@ static char *progfile_dir;
/*
* Directory of the application bundle in which we're contained,
* if we're contained in an application bundle. Otherwise, NULL.
+ *
+ * Note: Table 2-5 "Subdirectories of the Contents directory" of
+ *
+ * https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/BundleTypes/BundleTypes.html#//apple_ref/doc/uid/10000123i-CH101-SW1
+ *
+ * says that the "Frameworks" directory
+ *
+ * Contains any private shared libraries and frameworks used by the
+ * executable. The frameworks in this directory are revision-locked
+ * to the application and cannot be superseded by any other, even
+ * newer, versions that may be available to the operating system. In
+ * other words, the frameworks included in this directory take precedence
+ * over any other similarly named frameworks found in other parts of
+ * the operating system. For information on how to add private
+ * frameworks to your application bundle, see Framework Programming Guide.
+ *
+ * so if we were to ship with any frameworks (e.g. Qt) we should
+ * perhaps put them in a Frameworks directory rather than under
+ * Resources.
+ *
+ * It also says that the "PlugIns" directory
+ *
+ * Contains loadable bundles that extend the basic features of your
+ * application. You use this directory to include code modules that
+ * must be loaded into your applicationbs process space in order to
+ * be used. You would not use this directory to store standalone
+ * executables.
+ *
+ * Our plugins are just raw .so/.dylib files; I don't know whether by
+ * "bundles" they mean application bundles (i.e., directory hierarchies)
+ * or just "bundles" in the Mach-O sense (which are an image type that
+ * can be loaded with dlopen() but not linked as libraries; our plugins
+ * are, I think, built as dylibs and can be loaded either way).
+ *
+ * And it says that the "SharedSupport" directory
+ *
+ * Contains additional non-critical resources that do not impact the
+ * ability of the application to run. You might use this directory to
+ * include things like document templates, clip art, and tutorials
+ * that your application expects to be present but that do not affect
+ * the ability of your application to run.
+ *
+ * I don't think I'd put the files that currently go under Resources/share
+ * into that category; they're not, for example, sample Lua scripts that
+ * don't actually get run by Wireshark, they're configuration/data files
+ * for Wireshark whose absence might not prevent Wireshark from running
+ * but that would affect how it behaves when run.
*/
static char *appbundle_dir;
#endif