(In reply to Lubos Kocman from comment #6) > lkocman@localhost:~/Workspace/opensuse> cat > /etc/zypp/repos.d/NVIDIA:repo-non-free.repo > lkocman@localhost:~/Workspace/opensuse> cat > /etc/zypp/repos.d/NVIDIA:repo-non-free.repo_1 > [NVIDIA:repo-non-free] > name=repo-non-free (${releasever}) > enabled=1 > autorefresh=1 > baseurl=https://download.nvidia.com/opensuse/leap/${releasever} > service=NVIDIA > lkocman@localhost:~/Workspace/opensuse> > > I would expect that calling addservice would be an idempotent, where we'd > not add new repo files if existing files with same id exists. The question is: What creates the empty NVIDIA:repo-non-free.repo file? As .repo files may contain multiple repo definitions, we remember the .repo file we read the data from and write modified data back to the same file. Data for a new repo will not be written to an existing file, but it should chose a not existing one by appending _NUMBER to the default name.