From: Michael Tremer Date: Wed, 23 Feb 2011 21:46:37 +0000 (+0100) Subject: Copy packages to repository if we cannot hard-link them. X-Git-Tag: 0.9.3~133 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d8d8be7b39533e63b746c27d71204865abf5f9c9;p=pakfire.git Copy packages to repository if we cannot hard-link them. --- diff --git a/pakfire/repository.py b/pakfire/repository.py index dc780c605..ff9a27904 100644 --- a/pakfire/repository.py +++ b/pakfire/repository.py @@ -3,6 +3,7 @@ import fnmatch import logging import os +import shutil import stat import time @@ -301,7 +302,12 @@ class LocalRepository(RepositoryFactory): if not os.path.exists(repo_dirname): os.makedirs(repo_dirname) - os.link(pkg.filename, repo_filename) + # Try to use a hard link if possible, if we cannot do that we simply + # copy the file. + try: + os.link(pkg.filename, repo_filename) + except OSError: + shutil.copy2(pkg.filename, repo_filename) # Create new package object, that is connected to this repository # and so we can do stuff.