diff options
| -rw-r--r-- | meta/classes/package.bbclass | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index dcece40acd..2f3e9bfd14 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass | |||
| @@ -427,22 +427,13 @@ python populate_packages () { | |||
| 427 | fpath = os.path.join(root,file) | 427 | fpath = os.path.join(root,file) |
| 428 | dpath = os.path.dirname(fpath) | 428 | dpath = os.path.dirname(fpath) |
| 429 | bb.mkdirhier(dpath) | 429 | bb.mkdirhier(dpath) |
| 430 | |||
| 431 | # Check if this is a hardlink to something... if it is | ||
| 432 | # attempt to preserve the link information, instead of copy. | ||
| 433 | if not os.path.islink(file): | 430 | if not os.path.islink(file): |
| 434 | s = os.stat(file) | 431 | os.link(file, fpath) |
| 435 | if s.st_nlink > 1: | 432 | continue |
| 436 | file_reference = "%d_%d" % (s.st_dev, s.st_ino) | ||
| 437 | if file_reference not in file_links: | ||
| 438 | # Save the reference for next time... | ||
| 439 | file_links[file_reference] = fpath | ||
| 440 | else: | ||
| 441 | os.link(file_links[file_reference], fpath) | ||
| 442 | continue | ||
| 443 | ret = bb.copyfile(file, fpath) | 433 | ret = bb.copyfile(file, fpath) |
| 444 | if ret is False or ret == 0: | 434 | if ret is False or ret == 0: |
| 445 | raise bb.build.FuncFailed("File population failed") | 435 | raise bb.build.FuncFailed("File population failed") |
| 436 | |||
| 446 | del localdata | 437 | del localdata |
| 447 | os.chdir(workdir) | 438 | os.chdir(workdir) |
| 448 | 439 | ||
