-
2.26.00a564acb · ·
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.54058b94f · ·
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.47011d895 · ·
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.31dd4127c · ·
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.0120645b0 · ·
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.12f417d82 · ·
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.01f9f2331 · ·
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.2c991cde5 · ·
2.23.2 bugfix release * Fix warning displayed on unsupported GStreamer media format. * Fix content inclusion when using legacy ARCHIVE_xxx_FILES variables. * Do not generate an empty list of unsupported GStreamer decoders. * Add support for extra GStreamer decoders. * Add support for extra native libraries. * Avoid querying unset variables.
-
2.23.13e13a601 · ·
2.23.1 bugfix release * Display an explicit error on package building failure. * Fix install path for native libraries. * Add support for more native libraries dependencies. * Arch Linux: Fix filling "conflict" and "provides" in package metadata. * Gentoo: Fix setting the list of dependencies on native libraries.
-
2.23.02a949558 · ·
2.23.0 feature release Deprecation notices: * Game scripts targeting ./play.it ≥ 2.23 can no longer use the legacy compression values, see "Compression methods rework" in the 2.22.0 section for more details. * Trying to expand an unset variable triggers an error, for game scripts targeting ./play.it ≥ 2.23. * APP_WINE_LINK_DIRS is deprecated, setting it from a game script targeting ./play.it ≥ 2.23 triggers a warning. For games scripts targeting ./play.it ≥ 2.24, it will by ignored silently. See "Improved support for WINE games" below for more details. * PKG_xxx_PROVIDE is deprecated, setting it from a game script targeting ./play.it ≥ 2.23 triggers a warning. For games scripts targeting ./play.it ≥ 2.24, it will by ignored silently. See "Packages metadata improvements" below for more details. Dependencies handling improvements: * The generation of a launcher for the following application types automatically adds the required dependency to the current package: - dosbox - java - mono - renpy - residualvm - scummvm - wine * Dependencies on media formats decoded by GStreamer can be listed using a new variable: PKG_xxx_DEPENDENCIES_GSTREAMER_PLUGINS. The following formats are supported: - avidemux - decodebin - deinterlace - audio/x-wma, wmaversion=(int)1 - video/quicktime, variant=(string)iso - video/x-ms-asf - video/x-msvideo - video/x-wmv, wmvversion=(int)1 Application type improvements: * The application type can be guessed from the game binary even if it is not in the current package. Packages generation improvements: * A package can now provide/conflict with multiple package names, using a new variable PKG_xxx_PROVIDES One provided name should be written on each line, using line breaks as the list separator. * If all packages are already built, the execution stops early to avoid unnecessary resources and time usage. * Debian: Automatically use old .deb format (0.939000) to avoid size limits. Improved support for Unity3D games: * Shipped plugins for Unity3D games can now be listed using a new dedicated variable: UNITY3D_PLUGINS. If it is set to a non-empty value, it is used during the call to "content_inclusion_default" to include the listed plugins into the path dedicated to shipped libraries. Plugins that are not listed are removed to ensure they are not in cluded later by some "CONTENT_xxx_FILES" greedy pattern. Improved support for WINE games: * A new variable is used to list the paths that should be diverted from the WINE prefix: WINE_PERSISTENT_DIRECTORIES Its value is a list of paths relative to $WINEPREFIX/drive_c, one per line. Improved handling of huge files (>9GB): * Files that are bigger than 9GB should be listed using a dedicated variable: HUGE_FILES_xxx "xxx" is the suffix of the package that includes these files by default, so a list for PKG_DATA would be named HUG E_FILES_DATA. * The files split is done only when building .deb packages, as Arch Linux and Gentoo packages have no size limit. Improved support for Makeself and MojoSetup archives: * The type declaration can be omitted for MojoSetup archives. * Support is added for Makeself archives.
-
2.22.5dccc89fe · ·
2.22.5 bugfix release * Use a single function to handle the copy of the game binary into the prefix. * Fix permissions on the manual pages. * Add support for more native libraries dependencies: - libc++.so.1 - libc++abi.so.1 - libpcre.so.3 * Arch Linux: Improve listing of packages providing generic dependencies. * Arch Linux: Prevent querying of unset variables.
-
2.22.35228b88c · ·
2.22.3 bugfix release * Ensure function return codes are never hidden behind cat calls. * Ensure package architecture is always fetched using the dedicated function. * Run a late requirements check for icons extraction. * Add support for missing native libraries dependencies: - libutil.so.1 - libXmu.so.6 * Arch Linux: Rework packages metadata generation to no longer rely on a variable leak. * Arch Linux: Fix libvulkan.so.1 dependency.