aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThierry Vignaud <tv@mageia.org>2012-07-27 17:38:38 +0000
committerThierry Vignaud <tv@mageia.org>2012-07-27 17:38:38 +0000
commite260951dcea87ee455b050362f685934ee73eee1 (patch)
tree48f3c144b964f7b4d1ee950aeb6a9919b8466d2a
parent2d2ba482a77ac385b318afe2f4db22ceaad70d76 (diff)
downloadrpm-setup-e260951dcea87ee455b050362f685934ee73eee1.tar
rpm-setup-e260951dcea87ee455b050362f685934ee73eee1.tar.gz
rpm-setup-e260951dcea87ee455b050362f685934ee73eee1.tar.bz2
rpm-setup-e260951dcea87ee455b050362f685934ee73eee1.tar.xz
rpm-setup-e260951dcea87ee455b050362f685934ee73eee1.zip
Fix find-debuginfo.sh behavior on cross-directory hardlinks (RhBug:618426)
- The find-debuginfo.sh script makes hard links of .debug files to correspond to hard links between install binaries. It can fail to create one of these .debug hard links if it's in a directory that didn't exist at that point in the script run. How this happens depends on things like the order "find" lists files, so it can be hard to reproduce off hand. (rpm.org, Roland McGrath <roland@redhat.com>, 2010-08-09)
-rw-r--r--NEWS1
-rwxr-xr-xfind-debuginfo.sh2
2 files changed, 2 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 17725b5..d78adbf 100644
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,7 @@
- sync find-debuginfo.sh with upstream rpm.org:
o add -r flag to find-debuginfo.sh to invoke eu-strip --reloc-debug-sections
o drop useless rpm5 bits (less divergence with upstream)
+ o fix behavior on cross-directory hardlinks (RhBug:618426)
- kill unused find-provides.perl.in
- prevent RPM_BUILD_ROOT to break brp-* scripts if it contains spaces
(rpm.org#843)
diff --git a/find-debuginfo.sh b/find-debuginfo.sh
index a0a83e4..98cc45b 100755
--- a/find-debuginfo.sh
+++ b/find-debuginfo.sh
@@ -211,7 +211,7 @@ while read nlinks inum f; do
link=$debugfn
get_debugfn "$linked"
echo "hard linked $link to $debugfn"
- ln -nf "$debugfn" "$link"
+ mkdir -p "$(dirname "$link")" && ln -nf "$debugfn" "$link"
continue
else
eval linked_$inum=\$f