Skip to content

mkosi tools configuration does not recieve Snapshot= #4188

@chovanecadam

Description

@chovanecadam

mkosi commit the issue has been seen with

f9948b5 - current main

Used host distribution

Arch

Used target distribution

Arch

Linux kernel version used

No response

CPU architectures issue was seen on

None

Unexpected behaviour you saw

When Mirror=https://archive.archlinux.org is set in mkosi.conf, the tools image receives this configuration. However, it doesn't receive the Snapshot=2026/02/22 option. The resulting URL in pacman.conf is wrong and results in 404 errors:

  • wrong: https://archive.archlinux.org/$repo/os/$arch
  • expected: https://archive.archlinux.org/repos/2026/02/22/$repo/os/$arch

mkosi should pass both Mirror= and Snapshot= settings to mkosi.tools. Alternatively, it shouldn't pass Mirror= at all and require setting ToolsTreeMirror= explicitely.

Used mkosi config

[Distribution]
Distribution=arch
Architecture=x86-64
Mirror=https://archive.archlinux.org
Snapshot=2026/02/22

[Build]
ToolsTree=default

mkosi output

‣ Loading configuration file /home/me/code/mkosi/a/mkosi.conf
‣ Loading configuration file /tmp/tmp4o2dculs/resources/mkosi-tools/mkosi.conf
‣ Loading configuration file /tmp/tmp4o2dculs/resources/mkosi-tools/mkosi.conf.d/arch.conf
‣ Loading configuration file /tmp/tmp4o2dculs/resources/mkosi-tools/mkosi.profiles/misc/mkosi.conf
‣ Loading configuration file /tmp/tmp4o2dculs/resources/mkosi-tools/mkosi.profiles/misc/mkosi.conf.d/arch.conf
‣ Loading configuration file /tmp/tmp4o2dculs/resources/mkosi-tools/mkosi.profiles/package-manager/mkosi.conf.d/arch.conf
‣ Loading configuration file /tmp/tmp4o2dculs/resources/mkosi-tools/mkosi.profiles/runtime/mkosi.conf
‣ Loading configuration file /tmp/tmp4o2dculs/resources/mkosi-tools/mkosi.profiles/runtime/mkosi.conf.d/arch.conf
‣ /home/me/code/mkosi/a/mkosi.tools does not exist, not reusing cached images
‣ /home/me/code/mkosi/a/mkosi.tools does not exist, not reusing cached images
‣ /home/me/code/mkosi/a/mkosi.tools does not exist, not reusing cached images
‣ Syncing package manager metadata
‣ + pacman --root=/buildroot --logfile=/dev/null --dbpath=/var/lib/pacman --cachedir=/var/cache/pacman/mkosi --cachedir=/var/cache/pacman/pkg --hookdir=/buildroot/etc/pacman.d/hooks --arch x86_64 --color auto --noconfirm --sync --refresh
:: Synchronizing package databases...
 core.db failed to download
 extra.db failed to download
