Commit Graph

672 Commits

Author SHA1 Message Date
T. Joseph Carter d37ba47c8d macBundle: some cleanup, remove .app skeleton 2017-10-30 08:12:16 -07:00
T. Joseph Carter 2e2a34e77e mac: Use universalJavaApplicationStub
Here's a (very rough) implementation of a macBundle task using the
universalJavaApplicationStub and jarbundler.  Jarbundler's support files
(ant build system and docs) are suffering bitrot, and I don't grok maven
yet, so I'm really flying blind with it, so basically I'm committing it
in a "baseline" working (if ugly) state.

So ... _why_ use this?

The old way of bundling Java apps doesn't work anymore.  It tells you to
get Apple's (compromised/unsafe) Java 6 and when you do it throws an
error because your code compiled on Oracle JDK 8/9 won't run on it
anymore.

You're supposed to duplicate the JRE in each Java program you bundle as
you would a private/custom framework.  Yes, really.  This solves the
dependency issues at the cost of heavy resource waste.  Except every new
JDK generation changes HOW you do that, and the current method is
totally proprietary to Oracle's JDK.  For cross-platform development, it
is NOT fun.

So there's uJAS, which is literally a complex shell script to magically
do the equivalent of typing java -jar <your program> from the command
line—which does work BTW if all your dependencies are properly in your
default classpath, etc.  There used to be a couple of application
bundler options, but the one that still works (only with uJAS if you
have the most recent JDKs), is jarbundler.

TODO: Clean this up, restore original functionality (zipball), include
the commandline jar, etc.

committing it in this state is that jarbundler's repo is a bit of a
mess.  The current version (and the version we need) is 3.3.0, the
"latest" from 2015.  The docs, examples, and the ant build system are
all literally bitrotting from version 2.x, and do not work without some
fixes.

So in other words, I'm committing this in a state that I got to work so
that if I screw it up, since I'm flying blind, I'll have a messy but
working fallback.

Okay, so _why_ use any of this at all?

If you create an ACBuild.properties file and run ant, you can get
AppleCommander.app to build, but it won't run.  It tells you that you
need to download Apple's legacy Java 6 which is neither safe nor
supported anymore.  If you install this, it will still give you an
error because the generated code can't run under Java 6.

What you're supposed to do now is bundle your JRE with every Java
application bundle, which means multiple copies of libs on disk and in
memory.  Yes, really.  Except Oracle keeps changing how you do this with
each new JDK generation, and the current way is pretty much totally
proprietary so that you're locked in to Oracle's JDK and couldn't use
OpenJDK or something if that were an option.

