diff options
author | Thierry Vignaud <tv@mageia.org> | 2012-07-27 17:38:38 +0000 |
---|---|---|
committer | Thierry Vignaud <tv@mageia.org> | 2012-07-27 17:38:38 +0000 |
commit | e260951dcea87ee455b050362f685934ee73eee1 (patch) | |
tree | 48f3c144b964f7b4d1ee950aeb6a9919b8466d2a | |
parent | 2d2ba482a77ac385b318afe2f4db22ceaad70d76 (diff) | |
download | rpm-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-- | NEWS | 1 | ||||
-rwxr-xr-x | find-debuginfo.sh | 2 |
2 files changed, 2 insertions, 1 deletions
@@ -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 |