mirror of
https://github.com/JHUAPL/DistMaker.git
synced 2026-01-08 22:18:03 -05:00
84 lines
2.7 KiB
Markdown
84 lines
2.7 KiB
Markdown
# DistMaker
|
|
|
|
|
|
## Description
|
|
DistMaker provides a capability to enable developers to package a Java client application for any target platform (Linux, MacOS, and Windows). A DistMaker enabled package allows for easy distribution via its in-app update capability.
|
|
|
|
Currently DistMaker is distributed in source form only, so it will need to be compiled. See the section: **Building DistMaker**.
|
|
|
|
|
|
## More details
|
|
DistMaker is a software toolkit which allows a software developer to develop applications that have a built-in update mechanism.
|
|
|
|
The update mechanism can be manually triggered by an end user or through an auto update mechanism.
|
|
|
|
DistMaker provides a capability to allow a software developer to deploy (or remove) updates to a deployment site.
|
|
|
|
|
|
## Usage
|
|
Please read the ./doc/QuickStartGuide.pdf for instructions on:
|
|
|
|
- Source code changes to make the application DistMaker enabled
|
|
- Setting up the deploy site for the DistMaker application
|
|
- Deploying the DistMaker application
|
|
|
|
|
|
## Dependencies
|
|
A DistMaker enabled (Java) application has the following dependencies:
|
|
|
|
- Java 17+
|
|
- Apache Commons Compress 1.15+
|
|
- Guava 18.0+
|
|
- Glum 2.0.0+
|
|
- MigLayout 3.7.2+
|
|
|
|
An additional dependency for DistMaker enabled applications on the Windows platform is:
|
|
|
|
- Lanch4J 3.14
|
|
|
|
To package and distribute a DistMaker application the following are the software (server side) dependencies:
|
|
|
|
- Java 17+
|
|
- Python 3.6+
|
|
|
|
|
|
Note the following:
|
|
|
|
- In theory DistMaker should work with later versions of the above listed software.
|
|
- To allow for distribution of updates, you will need to have permissions to a web server.
|
|
|
|
|
|
## Building DistMaker
|
|
To build a DistMaker release from the console, run the following command:
|
|
|
|
./tools/buildRelease
|
|
|
|
The following sofware are dependencies for compiling DistMaker:
|
|
|
|
- JDK 17+
|
|
- Python 3.6+
|
|
- Apache Ant 1.10.8+
|
|
|
|
Note, you will have to edit the script, ./tools/buildRelease, so that the variables antPath and jdkPath are relative to your system.
|
|
|
|
In addition, if DistMaker is to build compressed DMG files you will need to get a copy of the libdmg-hfsplus software. That software is located at:
|
|
|
|
https://github.com/fanquake/libdmg-hfsplus
|
|
|
|
You would then need to update the file ./script/appleUtils.py, and change the compressCmd to reflect the location to the actual dmg executable. This executable does the actual compression.
|
|
|
|
## Legal Notice
|
|
DistMaker utilizes a number of copyrighted products.
|
|
|
|
A listing of all copyrights can be found in the folder:
|
|
|
|
./doc/legal/
|
|
|
|
Each copyrighted product has a textual file with a naming convention of:
|
|
|
|
License.<aProductName>.txt
|
|
|
|
Note that <aProductName> corresponds to the formal product name.
|
|
|
|
|