error: failed retrieving file 'core.db' from archive.archlinux.org : The requested URL returned error: 404
error: failed retrieving file 'extra.db' from archive.archlinux.org : The requested URL returned error: 404
error: failed to synchronize all databases (failed to retrieve some files)
‣ "pacman --root=/buildroot --logfile=/dev/null --dbpath=/var/lib/pacman --cachedir=/var/cache/pacman/mkosi --cachedir=/var/cache/pacman/pkg --hookdir=/buildroot/etc/pacman.d/hooks --arch x86_64 --color auto --noconfirm --sync --refresh" returned non-zero exit code 1.
‣ Sandbox command: mkosi-sandbox --bind /proc /proc --unsetenv TMPDIR --setenv SYSTEMD_OFFLINE 1 --ro-bind /usr /usr --ro-bind /opt /opt --symlink usr/bin /bin --symlink usr/bin /sbin --symlink usr/lib /lib --symlink usr/lib /lib64 --dir /var/tmp --dir /var/log --unshare-ipc --ro-bind /home/me/.cache/mkosi/mkosi-workspace-v9m46oqu/tmp/tmpz098up5n/mkosi/sandbox.py /sandbox.py --dev /dev --ro-bind /etc/ld.so.cache /etc/ld.so.cache --ro-bind /run/systemd/resolve /run/systemd/resolve --ro-bind /etc/resolv.conf /etc/resolv.conf --setenv PATH /usr/bin:/usr/sbin --ro-bind /home/me/.cache/mkosi/mkosi-workspace-v9m46oqu/sandbox/etc /etc --bind /home/me/.cache/mkosi/mkosi-workspace-v9m46oqu/tmp/mkosi-var-tmp-f71054bba5e145f8 /srv --bind /home/me/.cache/mkosi/mkosi-workspace-v9m46oqu/tmp/mkosi-var-tmp-dcbeeb3ff3334d51 /media --bind /home/me/.cache/mkosi/mkosi-workspace-v9m46oqu/tmp/mkosi-var-tmp-2a396dad209545c7 /mnt --bind /home/me/.cache/mkosi/mkosi-workspace-v9m46oqu/tmp/mkosi-var-tmp-547efbc0ecc74135 /var --dir /run --dir /tmp --bind /home/me/.cache/mkosi/mkosi-workspace-v9m46oqu/tmp/mkosi-var-tmp-a2001841893d4e28 /var/tmp --bind /home/me/.cache/mkosi/mkosi-workspace-v9m46oqu/root /buildroot --ro-bind /etc/ca-certificates /etc/ca-certificates --ro-bind /etc/ssl /etc/ssl --bind /home/me/.cache/mkosi/mkosi-workspace-v9m46oqu/repository /repository --bind /home/me/.cache/mkosi/mkosi-metadata-sp_10top/lib/pacman/sync /var/lib/pacman/sync --bind /home/me/.cache/mkosi/mkosi-metadata-sp_10top/cache/pacman /var/cache/pacman --bind '/home/me/.cache/mkosi/arch~rolling~x86-64/cache/pacman/pkg' /var/cache/pacman/pkg --ro-bind /home/me/.cache/mkosi/mkosi-workspace-v9m46oqu/repository /var/cache/pacman/mkosi --bind +/buildroot/var/lib/pacman/local /var/lib/pacman/local --become-root --suppress-chown --suppress-sync --ro-bind-try /home/me/.cache/mkosi/mkosi-workspace-v9m46oqu/root/etc/machine-id /buildroot/etc/machine-id --dir /run/user/0 --ro-bind /etc/ssl/certs/ca-certificates.crt /proxy.cacert
‣ + rm -rf -- /work/home/me/.cache/mkosi/mkosi-workspace-v9m46oqu /work/home/me/.cache/mkosi/mkosi-workspace-v9m46oqu/root
‣ + tput cnorm
‣ + tput smam
Traceback (most recent call last):
  File "/tmp/.tmpeQVdsz/archive-v0/yzLhL8Zfaqj-efUTUtjs8/lib/python3.12/site-packages/mkosi/run.py", line 104, in uncaught_exception_handler
    yield
  File "/home/me/.local/share/uv/python/cpython-3.12.7-linux-x86_64-gnu/lib/python3.12/contextlib.py", line 81, in inner
    return func(*args, **kwds)
           ^^^^^^^^^^^^^^^^^^^
  File "/tmp/.tmpeQVdsz/archive-v0/yzLhL8Zfaqj-efUTUtjs8/lib/python3.12/site-packages/mkosi/__main__.py", line 44, in main
    run_verb(args, tools, images, resources=resources)
  File "/tmp/.tmpeQVdsz/archive-v0/yzLhL8Zfaqj-efUTUtjs8/lib/python3.12/site-packages/mkosi/__init__.py", line 5109, in run_verb
    tkd, tmd = sync_repository_metadata(
               ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/.tmpeQVdsz/archive-v0/yzLhL8Zfaqj-efUTUtjs8/lib/python3.12/site-packages/mkosi/__init__.py", line 4906, in sync_repository_metadata
    context.config.distribution.installer.package_manager(context.config).sync(
  File "/tmp/.tmpeQVdsz/archive-v0/yzLhL8Zfaqj-efUTUtjs8/lib/python3.12/site-packages/mkosi/installer/pacman.py", line 259, in sync
    cls.invoke(context, "--sync", ["--refresh", *(["--refresh"] if force else [])])
  File "/tmp/.tmpeQVdsz/archive-v0/yzLhL8Zfaqj-efUTUtjs8/lib/python3.12/site-packages/mkosi/installer/pacman.py", line 189, in invoke
    return run(
           ^^^^
  File "/tmp/.tmpeQVdsz/archive-v0/yzLhL8Zfaqj-efUTUtjs8/lib/python3.12/site-packages/mkosi/run.py", line 243, in run
    with spawn(
         ^^^^^^
  File "/home/me/.local/share/uv/python/cpython-3.12.7-linux-x86_64-gnu/lib/python3.12/contextlib.py", line 144, in __exit__
    next(self.gen)
  File "/tmp/.tmpeQVdsz/archive-v0/yzLhL8Zfaqj-efUTUtjs8/lib/python3.12/site-packages/mkosi/run.py", line 413, in spawn
    raise subprocess.CalledProcessError(returncode, cmdline)
subprocess.CalledProcessError: Command '['pacman', '--root=/buildroot', '--logfile=/dev/null', '--dbpath=/var/lib/pacman', '--cachedir=/var/cache/pacman/mkosi', '--cachedir=/var/cache/pacman/pkg', '--hookdir=/buildroot/etc/pacman.d/hooks', '--arch', 'x86_64', '--color', 'auto', '--noconfirm', '--sync', '--refresh']' returned non-zero exit status 1.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions