wok-6.x rev 23904
gcc83-lib-base: restore gcc-lib-base on removal
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sat Aug 01 20:28:36 2020 +0000 (2020-08-01) |
parents | 4290aebd7678 |
children | 4bfeeef8e79f |
files | gcc83-lib-base/receipt |
line diff
1.1 --- a/gcc83-lib-base/receipt Sat Aug 01 16:55:00 2020 +0000 1.2 +++ b/gcc83-lib-base/receipt Sat Aug 01 20:28:36 2020 +0000 1.3 @@ -15,8 +15,10 @@ 1.4 genpkg_rules() 1.5 { 1.6 mkdir -p $fs/usr/lib $fs/usr/libgcc83 1.7 - cp -a $install/usr/libgcc83/libgcc_s.so* $fs/usr/lib 1.8 - cp -a $install/usr/libgcc83/libstdc++.so* $fs/usr/lib 1.9 + for i in $install/usr/libgcc83/libgcc_s.so* ; do 1.10 + cp -a $i $fs/usr/lib/next.$(basename $i) 1.11 + done 1.12 + cp -a $install/usr/libgcc83/libstdc++.so.*.*.* $fs/usr/lib 1.13 cp -a $install/usr/libgcc83/libstdc++.la $fs/usr/libgcc83 1.14 ln -s ../lib/libstdc++.so $fs/usr/libgcc83 1.15 rm -f $fs/usr/lib/*-gdb.py 1.16 @@ -25,19 +27,47 @@ 1.17 pre_install() 1.18 { 1.19 cd "$1/usr/lib" 1.20 - [ -s libgcc_s.so.1 ] && cp -a libgcc_s.so.1 libgcc_s.so.1.prev 1.21 + local lib=$(ls libstdc++.so.6.*.* 2> /dev/null) 1.22 + [ "$lib" ] && cp -a $lib prev.$lib 1.23 + [ -s libgcc_s.so.1 ] && for i in libgcc_s.so*; do 1.24 + cp -a $i prev.$i 1.25 + done 1.26 + cd - >/dev/null 1.27 +} 1.28 + 1.29 +post_install() 1.30 +{ 1.31 + cd "$1/usr/lib" 1.32 + ln -fs libstdc++.so.6.*.* libstdc++.so.6 1.33 + ln -fs libstdc++.so.6.*.* libstdc++.so 1.34 + for i in next.libgcc_s.so* ; do 1.35 + cp -af $i ${i#next.} 1.36 + done 1.37 + cd - >/dev/null 1.38 +} 1.39 + 1.40 +pre_remove() 1.41 +{ 1.42 + cd "$1/usr/lib" 1.43 + local lib=$(ls prev.libstdc++.so.6.*.* 2> /dev/null) 1.44 + if [ "$lib" ]; then 1.45 + mv -f $lib ${lib#prev.} 1.46 + ln -fs ${lib#prev.} libstdc++.so.6 1.47 + ln -fs ${lib#prev.} libstdc++.so 1.48 + else 1.49 + rm -f libstdc++.so.6 libstdc++.so 1.50 + fi 1.51 + for i in libgcc_s.so* ; do 1.52 + cp -a $i next.$i 1.53 + done 1.54 cd - >/dev/null 1.55 } 1.56 1.57 post_remove() 1.58 { 1.59 cd "$1/usr/lib" 1.60 - if [ "$(ls libstdc++.so.6.*.* 2> /dev/null)" ]; then 1.61 - ln -s libstdc++.so.6.*.* libstdc++.so.6 1.62 - ln -s libstdc++.so.6.*.* libstdc++.so 1.63 - fi 1.64 - [ -s libgcc_s.so.1.prev ] && mv libgcc_s.so.1.prev libgcc_s.so.1 1.65 + [ -s prev.libgcc_s.so.1 ] && for i in prev.libgcc_s.so* ; do 1.66 + mv -f $i ${i#prev.} 1.67 + done || rm -f libgcc_s.so* 1.68 cd - >/dev/null 1.69 - 1.70 - tazpkg -gi gcc-lib-base --forced 1.71 }