2.11.0

  * Add ability to generate packages for Gentoo, using --package=gentoo

  * Rewrite of launchers-related functions. Compatibility wrappers still
    exist for old functions

  * archive_guess_type: Automatically set ARCHIVE_TYPE for 7-zip archives

  * Nixstaller archives: Guess header length instead of using hardcoded value

  * Improve support for Java games

  * pkg_write_*: Reliably use archive-specific dependencies list when
    available

  * New option --skip-free-space-check: Bypass free space check, create
    temporary directories under $TMPDIR, defaults to /tmp

  * Fix issue with pre-2.8 compatibility code in icons_linking_postinst

  * move_icons_to: Fix crash when --prefix is set to a custom value

2.10.5

  * select_package_architecture: Fix bug when using --architecture=64 (or
    --architecture=auto on 64-bit systems) on an archive providing 32-bit
    binaries only

2.10.4

  * Improve ShellCheck tests coverage

  * Do not let empty dirs lingering after uninstallation using make

  * main script: Fix wrong usage of 'return' instead of 'exit'

  * main script: Update search paths for library and game scripts

  * help: Fix usage instructions when called from main script

  * packages_guess_format: Fix falling back on default package format value
    when host OS couldn’t be guessed

  * icons_get_from_path: Fail with an explicit error message if called with an
    empty icon path

  * print_instructions: Improve message readability

  * write_bin - init_prefix_dirs: Fix use of globbing when setting the paths to
    user directories

2.10.3

  * write_bin - init_prefix_files: Do not ignore symbolic links in
    $CONFIG_PATH / $DATA_PATH when generating or updating prefix

  * pkg_write_deb: Always set "Multi-Arch: foreign" in packages meta-data,
    fixes issues when trying to install DLC for 32-bit games on 64-bit systems

2.10.2

  * write_bin_run_native: Restore pre-2.10.1 version, as the 2.10.1 fix has
    unexpected side effects

2.10.1

  * Drop pre-built library from repository

  * make install: Use different default paths if not run as root

  * Arch Linux: Add missing package to generic dependency 'gcc32'

  * archive_extraction_innosetup: Hide innoextract warnings during extraction

  * write_bin_build_wine: Always sleep 1 second after using winetricks, as
    some tweaks won’t apply directly if the game is called to quickly

  * Set input field separator to default value (space, tab, newline)

  * write_bin_run_native: Remove unneeded duplicated code

2.10.0

  * get_tmp_dir: New function allowing to set a temporary working directory by
    setting $TMPDIR

  * New archive type 'iso', using bsdtar for data extraction

  * get_value: New helper function allowing to get the value of a variable
    using a dynamically generated name

  * New meta-dependencies 'libudev1' and 'theora' respectively providing
    libudev.so.1 and libtheora.so.0

  * New archive type 'innosetup1.7', allowing to ensure that InnoExtract >= 1.7
    is available

  * icon_file_not_found_error: New function displaying an error if some
    function should work on an icon file that could not be found

  * write_bin_run_dosbox: Improve handling of CD-ROM images for DOSBox games

  * Add support for bzip2 compression

  * Set all application-specific variables even for ScummVM games

2.9.2

  * set_temp_directories: Improve the generation of the temporary work
    directory, dropping "mktemp --dry-run" usage

2.9.1

  * extract_data_from: Do not print "OK" after innosetup variants extraction
    (progress already has a visual feedback)

  * Better handling of game updates and DLC (un)installation by automatically
    updating the user prefix on each game launch

  * meta-script: if called without argument, show usage instructions

  * icon_get_resolution_from_file: Fix a bug with pre 2.8 scripts where the
    resolution value of the first analyzed file would be kept for all files

2.9.0

  * Update license file to keep track of all authors

  * New generic dependency: libcurl

  * Remove shebang from library, as it is always meant to be sourced, never
    directly executed

  * Makefile: Add ability to choose the installation path, now defaulting to
    /usr/local/share/games/play.it for library and scripts, and
    /usr/local/games for meta-script

  * Makefile: Do not install play.it 1.x scripts and library anymore

  * meta-script: Add manpage

2.8.3

  * Fix typo in help(), that led to suboptimal wording when called on a script
    with a single supported archive (previous 2.8.2 fix was incomplete)

  * Add automated shellcheck tests based on GitLab CI

  * Improve syntax based on shellcheck 0.5.0 report

2.8.2

  * icon_extract_ico_from_exe: Suppress wrestool error output

  * icon_get_resolution_from_file: Fix compatibility with scripts targeting
    library version 2.7 or older in a more robust way than what has been done
    in 2.8.1

  * Fix typo in help(), that led to suboptimal wording when called on a script
    with a single supported archive

2.8.1

  * Fix icon_get_resolution_from_file and icons_linking_postinst compatibility
    with scripts targeting library version 2.7 or older

  * WINE: Do not remove links to $HOME for scripts targeting library version
    2.7 or older

2.8.0

  * Greatly reduce time taken by play.it meta-script to identify the correct
    script for an archive, by using file name before falling back on MD5 hash
    sum

  * WINE: Remove most links pointing outside of the WINE prefix, to reduce
    $HOME clutter

  * Rework most icon-related code for easier understanding and maintenance

  * Use ImageMagick to extract .png files from .ico containers

  * Update dependencies automatic detection based on new icon extraction
    methods

2.7.5

  * Fix sort_icons behaviour when icon extraction produced a single file

  * meta-script: Fix broken support for ./play.it 1 scripts

2.7.4

  * Fix write_bin_winecfg breaking init_prefix_dirs in winecfg launcher

2.7.3

  * archive_extraction_innosetup: Fix InnoSetup version test

  * Fix archives_get_list not detecting archives named ARCHIVE_(…)_OLD

  * Fix error message displayed by write_metadata when called on an unknown
    package

2.7.2

  * Fix an inverted test in archive_get_infos that broke the MD5 integrity
    check again, the 2.6.2 fix having been accidentally reverted on 2.7.0
    release

2.7.1

  * Fix variable leak during multi-parts archive automatic handling

2.7.0

  * InnoSetup archives: Check ability of available innoextract version to
    extract the target archive before trying to proceed with extraction

  * Try to guess the value of ARCHIVES_LIST if it is not set by the script

  * Use 'APP_ICON' as a fallback value for APP_ICONS_LIST if it is not set

  * Add automatic detection of multi-parts archives

  * New function get_package_version allowing a reliable way to use different
    version values for multiple packages generated from a single archive

2.6.2

  * Fix an inverted test in archive_get_infos that broke the MD5 integrity
    check

2.6.1

  * Fix postinst_icons_linking not working on more than one single app

  * Rework most archive-related code for easier understanding and maintenance

2.6.0

  * Add ability to build only packages for a given architecture

  * Add automatic architecture handling to print_instructions

  * New function prepare_package_layout providing a wrapper for organize_data

  * Improve sort_icons so it can be used on single .png file produced by
    convert

  * Add --dry-run switch, running tests but not extracting data nor building
    packages

  * Use a dedicated function to guess package format to build from host OS

2.5.3

  * When no supported archive is provided, add download URL to archives list

  * Fix variable leaking function scope when calling print_instructions

  * Follow symblic links when copying native game binary in user prefix

2.5.2

  * Fix init_prefix_files crashing when some files exist in PATH_DATA or
    PATH_CONFIG with no equivalent in PATH_PREFIX

2.5.1

  * Add a patch allowing to chose wether or not the desktop files should
    include the full path to the launcher script (default includes it and does
    not use $PATH, so custom values for installation prefix can be used
    without further tweaking)

  * Improve patches syntax following ShellCheck feedback

  * Display an error when using an invalid value for PKG

  * Fix error displayed if calling extract_icon_from on an unsupported file
    type

  * Improve user prefix generation

  * Improve library syntax following ShellCheck feedback

2.5.0

  * Add support for games requiring wine-staging patches

  * Add support for 64-bit WINE games

  * Add support for Windows MSI installers

  * Add support for Microsoft cabinet archives

  * New archive type 'nullsoft-installer'

  * New archive type value 'innosetup_nolowercase' allowing to skip files
    names conversion to lower case

  * New archive type 'zip_unclean'

  * New function use_package_specific_value allowing to get package-specific
    value for a given variable name (if such value exists)

  * New function use_archive_specific_value allowing to get archive-specific
    value for a given variable name (if such value exists)

  * Add 'xrandr' and 'xgamma' to the generic dependencies

  * Add automatic dependencies detection for archive types 'mojosetup_unzip'
    and 'tar'

2.4.2

  * Fix handling by init_prefix_files of files created after the first game
    launch

2.4.1

  * Fix messed up icon path when using get_icon_from_temp_dir

2.4.0

  * Add option to load regedit files on WINE prefix initialization

  * New function get_icon_from_temp_dir, to get an icon in .png format
    directly from the source archive

2.3.2

  * Fix launchers broken in 2.3.1

2.3.1

  * Use full path to game binary in launchers, to avoid issues when using
    non-default install path

  * Do not store temporary files outside of prefix

  * Drop post-run user directories clean-up, redundant with another function

2.3.0

  * Improve handling of MojoSetup extraction with unzip ending with an error
    code

  * Improve handling of user directories

  * Add new packages to the list of generic dependencies

  * Add a patch allowing to change the default package compression method

  * Remove the need to manually clean-up package scripts

  * Preserve symbolic links when copying files

2.2.0

  * Automatically detect archive type for *.rar files

  * Allow to use multiple fallback values for $ARCHIVE_PATH and $ARCHIVE_FILES

  * Make /tmp/play.it world-writable to allow using ./play.it more easily on
    shared systems

  * Allow to set package-specific values for $APP_OPTIONS, $APP_PRERUN and
    $APP_POSTRUN

  * Add $APP_POSTRUN support to WINE launchers

  * Skip building already existing packages

  * New distro-agnostic method to declare dependencies

2.1.1

  * Fails gracefully if organize_data() is called before setting $PKG

  * Fix a bug where postinst_icons_linking() would erase the prerm/postinst
    prior content instead of appending to it

  * Fix a bug with wrestool, where calling it once with the --name option
    would have this option been carried out to all subsequent invocations

2.1.0

  * First fully installable version of ./play.it

  * New script 'play.it' automatically loading the adequate game-specific
    script for the archive given in argument

  * Display an error when calling a script with unsupported arguments

  * New function easing the management of icons provided by post-installation
    links

  * New application type allowing to run native games without using a
    ./play.it prefix

  * The library can now be loaded without implying that it has been called by
    a ./play.it script, making it easier to use by third-party projects

2.0.3

  * Fix error displayed when building .deb packages on systems without apt

  * Better handling of spaces in directories names when displaying
    installation instructions

  * Work around WINE bug 41639

2.0.2

  * Fix a bug with the copy of the game binary in the user prefix for some
    native games

  * Work around WINE bug 29661 for WINE versions prior to 1.9.20

2.0.1

  * Test the validity of options values early in the script execution to throw
    an error before any potentially long task

  * Print 'OK' on potentially long tasks completion without a visual
    progression indicator

  * If host OS auto-detection failed, display a warning before falling back on
    deb format

  * On all distributions providing apt >= 1.1, installation instructions show
    apt usage instead of dpkg + apt-get
