From 53510f54cf0c625234edd90502a4a3b7b9bfd7c7 Mon Sep 17 00:00:00 2001 From: Pavel Raiskup Date: Jun 05 2023 13:06:14 +0000 Subject: Use temporary DNF cache directory By default, in Koji build system, dnf.conf says `cachedir=/var/cache/yum`. At %check time, we run in mock under the mockbuilder user and we have no rights to write into /var/cache/yum. This fixes Mock build in Koji, though it eventually relates to: https://github.com/fedora-copr/copr/issues/2756 --- diff --git a/prunerepo/helpers.py b/prunerepo/helpers.py index 561c56a..53e4f82 100644 --- a/prunerepo/helpers.py +++ b/prunerepo/helpers.py @@ -12,6 +12,7 @@ import re import time import shutil import logging +import tempfile from prunerepo.pair_srpm_rpm import RPMToSRPMPairs @@ -176,6 +177,12 @@ def get_rpms_to_remove(directory, days=0, log=None): :raises PrunerepoException: Upon any failure that could provide bad results causing unwanted RPM removals. """ + + with tempfile.TemporaryDirectory(prefix="prunerepo-dnf-cache") as cachedir: + return _get_rpms_to_remove_internal(directory, days, log, cachedir) + + +def _get_rpms_to_remove_internal(directory, days, log, cachedir): get_all_packages_cmd = [ "dnf-3", "repoquery", @@ -185,6 +192,7 @@ def get_rpms_to_remove(directory, days=0, log=None): "--location", "--quiet", "--setopt=skip_if_unavailable=False", + f"--setopt=cachedir={cachedir}", ] if not log: