-
2.21.2a18052e2 · ·
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.1e4c26b33 · ·
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.0891bfd50 · ·
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.1314233de · ·
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.02f7f531f · ·
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: - APP_xxx_DOSBOX_PRERUN - APP_xxx_DOSBOX_POSTRUN 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.00fd95208 · ·
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 - PATH_ICON_BASE * "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: - CONTENT_LIBS_xxx_PATH - CONTENT_LIBS_xxx_FILES As with game data files and documentation files, a single-digit number can be appended to "LIBS": - CONTENT_LIBS0_xxx_FILES - CONTENT_LIBS1_xxx_FILES - (…) - CONTENT_LIBS9_xxx_FILES 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.324e544c4 · ·
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.252dc6f12 · ·
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.1fa1321ff · ·
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.07e292e66 · ·
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: "PKG_xxx_DEPENDENCIES_LIBRARIES" * 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: "WINE_REGEDIT_PERSISTENT_KEYS" * 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.06987a943 · ·
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: ~/.cache/play.it/wine/${GAME_ID} * A single directory is used for persistent storage of user data. It can be set using PLAYIT_PERSISTENT_USER_PATH, and defaults to: ~/.local/share/games/${GAME_ID} * 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.
-
2.16.1ceda54ef · ·
2.16.1 bugfix release * icons_list_dependencies - Rely on application_icons_list to get the list of icons. * launcher_write_desktop - Drop requirement on APP_xxx_TYPE. * get_context_specific_value: - Do not try to guess a package identifier if none is set. - Do not look for an archive-specific value before an archive is set. * Check for dependencies only after the main archive is set.