postinst is in cups-browsed 1.0.52-0ubuntu1.
This file is a maintainer script. It is executed when installing (*inst) or removing (*rm) the package.
The actual contents of the file can be viewed below.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | #! /bin/sh
# postinst script for cups-browsed
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
#        * <postinst> `configure' <most-recently-configured-version>
#        * <old-postinst> `abort-upgrade' <new version>
#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#          <new-version>
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# for details, see /usr/doc/packaging-manual/
#
# quoting from the policy:
#     Any necessary prompting should almost always be confined to the
#     post-installation script, and should be protected with a conditional
#     so that unnecessary prompting doesn't happen if a package's
#     installation fails and the `postinst' is called with `abort-upgrade',
#     `abort-remove' or `abort-deconfigure'.
if [ "$1" = "configure" ]; then
  # Look for broadcasting/browsing configuration in /etc/cups/cupsd.conf
  # and overtake the directives to /etc/cups/cups-browsed.conf. Comment
  # out lines to activate CUPS Broadcasting and browsing, to assure that
  # users use this deprecated method only if really needed.
  
  # Do this only on the initial introduction of cups-browsed or on the update
  # from any version older than 1.0.41 to 1.0.41 or newer (to avoid doing this
  # more than once on the same system)
  if dpkg --compare-versions "$2" lt "1.0.41~" && [ -r /etc/cups/cupsd.conf ]; then
      ECHO=/bin/echo
      linesadded=0
      tempfiles=
      trap 'rm -f $tempfiles; exit 0' 0 HUP INT QUIT ILL ABRT PIPE TERM
      tmpfile0=`mktemp -t updateppds.XXXXXX`
      tempfiles="$tempfiles $tmpfile0"
      # If cupsd.conf.pre16-bak exists (and therefore has the pre-1.6 upgrade values), use it
      cupsdconf_orig=/etc/cups/cupsd.conf
      if [ -r /etc/cups/cupsd.conf.pre16-bak ]; then
          cupsdconf_orig=/etc/cups/cupsd.conf.pre16-bak
      fi
      
      if grep -Piq '^\s*BrowseRemoteProtocols' $cupsdconf_orig 2>/dev/null; then
	        # Get previously enabled protocols, remove cups and dnssd from that list
	        previousProtocols=`grep -Pi '^\s*BrowseRemoteProtocols\s+' $cupsdconf_orig | perl -pe "s/BrowseRemoteProtocols\s*(.*)\#?.*$/\1/;s/\s*(dnssd|cups)//gi;s/^\s*//;s/\s*$//"`
	        if grep -Piq '^\s*BrowseRemoteProtocols\s+' /etc/cups/cups-browsed.conf 2>/dev/null; then
	            if dpkg --compare-versions "$2" lt "1.0.32~"; then
	                # Enable the previously enabled protocols on top of the defaults which are 'dnssd cups'
	                perl -p -i -e "s/^(\s*BrowseRemoteProtocols.*)/\1 $previousProtocols\n# Upgraded from cups: $previousProtocols\n# Defaults from 1.0.41: dnssd cups/i" /etc/cups/cups-browsed.conf
	            else
	                # 1.0.32 already had an upgrade handling which added a commented cups
	                # Keep enabled protocols, add dnssd and cups
	                perl -p -i -e "s/^(\s*BrowseRemoteProtocols\s*)(.*)(#.*)?$/\1 $previousProtocols \2 dnssd cups \3\n# Upgraded from cups: \3\n# Upgraded from cups-browsed >= 1.0.32: $previousProtocols\n# Defaults from 1.0.41: dnssd cups/i" /etc/cups/cups-browsed.conf
	            fi
	        fi
      fi
      if grep -Piq '^\s*BrowseLocalProtocols.*\s+cups\b' $cupsdconf_orig 2>/dev/null; then
	  if ! grep -Piq '^\s*BrowseLocalProtocols.*\s+\#?cups\b' /etc/cups/cups-browsed.conf 2>/dev/null; then
	      if grep -Piq '^\s*BrowseLocalProtocols\s+' /etc/cups/cups-browsed.conf 2>/dev/null; then
		  perl -p -i -e 's/^(\s*BrowseLocalProtocols.*)/\n\# Please remove the "\#" before "cups" to make the local printers available to clients running\n\# CUPS 1.5.x or older.\n$1 \#cups\n/i' /etc/cups/cups-browsed.conf
	      else
		  linesadded=1
		  $ECHO -en '\n# Please remove the "#" in the beginning of the following line to make the\n# local printers available to clients running CUPS 1.5.x or older.\n#BrowseLocalProtocols cups\n' >> $tmpfile0
	      fi
	  fi
      fi
      if grep -Piq '^\s*Browse(Order|Allow|Deny|Poll)' $cupsdconf_orig 2>/dev/null; then
	  linesadded=1
	  $ECHO -en '\n# The following CUPS broadcasting/browsing-related lines were overtaken from\n# /etc/cups/cupsd.conf. Not all are supported by cups-browsed and so could get\n# ignored. Please check the comments and examples above and edit the lines if\n# needed. Note that for getting available the remote printers from all hosts/\n# networks you have to remove all "BrowseAllow" lines.\n' >> $tmpfile0
	  grep -Pi '^\s*Browse(Order|Allow|Deny|Poll)' $cupsdconf_orig >> $tmpfile0 2>/dev/null
	  $ECHO -en '\n' >> $tmpfile0
      fi
      if [ "$linesadded" = "1" ]; then
	  $ECHO -en '\n# Please check and edit the following lines, especially if you have Linux\n# machines with CUPS 1.5.x and older in your network.\n\n# If you edit anything in this file, please remember to restart cups-browsed\n# (or reboot the system) afterwards.\n' >> /etc/cups/cups-browsed.conf
	  cat $tmpfile0 >> /etc/cups/cups-browsed.conf
      fi
      rm $tmpfile0
      if [ -r /etc/cups/cupsd.conf.pre16-bak ]; then
          rm /etc/cups/cupsd.conf.pre16-bak
      fi
  fi
