Skip to content

[Bug]: Backup files in sources.list.d on Debian cause failure to configure repo #68475

@nepeat

Description

@nepeat

What happened?

With how modules.aptpkg does listing of files in sources.list.d, it includes files that are inside backup directories in sources.list.d.

This causes the following error when the file is included by Salt.
Comment: Failed to configure repo 'deb https://<redacted> stable main': [Errno 2] No such file or directory: '/tmp/tmprmuztuv8/private.list'",

    class SourcesList:  # pylint: disable=function-redefined
        def __init__(self):
            self.list = []
            self.files = [
                pathlib.Path(os.sep, "etc", "apt", "sources.list"),
                pathlib.Path(os.sep, "etc", "apt", "sources.list.d"),
            ]
            for file in self.files:
                if file.is_dir():
                    for fp in file.glob("**/*.list"):
                        self.add_file(file=fp)
                else:
                    self.add_file(file)

Isolating the specific glob results in our production sources and the backup source files.

>>> import pathlib, os
>>> list(pathlib.Path(os.sep, "etc", "apt", "sources.list.d").glob("**/*.list"))
[PosixPath('/etc/apt/sources.list.d/mellanox.list'), PosixPath('/etc/apt/sources.list.d/backup/private.list')]

Modifying the following glob to *.list seems to resolve this issue. I'm not sure if this is optimal given my unfamiliarity with Salt's codebase but it seems to work?

Type of salt install

Official deb

Major version

3006.x

What supported OS are you seeing the problem on? Can select multiple. (If bug appears on an unsupported OS, please open a GitHub Discussion instead)

debian-12

salt --versions-report output

Salt Version:
          Salt: 3006.16

Python Version:
        Python: 3.10.18 (main, Sep  5 2025, 22:48:51) [GCC 11.2.0]

Dependency Versions:
          cffi: 1.14.6
      cherrypy: 18.10.0
  cryptography: 42.0.5
      dateutil: 2.8.1
     docker-py: Not Installed
         gitdb: Not Installed
     gitpython: Not Installed
        Jinja2: 3.1.6
       libgit2: Not Installed
  looseversion: 1.0.2
      M2Crypto: Not Installed
          Mako: Not Installed
       msgpack: 1.0.2
  msgpack-pure: Not Installed
  mysql-python: Not Installed
     packaging: 24.0
     pycparser: 2.21
      pycrypto: Not Installed
  pycryptodome: 3.19.1
        pygit2: Not Installed
  python-gnupg: 0.4.8
        PyYAML: 6.0.1
         PyZMQ: 23.2.0
        relenv: 0.20.6
         smmap: Not Installed
       timelib: 0.3.0
       Tornado: 4.5.3
           ZMQ: 4.3.4

System Versions:
          dist: debian 12 bookworm
        locale: utf-8
       machine: x86_64
       release: <redacted>
        system: Linux
       version: Debian GNU/Linux 12 bookworm

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugbroken, incorrect, or confusing behaviorneeds-triage

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions