dpkg.postinst 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #!/bin/sh
  2. # This script can be called in the following ways:
  3. #
  4. # After the package was installed:
  5. # <postinst> configure <old-version>
  6. #
  7. #
  8. # If prerm fails during upgrade or fails on failed upgrade:
  9. # <old-postinst> abort-upgrade <new-version>
  10. #
  11. # If prerm fails during removal:
  12. # <old-postinst> abort-remove
  13. #
  14. # If prerm fails during deconfiguration of a package:
  15. # <postinst> abort-deconfigure in-favour <new-package> <version>
  16. # removing <old-package> <version>
  17. #
  18. # If prerm fails during replacement due to conflict:
  19. # <postinst> abort-remove in-favour <new-package> <version>
  20. set -e
  21. # Create the database files if they don't already exist
  22. create_database() {
  23. admindir=${DPKG_ADMINDIR:-/var/lib/dpkg}
  24. for file in diversions statoverride status; do
  25. if [ ! -f "$admindir/$file" ]; then
  26. touch "$admindir/$file"
  27. fi
  28. done
  29. }
  30. # Move the info directory from /usr/info to /usr/share/info
  31. move_info_directory() {
  32. if [ -d /usr/info ] && [ ! -L /usr/info ] \
  33. && [ -f /usr/info/dir ] && [ ! -L /usr/info/dir ]
  34. then
  35. echo "Moving /usr/info/dir to /usr/share/info/dir ..."
  36. mv /usr/info/dir /usr/share/info/dir
  37. if [ -f /usr/info/dir.old ]; then
  38. mv /usr/info/dir.old /usr/share/info/dir.old
  39. fi
  40. fi
  41. }
  42. # Remove the /usr/info symlinks we used to generate
  43. remove_info_symlink() {
  44. if [ -L /usr/info ]; then
  45. echo "Removing /usr/info symlink ..."
  46. rm /usr/info
  47. elif [ -L /usr/info/dir ]; then
  48. echo "Removing /usr/info/dir symlink ..."
  49. rm /usr/info/dir
  50. fi
  51. }
  52. # Create log file and set default permissions if possible
  53. create_logfile() {
  54. logfile=/var/log/dpkg.log
  55. touch $logfile
  56. chmod 644 $logfile
  57. chown root:root $logfile 2>/dev/null || chown 0:0 $logfile
  58. }
  59. case "$1" in
  60. configure)
  61. create_database
  62. create_logfile
  63. move_info_directory
  64. remove_info_symlink
  65. ;;
  66. abort-upgrade|abort-deconfigure|abort-remove)
  67. ;;
  68. *)
  69. echo "$0 called with unknown argument \`$1'" 1>&2
  70. exit 1
  71. ;;
  72. esac
  73. #DEBHELPER#
  74. exit 0