Skip to content

Tags

Tags give the ability to mark specific points in history as being important
  • 2.26.0
    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
    9f69cdea · 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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    4fda08d4 · 2.23.5 bugfix release ·
    2.23.5 bugfix release
    
    * MojoSetup archives: Fix the extraction of the inner .zip archive.
    
  • 2.23.4
    6ac6f829 · 2.23.4 bugfix release ·
    2.23.4 bugfix release
    
    * Prevent output redirection from leaking after error messages.
    * Add support for dependencies on extra native libraries.
    
  • 2.23.3
    61143c4d · 2.23.3 bugfix release ·
    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.
    
  • 2.23.2
    c991cde5 · 2.23.2 bugfix release ·
    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.1
    3e13a601 · 2.23.1 bugfix release ·
    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.0
    2a949558 · 2.23.0 feature release ·
    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.5
    dccc89fe · 2.22.5 bugfix release ·
    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.4
    4118f4fc · 2.22.4 bugfix release ·
    2.22.4 bugfix release
    
    * Arch Linux: Fix fetching the maintainer name from /etc/makepkg.conf.
    * Arch Linux: Fix adding multiple dependencies for a single generic keyword.
    * Gentoo: Fix support for PKG_xxx_PROVIDE.
    * Gentoo: Prevent querying of unset variables.
    
  • 2.22.3
    5228b88c · 2.22.3 bugfix release ·
    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.