Tags give the ability to mark specific points in history as being important
  • 2.22.3 protected
    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 protected
    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 protected
    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 protected
    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 protected
    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 protected
    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 protected
    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 protected
    072e10de · 2.20.3 bugfix release ·
    2.20.3 bugfix release
    * Fix usage of "pkg_set_deps_gentoo".
  • 2.20.2 protected
    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
  • 2.20.1 protected
    314233de · 2.20.1 bugfix release ·
    2.20.1 bugfix release
    * Drop duplicate declaration of message function "error_variable_not_set".
    * Update documentation with the "--config-file" option.
    * application_icons_list - Fix support for archive context.
    * applications_list - When parsing the game script, avoid printing duplicates.
    * debian_dependencies_full_list - Fix listing when both PKG_xxx_DEPS_DEB and PKG_xxx_DEPENDENCIES_LIBRARIES are set.
    * Add support for MIME type "application/vnd.microsoft.portable-executable".
  • 2.20.0 protected
    2f7f531f · 2.20.0 feature release ·
    2.20.0 feature release
    Deprecation warnings
    * APP_xxx_PRERUN/APP_xxx_POSTRUN behaviour is changed for DOSBox game scripts targeting ./play.it ≥ 2.20.
      See "Changes specific to DOSBox" below for more details.
    * "package_get_path" is now a compatibility wrapper around "package_path".
      See "Changes related to packages" below for more details.
    Codebase improvements
    * Provide new variable manipulation helpers:
      - variable_is_set
      - variable_is_empty
    * Rework multiple functions to avoid querying unset variables.
    Changes related to packages
    * A new function "package_name" is provided, returning the file name of a given package.
    * Packages are prepared in "${PLAYIT_WORKDIR}/packages" instead of the root of "$PLAYIT_WORKDIR".
    * The function returning the path to the directory where a given package is prepared is renamed from "package_get_path" to "package_path".
    Changes specific to DOSBox
    * Drop special behaviour when using APP_xxx_PRERUN/APP_xxx_POSTRUN.
      Game scripts targeting ./play.it < 2.20 are unaffected, commands set using APP_xxx_PRERUN/APP_xxx_POSTRUN are still run from inside DOSBox.
      For games scripts targeting ./play.it ≥ 2.20, commands set using APP_xxx_PRERUN are run before spawning DOSBox, and commands set using APP_xxx_POSTRUN are run after exiting DOSBox.
      Two new variables are provided to set commands that should be run inside DOSBox:
    Changes specific to Mono
    * Add ability to run games without a local user prefix.
    Changes specific to Gentoo
    * Change egentoo output paths. Instead of making packages in data, amd64 and x86 directories, ebuilds are now created in an overlay/games-playit directory and packages in a packages directory.
    * With egentoo variant, generate only one ebuild and one tar archive, with a bit more complexity in the ebuild, in order to decide which content to install.
  • 2.19.1 protected
    73585c1f · 2.19.1 bugfix release ·
    2.19.1 bugfix release
    * Ensure errors during calls to "game_id" are always blocking.
    * Gentoo: Fix dependencies handling.
    * Gentoo: Ensure libstdc++.so.6 is provided by the correct package.
  • 2.19.0 protected
    0fd95208 · 2.19.0 feature release ·
    2.19.0 feature release
    Deprecation warnings
    * The legacy variables for content inclusion are no longer supported for game scripts targeting ./play.it ≥ 2.19:
      - ARCHIVE_xxx_PATH
      - ARCHIVE_xxx_FILES
      The new variables introduced with ./play.it 2.18 must be used instead:
      - CONTENT_xxx_PATH
      - CONTENT_xxx_FILES
      The legacy ones can still be used only from game scripts targeting ./play.it ≤ 2.18.
    * The following global variables are still available, but are deprecated:
      - PATH_BIN
      - PATH_DESK
      - PATH_DOC
      - PATH_GAME
    * "APP_xxx_LIBS" is deprecated, game scripts should no longer rely on it. Libraries installed under /usr/lib/games/${GAME_ID} are automatically added to LD_LIBRARY_PATH.
    * The following internal functions are dropped:
      - launcher_write_script_dosbox_application_variables
      - launcher_write_script_dosbox_run
      - launcher_write_script_java_application_variables
      - launcher_write_script_java_run
      - launcher_write_script_mono_application_variables
      - launcher_write_script_mono_run
      - launcher_write_script_native_application_variables
      - launcher_write_script_native_run
      - launcher_write_script_nativenoprefix_run
      - launcher_write_script_native_run_common
      - launcher_write_script_renpy_run
      - launcher_write_script_residualvm_application_variables
      - launcher_write_script_residualvm_run
      - launcher_write_script_scummvm_application_variables
      - launcher_write_script_scummvm_run
    * "application_type" no longer fails if no type could be found. Support for the special fallback value "unknown" is dropped, as its only purpose was to avoid the error on empty application type.
    * "package_get_current" no longer falls back on "PKG_MAIN", see "Changes related to packages" below for more details.
    Improved integration of shipped libraries
    * In addition to standard system paths, libraries are loaded from the following paths, ordered from lower priority to higher priority:
      - APP_xxx_LIBS (deprecated)
      - /usr/lib/games/${GAME_ID} (/usr is replaced by the custom install prefix)
      - ${HOME}/.local/lib/games/${GAME_ID}
    * In addition to game data files and documentation files, "content_inclusion_default" now automatically fetches listed
    native libraries and put them into a specific install path.
      The native libraries can be listed using global variables similar to the ones already in use:
      As with game data files and documentation files, a single-digit number can be appended to "LIBS":
      - (…)
    New dedicated functions printing install paths are available
    - path_binaries
    - path_xdg_desktop
    - path_documentation
    - path_game_data
    - path_icons
    - path_libraries
    These should be used instead of the deprecated "PATH_xxx" variables.
    Rework launchers generation
    Game execution failure no longer prevents the execution of post-run actions.
    * The late extra eval step of JAVA_OPTIONS and MONO_OPTIONS is dropped, no current game script was relying on these.
    * APP_xxx_OPTIONS support is added to ResidualVM and ScummVM launchers.
    Changes related to icons integration
    * Rework icons requirement check to no longer rely on applications.
    * Add support for archive context to application_icons_list.
    * If no icon is set for a WINE application, try to extract one from the game binary.
    Changes related to applications
    * Update applications_list to follow the archive context.
    * Add automatic application type detection based on file type, APP_xxx_TYPE declaration is now optional in more cases.
    Changes related to packages
    * Extend the list of supported native libraries for packages dependencies declarations.
    * package_get_current returns the first package of the list of packages to build if no value is explicitly set, instead of the previously hardcoded value "PKG_MAIN".
    Other changes
    * Drop system-specific install prefix. The default install prefix is now the same for all supported systems: /usr
    * Do not run a full dependencies check when initializing an archive, only the presence of the dependencies required to handle the current archive is tested.
    * Set working directory path as soon as the archive is found.
    * Automatically add dependency on winetricks if APP_WINETRICKS is set.
  • 2.18.3 protected
    24e544c4 · 2.18.3 bugfix release ·
    2.18.3 bugfix release
    * content_path_default - Do not throw an error if no default path is set.
    * Extend the list of supported native libraries for packages dependencies declarations.
    * Add a format check for package id.
    * WINE: Fix APP_WINE_LINK_DIRS failure on non-empty target.
  • 2.18.2 protected
    52dc6f12 · 2.18.2 bugfix release ·
    2.18.2 bugfix release
    * Add ability to get the name of a context-specific variable, using a new dedicated function: "context_specific_name".
      This new function should not be used from game scripts before ./play.it 2.19 release.
    * Fix dependencies addition using dedicated functions.
    * Extend the list of supported native libraries for packages dependencies declarations.
  • 2.18.1 protected
    fa1321ff · 2.18.1 bugfix release ·
    2.18.1 bugfix release
    * Identify SteamOS as an Arch Linux derivative.
    * Extend the list of supported native libraries for packages dependencies declarations.
    * archive_dependencies_check - Include archive extra parts during extraction dependencies check.
    * icons_inclusion - Fail explicitly if called with no argument and no applications list can be guessed.
    * launcher_write_script - Throw an explicit error if called with an empty argument.
    * print_instructions - Clear the list of unknown libraries after it has been displayed once.
  • 2.18.0 protected
    7e292e66 · 2.18.0 feature release ·
    2.18.0 feature release
    Changes related to archive contents inclusion
    * "CONTENT_xxx_PATH" is a new variable replacing "ARCHIVE_xxx_PATH".
    * "CONTENT_xxx_FILES" is a new variable replacing "ARCHIVE_xxx_FILES".
    * "content_inclusion" is a new function replacing "organize_data".
    * "content_inclusion_default" is a new function replacing "prepare_package_layout".
    Changes related to packages
    * Provide a new dependency system for native libraries, using a new variable:
    * Support is added for extra native libraries.
    Changes specific to WINE
    * "WINEDLLOVERRIDES" can be overridden at runtime.
    * Provide persistent storage for registry keys, using a new dedicated variable:
    * Add ability to set the Direct3D renderer using "WINE_DIRECT3D_RENDERER".
    Other changes
    * Drop messages on completion of long tasks.
    Codebase improvements
    * Rework prefix generation for WINE games.
  • 2.17.2 protected
    097e3ffe · 2.17.2 bugfix release ·
    2.17.2 bugfix release
    * Prefixes - Fix handling of symbolic links in read-only game data
    * icons_move_to (deprecated) - Drop declaration of unused variable
    * Improve automatic package format setting
    * Identify Artix as an Arch Linux derivative
  • 2.17.1 protected
    ded3adf5 · 2.17.1 bugfix release ·
    2.17.1 bugfix release
    * icons_get_from_legacy_path - Fix clean-up step, to avoid an error from rmdir.
  • 2.17.0 protected
    6987a943 · 2.17.0 feature release ·
    2.17.0 feature release
    Changes related to launchers
    * Prefix type can be set at the application level (using APP_xxx_PREFIX_TYPE)
      or for all applications (using APPLICATIONS_PREFIX_TYPE), with the following valid values:
      - symlinks: generate our usual symbolic links farm, the default for most application types
      - none: the game is run from the read-only system directory, the default for ScummVM and ResidualVM
    * Prefix path can be overridden for the current game session by setting PLAYIT_PREFIX_PATH
      The default value is: ~/.cache/play.it/prefixes/${GAME_ID}
    * WINE prefix path follows WINEPREFIX if it is set.
      If the variable is unset, it defaults to:
    * A single directory is used for persistent storage of user data.
      It can be set using PLAYIT_PERSISTENT_USER_PATH, and defaults to:
    * The undocumented runtime variable PREFIX_ID is no longer supported.
    Changes related to archives
    * New archive type "tar.bz2".
    * For multi-part archives, type is optional for extra parts.
    * Allow use of unzip for data extraction from mojosetup archives, if bsdtar is not available.
    * Force the use of a specific tool for content extraction:
      - An archive extractor can be set with ARCHIVE_xxx_EXTRACTOR
      - An options strings can be set with ARCHIVE_xxx_EXTRACTOR_OPTIONS
    Changes related to icons
    * Icons inclusion is now done using a single function, icons_inclusion.
    * The following functions are deprecated:
      - icons_get_from_package
      - icons_get_from_workdir
      - icons_move_to
    Other changes
    * Drop option to do partial runs with no actual disk write.
      (--dry-run option)
    * New option provided to change ./play.it working path: --tmpdir
      The default value is $TMPDIR, falling back on /tmp
    Codebase improvements
    * New layout for source files.
    * Use a dedicated check to detect unexpected empty variables.