-
2.27.2 protected
2.27.2 bugfix release * application_type - Ensure errors always stop the execution. * error_archive_not_found - Improve the message shown when a required archive is missing. * gentoo_package_build_single - Display an explicit error if the `ebuild (…) manifest` call failed. * package_archlinux_create_mtree - Fix the message severity level. * path_libraries - Ensure the value is always coherent with the package architecture. * temporary_directory_checks - Skip all checks if no file operation is going to take place. * Add support for dependencies on several commands: - corsix-th - sed - setxkbmap * Add support for dependencies on several native libraries: - libEGL.so.1 - libfribidi.so.0 - libminizip.so.1 - libtcmalloc_minimal.so.4 - libwayland-client.so.0
-
2.27.1 protected
2.27.1 bugfix release * Ensure that a missing required extra archive stops the script execution. * error_icon_path_empty - Fix showing the error message when LANG is not set to "fr_*" or "en_*". * launcher_target_presence_check - Ensure that the script execution stops if the binary path is not set. * unity3d_icon_path - Throw an error if no application type is found. * unity3d_application_exe_default - Throw an error if no binary could be found.
-
2.27.0 protected
2.27.0 feature release * Deprecation notices: * Support for the following deprecated functions is dropped: - context_specific_value - icons_linking_postinst - organize_data - use_archive_specific_value * Support for the following message functions is dropped: - print_warning - print_error See "New wrapper for messages display" for more details. * archive_get_type is deprecated, archive_type should be used instead. See "Changes related to archives" for more details. * The legacy global variables ARCHIVE and PKG should no longer be used. See "Improvements of the context system" for more details. * The functions context_archive and context_package are deprecated. See "Improvements of the context system" for more details. * The variable APP_xxx_TYPE_VARIANT is no longer supported, GAME_ENGINE should be used instead. It can usually be omitted, like with APP_xxx_TYPE_VARIANT. * The packages_get_list function is deprecated, packages_list should be used instead. * New wrapper for messages display: * A new function is provided to display all messages: print_message It expects a priority level as its first argument: - `print_message 'error' $message` replaces `print_error ; printf $message` - `print_message 'warning' $message` replaces `print_warning ; printf $message` - `print_message 'info' $message` replaces `printf $message` * Changes related to archives: * The presence of an optional archive can be checked using a dedicated function: archive_is_available * The type of an archive is retrieved using a new function: archive_type Unlike the previous function (archive_get_type), this will not trigger an error if no type is set for the given archive. * Improvements related to icons extraction: * A new function is provided to get the full path to an icon file: icon_full_path * Most functions related to icons extraction now take an icon identifier instead of the path to an icon file. * Reliance on the global variable WRESTOOL_OPTIONS is dropped. * Improvements of the context system: * A new function is provided to set the current archive: set_current_archive * A new function is provided to set the current package: set_current_package * The functions used to get the current context have been renamed: - context_archive → current_archive - context_package → current_package * Support for Visionaire engine: * A game script can rely on Visionaire engine support by setting GAME_ENGINE='visionaire' or by setting a value to IONAIRE_NAME. Since the engine value falls back to "visionaire" when VISIONAIRE_NAME is set, GAME_ENGINE can usually omitted. * Default values are set for multiple variables: - APPLICATIONS_LIST - APP_xxx_EXE - CONTENT_LIBS_BIN_PATH - CONTENT_LIBS_BIN_FILES - CONTENT_GAME_BIN_FILES - CONTENT_GAME_DATA_FILES - CONTENT_DOC_DATA_PATH - CONTENT_DOC_DATA_FILES - PACKAGES_LIST - PKG_DATA_ID - PKG_DATA_DESCRIPTION - PKG_BIN_DEPS - PKG_BIN_DEPENDENCIES_LIBRARIES * For native Linux games, the used of system SDL is forced. * For WINE games, SDL_VIDEODRIVER is prevented from taking the value "wayland". * Improvements specific to WINE games: * A new compatibility link is added in the WINE user directory: "Local Settings/Application Data" → "AppData/Local". * Improvements specific to Unity3D games: * For native Linux games, the use of system SDL is forced.
-
2.26.3 protected
2.26.3 bugfix release * archive_path - Ensure that the output is always empty when the archive is not set. * icon_application - Print an explicit error if no application identifier could be found for the given icon. * launcher_target_presence_check - Do not display an error when no application type is set. * launcher_write_script - Check for the binary presence early. * Arch Linux: Fix .INSTALL metadata file generation when post-installation messages are set.
-
2.26.2 protected
2.26.2 bugfix release * archive_dependencies_check - Ensure that a failure to get the archive type triggers a fatal error. * archive_name - Add ability to compute the archive name from ARCHIVE_xxx_PATH. * archives_integrity_check_md5 - Prevent an unexpected hashsum mismatch error for archives with no expected MD5 hash set. * icon_application - Prevent a mix up between applications sharing a similar prefix. * Arch Linux - Fix broken .PKGINFO "conflict" / "provides" fields.
-
2.26.1 protected
2.26.1 bugfix release * Fix archive integrity check when using extra archives providing native libraries. * Always use an absolute path for the archive path. * Store a cached value of the archive path the first time it is computed. * Ensure that archive content extraction using unzip overwrites files. * Debian - Ensure that dpkg-deb follows the custom TMPDIR value.
-
2.26.0 protected
2.26.0 feature release * Deprecation notices: * ./play.it can no longer be run by the root account, unless PLAYIT_OPTION_RUN_AS_ROOT=1 is set. * ${PLAYIT_WORKDIR}/gamedata is deleted automatically at the end of the content_inclusion_default execution for game cripts targeting a compatibility level ≥ 2.26, so a manual deletion attempt after that would fail. * target_version should no longer be set for game scripts targeting ./play.it ≥ 2.26. See "New way to set the compat ility level from a game script". * The legacy variable SOURCE_ARCHIVE should no longer be used from game scripts. See "Improvements to archives conte extraction". * The legacy variable ARCHIVE_xxx should no longer be used to set neither the archive name nor the archive path. See New archives properties". * New way to set the compatibility level from a game script: * Setting the compatibility level should be done using a new variable: PLAYIT_COMPATIBILITY_LEVEL. * Setting a compatibility level is no longer required. It is still very strongly recommended. Game scripts with no c patibility level set will break. * New functions are provided to work with the compatibility level: - compatibility_level: Get the compatibility level that has been requested. - compatibility_level_is_at_least: Check the compatibility level against a given version. * Improvements to archives content extraction: * A new function is provided to extract content from the current archive: archive_extraction_default. Unlike archive xtraction, it does not take any argument and will automatically pick the current archive (the one passed on the comman line or found in the current directory). * New archives properties: * A new variable is exposed to set an archive name: ARCHIVE_xxx_NAME. * A new variable is exposed to set an archive path: ARCHIVE_xxx_PATH. * The presence of archive extra parts is checked automatically up to ARCHIVE_xxx_PART99. * Support for obsolete native libraries provided through downloadable archives: * Support for the following native libraries is added: - libcurl.so.4+CURL_OPENSSL_3 (libcurl.so.3 and libcurl.so.4 including the CURL_OPENSSL_3 symbol) - libFLAC.so.8 - libidn.so.11 - libpng12.so.0 - libssl.so.1.0.0 - libssl.so.1.1 * Adding a dependency on one of these libraries is done by including it in PKG_xxx_DEPENDENCIES_LIBRARIES, like it i done for system-provided packages. * The extra archive is required only when building packages for a system that does not provided the expected library rom its repositories. * To be able to use these dependencies, the new function "archive_extraction_default" must be used. See "Improvement to archives content extraction". * Provide the ability to use a fake $HOME path, to prevent cluttering of the real $HOME: * The fake $HOME path is automatically enabled if FAKE_HOME_PERSISTENT_DIRECTORIES is set by the game script. Paths sted in this variable are diverted to persistent storage. The default fake $HOME path is ${XDG_CACHE_HOME}/play.it/hom ${GAME_ID}, this path can be overridden at runtime by exporting the variable PLAYIT_FAKE_HOME_PATH. * XDG basedir paths from the fake $HOME are automatically diverted to the same paths in the real $HOME. * Support for LD_PRELOAD hacks: * A list of hacks can be provided by PRELOAD_HACKS_LIST, one per line. * Each hack must set the following properties: - HACK_xxx_NAME - HACK_xxx_DESCRIPTION - HACK_xxx_PACKAGE (can be omitted, probably not a good idea) - HACK_xxx_SOURCE * The following new function should be called from the game script to build and include the hacks: hacks_inclusion_d ault. * Improvements to the handling of packages metadata: * The "package_description" function now only returns the value of PKG_xxx_DESCRIPTION, without extra formatting. In ddition, it triggers an error if this description includes line breaks. * Expansion of the context system: * The following variables got support for contextual values: - APPLICATIONS_PREFIX_TYPE - APP_xxx_PREFIX_TYPE - APP_xxx_PRERUN - APP_xxx_POSTRUN - USER_PERSISTENT_FILES - USER_PERSISTENT_DIRECTORIES * Rework packages post-installation and pre-removal actions: * A new variable can be set to a list of warnings that are displayed post-installation, one per line: PKG_xxx_POSTINST_WARNINGS.
-
2.25.6 protected
2.25.6 bugfix release * content_inclusion_chunk_single - Fix behaviour when PACKAGES_LIST has a contextual value set. * error_package_does_not_exist - Fix French translation. * Gentoo - Fix the definition of the postinst/prerm package scripts.
-
2.25.5 protected
2.25.5 release * Gentoo - Fix the function call used to fill the DESCRIPTION ebuild field. * Gentoo - Fix the function call used to fill the RDEPEND ebuild field. * Gentoo - Drop unwanted "$" at the beginning of the version string. * Gentoo - Fix a typo in the variable setting the compression command. * Gentoo - Fix ebuild settings through environment variables. * Gentoo - Drop broken support for --compression none. * Gentoo - Move the generated packages to the output directory, instead of deleting them.
-
2.25.4 protected
2.25.4 bugfix release * Add support for extra native libraries. * Trigger a warning if APP_xxx_LIBS is set from a game script targeting a compatibility level ≥ 2.19. * content_path - Prevent a failure if CONTENT_PATH_DEFAULT is empty. * games_find_script_for_archive - Prevent a broken pipe non-blocking error.
-
2.25.3 protected
2.25.3 bugfix release * application_type_guess_from_file - Prevent failure when APP_xxx_EXE is not set. * archive_extraction_makeself - Decrease the time spent on files extraction. * archive_extraction_mojosetup - Decrease the time spent on files extraction. * content_path_default - Throw an explicit error if no path is set.
-
2.25.2 protected
2.25.2 bugfix release * persistent_list_directories / persistent_list_files - Reduce reliance on variable_is_empty.
-
2.25.1 protected
2.25.1 bugfix release * archive_get_type - Fix archive type detection using file headers. * debian_package_build_single - Fix usage of $dpkg_options variable.
-
2.25.0 protected
2.25.0 feature release * Deprecation notices: * Support for the legacy compression options is dropped. See "Compression methods rework" in 2.22.0 release notes for more details. * The variable APP_WINETRICKS is deprecated, and will be ignored for game scripts targeting ./play.it ≥ 2.26. See "Improvements to support for WINE games" below for more details. * New command line options: * --list-available-scripts — Print the list of game scripts available on this system. * --list-supported-games — Print the list of supported games. The output of this option can take up to several minutes to be generated, depending on the number of available game scripts. * New make actions: * make shunit2 - Run a series of unit tests based on shUnit2. * make shunit2-coverage - Display a coverage report for shUnit2 tests. * make check - This command is extended to include the shUnit2 tests and their coverage report. * New dependencies system for commands required at runtime: * A new variable is exposed to game scripts: PKG_xxx_DEPENDENCIES_COMMANDS It can be set to a list of commands that are required by the game at runtime, one per line. * Improvements to support for WINE games: * Add ability to set the default value for WINEDLLOVERRIDES, using a new variables: WINE_DLLOVERRIDES_DEFAULT. If this variable is not set, the generic default value is used: WINEDLLOVERRIDES='winemenubuilder.exe,mscoree,mshtml=' * A new variable is exposed for listing required winetricks verbs: WINE_WINETRICKS_VERBS. The old variable name APP_WINETRICKS is still supported for game scripts targeting ./play.it < 2.26. * Improved support for Unity3D games, the following variables can be omitted and will fall back on default values: - APP_MAIN_EXE (including for Windows games) - CONTENT_GAME_BIN_FILES - CONTENT_GAME_BIN32_FILES - CONTENT_GAME_BIN64_FILES - CONTENT_GAME_DATA_FILES * Improved support for Unreal Engine 4, the following variables can be omitted and will fall back on default values: - APP_MAIN_ICON_WRESTOOL_OPTIONS - CONTENT_GAME_BIN_FILES - CONTENT_GAME_DATA_FILES - PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS - WINE_DIRECT3D_RENDERER - WINE_PERSISTENT_DIRECTORIES - WINE_WINETRICKS_VERBS
-
2.24.1 protected
2.24.1 bugfix release * application_options - Fix test preventing line breaks in application options string. * archive_guess_type_from_name - Ensure that an empty string is returned if no type could be guessed. * content_inclusion - Check that the given package identifier is valid. * content_inclusion_chunks - Drop declaration of unused variable. * Prevent incompatibility between old .deb format 0.939000 and xz compression. * Do not tweak shell options from inside functions. * Add support for extra native libraries.
-
2.24.0 protected
2.24.0 feature release * Deprecation notices: * The following functions are deprecated: - launcher_native_libraries_paths - launcher_write_script_headers * The following functions are deprecated for game scripts targeting ./play.it ≥ 2.14: - write_metadata - build_pkg See the section "Changes related to packages generation" below for more details. * Support for the following application types is dropped: - renpy - residualvm * Ignoring errors during calls to archive_extraction can no longer be done using `set +o errexit`, because `set -o errexit` is forced after the call to external tools used to handle the archives. The recommended snippet to use instead is: archive_extraction 'SOURCE_ARCHIVE' 2>/dev/null || true * Support for the unused variable PREFIX_PREPARE is dropped. * DOSBox games: The "userdir_toupper_files" function is no longer included in launchers. * Mono games: Support for "APP_xxx_MONO_OPTIONS" is dropped. * Improved support for game expansions: * The expansion id is appended to the package id by default. Explicit PKG_xxx_ID declaration is no longer required for expansions. * Changes related to packages generation: * A new function is provided for packages generation: packages_generation It replaces the two following functions: - write_metadata - build_pkg * Changes related to files extraction from archives: * An extraction log is stored at: ${PLAYIT_WORKDIR}/logs/archive-extraction.log * Minimal permissions are always applied on extracted files. * MojoSetup archives: unzip is used instead of unar to handle the inner archive. * Changes specific to ScummVM games: * Allow omitting APPLICATION_xxx_TYPE for ScummVM applications. * Changes specific to WINE games: * Throw an explicit error if a required registry script could not be loaded.
-
2.23.6 protected
2.23.6 bugfix release * Fix error displayed when an unkown archive type is set. * WINE: Fix automatic dependencies addition based on WineD3D renderer.
-
2.23.5 protected
2.23.5 bugfix release * MojoSetup archives: Fix the extraction of the inner .zip archive.
-
2.23.4 protected
2.23.4 bugfix release * Prevent output redirection from leaking after error messages. * Add support for dependencies on extra native libraries.
-
2.23.3 protected
2.23.3 bugfix release * Add support for extra native libraries. * Unity3D: Prevent plugins inclusion failure if no architecture-specific directory is shipped. * Unity3D: Prevent a crash on Linux 6.1 by disabling the MAP_32BIT flag with some Unity3D builds.