Skip to content
2.19.0 feature release

Deprecation warnings

* The legacy variables for content inclusion are no longer supported for game scripts targeting ./play.it ≥ 2.19:
  - ARCHIVE_xxx_PATH
  - ARCHIVE_xxx_FILES
  The new variables introduced with ./play.it 2.18 must be used instead:
  - CONTENT_xxx_PATH
  - CONTENT_xxx_FILES
  The legacy ones can still be used only from game scripts targeting ./play.it ≤ 2.18.
* The following global variables are still available, but are deprecated:
  - PATH_BIN
  - PATH_DESK
  - PATH_DOC
  - PATH_GAME
  - PATH_ICON_BASE
* "APP_xxx_LIBS" is deprecated, game scripts should no longer rely on it. Libraries installed under /usr/lib/games/${GAME_ID} are automatically added to LD_LIBRARY_PATH.
* The following internal functions are dropped:
  - launcher_write_script_dosbox_application_variables
  - launcher_write_script_dosbox_run
  - launcher_write_script_java_application_variables
  - launcher_write_script_java_run
  - launcher_write_script_mono_application_variables
  - launcher_write_script_mono_run
  - launcher_write_script_native_application_variables
  - launcher_write_script_native_run
  - launcher_write_script_nativenoprefix_run
  - launcher_write_script_native_run_common
  - launcher_write_script_renpy_run
  - launcher_write_script_residualvm_application_variables
  - launcher_write_script_residualvm_run
  - launcher_write_script_scummvm_application_variables
  - launcher_write_script_scummvm_run
* "application_type" no longer fails if no type could be found. Support for the special fallback value "unknown" is dropped, as its only purpose was to avoid the error on empty application type.
* "package_get_current" no longer falls back on "PKG_MAIN", see "Changes related to packages" below for more details.

Improved integration of shipped libraries

* In addition to standard system paths, libraries are loaded from the following paths, ordered from lower priority to higher priority:
  - APP_xxx_LIBS (deprecated)
  - /usr/lib/games/${GAME_ID} (/usr is replaced by the custom install prefix)
  - ${HOME}/.local/lib/games/${GAME_ID}
* In addition to game data files and documentation files, "content_inclusion_default" now automatically fetches listed
native libraries and put them into a specific install path.
  The native libraries can be listed using global variables similar to the ones already in use:
  - CONTENT_LIBS_xxx_PATH
  - CONTENT_LIBS_xxx_FILES
  As with game data files and documentation files, a single-digit number can be appended to "LIBS":
  - CONTENT_LIBS0_xxx_FILES
  - CONTENT_LIBS1_xxx_FILES
  - (…)
  - CONTENT_LIBS9_xxx_FILES

New dedicated functions printing install paths are available
- path_binaries
- path_xdg_desktop
- path_documentation
- path_game_data
- path_icons
- path_libraries
These should be used instead of the deprecated "PATH_xxx" variables.

Rework launchers generation

Game execution failure no longer prevents the execution of post-run actions.
* The late extra eval step of JAVA_OPTIONS and MONO_OPTIONS is dropped, no current game script was relying on these.
* APP_xxx_OPTIONS support is added to ResidualVM and ScummVM launchers.

Changes related to icons integration

* Rework icons requirement check to no longer rely on applications.
* Add support for archive context to application_icons_list.
* If no icon is set for a WINE application, try to extract one from the game binary.

Changes related to applications

* Update applications_list to follow the archive context.
* Add automatic application type detection based on file type, APP_xxx_TYPE declaration is now optional in more cases.

Changes related to packages

* Extend the list of supported native libraries for packages dependencies declarations.
* package_get_current returns the first package of the list of packages to build if no value is explicitly set, instead of the previously hardcoded value "PKG_MAIN".

Other changes

* Drop system-specific install prefix. The default install prefix is now the same for all supported systems: /usr
* Do not run a full dependencies check when initializing an archive, only the presence of the dependencies required to handle the current archive is tested.
* Set working directory path as soon as the archive is found.
* Automatically add dependency on winetricks if APP_WINETRICKS is set.