elif [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-remove" ] || [ "$1" = "abort-deconfigure" ]; then
  :
else
  echo "postinst called with unknown argument \`$1'" >&2
  exit 0
fi
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
# Automatically added by dh_apparmor
if [ "$1" = "configure" ]; then
    APP_PROFILE="/etc/apparmor.d/usr.sbin.cups-browsed"
    if [ -f "$APP_PROFILE" ]; then
        # Add the local/ include
        LOCAL_APP_PROFILE="/etc/apparmor.d/local/usr.sbin.cups-browsed"
        test -e "$LOCAL_APP_PROFILE" || {
            tmp=`mktemp`
        cat <<EOM > "$tmp"
# Site-specific additions and overrides for usr.sbin.cups-browsed.
# For more details, please see /etc/apparmor.d/local/README.
EOM
            mkdir `dirname "$LOCAL_APP_PROFILE"` 2>/dev/null || true
            mv -f "$tmp" "$LOCAL_APP_PROFILE"
            chmod 644 "$LOCAL_APP_PROFILE"
        }
        # Reload the profile, including any abstraction updates
        if aa-status --enabled 2>/dev/null; then
            apparmor_parser -r -T -W "$APP_PROFILE" || true
        fi
    fi
fi
# End automatically added section
# Automatically added by dh_systemd_enable
# This will only remove masks created by d-s-h on package removal.
deb-systemd-helper unmask cups-browsed.service >/dev/null || true
# was-enabled defaults to true, so new installations run enable.
if deb-systemd-helper --quiet was-enabled cups-browsed.service; then
	# Enables the unit on first installation, creates new
	# symlinks on upgrades if the unit file has changed.
	deb-systemd-helper enable cups-browsed.service >/dev/null || true
else
	# Update the statefile to add new symlinks (if any), which need to be
	# cleaned up on purge. Also remove old symlinks.
	deb-systemd-helper update-state cups-browsed.service >/dev/null || true
fi
# End automatically added section
# Automatically added by dh_installinit
if [ -x "/etc/init.d/cups-browsed" ] || [ -e "/etc/init/cups-browsed.conf" ]; then
	if [ ! -e "/etc/init/cups-browsed.conf" ]; then
		update-rc.d cups-browsed defaults >/dev/null
	fi
	invoke-rc.d cups-browsed start || exit $?
fi
# End automatically added section
# Automatically added by dh_installinit
update-rc.d -f cups-browsed remove >/dev/null || exit $?
# End automatically added section
exit 0
 |