mirror-dev.sh 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. # Copyright 2013 Google Inc. All rights reserved.
  2. # Use of this source code is governed by a BSD-style license that can be
  3. # found in the LICENSE file.
  4. # For each installed *-dev package DEV
  5. for DEV in $(dpkg --list | grep '^ii [^ ]' | cut -d ' ' -f 3 | grep -P '\-dev($|\:amd64$)')
  6. do
  7. # For each multi-arch *.so SO installed by DEV
  8. for DEV_64_SO in $(dpkg -L $DEV | grep '/lib/x86_64-linux-gnu/.*\.so$')
  9. do
  10. # Skip if DEV_64_SO is not a symlink
  11. if ! test -L $DEV_64_SO
  12. then
  13. echo "$DEV installed $DEV_64_SO which is real."
  14. continue
  15. fi
  16. DEV_64_TARGET=$(readlink $DEV_64_SO)
  17. DEV_64_TARGET_FULL=$(readlink -f $DEV_64_SO)
  18. DEV_32_SO=$(echo $DEV_64_SO | sed -e 's@/lib/x86_64-linux-gnu/@/lib/i386-linux-gnu/@')
  19. DEV_32_TARGET=$(echo $DEV_64_TARGET | sed -e 's@/lib/x86_64-linux-gnu/@/lib/i386-linux-gnu/@')
  20. DEV_32_TARGET_FULL=$(echo $DEV_64_TARGET_FULL | sed -e 's@/lib/x86_64-linux-gnu/@/lib/i386-linux-gnu/@')
  21. # Error if DEV_32_TARGET does not exist.
  22. if ! test -e $DEV_32_TARGET_FULL
  23. then
  24. DEV_64_TARGET_PKG=$(dpkg -S $DEV_64_TARGET_FULL | cut -d ':' -f 1)
  25. echo "Could not find $DEV_32_TARGET_FULL, probably provided by $DEV_64_TARGET_PKG:i386."
  26. #echo " $DEV_64_SO -> $DEV_64_TARGET ($DEV_64_TARGET_FULL)"
  27. #echo " $DEV_32_SO -> $DEV_32_TARGET ($DEV_32_TARGET_FULL)"
  28. continue
  29. fi
  30. # Create DEV_32_SO
  31. sudo ln -s $DEV_32_TARGET $DEV_32_SO
  32. done
  33. done