That's what universalJavaApplicationStub resolves—it builds an app
bundle that uses whatever JDK/JRE you have installed from 6 onwards.
And it in turn needs jarbundler or something like it.  Except all of the
"something like it" solutions are dead or deprecated save the latest
release of jarbundler which was modified to support uJAS and then
promptly left more or less untouched since.  But it "works".
2017-10-30 06:14:13 -07:00
752cdc91b6 Remove java version restrictions, which are becoming quite problematic 2017-06-12 17:22:22 +00:00
8a3ee78f58 Remove deprecated package, re-implement in ImageIO 2017-06-12 17:06:21 +00:00
Robert Greene 95e97e2ae6 Adding some Maven central repository information. 2016-11-14 00:22:17 +00:00
84fb7e7d03 Correct Gutenberg file processing if we have more than one catalog sector 2015-01-10 04:33:32 +00:00
e690c0673c Make AC-created disk images not crash on Apple /// computers 2014-04-18 17:11:59 +00:00
John B. Matthews 29d5afc673 Throw exception in CpmFormatDisk#createFile() 2014-01-25 16:57:40 +00:00
John B. Matthews 9c98158778 Version 1.3.5.14; call system.exit in SwtAppleCommander#dispose for Mac OS X. 2013-11-24 18:19:44 +00:00
8e277d98e8 Bug found by Ivan Drucker: zero length data forks (but positive length resource forks) were being silently ignored. 2013-11-19 04:06:58 +00:00
11805cd8b3 Fix from Ivan Drucker: PARENT_ENTRY starts at one, not zero. 2013-11-19 02:35:55 +00:00
4989c0353b Submitted by Martin Haye:
When one creates a subdirectory on a ProDOS volume, the master entry in the subdirectory's key block needs to point back to its parent directory block and entry number. However, the code for setting those things is missing.
2013-07-05 03:25:12 +00:00
43ccf507c4 Save directory entry changes after making them 2012-11-22 05:56:48 +00:00
7df83119ab A different approach to specifying a physical ordering 2012-10-25 00:33:53 +00:00
9e2bf817d7 Make the Disk constructor with image order specification public 2012-10-24 22:31:22 +00:00
8727b12157 Add testcase for binary extraction to file 2012-10-11 12:34:10 +00:00
b53a6ba61c Allow extraction to a file name for -e and -g 2012-10-11 11:54:56 +00:00
b52df7745b Allow extraction to a file name for the ant task 2012-10-11 11:38:55 +00:00
6526cf3e0b When faced with a 140k image, let the file suffix .do, .po, .2mg take precedence before we go sniffing for a filesystem. 2012-10-09 13:36:37 +00:00
d8ef6f1a70 Make a few more methods externally visible in the command line ui 2012-09-10 01:00:33 +00:00
49e2e45c10 Make 'volname' in ant task match the help text 2012-09-05 00:54:49 +00:00
821e7c7977 Tighten up the ant task a bit 2012-08-15 04:02:58 +00:00
0935e13c51 Correct exception behavior for Shrinkit file not found situations 2012-08-13 03:27:09 +00:00
c0fbb83867 Somehow mention we do .bxy too 2012-08-13 02:23:27 +00:00
9fa4abe3f3 Fail harder when files don't unshrink well
Allow size specification on unshrink image
2012-08-12 17:30:52 +00:00
2fac776ed3 Allow converting BXY files
Allow zero-length shrinkit files
Allow situations where shrunk files have full paths as filenames
2012-08-11 20:57:44 +00:00
87eca0095c Implement directory creation in ProDOS
Side effect: opened up the previously private 'Name' class in ui; this simplifies directory handling elsewhere, as it automatically creates a directory structure to a pathed file.
2012-08-08 03:10:57 +00:00
01fd44f8fd Working on add directory for ProDOS... surely this is the first step? 2012-08-07 01:52:00 +00:00
3a7027ce7a Bump the version number since .12 was released
Add a .po extension to the filename when we ingest a shrinkit or DC42 image since we don't really do read/write operations in their native format
2012-08-02 14:18:25 +00:00
8276bbd8c3 Rename the option to unpack shrinkit to reflect the more general nature of DC42
Make all Shrinkit and DC42 images read-only from the command line
2012-08-02 03:18:07 +00:00
efa325f75d Add read-only support for DC42 images 2012-08-01 21:35:54 +00:00
fc52b6054b Remove a spurious println 2012-08-01 15:56:21 +00:00
13241a6cfd Clean up Utilities a little bit - just cosmetics, hopefully 2012-08-01 14:40:18 +00:00
6c6be6622d Implement ProDOS filetype $05 for writing 2012-08-01 09:28:37 +00:00
437270ea95 Add ability to turn flat, non-GS .SHK files into proper disk images 2012-07-31 21:06:01 +00:00
77aa498bee Update the boot assembler for ca65 toolchain, re-assembly saves one byte! (Original message had one extraneous space) 2012-07-30 19:33:05 +00:00
26c3675fa4 Add full name of SF web page 2012-07-30 18:15:40 +00:00
3b903920c4 Update visible copyright date 2012-07-30 17:22:44 +00:00
5dac28935a Fill out the rest of the ant task to basically mirror the command line 2012-07-27 17:52:24 +00:00
83b022243f Just a little simplification 2012-07-27 12:33:05 +00:00
13fa7be0e4 Recursively extract files from directory-having filesystems 2012-07-27 02:07:45 +00:00
37e7476bfb Get started on SHK unpacking
ShrinkIt fixes - needed new ways to seek the header magic signatures
2012-07-26 21:00:58 +00:00
a79df8f3bc Protect ourselves from writing SDKs back out
Add the ability to uncompress SDK
2012-07-23 21:20:49 +00:00
4ab21617fa Add ant task capabilities 2012-07-23 02:38:08 +00:00
John B. Matthews 6fe56fadec Update linux-gtk guidance. 2012-07-15 16:03:05 +00:00
a04ee91c3d Add putcc65 as a visible external method so we can call it from the ant interface 2012-07-09 03:54:59 +00:00
4580a7183f Make some methods more visible from the outside, as part of integrating into an ant task. 2012-07-08 22:20:19 +00:00
14ed4324d6 Cosmetics - use a constant instead of a literal for block size 2012-07-07 13:59:59 +00:00
842f59c6c7 Another tweak to DOS-ness 2012-07-07 05:06:29 +00:00
e09b66a7dd Tighten up image detection a little more 2012-07-06 21:14:54 +00:00