1673 Commits
Author SHA1 Message Date
Luca Di Maio cbf6a99ff6 Fix DOCS links
Signed-off-by: Luca Di Maio <luca.dimaio1@gmail.com>
2026-03-30 15:57:55 +02:00
6155b5e33e docs(posts): announcing Distrobox v2 (#2032)
* docs(posts): announcing v2 post

Co-authored-by: 89luca89 <luca.dimaio1@gmail.com>
Co-authored-by: Alessio Biancalana <alessio@dottorblaster.it>
Co-authored-by: Fabrizio Sestito <fabrizio.sestito@suse.com>

* docs(posts): distrobox next architecture

Co-authored-by: 89luca89 <luca.dimaio1@gmail.com>
Co-authored-by: Alessio Biancalana <alessio@dottorblaster.it>
Co-authored-by: Fabrizio Sestito <fabrizio.sestito@suse.com>

* docs: fix link to distrobox next architecture

---------

Co-authored-by: 89luca89 <luca.dimaio1@gmail.com>
Co-authored-by: Alessio Biancalana <alessio@dottorblaster.it>
Co-authored-by: Fabrizio Sestito <fabrizio.sestito@suse.com>
2026-03-29 18:47:14 +02:00
Emanuele De Cupis 02da184062 chore(ci): v2 release candidate workflow (#2031) 2026-03-28 15:09:55 +01:00
Luca Di Maio c6cc6a3d5b init: chmod shadow files to 0400 for container storage compatibility (#2020)
On container storage drivers where CAP_DAC_OVERRIDE is not effective
(e.g. fuse-overlayfs in rootless mode, or VMs like Docker Desktop /
Colima on macOS), root cannot read files with mode 000 despite having
the capability in its effective set. This causes pam_unix.so account
management to fail with "Authentication service cannot retrieve
authentication info" when calling getspnam(), because glibc's NSS
files backend cannot open /etc/shadow.

Fedora and Arch ship /etc/shadow and /etc/gshadow as mode 000, relying
on CAP_DAC_OVERRIDE to grant root access. Set them to 0400 (owner-read)
after password setup so that standard POSIX owner checks suffice.

Signed-off-by: Luca Di Maio <luca.dimaio1@gmail.com>
2026-03-19 14:42:55 +01:00
distrobox-docs-bot 68990f5486 Automatic Man Page Update
Signed-off-by: distrobox-docs-bot <distrobox-docs-bot@users.noreply.github.com>
2026-03-19 10:54:08 +00:00
Eric Curtin 4e3dbe5b9a all: add Docker Desktop on macOS compatibility (#2019)
On macOS, Docker Desktop mounts all paths as private (rprivate) in its
Linux VM via VirtioFS, so rslave/rshared bind propagation is rejected.
Strip these propagation options from the generated docker create command
when running on Darwin.

Also fix a bug in distrobox-init where the socket path prefix stripping
used `sed 's|/run/host||g'` with the global flag, causing paths like
`/run/host/run/host-services/ssh-auth.sock` (a Docker Desktop socket)
to be mangled into `-services/ssh-auth.sock`. The leading `-` was then
parsed as a flag by `rm`, crashing the init script. Replace with shell
parameter expansion `${host_socket#/run/host}` which strips the prefix
exactly once.

distrobox-init detects "rootful" mode by checking if /run/host/etc/shadow
is accessible and owned by root. On macOS with Docker Desktop, all containers
run as root inside the Linux VM, so this check always succeeds even for
containers created without --root, causing a spurious first-shell password
prompt.

Fix this by having distrobox-create mount /dev/null:/run/.distrobox.rootless:ro
for every rootless container. distrobox-init now checks for this marker first
and skips the shadow heuristic when it is present.

This is backward-compatible: existing containers without the marker continue
to use the shadow-file heuristic as before.

Signed-off-by: Eric Curtin <eric.curtin@docker.com>
2026-03-19 11:53:26 +01:00
Daniel Tang 3e49b78712 fix: Pass -xdev to /bin/find (#1998)
I had mounted my Docker at `/run/home/docker`. Docker then mounted my
home folder somewhere under an overlayfs folder there. Distrobox had
appeared frozen at "Setting up host's sockets integration..." as it
tried to traverse my entire home directory on a slow hard disk.

No relevant socket was found on any submount, so excluding the submounts
should be OK.
2026-03-03 10:53:12 +01:00
Andrey A. Limachko fd1a0da78d feat: add ALT Linux compatibility improvements (#1989)
* fix: use mkdir -p to prevent error on existing user tcb directory

Use mkdir -p in setup_aptrpm() to prevent command failure if
/etc/tcb/$user already exists.

Signed-off-by: Andrey Limachko <liannnix@altlinux.org>

* fix: disable pam_mktemp for PAM stack compatibility

Private tmp directory is not needed as /tmp is mounted from host system.
Using pam_mktemp would break the PAM stack.

Signed-off-by: Andrey Limachko <liannnix@altlinux.org>

* fix: ALT Linux --init compatibility via runuser wrapper

ALT Linux ships its own su(1) implementation incompatible with util-linux
su flags. distrobox-enter passes -m, --pty, -s, -c when unshare_groups is
enabled (--init containers). These flags are rejected by ALT's su, causing
instant failure.

Add /usr/local/bin/su wrapper that delegates to /usr/sbin/runuser (from
util-linux, always present in ALT). The wrapper is placed in /usr/local/bin
to survive package updates, and the existing generic --pty-stripping wrapper
is guarded to not overwrite it.

Fix PATH ordering in distrobox-enter to ensure /usr/local/bin precedes
/usr/bin when host PATH is passed through. This follows FHS conventions
and guarantees the wrapper is found first.

Signed-off-by: Andrey Limachko <liannnix@altlinux.org>

---------

Signed-off-by: Andrey Limachko <liannnix@altlinux.org>
2026-03-03 10:11:21 +01:00
Gerhard de ClercqandAlessio Biancalana 4f86c35af7 docs: update README with sandboxing alternatives (#2009)
* Update README with sandboxing alternatives

Added information about alternatives to Distrobox with sandboxing capabilities.

* Fix docs/README.md typo

Co-authored-by: Alessio Biancalana <alessio@dottorblaster.it>

---------

Co-authored-by: Alessio Biancalana <alessio@dottorblaster.it>
2026-02-27 17:50:53 +01:00
dannyhpy 21afad192b init: zypper: use drop-in config file if possible (#2007)
In openSUSE Tumbleweed, the /etc/zypp/zypp.conf is not present by
default anymore. The documentation[1] now suggests to maintain the
configuration using drop-in files in /etc/zypp/zypp.conf.d/

[1] https://manpages.opensuse.org/Tumbleweed/libzypp/zypp.conf.5.en.html
2026-02-24 08:49:48 +01:00
Emanuele De Cupis 7ad55d00d1 fix: expose correct dryrun command (#2006) 2026-02-22 18:20:27 +01:00
Emanuele De Cupis 0424e15a2a enter: show container command on dry run (#2000)
This fix ensures that the printed command in dry-run mode is the same
as the one that would be executed without the --dry-run flag.

The container command, either default or custom, is always appended to
the command in both normal and dry-run execution.

The inspect command to fetch the container status is now executed only
when not in dry-run mode.
2026-02-18 10:00:43 +01:00
ludrolandAlessio Biancalana 82ee78ee83 docs: update documentation regarding VSCode integration (#1996)
* docs: update VSCode integration documentation
There are still some problems but it's the best I could test on my own

* docs: added a screenshot to better illustrate the process

* chore: fix lint errors

* fix: typo

Co-authored-by: Alessio Biancalana <alessio@dottorblaster.it>

* fix: typo

Co-authored-by: Alessio Biancalana <alessio@dottorblaster.it>

* fix: typo

Co-authored-by: Alessio Biancalana <alessio@dottorblaster.it>

---------

Co-authored-by: Alessio Biancalana <alessio@dottorblaster.it>
2026-02-10 10:44:26 +01:00
distrobox-docs-bot 451cc3cbd0 Automatic Man Page Update
Signed-off-by: distrobox-docs-bot <distrobox-docs-bot@users.noreply.github.com>
2026-02-10 09:03:21 +00:00
renner 3d8159ec19 docs: remove bluefin-cli and powershell ublue images (#1997)
See:
https://github.com/ublue-os/toolboxes/pull/546
https://github.com/ublue-os/toolboxes/pull/547
2026-02-10 10:02:33 +01:00
Luca Di Maio 3eb5c6f1f3 chore(version): bump install to v1.8.2.4
Signed-off-by: Luca Di Maio <luca.dimaio1@gmail.com>
2026-02-04 18:43:11 +01:00
Alessio Biancalana 08e4963711 chore(version): bump to v1.8.2.4 (#1995) 1.8.2.4 2026-02-04 16:47:39 +01:00
Luca Di Maio 4f43814224 init: refactor user setup to modify attributes individually (#1994)
Modify user attributes (username, shell, GID, groups, UID) separately
with individual checks and fallbacks for each, rather than using a
single usermod call. This improves reliability by only modifying
attributes that differ from the expected values and provides more
granular error handling.

This also includes a fix in /etc/group that would make usermod fail if
it does not end with a newline.

Fix #1991
Fix #1979

Signed-off-by: Luca Di Maio <luca.dimaio1@gmail.com>
2026-02-04 10:45:24 +01:00
tblume 82310ad19a distrobox-init: add newline when appending user via printf (#1988)
The manual write of a user via printf to /etc/passwd and /etc/group
is missing a newline at the end of file.
That results in a failure in useradd parsing the content of the file
in the __getdelim function.
2026-02-02 19:08:37 +01:00
distrobox-docs-bot 2995df501b Automatic Man Page Update
Signed-off-by: distrobox-docs-bot <distrobox-docs-bot@users.noreply.github.com>
2026-01-18 00:39:38 +00:00
Alessio Biancalana 0316d24765 docs: update Alpine Linux images to latest versions (#1977) 2026-01-18 01:38:57 +01:00
Pedro Rabello Sato 3a3512b607 chore: add missing dependencies for fedora and wolfi. (#1931)
* fix: add fedora missing dependency

In fedora 43, the package `wget2-wget` provides
the command `wget`. Install it on fedora containers.

* fix: add missing wolfi dependencies
2026-01-18 00:50:09 +01:00
distrobox-docs-bot 856da362c4 Automatic Man Page Update
Signed-off-by: distrobox-docs-bot <distrobox-docs-bot@users.noreply.github.com>
1.8.2.3
2026-01-17 08:52:05 +00:00
Alessio Biancalana b91cf8cea9 docs: add Linux Mint 22.3 to the compatibility document (#1976) 2026-01-17 09:51:27 +01:00
Alessio Biancalana 7a7f969ae2 docs: leverage PAT again for gen_man action (#1975) 2026-01-17 09:47:57 +01:00
Alessio Biancalana c220794f8c docs: add Oracle Linux 10 to the compatibility doc (#1974) 2026-01-17 09:37:47 +01:00
Alessio Biancalana 9c6b498625 ci: persist credentials in order to allow for manpages commit (#1973) 2026-01-17 09:32:46 +01:00
Alessio Biancalana 70112dd93a docs: add CentOS Stream 10 to the supported container OSes (#1972) 2026-01-17 09:21:22 +01:00
Alessio Biancalana 6b9b9708ee docs: fix manpages generation by setting contents: write permissions (#1971) 2026-01-17 09:09:30 +01:00
Alessio Biancalana 41b79b5e75 docs: add Fedora 43 to the compatbility list (#1970) 2026-01-17 08:58:30 +01:00
Alessio Biancalana 35b3f2175c chore(version): bump to 1.8.2.3 (#1969) 2026-01-17 08:43:24 +01:00
Alessio Biancalana fc798e15fe fix: manpages generation auth error (#1968) 2026-01-17 07:34:49 +01:00
Alessio Biancalana 9c44e3f821 fix: remove the error in case dependencies are not fully met (#1967)
Introduced in #1932 as part of an effort to speed up the distrobox
start. Erroring is too much, we noticed a lot of errors in the CI that
were actually skippable, so removing the newly introduced error is an
attempt to ease the pain on that side.
2026-01-17 07:01:50 +01:00
Pedro Rabello Sato 8690157bdc init: only install base packages once (#1932)
Only install base packages and additional packages
at the first `distrobox enter`. The caveat is
that if the installation fails the distrobox
container is not created.
2026-01-17 06:18:13 +01:00
Luca Di Maio 9867e17ec8 fix(init): fix support for newer shadow strictier checks (#1965) 2026-01-17 10:58:07 +09:00
Taylor C. Richberger 6f56de71fb fix: make sure PWD matches workdir (#1952) 2026-01-17 10:46:48 +09:00
Nils-Hero Lindemann ecbf27e880 chore: readme review (#1953)
Corrected grammar and punctuation in README.md.
2026-01-06 11:18:51 +01:00
dependabot[bot] 91d2d77106 build(deps): bump actions/checkout from 5 to 6 (#1929) 2025-12-01 08:23:28 +01:00
Emanuele De Cupis 9723806f4e fix: unintended print to stdout in assemble command (#1925) 2025-11-27 19:35:45 +01:00
Pedro Rabello Sato f1526c469b fix: add missing fedora dependency (#1922)
Add `util-linux-script` as dnf dependency because
since fedora 42 the `script` command is split
from `util-linux`.
2025-11-26 20:09:15 +01:00
Alessio Biancalana a7b2437dbe chore(version): bump to 1.8.2.2 (#1921) 1.8.2.2 2025-11-26 15:40:31 +01:00
Alessio BiancalanaandMichał Jastrzębski a04862f1bd create: direct stderr to /dev/null to prevent incorrect eval (#1920)
Co-authored-by: Michał Jastrzębski <inc007@gmail.com>
2025-11-26 15:21:42 +01:00
Miau Lightouch 997fb84398 nvidia: restrict find pattern to libcuda so it doesn't pick up non-NVIDIA libs (e.g. libgstcuda) (#1918) 2025-11-26 15:03:09 +01:00
Pedro Rabello Sato 018f3c7756 fix: don't use --pty with buggy su implementations (#1919)
Add a check to not use su with --pty on su version
before 2.34 because a buggy implementation witch
cause control characters to be printed on the screen.
Also not use su implementation other from util-linux.

Closes #1830
2025-11-25 17:02:42 +01:00
Pedro Rabello Sato 4f0ed9ef71 enter: preserve SHELL with unshared groups (#1917) 2025-11-23 17:48:36 +01:00
Yedaya Katsman 3acf01475e feat: set compopt filenames for --file in bash completion (#1916)
Currently it treats directories as filenames, so it puts a space after
them, forcing you to replace the space with a slash to get completions
in it.
2025-11-23 16:34:53 +01:00
Alessio BiancalanaandEmanuele De Cupis 139a360fbc assemble: /dev/null stdin for distrobox enter execs (#1915)
Co-authored-by: Emanuele De Cupis <emanuele@decup.is>
2025-11-23 11:46:47 +01:00
Yehor Borkov 45cb136cbc docs: systemd unit example to mount root as a shared mount (#1911)
* docs: provide systemd service unit example to mount root as a shared mount

* fix: typo

* fix: make markdownlint happy
2025-11-22 16:26:29 +01:00
Brandon Sutherland d29adf44b8 create: fix failing to create containers from images that print to stdout with no input (#1912)
When podman runs a container that prints stdout with no input, this is
appended to the return of the generate_create_command  output, resulting
in an invalid command
2025-11-22 09:45:57 +01:00
Alessio Biancalana 99b7df4b77 docs: fix mdlint issues in compatibility matrix (#1908) 2025-11-19 16:10:02 +01:00