Skip to content
Tags give the ability to mark specific points in history as being important
  • 2.27.4 protected
    852521e8 · 2.27.4 bugfix release ·
    2.27.4 bugfix release
    
    * An explicit error message is shown if the compilation of a preload shim failed.
    * Support for dependencies on several native libraries is added:
      - libboost_locale.so.1.74.0
      - libdbus-glib-1.so.2
      - libnotify.so.4
      - libtheoraenc.so.1
    
  • 2.27.3 protected
    1c158f9d · 2.27.3 bugfix release ·
    2.27.3 bugfix release
    
    * Prevent the current umask value to mess with permissions on packaged paths.
    * Ensure the package context is always set when fetching the path to install libraries into.
    * Debian - Drop the chmod calls made obsolete by the explicit umask setting.
    * Gentoo - Drop an obsolete check that would always fail.
    * Gentoo - Prevent a call to egentoo_package_name when using the gentoo variant.
    * Gentoo - Fix copying of symbolic links during installation.
    
  • 2.27.2 protected
    624a8d10 · 2.27.2 bugfix release ·
    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
    e70a5dc7 · 2.27.1 bugfix release ·
    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
    8cfce3ff · 2.27.0 feature release ·
    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
    52524871 · 2.26.3 bugfix release ·
    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
    93e1c1fb · 2.26.2 bugfix release ·
    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
    286eede0 · 2.26.1 bugfix release ·
    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
    0a564acb · 2.26.0 feature release ·
    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
    1b80bc42 · 2.25.6 bugfix release ·
    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
    4058b94f · 2.25.5 bugfix release ·
    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
    7011d895 · 2.25.4 bugfix release ·
    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
    1dd4127c · 2.25.3 bugfix release ·
    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
    cb4aced0 · 2.25.2 bugfix release ·
    2.25.2 bugfix release
    
    * persistent_list_directories / persistent_list_files - Reduce reliance on variable_is_empty.
    
  • 2.25.1 protected
    61856ab1 · 2.25.1 bugfix release ·
    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
    120645b0 · 2.25.0 feature release ·
    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
    2f417d82 · 2.24.1 bugfix release ·
    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
    1f9f2331 · 2.24.0 feature release ·
    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
    0a491aa1 · 2.23.6 bugfix release ·
    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
    4fda08d4 · 2.23.5 bugfix release ·
    2.23.5 bugfix release
    
    * MojoSetup archives: Fix the extraction of the inner .zip archive.