[brailleblaster] Re: Contents of Distribution File

  • From: Chris von See <chris@xxxxxxxxxxxxx>
  • To: brailleblaster@xxxxxxxxxxxxx
  • Date: Mon, 15 Nov 2010 10:30:39 -0800

Alex, you're correct. I started out talking about plugins and got off track somewhere ;)





On Nov 15, 2010, at 10:34 AM, Alex Jurgensen wrote:

Hi Chris,

The settings go in /Library/Preferences (System Wide) or ~/Library/ Preferences/ (User Specific). I believe you meant that things like plugins go in the Application Support dirrectories.

This brings up a good point about where we should be storing our preference files though.

Regards,
Alex,


On 2010-11-15, at 10:14 AM, Chris von See wrote:

I'm not sure if the plugins are required to be where they are or not. If they are, it's almost certainly because somebody hard- coded or pre-configured a path somewhere, not because of restrictions placed by Mac OS X - they could quite easily have place them in the "~/Library/Application Support" directory, where is where user-specific settings often go, or in "/Library/ Application Support" where system-wide settings often go.

Cheers
Chris


On Nov 15, 2010, at 10:04 AM, Michael Whapples wrote:

Hello,
You describe eclipse as I find it for the Mac. As I had come from Linux/unix where you basically unzip the eclipse downloaded file and run from that directory I thought on Mac it may require you to have the plugins directories and such like in the same directory as the app bundle. Is that right?

Michael Whapples
On 15 Nov 2010, at 17:59, Chris von See wrote:

I'm not an XCode user, so I can't speak to why it doesn't contain Java templates. Java is still considered to be a first-class language on Mac OS X, meaning that the OS itself contains support for the language. The app bundle approach that's described is still in widespread use by many (most?) Mac OS X Java developers and is supported by other tools in the Apple Developer's Kit, such as Jar Bundler; I don't think that many developers are using Java Web Start, but according to the Apple Java developer's mailing list some are definitely doing that as well.

The "last update" date on the page is 2010-10-20. The "Introduction" section referenced in the sidebar specifically mentions Mac OS X 10.6 Update 3, so the info is pretty recent.

The version of Eclipse that I have (Ganymede) includes an app bundle in the directory it installs into /Applications, but the plugins, etc. are outside of the bundle. I don't have definitive knowledge as to why, but one possible explanation is that an application cannot modify its own app bundle at runtime - that would preclude placing dynamically-installed plugins, log files, user-specific preferences etc. in the bundle itself. Other projects will do as other projects do :) and of course BrailleBlaster should do what's best for its particular situation. There *may* be some things that won't be possible if you're not packaged as an app bundle, such as placing the app in the Dock (you can place folders in the Dock but not individual files - at least not in Leopard).


Cheers
Chris


On Nov 15, 2010, at 9:33 AM, Michael Whapples wrote:

Thanks for the link, I just went for a quick search about java applications on Mac and found that. I have two questions arising from that: * How old is that document? The current version of xcode does not come with java templates. The bundling information may still be valid but one needs to question it when there is out of date information in the document as well.
* What is the reason for other projects not doing this?

I actually find another question but not from that document. What is the importance of creating an application bundle? I would suggest may be giving it a rating (may be out of 10) but as we haven't rated the importance of other things that may be a little meaningless on its own. What I really want to stress is it may be a nice feature but is it absolutely required to be able to use BrailleBlaster.

Michael Whapples
On 15 Nov 2010, at 17:02, Chris von See wrote:

A Mac OS X application bundle is really no more than a specially-packaged directory tree, and it can contain Java class files. There's a file called "info.plist" inside the app bundle that identifies the main class to be invoked, defines the classpath, gives parameters that should be passed to that class and provides options that should be used to start the JVM. TAMC, for example, bundles everything it needs to run (including its class libraries) inside its app bundle, and stores user preferences

The general structure of a Java app bundle looks like this:

