From db46147f0da33c1a69c6877e00e5cb46d69fd9fd Mon Sep 17 00:00:00 2001 From: Evgenii Alekseev Date: Tue, 3 Mar 2026 15:50:21 +0200 Subject: [PATCH] fix: mount archive to chroot while file:// repository is automatically mounted by devtools, it doesn't mount any directory which contains source of symlinks This commit adds implicit mount of the archive directory (ro) into chroot --- src/ahriman/core/build_tools/task.py | 2 +- tests/ahriman/core/build_tools/test_task.py | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/ahriman/core/build_tools/task.py b/src/ahriman/core/build_tools/task.py index b6f8d084..970c59af 100644 --- a/src/ahriman/core/build_tools/task.py +++ b/src/ahriman/core/build_tools/task.py @@ -110,7 +110,7 @@ class Task(LazyLogging): """ command = [self.build_command, "-r", str(self.paths.chroot)] command.extend(self.archbuild_flags) - command.extend(["--"] + self.makechrootpkg_flags) + command.extend(["--", "-D", str(self.paths.archive)] + self.makechrootpkg_flags) command.extend(["--"] + self.makepkg_flags) if dry_run: command.extend(["--nobuild"]) diff --git a/tests/ahriman/core/build_tools/test_task.py b/tests/ahriman/core/build_tools/test_task.py index 34e81255..7c00466c 100644 --- a/tests/ahriman/core/build_tools/test_task.py +++ b/tests/ahriman/core/build_tools/test_task.py @@ -53,7 +53,10 @@ def test_build(task_ahriman: Task, mocker: MockerFixture) -> None: assert task_ahriman.build(local) == [task_ahriman.package.base] check_output_mock.assert_called_once_with( - "extra-x86_64-build", "-r", str(task_ahriman.paths.chroot), "--", "--", "--skippgpcheck", + "extra-x86_64-build", + "-r", str(task_ahriman.paths.chroot), + "--", "-D", str(task_ahriman.paths.archive), + "--", "--skippgpcheck", exception=pytest.helpers.anyvar(int), cwd=local, logger=task_ahriman.logger, @@ -76,7 +79,10 @@ def test_build_environment(task_ahriman: Task, mocker: MockerFixture) -> None: task_ahriman.build(local, **environment, empty=None) check_output_mock.assert_called_once_with( - "extra-x86_64-build", "-r", str(task_ahriman.paths.chroot), "--", "--", "--skippgpcheck", + "extra-x86_64-build", + "-r", str(task_ahriman.paths.chroot), + "--", "-D", str(task_ahriman.paths.archive), + "--", "--skippgpcheck", exception=pytest.helpers.anyvar(int), cwd=local, logger=task_ahriman.logger, @@ -96,7 +102,11 @@ def test_build_dry_run(task_ahriman: Task, mocker: MockerFixture) -> None: assert task_ahriman.build(local, dry_run=True) == [task_ahriman.package.base] check_output_mock.assert_called_once_with( - "extra-x86_64-build", "-r", str(task_ahriman.paths.chroot), "--", "--", "--skippgpcheck", "--nobuild", + "extra-x86_64-build", + "-r", str(task_ahriman.paths.chroot), + "--", "-D", str(task_ahriman.paths.archive), + "--", "--skippgpcheck", + "--nobuild", exception=pytest.helpers.anyvar(int), cwd=local, logger=task_ahriman.logger,