- Fixed null pointer exception when not specifying
--jrePath
on the command line or in the JSON configuration file.
- Added an option to specify the JRE directory in the configuration file.
- Changed the default config file name from
config.json
to<app name>.json
whereapp name
is the value of the--executable
field passed topackr-all.jar
.
If the executable name ismyapp
(ormyapp.exe
on Windows) then the default config file name will bemyapp.json
instead ofconfig.json
. - Please update your Maven and Gradle build scripts to point to https://artifactory.nimblygames.com/artifactory/ng-public.
- Gradle will soon require HTTPS and the -snapshot and -release repository URLs are for publishing, not downloading.
- Fixed symbolic link issue for Linux and macOS JREs.
- Fixed pthread not being available on Linux.
- Preemptively load all DLLs in the jre/bin directory on Windows.
- This resolves an issue on Windows where the awt.dll cannot find the Microsoft runtime libraries (MSVCP140.dll).
- Updated tests to use the latest versions of AdoptOpenJDK 8, 11, and 15.
- Changed DLL loading on Windows to search in the JRE bin and server directories.
- This should make packr more robust to Windows runtime DLL changes.
- Fixed logging levels in ArchiveUtils
- There was trace output logging at error level.
- Refactored code to fit better into libGdx/packr parent repository.
- Fixed an issue where extracting an archive with duplicate entries would fail.
- The packr-all Jar is available from GitHub packages https://github.com/libgdx/packr/packages.
- The output directory specified by
--output
must be an empty directory, or a path that does not exist.- Packr will no longer delete the output directory and then populate it.
- Packr will ensure that
jspawnhelper
has execute permissions in the bundled JRE.- This resolves an issue on macOS where Runtime.exec and Process.start calls would fail with
java.io.IOException: Cannot run program "java": error=2, No such file or directory
.
- This resolves an issue on macOS where Runtime.exec and Process.start calls would fail with
- Updated ArchiveUtils to support POSIX permissions and symbolic links.
- This resolves an issue with repackaged JREs losing execute permissions.
- Alternative Maven repositories until oss.sonatype.org (Maven central) publishing is possible.
- Fixed a Gradle script error where it was bundling the release builds with debug info on Linux and macOS.
- For Linux this reduces the executable size from ~722K to ~95K.
- Compile with
-no-pie
on Linux to work around a Nautilus bug. - Added compile flags
/Os
,/Gw
,/Gy
on Windows.- Combined with the new linker flags, this reduced the executable size.
- Added
/opt:icf
,/opt:ref
linker flags on Windows.- Combined with the new compiler flags, this reduced the executable size.
- Updated Gradle wrapper to version 6.5.1.
- Fixed an issue with uncaught exception handlers not being called for the main thread.
- dispatchUncaughtException is called on the main thread if an exception is detected after calling the main method.
- Support macOS versions down to 10.10 Yosemite
- Added compiler flag
-mmacosx-version-min=10.10
- Added compiler flag
- Resolves an issue for newer JVMs that rely on vcruntime140.dll (The Visual C++ 2017 Redistributable).
- If loading the jvm.dll fails on Windows, then PackrLauncher searches for a vcruntime*.dll file in "jre/bin" and loads that library and attempts to load the jvm.dll again. This resolves an issue where the jvm.dll can't be loaded on Windows systems that don't have the Visual C++ 2017 Redistributable installed.
- Added support for unicode directories on Windows.
- This resolves issues where PackrLauncher is running from a directory with international characters in it.
- Fixed
--console
on Windows.- When running from a Windows Explorer shortcut, a new console is popped up and if
--verbose
was also specified then all debug output shows up in the console window.
- When running from a Windows Explorer shortcut, a new console is popped up and if
- If the PackrLauncher parent process has a console, PackrLauncher attaches to it.
- This allows debug output when PackrLauncher is launched from a command prompt window, without the need for passing
--console
.
- This allows debug output when PackrLauncher is launched from a command prompt window, without the need for passing
- Added
useZgcIfSupportedOs
flag making it easier to use the Z garbage collector when bundling Java 14+.- The launcher executable will detect if the running operating system supports the Z garbage collector and use it.
- Added Google Test C++ test framework to the PackrLauncher code.
- Updated Gradle wrapper to 6.4.1.
- Updated to C++14 as the minimum supported C++ version.
- Added support for Java 11 and 14
- Including jlink created JREs
- Note: Packr cannot take a module and load it into the classpath of the created JVM, a Jar is still needed. It should be possible to create a jlink JRE from your custom module and have that work with packr but it's untested.
- Converted packr to use Gradle
- Include DrOpt source for easier building
- Include sajson.h for easier building
- https://github.com/chadaustin/sajson/tree/791799ad90f7179f132ea2f53b90ef98f1d399a2
- From inspecting the old fips config at https://github.com/code-disaster/fips-sajson
- Support tar.gz files
- Support macOS signing and notarization of the executable
- Load the msvcr*.dll that the JRE ships with instead of always trying to load msvcr100.dll
- Removed linux32 platform
- Linux x86 is no longer built because it's impossible to find a survey that shows anyone running x86 Linux.
- Remove macOS x86 (32-bit) support
- macOS x86 is no longer built because it requires and older version of Xcode and Apple makes it difficult to install on newer versions of macOS
- Remove windows32 platform
- Windows x86 is no longer built because the Adopt OpenJDK 8u242 and 8u252 have crash failures.
- Compiles with Java 8 now. It's 2018, folks!
- Refactored I/O to use NIO and try-with-resources where appropriate. Removed dependency on Apache commons I/O.
- Print usage (--help) if no command line arguments are given.
- Added more validation checks to configuration parameters.
- Fixed crash when classpath is a directory. (#90)
- Added "cachejre" option to cache results of JRE extract & minimize steps.
- Added "removelibs" option to specify JAR files which are subject for removal of platform libraries. If this parameter isn't used, it defaults to a copy of "classpath", which is the old behaviour.
- Added NvOptimusEnablement and AmdPowerXpressRequestHighPerformance symbols. (#114)
- Please check the Git log, or search the libGDX forums.