Application (.app)
- Contents directory
- - - Info.plist file
- - - Mac OS directory (contains Mac OS X's Java bootstrapper)
- - - Pkginfo file
- - - Resources directory
- - - - - Application icon file
- - - - - Java directory
- - - - - - - (application specific content, including "lib" directory for class libraries, core JARs, readme files, parameter files and so on)

More info can be found at http://developer.apple.com/library/mac/#documentation/ Java/Conceptual/Java14Development/03-JavaDeployment/ JavaDeployment.html

Of course, this may all change in a few years when Java is no longer bundled with Mac OS X, but Apple is already making changes that would allow third-party JVMs to be installed in Mac OS X and (I think) even allow applications to bundle a JRE as part of the app itself.


Cheers
Chris

On Nov 15, 2010, at 8:37 AM, Michael Whapples wrote:

How does the Apple java application bundles relate to java applications?

If I take eclipse as an example, I think it still is a archived bundle with a number of directories and the application bundle, which you extract to a location on disk. So this is similar I think to what is being suggested.

So here are the various ways I imagine BrailleBlaster will be started on the various systems: * Windows: There will be a brailleblaster.exe programme or may be a batch script which users should run. This will automatically start the JVM with the options we require. * Linux/Solaris/FreeBSD/other unix system: A shell script will be present which the user runs. Again this will start the JVM with all required options. *MacOSX: In the BrailleBlaster folder, along with the bin, lib, and so on folders there will be a brailleblaster application bundle, users should run this and it will start the JVM with all required options.

Unless the Java code and liblouis/liblouisutdml libraries can be put inside an application bundle I don't see anything wrong with what was originally suggested.

Please correct me if I have things all wrong, I am still fairly new to MacOSX and would appreciate it if those more knowledgable were to help me understand it.

Michael Whapples
On 15 Nov 2010, at 15:37, Alex Jurgensen wrote:

Hi John,

The standard Mac OS X convention that I would suggest using for the Mac distribution of Braille Blaster is a *.app bundle inside of a *.dmg disk image.

Regards,
Alex,


On 2010-11-15, at 7:24 AM, John J. Boyer wrote:

We should certainly look at how different platforms handle application distribution. I think the zip file might be a good way to start for all of them. The starter script for Mac OS X could set up BrailleBlaster as
a standard Mac applicationj.

John

On Mon, Nov 15, 2010 at 07:23:57AM -0800, Alex Jurgensen wrote:
Hi John,

I disagree with this packaging scheme, at least for OS X, because OS X applications have a certain convention that they must follow in order to be run in the standard way. They are also distributed in a few standard ways.

I suggest that we look at how the different platforms already handle distributing files.

Regards,
Alex,


On 2010-11-15, at 7:12 AM, John J. Boyer wrote:

Here is what I think should be in the BrailleBlaster distribution files. They will be zip files and there will be one for each platform.

COPYING:  containing the Apache 2.0 license

AUTHORS: A list of authors with their e-mail addresses if appropriate

README: Instructions on installation, getting started, licensing and
where to get the source code

scripts: For starting BrailleBlaster on various platforms

bin directory: C libraries

lib directory: jar files of Java libraries used by BrailleBlaster

brailleblaster.jar: the piece de resistance

The bin subdirectory will contain the following subdirectgories

bin: scripts and command-line tools for liblouis and liblouisutdml

lib: The various libraries, such as liblouis, liblouisutdml libitex2MML
libhunspell etc.

share: containing liblouis and liblouisutdml tables and files. This will
enable them to find their stuff in the paths they expect.

John

--
John J. Boyer; President, Chief Software Developer
Abilitiessoft, Inc.
http://www.abilitiessoft.com
Madison, Wisconsin USA
Developing software for people with disabilities



Alex Jurgensen,
VoiceOver Trainer,
ASquared21@xxxxxxxxxxxxxxxxx                    

Visit us on the web at: www.vipbc.org


--
John J. Boyer; President, Chief Software Developer
Abilitiessoft, Inc.
http://www.abilitiessoft.com
Madison, Wisconsin USA
Developing software for people with disabilities



Alex Jurgensen,
VoiceOver Trainer,
ASquared21@xxxxxxxxxxxxxxxxx                    

Visit us on the web at: www.vipbc.org








Alex Jurgensen,
VoiceOver Trainer,
ASquared21@xxxxxxxxxxxxxxxxx                    

Visit us on the web at: www.vipbc.org


Other related posts: