From bed61eec2356f3b448325aea29f19433730f3297 Mon Sep 17 00:00:00 2001 From: Jay Greguske Date: Mar 30 2017 13:37:56 +0000 Subject: fall back to a copy if we cannot hardlink --- diff --git a/hub/kojihub.py b/hub/kojihub.py index f7c6c7e..b684807 100644 --- a/hub/kojihub.py +++ b/hub/kojihub.py @@ -12342,13 +12342,21 @@ class HostExports(object): os.link(src, dst) if fn.endswith('pkglist'): # hardlink the found rpms into the final repodir + # TODO: properly consider split-volume functionality with open(src) as pkgfile: for pkg in pkgfile: pkg = os.path.basename(pkg.strip()) rpmpath = fullpaths[pkg] bnp = os.path.basename(rpmpath) koji.ensuredir(os.path.join(archdir, bnp[0])) - os.link(rpmpath, os.path.join(archdir, bnp[0], bnp)) + try: + os.link(rpmpath, os.path.join(archdir, bnp[0], bnp)) + except OSError, ose: + if ose.error == 18: + shutil.copy2( + rpmpath, os.path.join(archdir, bnp[0], bnp)) + else: + raise ose os.unlink(src) def isEnabled(self):