Releases: 89luca89/distrobox
1.5.0
What's Changed
Version 1.5.0 introduces some highlight features like:
- additional-packages
flag in create
, to directly add packages during init
- NVidia GPU Support for containers: distrobox will attempt to share host's drivers with the container!
- Distroboooox ... ASSEMBLE! New distrobox-assemble
command lets you declare your distroboxes-as-code, in an easy config file
- Now removing a distrobox, it will un-export apps and binaries exported by it
- Init is now more flexible in how it adds packages, allowing for greater compatibility
- Init supports now systemd containers using --additional-packages systemd
during creation
- General reliability improvements, lots of bug fixes and QoL
This release counts 36 contributors, and they count for over 30% of the total commits of the release! 🎉 Thanks to everyone helping! 🎉
Full Changelog:
- website: new website by @daudix-UFO in #784
- all: allow root user to run Distrobox by @luc14n0 in #582
- assemble: add new command for distroboxes-as-code
- assets: add distro's icons
- ci: trigger differential-shellcheck workflow on push by @jamacku in #681
- create: add
--additional-packages
flag - create: allow the ability to "unshare" netns and ipc by @ldelossa in #609
- create/enter: bump default fedora-toolbox image to 38, update examples by @alexdesiqueira in #710
- create/init: move localtime mount in init. Fix #715
- create: check before adding mounts. Fix #664
- create: fix check while using verbose. Fix #583
- create: fix executable scripts lookup by @mkoura in #687
- create: ignore net files when unshare nets by @bubuntux in #766
- create: fix oversight in #422 by @misobarisic in #616
- docs: add deepin support to the documentation by @BLumia in #768
- docs: added crystal linux as a container option by @dnkmmr69420 in #686
- docs: added nix portable as an option for nix options by @dnkmmr69420 in #691
- docs: fix faulty example ini file by @john-ghatas in #761
- docs: fix microOS install instructions by @FarisFiroz in #655
- docs: fix spelling of openSUSE by @grisu48 in #733
- docs: fix typos by @kianmeng in #662
- docs: list wget as an alternative install option by @mirkobrombin in #663
- docs: update compatibility.md by @bubuntux in #649
- docs: update compatibility.md by @eagavi in #751
- docs: update distrobox-export.md by @bubuntux in #676
- docs: update integrate_vscode_distrobox.md by @colorfulmoth in #767
- docs: update link to "Using podman or docker inside a distrobox" by @thorntonmc in #617
- docs: update ublue URL by @castrojo in #636
- docs: updated Extension Name by @sfalken in #787
- docs: new logotype by @daudix-UFO in #660
- docs: typo in readme by @daudix-UFO in #684
- enter: fix $PATH when it contains spaces by @black-desk in #675
- enter: fix the quoting of arguments by @akinomyoga in #699
- enter: fix unexpected pathname expansions by @akinomyoga in #698
- export: remove service export, now we have initful container for that.
- export: support exporting by app name
- export: add default path for exported bins (~/.local/bin)
- export: add login shell option by @Scafir in #651
- export: copy icons only if they don't already exist. Fix #708
- export: fix desktop file with spaces. Fix #693. Fix #694
- export: fix exporting issues with applications that have symlinked desktop files. Fix #580
- export: fix exporting issues with big applications with multiple iconts. Fix #711. Fix #785
- export: fix issue when a symbolic link points to a non-existing file by @bubuntux in #792
- export: simplify
distro_binary
script by @akinomyoga in #697 - extras: add pause infra_image to podman. Fix #667
- extras: update podman and crun versions in extras/install-podman by @GabMus in #689
- extras: Update podman to version 4.5.1 and crun to version 1.8.5 by @sonulohani in #799
- generate-entry: add rootful support
- generate-entry: drop apparent debug statements by @cgzones in #748
- generate-entry: fix typo and incorrect key for generated desktop entry
Categories
by @ian-h-chamberlain in #585 - host-exec: bump host-spawn to 1.4.1 and do proper version comparison by @pavelxdd in #647
- host-exec: bump host-spawn version
- host-exec: use either wget or curl
- host-exec: use tty command to check if we're in tty or not. Fix #730
- init: add additional-packages support
- init: add nvidia integration by 89luca89 in #658
- init: link xdg-open with host-exec if not present. Fix #645
- init/docs: add support for Chainguard Wolfi base image
- init: add users to sudo/wheel group if present
- init: do not fail when systemctl mask errors. Fix #641
- init: fix busy mounts by forcing umount. Fix #426
- init: fix check on ostree home detection. Fix #562
- init: fix mounting of symlinks, fix use of apt on older systems during upgrades
- init: fix skel support by @inspectorgadget03 in #567
- init: make init binary discovery more solid
- init: mount zoneinfo from host
- init: only install mesa vulkan packages if available by @ericcurtin in #702
- init: reuse locked flags when mounting read-only by @morganhjk in #635
- init: search for packages availability before installation by 89luca89 in #788
- install: more aesthetically pleasing install script by @misobarisic in #696
- list: add RAM and CPU usage for each container
- list: add distrobox ls by @grisu48 in #734
- list: terminal display fixes by @cgzones in #742
- rm: attempt deleting exported binaries and apps during deletion
- rm: pass verbose mode to distrobox-generate-entry by @cgzones in #747
- upgrade: do not use sudo, directly execute as root using container manager
This release Contributors
@BLumia @FarisFiroz @GabMus @Scafir @akinomyoga @alexdesiqueira @anirbandey1 @black-desk @bubuntux @castrojo @cgzones @colorfulmoth @daudix-UFO @dfaggioli @dnkmmr69420 @eagavi @ericcurtin @grisu48 @ian-h-chamberlain @inspectorgadget03 @jamacku @john-ghatas @juhp @kianmeng @ldelossa @luc14n0 @mirkobrombin @misobarisic @mjlbach @mkoura @morganhjk @pavelxdd @pos-ki @sfalken @sonulohani @thorntonmc
Full Changelog: 1.4.2.1...1.5.0
1.4.2.1
What's Changed
- CI: do not use scraping, use fixed version for pandoc
- all: fix setting up default images and names
- compatibility: add gentoo docker image by @89luca89 in #449
- compatibility: change debian 8 image
- completion: Remove shebangs from bash completions by @michel-slm in #431
- completion: add compatibility list flag, 🎉 add image name autocompletion 🎉
- create/enter/export: Add home prefix by @misobarisic in #422
- create: Fix using --home with space in path. by @bsvh in #419
- create: use --entrypoint to override entrypoint defined by image by @tomeichlersmith in #541
- distrobox: remove trap from the wrapper. Fix #467
- docs: Add resource limitation tips by @thjderjktyrjkt in #515
- docs: Fix example configuration file by @thegamerhat in #532
- docs: Fix typo "Stean" instead of "Steam" by @Hazzatur in #472
- docs: Fixed toolbox URL by @thegamerhat in #501
- docs: Remove quote marks in fish tutorial by @thjderjktyrjkt in #428
- docs: Resolve list rendering issues by @TheJoeSchr in #437
- docs: Small clarifications by @damianoognissanti in #475
- docs: Update handler function to support bash scripts by @gagallo7 in #461
- docs: add more usage examples
- docs: add post - Run libvirt in distrobox
- docs: add warning to experimental desktop-in-distrobox post
- docs: make podman-host executable by @mirkobrombin in #558
- docs: mention other commands in readme, fix typo in useful_tips.md by @misobarisic in #421
- docs: remove flatpak installation method
- docs: update NixOS compatibility, Fix #499
- docs: update documentation to use host-exec for podman/docker inside the container. Fix #494
- enter/export: handle quotes in arguments in a better way by @89luca89 in #448
- enter: exclude LANG environment variables
- enter: remove detach-keys, work on #398
- export/enter: inject container ID at enter-time, in order to be used in export. Fix #455
- export: fix variable declaration
- export: look at global user services while trying to export a service by @bellegarde-c in #464
- export: use realpath on icons. Fix #528
- init: Add init and pre-init hook defaults as supported config options by @mtalexan in #542
- init: add missing findmnt in OpenSUSE
- init: better systemd unit cleanup
- init: copy skel files only if using custom home. Fix #458 #435
- init: fix overriding of SHELL at each start, override default SHELL only the first time
- init: fix sudoers spam (missing " in check) by @0x0ade in #465
- init: fix void-linux package incompatibility error
- init: fix vte installation; add --noreplace to prevent repeated builds by @xgqt in #446
- init: integrate with kerberos host only if it is installed on the host. Fix #454
- init: skip external mounts when searching for sockets, Fix #519
- init: specify package for gentoo. Fix #530
- init: use container's path for SHELL instead of host's one. Fix #442
- init: use findmnt instead of mountpoint, fixing compatibility with old distributions. Fix #370
- install-podman: Fix cni_plugin_dirs by @descention in #474
- install: do not use scraping, use fixed version. Fix #429
- main: Do not open manpager automatically by @misobarisic in #441
New Contributors
- @bsvh made their first contribution in #419
- @TheJoeSchr made their first contribution in #437
- @Hazzatur made their first contribution in #472
- @damianoognissanti made their first contribution in #475
- @descention made their first contribution in #474
- @bellegarde-c made their first contribution in #464
- @gagallo7 made their first contribution in #461
- @0x0ade made their first contribution in #465
- @thegamerhat made their first contribution in #501
- @tomeichlersmith made their first contribution in #541
- @mtalexan made their first contribution in #542
- @mirkobrombin made their first contribution in #558
Full Changelog: 1.4.1...1.4.2
1.4.1
Quick bugfix release, to work around an upstream docker bug while using btrfs file systems.
Also adding autocompletion support is nice 😄
What's Changed
- completion: add bash completion support!
- create/enter: revert 52a34fb
- create: add --no-entry by @misobarisic in #404
- docs: update host and guest lists by @michel-slm in #410
- docs: redundant "else" in readme by @misobarisic in #414
- init: add mesa and vulkan drivers by default
- init: don't query filesystems mounted by beesd by @GermanBread in #418
- install-podman: update to 4.2.1
- install-podman: install crun, it generally works better in rootless. Fix #406
- install-podman: fix default configuration, Fix #411, Fix #413
- ephemeral: do cleanup even in case of errors
- generate-entry: auto-discover curl or wget. Fix #407
New Contributors
- @GermanBread made their first contribution in #418
Full Changelog: 1.4.0...1.4.1
1.4.0
1.4.0
This release sees a lot of changes, thanks to all the contributors 😄
- New
distrobox upgrade
command, to update all the containers at once - New
distrobox generate-entry
command, to add your distrobox to the app list- note that from 1.4.0 onwards this will be the default behaviour for all the new containers created
- New
distrobox ephemeral
command, to quickly spawn, use and delete a container. All-in-one. - New
install-podman
script to install Podman in $HOME. Handy for @ValveSoftware SteamDeck users - Distrobox-host-exec now uses exclusively the
host-spawn
command from @1player - Better support for AD/LDap and Kerberos usernames
- Better support for Nix/Guix hosts
- Plenty of bug fixes and CI/Test improvements 😄
Complete Changelog
- CI: add another Shell linter - Differential-ShellCheck by @jamacku in #372
- all: Implement options for sudo program customization by @PgBiel in #346
- all: add /usr/etc/distrobox/distrobox.conf as possible config file
- all: respect XDG_CONFIG_HOME variable for configs
- clone: fix image save name to work with podman's lowercase requirements
- create: Add Nix System Path and Initialize a Nix Flake by @FedX-sudo in #368
- create: mount the store directory of Guix. by @cireu in #394
- create: move distrobox utility mounts into enter. Fix #315
- docs/extras: add support for SteamOS, add install-podman script to perform persistent installs
- docs: Add more getting started examples by @profetik-777 in #389
- docs: Clarify smallness of common cloud images by @castrojo in #383
- docs: add distrobox's flatpak installation method
- Still in beta. Check here
- docs: fix a mistake for gentoo dockerfile by @top1Ashier in #361
- enter: fix automatic container creation when '-r' is used by @dfaggioli in #364
- enter: improve performance for start container logs
- enter: make it more location independent, Fix #354
- enter: re-add missing USER variable inside env
- enter: reformat code, fix backtick detection. Fix #395
- enter: use container's login shell when no command is provided
- export: Add some checks for fixing issues due to dirs or manpages missing (on MicroOS) by @dfaggioli in #365
- export: Enable export of local applications by @haakobja in #291
- export: use a more robust way to find container's name or ID. Fix #375
- feat: Replace call to 'rev | cut' with 'grep' by @adam-gaia in #342
- generate-entry: add new command to create and delete desktop entries for distroboxes
- host-exec: add a flag to distrobox-host-exec to skip the installation prompt by @codexMechanicus in #363
- host-exec: replace chroot with host-spawn (#349)
- init: add kerberos KCM cache from https://github.com/containers/toolbox Fix #323
- init: add quotes around username to avoid problems with AD/LDap usernames
- init: avoid xbps errors by keeping it updated
- init: be aware of absolute symlinks in /etc and try to handle them. Fix #385
- init: better match error messages. Fix #390
- init: do host file sync only if they exist
- init: fix mountpoint for home in ostree based os. This will fix problems with the package installation on Fedora
- init: fix tzdata handling
- init: improve systemd integration for rootful containers
- install: add missing help entry for --next/-N flag
- install: use either wget or curl by @gcoakes in #376
- list/host-exec: fix tty detection
- list: Add no-color flag to list by @misobarisic in #353
- list: disable colors when not in a terminal. Fix #352
- remove deprecated path feature by @misobarisic in #356
- rm: do not use a default name value, add multi-name support
- ephemeral: add ephemeral distrobox command (#335) by @juhp in #336
- upgrade: add upgrade command to perform single or batch update on distroboxes, Fix #240
New Contributors
- @haakobja made their first contribution in #291
- @adam-gaia made their first contribution in #342
- @PgBiel made their first contribution in #346
- @orowith2os made their first contribution in #355
- @top1Ashier made their first contribution in #361
- @codexMechanicus made their first contribution in #363
- @gcoakes made their first contribution in #376
- @castrojo made their first contribution in #383
- @profetik-777 made their first contribution in #389
- @jamacku made their first contribution in #372
- @cireu made their first contribution in #394
Full Changelog: 1.3.1...1.4.0
1.3.1
Mainly bugfix release:
What's Changed
-
all: allow users to specify non_interactive=true/false by @dfaggioli in #302
-
all: improve code readability and formatting, follow happy paths
-
create: make it clearer to the user the container creation output, specifying the image and name used. This is useful in case the user is using default image or name
-
create: remove check about clone and image name Fix #320
-
docs: remove WSL2 entry, cannot actively check if works correctly. Better not give false hopes
-
docs: typo fix by @misobarisic in #317
-
enter: automatically create containers during 'distrobox-enter' (if they don't exist!) by @dfaggioli in #302
-
export: add --root to rooful containers. Fix #313
-
export: export: fix regression in export app introduces in 4522f29
-
export: fix DBusActivatable not working by @89luca89 in #300
-
host-exec docs: 755 -> 644 by @misobarisic in #304
-
host-exec: change [N/y] to [y/N] by @misobarisic in #306
-
init: fix apt hooks to make systemd install work by @89luca89 in #297
-
init: move zypper recommends after the basic packages install, make OpenSUSE containers creation faster
-
install: add --next flag to install latest commit from git
-
stop: update misleading comment by @misobarisic in #307
-
uninstall: interactive rm won't work when executed throught pipe
-
docs: update compatibility list
- Confirm support for:
- Redhat UBI 9
- Redhat UBI 9-init
- Redhat UBI 9-minimal
- AlmaLinux 8-minimal
- AlmaLinux 9-minimal
- AlmaLinux 9
- Confirm support for:
New Contributors
Full Changelog: 1.3.0...1.3.1
1.3.0
Bumping version to 1.3.0 as this is a quite big release, adding:
- new tools and commands!
- rootful containers support
- new supported distros
- improved integration with the host
- many fixes and improvements
Full changelog
- install: Stop calling git by @nathanchance in #261
- all: use new default name for distrobox containers to avoid conflicts with toolbx
- create/init: move some mounts inside init.
- create: fix command suggestion after container creation
- create: fix enter command suggestion for rootful use case
- create: on newest podman keep-id is only supported in rootless mode, Fix #267
- create: prompt to download latest image by default by @juhp in #289
- create: update default image to Fedora-Toolbox 36
- docs/usage: document 'stop' properly
- docs: Add tutorial for fish in execute_commands_on_host.md by @thjderjktyrjkt in #257
- docs: Couple of small docs & comments fixes by @dfaggioli in #273
- docs: add entry on how to use qemu to use containers of different architectures
- docs: change command count by @misobarisic in #265
- docs: couple of small docs & comments fixes (#273)
- docs: fix README command count typo by @misobarisic in #292
- docs: signal a problem on OpenSUSE Leap 15.3 and 15.4 by @massimo-zaniboni in #285
- docs: update commands for graphical sessions, Fix #276
- distrobox-host-exec: new tool for host command execution by @dfaggioli in #283
- distrobox: Error out on invalid options by @nathanchance in #255
- distrobox: add support for rootful containers
- enter: Fixed typo in bash option by @nogajun in #259
- enter: do not use full path for default shell, let the container resolve it. Fix #251
- enter: fix eval when variable is not found. #268
- enter: fixup comment around --headless
- enter: add support for --no-workdir/-nw. Fix #231
- enter: improve fist-start logging and show user some progress
- enter: improve logging steps by @89luca89 in #290
- export: Fix distrobox-export --bin error handling by @michel-slm in #275
- export: fix exporting of icons for hardcoded paths
- export: fix usage in docker
- export: remove redundant command check on app export, fix quoting for commands containing them. Fix #225
- list: add -s/--size option to show container disk usage
- init: Add AlmaLinux 9 to tested containers distros by @michel-slm in #280
- init: Fix gentoo support by @nullpointerarray in #284
- init: add more basic tools, unminimize apt-get/dnf/yum/pacman/zypper - install langs and docs
- init: add pinentry to base package list by @89luca89 in #256
- init: fix missing variables on some container images
- init: mount home in canonical place for ostree systems. Fix #282
- init: move host's theme, fonts, icons integration to /usr/local/share, freeing user's home. Fix #253
- init: move some mountpoints as rw to avoid mount Unknown error 5005. by @89luca89 in #264
- init: remove verbose for keepalive sync loop, or logs will fill on the long run.
- init: Implement pre-initialization hooks by @michel-slm in #269
- init: Some openSUSE improvement by @dfaggioli in #262
- init: add support for microdnf, support ubi8 and ubi7 minimal. Fix #254
- init: fix ash shell package detection, Fix #247
- init: keep timezone, dns and hosts actively synced with host
New Contributors
- @nogajun made their first contribution in #259
- @thjderjktyrjkt made their first contribution in #257
- @michel-slm made their first contribution in #269
- @juhp made their first contribution in #289
- @massimo-zaniboni made their first contribution in #285
Full Changelog: 1.2.15...1.3.0
1.2.15
What's Changed
- docs: Fix misspellings by @maiki in #232
- docs: Update host-distro instruction for openSUSE Tumbleweed and MicroOS by @dfaggioli in #218
- docs: Update run_latest_gnome_kde_on_distrobox.md by @bam80
- init: Allow all package manager checks to run by @nathanchance in #224
- init: Fix compatibility with init containers by @89luca89 in #216
- init: add pacman post-hook to neutralize systemd post-hooks in case we're not in an init-enabled container
- init: exclude dbus system socket sharing, it doesn't work and creates confusing error messages, Fix #246
- init: fix missing check before umounting on init-enabled containers
- init: fix new archlinux mount: /usr/lib/libmount.so.1: version MOUNT_2_38 not found (required by mount) error, upgrade before installing packages
- init: fix regression introduced in 3f014de where containers where thinking they were on a booted systemd
- init: improve arch linux integration - add pacman pre-post hooks to reduce number of errors occurring
- create/enter: print error messages only when not in dry-run
- create: add work around for incompatibility between systemd/journald ACLs and overlayfs, Fix #243
- enter: check for container errors during first start, Fix #242
- enter: do not instantiate a tty if we do not have one
- enter: extract container SHELL from inspect, use that as fallback if no custom command provided #227
- enter: fix boolean logic on tty use
- enter: fix unbound variable with --dry-run by @vyskocilm in #244
- export: hide unuseful stderr in export
New Contributors
- @maiki made their first contribution in #232
- @bam80 made their first contribution in #233
- @vyskocilm made their first contribution in #244
Full Changelog: 1.2.14...1.2.15
1.2.14
- README: Installation update by @misobarisic in #179
- README: New Logo by @j4ckr3d in #198
- docs: add more usage examples and tips
- docs: document ssh x forwarding, fix #172
- docs: better specify security implications of distrobox
- docs: update compatibility list
- all: detect if running sudo and improve error messages for container managers, pointing to documentation #177
- all: better variables escaping, Fix #183
- fix: move selinux fix into create phase
- install: Remove permissions check and dest_path creation by @nathanchance in #180
- install: Prefix install/uninstall option by @misobarisic in #190
- install: inform user about PATH at end of installation #177
- enter: escape --workdir argument #181 by @nm004 in #182
- enter: Enter at workdir through child path of '/run/host' by @ennec-e in #186
- stop: Add distrobox-stop command by @misobarisic in #196
- enter: use container's $PATH when entering by @gbritton in #209
- create: resolve path before mounting #204
- init: If user already exists in /etc/passwd set props again, do not skip by @ennec-e in #176
- init: Fix grep match of very short user or group names. by @lynxnot in #197
- init: tighter systemd integration with host
- init: support LDAP/AD mail usernames (#205)
- export: support exporting of system flatpaks and document it, Fix #171
- CI: introduce a pipeline to check compatibility problems from the table of supported guests on both docker and podman
News
- This release is the first to introduce the possibility to use configuration files and env variables read HERE on how to use
- This release introduces a CI to ensure the compatibility is met for the various guest distros
New Contributors
- @nm004 made their first contribution in #182
- @ennec-e made their first contribution in #176
- @lynxnot made their first contribution in #197
- @gbritton made their first contribution in #209
Thanks as always to all contributors! @j4ckr3d @misobarisic @nm004 @ennec-e @lynxnot @gbritton @nathanchance
Full Changelog: 1.2.13...1.2.14
1.2.13
What's Changed
- docs: Packages links and install instructions for openSUSE and SLE as host distros by @dfaggioli in #157
- docs: update compatibility.md by @FedX-sudo in #151
- docs: Fix usage.md url on README.md by @bandithijo in #142
- docs: typo fix by @misobarisic in #140
- [Improvement] NixOS system upgrade breakage fix by @deinferno in #146
- [Improvement] XDG_.*_DIRS environment fixes by @deinferno in #147
- distrobox: version flag by @misobarisic in #165
- create/enter: create/enter: use cd + pwd to find absolute paths @deinferno in #160
- install: conditional default install path by @misobarisic in #167
- create: Add support for /nix/ volume within the container by @FedX-sudo in #148
- create, enter: more concise messages by @misobarisic in #138
- create: default to Y by @misobarisic in #141
- create/init: add support for using init systems inside the containers
- create/init: add support for custom init-hooks, Fix #118
- create: follow /dev/shm symlinks if present #145
- init: run apt invoke only if path is a mountpoint #159
- init: do not mount nscd sockets or user management will fail
- init: add more readonly files to rpm macro
- init: fix vte prompt check
- create/enter: add
--dry-run
option to only print docker/podman command to execute - enter: add FHS paths to XDG_DATA_DIRS and XDG_CONFIG_DIRS too (#147)
- docs: confirm Amazon Linux 2022 container support
- export: add StartupWMClass where missing, in desktop files
- export: ensure export is not running as root, Fix #124
New Contributors
- @bandithijo made their first contribution in #142
- @deinferno made their first contribution in #146
- @dfaggioli made their first contribution in #157
Full Changelog: 1.2.12...1.2.13
1.2.12
What's Changed
- Create Manuals by @misobarisic in #99
- create: Do not require distrobox-{init,export} to be in PATH by @nathanchance in #131
- init: Fix permissions of $HOME/.local/share by @nathanchance in #132
- create/export: Prefer 'uname -m' to /etc/hostname by @nathanchance in #133
- init: Check existence of /etc/apt/apt.conf.d by @nathanchance in #134
- init: Fix check for find by @nathanchance in #137
- init: fix sudo hostname resolution on newer debians
- export: add container_name to app label, Fix #109
- export: fix pixmaps export
- install/uninstall: use install in place of cp+chmod, improve uninstallation process
- create: map additional host's user groups, fix #121 (support for using
docker
andlibvirt
sockets) - create/enter: support for passing additional volumes and
additional-flags
to podman or docker by @89luca89 in #136
New distros:
- init: Clear Linux support by @89luca89 in #107
- init: Add support for Centos Stram 8, 9 and RedHat UBI @alcir in #69
- init: confirm compatibility with AlmaLinux UBI images
New Contributors
- @nathanchance made their first contribution in #131
Full Changelog: 1.2.11...1.2.12