Skip to content
Tags give the ability to mark specific points in history as being important
  • 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.
    
  • 2.22.2
    c95b1519 · 2.22.2 bugfix release ·
    2.22.2 bugfix release
    
    * Improve automatic detection of DOS executables.
    * Display a list of unknown Mono libraries if some have been required.
    * Prevent functions failures to be hidden by while loops.
    
  • 2.22.1
    617e1f57 · 2.22.1 bugfix release ·
    2.22.1 bugfix release
    
    * Fix inclusion of pre-run/post-run actions in launchers for WINE games.
    * Improve handling of pre-run/post-run actions in launchers for native games.
    * Add support for libbz2.so.1 native library dependency.
    
  • 2.22.0
    90c51f30 · 2.22.0 feature release ·
    2.22.0 feature release
    
    Deprecation notices:
    
    * Multiple options are dropped, here are the replacements that should be used:
      - --icons yes (no replacement, this is the default behaviour)
      - --icons no → --no-icons
      - --skip-free-space-check → --no-free-space-check
      - -c → --config-file
      - -h → --help
      - -v → --version
    * Functions used to fetch packages metadata have been renamed:
      - packages_get_maintainer → package_maintainer
      - packages_get_version → package_version (a compatibility alias is provided)
      - package_get_architecture → package_architecture
      - package_get_architecture_string → package_architecture_string
      - package_get_description → package_description
      - package_get_id → package_id
    * "launcher_write_script_wine_run" is obsolete, "wine_launcher_run" should be used instead. A compatibility wrapper is provided for game scripts targeting ./play.it < 2.22.
    * Legacy environment variables (usually "OPTION_xxx") are still exported only for game scripts targeting ./play.it ≤ 2.22. See "Options system rework" below for more details.
    * The legacy values for --compression are still valid only for game scripts targeting ./play.it ≤ 2.22. See "Compression methods rework" below for more details.
    * "unity3d" is no longer a full blown application type, but a variant of the application type "native". See "New application type variant system" below for more details.
    * The internal test "variable_is_set" is dropped. "get_value" no longer throws an error when trying to query an unset variable, it returns an empty value instead.
    
    Options system rework:
    
    * A new function is provided to fetch the current value of a given option:
      option_value $option_name
      As an example, instead of a direct use of the value of the deprecated variable $OPTION_COMPRESSION, the following function call should be used:
      option_value 'compression'
    * The game archive is no longer the first mandatory argument when calling the "play.it" command. It can now be provided anywhere on the command line.
    * All options can be set using environment variables, here is the full list of command line arguments and for each one the equivalent environment variable:
      - --checksum → PLAYIT_OPTION_CHECKSUM
      - --compression → PLAYIT_OPTION_COMPRESSION
      - --config-file → PLAYIT_OPTION_CONFIG_FILE
      - --debug → PLAYIT_OPTION_DEBUG
      - --help → PLAYIT_OPTION_HELP
      - --list-packages → PLAYIT_OPTION_LIST_PACKAGES
      - --list-requirements → PLAYIT_OPTION_LIST_REQUIREMENTS
      - --no-free-space-check → PLAYIT_OPTION_FREE_SPACE_CHECK
      - --no-icons → PLAYIT_OPTION_ICONS
      - --no-mtree → PLAYIT_OPTION_MTREE
      - --overwrite → PLAYIT_OPTION_OVERWRITE
      - --output-dir → PLAYIT_OPTION_OUTPUT_DIR
      - --package → PLAYIT_OPTION_PACKAGE
      - --prefix → PLAYIT_OPTION_PREFIX
      - --show-game-script → PLAYIT_OPTION_SHOW_GAME_SCRIPT
      - --tmpdir → PLAYIT_OPTION_TMPDIR
      - --version → PLAYIT_OPTION_VERSION
      If a same option is set using both an environment variable and a command line argument, the command line argument is ignored.
    
    Compression methods rework:
    
    * Compression options are no longer specific to the target package format, the same four values are available:
      - "none":  no compression (default value)
      - "speed": compression method focusing on compression speed
      - "size":  compression method focusing on size reduction
      - "auto":  use the current defaults for the packages generation tool (not supported when building packages for Arch Linux)
      The legacy values are still available for game scripts targeting ./play.it ≤ 2.22, but their use triggers a deprecation warning. For game scripts targeting ./play.it > 2.22, an error is thrown.
    
    New application type variant system:
    
    * The application type variant can be set from a game script using the variable "APP_xxx_TYPE_VARIANT". There is only one accepted value for now: "unity3d".
    * Unity3D games for Windows are no longer wrongly identified as native Linux games if they set "UNITY3D_NAME" but not "APP_xxx_TYPE".
    * A dedicated per-session log file is used for Unity3D games running through WINE.
    
    Changes related to packages:
    
    * Environment variables set for Debian tools are followed when trying to get the maintainer name and e-mail.
    
    Changes specific to Debian:
    
    * The generation of the DEBIAN/control file is moved to a dedicated function.
    * The package metadata generation is updated to no longer rely on implicit variable inheritance.
    
    Dead code removals:
    
    * Support is dropped for unused compatibility wrappers:
      - package_get_current
    * Support is dropped for unused messages:
      - error_archive_unset
      - error_context_invalid
      - error_no_valid_temp_dir_found
      - error_obsolete_function
      - print_ok
      - warning_missing_library
    * Support is dropped for unused generic dependency keywords:
      - bzip2
      - gconf
      - libcurl
      - libcurl-gnutls
      - sdl1.2
      - sdl2_image
      - sdl2_mixer
      - theora
      - vorbis
      - wine-staging / wine32-staging / wine64-staging
      - xft
    
  • 2.21.2
    a18052e2 · 2.21.2 bugfix release ·
    2.21.2 bugfix release
    
    * Display an explicit error when a game script seems to support no archive.
    * Use dpkg for version strings comparison.
    * Ensure the pre-run and post-run actions strings always end with a line break.
    * Add missing native library dependency: libIL.so.1
    * Gentoo: Add the opengl USE flag to relevant SDL packages.
    
  • 2.21.1
    e4c26b33 · 2.21.1 bugfix release ·
    2.21.1 bugfix release
    
    * Fix Make rule used to build the library.
    * Run syntax checks from the Makefile.
    * Add ability to build release tarballs from Make.
    * Add support for dependencies on more native libraries:
      - libaudio.so.2
      - libcrypt.so.1
      - libFAudio.so.0
      - libgomp.so.1
      - liblcms2.so.2
      - libpixman-1.so.0
      - libSDL_kitchensink.so.1
      - libSDL_sound-1.0.so.1
      - libsigc-2.0.so.0
      - libvorbisenc.so.2
      - libX11-xcb.so.1
      - libxcb.so.1
      - libxcb-randr.so.0
    * Add support for dependencies on more Mono libraries:
      - OpenTK.dll
      - OpenTK.Compatibility.dll
      - OpenTK.GLControl.dll
    * Prevent non-fatal errors when listing package dependencies.
    * Fix the error displayed when no supported archive is found.
    * Add support for "image/x-xpixmap" MIME type for icons.
    
  • 2.21.0
    891bfd50 · 2.21.0 feature release ·
    2.21.0 feature release
    
    Deprecation notices
    
    * Support is dropped for --icons auto. The only valid values are --icon yes|no, defaulting to --icons yes.
    * Support for application type "native_no-prefix" is dropped.
    * For game scripts targeting ./play.it ≥ 2.21, the main archives identifiers must start with "ARCHIVE_BASE". Game scripts targeting an older version can still use the prefix "ARCHIVE" instead.
    * The following functions are deprecated, but still available through compatibility aliases:
      - context_specific_value
      - get_context_specific_value
      - package_get_current
    * The following old functions are dropped, with no compatibility alias:
      - get_context_suffix_archive
      - get_context_suffix_package
      - context_specific_name
      - test_var
    * Up to ./play.it 2.20, all of these content identifiers were tested when calling "content_inclusion_default" (or "prepare_package_layout" for older game scripts):
      - LIBS_xxx
      - LIBS0_xxx
      - (…)
      - LIBS9_xxx
      - GAME_xxx
      - GAME0_xxx
      - (…)
      - GAME9_xxx
      - DOC_xxx
      - DOC0_xxx
      - (…)
      - DOC9_xxx
      Starting with ./play.it 2.21, the search stops at the first unset numbered identifier. So if "GAME1_xxx" is not set, "GAME2_xxx" up to "GAME9_xxx" will be skipped.
      No legacy behaviour is provided for old game scripts.
    * For WINE games, winecfg launchers are no longer generated.
      To spawn winecfg using the prefix for a given name, you can run the following command:
      WINEPREFIX=~/.cache/play.it/wine/${game_id} winecfg
    
    New options
    
    * --list-packages: List the packages that would be built from the given archive.
    * --list-requirements: List the game script requirements for the given archive.
    
    Improvements of file type detection based on MIME
    
    * Exclude charset information from "file" output.
    * Add support for "application/x-sharedlib" MIME type.
    * Improve detection of PE32 executables.
    
    Reworked context system
    
    * The following commonly used variables now have context support:
      - APP_xxx_ID
      - APP_xxx_NAME
      - APP_xxx_ICONS_LIST
      - APP_xxx_SCUMMID
    * New functions are provided:
      - context_value: Print the context-sensitive value for the given variable.
      - context_name: Print the name of the variable containing the context-specific value of the given variable.
      - context_archive: Print the identifier of the current archive.
      - context_package: Print the identifier of the current package.
    
    Changes related to launchers
    
    * Provide a new function printing the path to a launcher script: launcher_path.
    
    Changes related to icons
    
    * Rework "icons_list_all" to include implicit icons (like the ones from Unity3D or WINE games).
    
    Changes specific to Mono games
    
    * Dependencies on a list of Mono libraries can be declared with a new dedicated variable: PKG_xxx_DEPENDENCIES_MONO_LIBRARIES.
    
    Changes specific to Gentoo
    
    * Use PKG_xxx_DEPS_GENTOO with no transformation, allowing to pass more complex dependency constraints.
    
    Other changes
    
    * Provide new warnings and errors to be used when deprecated/obsolete functions are called:
      - warning_deprecated_function
      - error_obsolete_function
    * If EXPANSION_NAME is set, it is automatically included in the output of game_name.
    
  • 2.20.3
    072e10de · 2.20.3 bugfix release ·
    2.20.3 bugfix release
    
    * Fix usage of "pkg_set_deps_gentoo".
    
  • 2.20.2
    db149bb4 · 2.20.2 bugfix release ·
    2.20.2 bugfix release
    
    * Display an error when a DOSBox image disk was not found.
    * Gentoo (egentoo variant): Install data files only if present.
    * Gentoo: Use correct documentation paths.
    * Add support for more native libraries.
    * New generic dependencies:
      - residualvm
      - scummvm