From: Daan De Meyer Date: Sun, 11 Jun 2023 18:10:53 +0000 (+0200) Subject: Do not overwrite package manager config files if they exist X-Git-Tag: v15~115^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cbc7179551346b62aa4fcdb5a96caee0273daa87;p=thirdparty%2Fmkosi.git Do not overwrite package manager config files if they exist Let's allow users to override mkosi's default package manager settings by providing their own package manager config file. This is especially important for distributions built using dnf as dnf does not yet have support for dropins. --- diff --git a/mkosi/distributions/arch.py b/mkosi/distributions/arch.py index 0e06557cf..c669d5f4f 100644 --- a/mkosi/distributions/arch.py +++ b/mkosi/distributions/arch.py @@ -63,6 +63,9 @@ def setup_pacman(state: MkosiState) -> None: state.root.joinpath("var/lib/pacman").mkdir(mode=0o755, exist_ok=True, parents=True) config = state.pkgmngr / "etc/pacman.conf" + if config.exists(): + return + config.parent.mkdir(mode=0o755, exist_ok=True, parents=True) with config.open("w") as f: diff --git a/mkosi/distributions/debian.py b/mkosi/distributions/debian.py index 980262ddf..c318a6c6e 100644 --- a/mkosi/distributions/debian.py +++ b/mkosi/distributions/debian.py @@ -173,17 +173,17 @@ def setup_apt(state: MkosiState, repos: Sequence[str]) -> None: state.root.joinpath("var/lib/dpkg/status").touch() config = state.pkgmngr / "etc/apt/apt.conf" - - # Anything that users can override with dropins is written into the config file. - config.write_text( - dedent( - """\ - APT::Install-Recommends "false"; - """ + if not config.exists(): + # Anything that users can override with dropins is written into the config file. + config.write_text( + dedent( + """\ + APT::Install-Recommends "false"; + """ + ) ) - ) - sources = state.pkgmngr.joinpath("etc/apt/sources.list") + sources = state.pkgmngr / "etc/apt/sources.list" if not sources.exists(): with sources.open("w") as f: for repo in repos: diff --git a/mkosi/distributions/fedora.py b/mkosi/distributions/fedora.py index a57d90f9b..5d8301c2d 100644 --- a/mkosi/distributions/fedora.py +++ b/mkosi/distributions/fedora.py @@ -121,8 +121,14 @@ class Repo(NamedTuple): def setup_dnf(state: MkosiState, repos: Sequence[Repo]) -> None: - state.pkgmngr.joinpath("etc/dnf").mkdir(exist_ok=True, parents=True) - with state.pkgmngr.joinpath("etc/dnf/dnf.conf").open("w") as f: + config = state.pkgmngr / "etc/dnf/dnf.conf" + + if config.exists(): + return + + config.parent.mkdir(exist_ok=True, parents=True) + + with config.open("w") as f: for repo in repos: f.write( dedent(