 c6fa6c9b19
			
		
	
	
		c6fa6c9b19
		
			
		
	
	
	
	
		
			
			Debian doesn't have it enabled anyway. Do not prevent the user from tinkering with that. (reported by @adrelanos) Fixes qubesos/qubes-issues#1103
		
			
				
	
	
		
			197 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			197 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| # postinst script for core-agent-linux
 | |
| #
 | |
| # see: dh_installdeb(1)
 | |
| 
 | |
| set -e
 | |
| 
 | |
| # The postint script may be called in the following ways:
 | |
| #   * <postinst> 'configure' <most-recently-configured-version>
 | |
| #   * <old-postinst> 'abort-upgrade' <new version>
 | |
| #   * <conflictor's-postinst> 'abort-remove' 'in-favour' <package>
 | |
| #     <new-version>
 | |
| #   * <postinst> 'abort-remove'
 | |
| #   * <deconfigured's-postinst> 'abort-deconfigure' 'in-favour'
 | |
| #     <failed-install-package> <version> 'removing'
 | |
| #     <conflicting-package> <version>
 | |
| #
 | |
| #    For details, see http://www.debian.org/doc/debian-policy/ or
 | |
| # https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html or
 | |
| # the debian-policy package
 | |
| 
 | |
| 
 | |
| debug() {
 | |
|     if [ "${DEBDEBUG}" == "1" ]; then
 | |
|         echo -e ""$@""
 | |
|     fi
 | |
| }
 | |
| 
 | |
| systemdPreload() {
 | |
|     # Debian systemd helper does not yet honour preset, therefore use
 | |
|     # systemctl preset on each unit file (not using preset-all either since
 | |
|     # wheezy does not support it) listed in 75-qubes-vm.preset.
 | |
| 
 | |
|     systemctl --no-reload preset-all > /dev/null 2>&1 && PRESET_FAILED=0 || PRESET_FAILED=1
 | |
| 
 | |
|     # Mask any static unit files that are marked to be disabled
 | |
|     grep '^[[:space:]]*[^#;]' /lib/systemd/system-preset/75-qubes-vm.preset | while read action unit_name; do
 | |
|         case "${action}" in
 | |
|         disable)
 | |
|             if [ -e "/lib/systemd/system/${unit_name}" ]; then
 | |
|                 if ! fgrep -q '[Install]' "/lib/systemd/system/${unit_name}"; then
 | |
|                     deb-systemd-helper mask "${unit_name}" > /dev/null 2>&1 || true
 | |
|                 fi
 | |
|             fi
 | |
|             ;;
 | |
|         *)
 | |
|             # preset-all is not available in wheezy; so preset each unit file listed in 75-qubes-vm.preset
 | |
|             if [ "${PRESET_FAILED}" -eq 1 ]; then
 | |
|                 systemctl --no-reload preset "${unit_name}" > /dev/null 2>&1 || true
 | |
|             fi
 | |
|             ;;
 | |
|         esac
 | |
|     done
 | |
| 
 | |
|     systemctl daemon-reload
 | |
| }
 | |
| 
 | |
| installSerialConf() {
 | |
|     debug "Installing over-ridden serial.conf init script..."
 | |
|     if [ -e /etc/init/serial.conf ]; then
 | |
|         cp /usr/share/qubes/serial.conf /etc/init/serial.conf
 | |
|     fi
 | |
| }
 | |
| 
 | |
| case "${1}" in
 | |
|     configure)
 | |
|         # Initial installation of package only
 | |
|         # ($2 contains version number on update; nothing on initial installation)
 | |
|         if [ -z "${2}" ]; then
 | |
| 
 | |
|             debug "FIRST INSTALL..."
 | |
|             # Create NetworkManager configuration if we do not have it
 | |
|             if ! [ -e /etc/NetworkManager/NetworkManager.conf ]; then
 | |
|                 echo '[main]' > /etc/NetworkManager/NetworkManager.conf
 | |
|                 echo 'plugins = keyfile' >> /etc/NetworkManager/NetworkManager.conf
 | |
|                 echo '[keyfile]' >> /etc/NetworkManager/NetworkManager.conf
 | |
|             fi
 | |
|             /usr/lib/qubes/qubes-fix-nm-conf.sh
 | |
| 
 | |
|             # Location of files which contains list of protected files
 | |
|             PROTECTED_FILE_LIST='/etc/qubes/protected-files.d'
 | |
| 
 | |
|             # ensure that hostname resolves to 127.0.1.1 resp. ::1 and that /etc/hosts is
 | |
|             # in the form expected by qubes-sysinit.sh
 | |
|             if ! grep -rq "^/etc/hostname$" "${PROTECTED_FILE_LIST}" 2>/dev/null; then
 | |
|                 for ip in '127\.0\.1\.1' '::1'; do
 | |
|                     if grep -q "^${ip}\(\s\|$\)" /etc/hosts; then
 | |
|                         sed -i "/^${ip}\s/,+0s/\(\s`hostname`\)\+\(\s\|$\)/\2/g" /etc/hosts || true
 | |
|                         sed -i "s/^${ip}\(\s\|$\).*$/\0 `hostname`/" /etc/hosts || true
 | |
|                     else
 | |
|                         echo "${ip//\\/} `hostname`" >> /etc/hosts || true
 | |
|                     fi
 | |
|                 done
 | |
|             fi
 | |
| 
 | |
|             # remove hostname from 127.0.0.1 line (in debian the hostname is by default
 | |
|             # resolved to 127.0.1.1)
 | |
|             if ! grep -rq "^/etc/hosts$" "${PROTECTED_FILE_LIST}" 2>/dev/null; then
 | |
|                 sed -i "/^127\.0\.0\.1\s/,+0s/\(\s`hostname`\)\+\(\s\|$\)/\2/g" /etc/hosts || true
 | |
|             fi
 | |
| 
 | |
|             chown user:user /home_volatile/user
 | |
| 
 | |
|             # Set default "runlevel"
 | |
|             rm -f /etc/systemd/system/default.target
 | |
|             ln -s /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
 | |
| 
 | |
|             # Systemd preload-all
 | |
|             systemdPreload
 | |
| 
 | |
|             # Maybe install overridden serial.conf init script 
 | |
|             installSerialConf
 | |
|         fi
 | |
| 
 | |
|         debug "UPDATE..."
 | |
|         # disable some Upstart services
 | |
|         for init in plymouth-shutdown \
 | |
|                     prefdm \
 | |
|                     splash-manager \
 | |
|                     start-ttys \
 | |
|                     tty ; do
 | |
|             dpkg-divert --divert /etc/init/${init}.conf.qubes-disabled --package qubes-core-agent --rename --add /etc/init/${init}.conf
 | |
|         done
 | |
|         dpkg-divert --divert /etc/init/serial.conf.qubes-orig --package qubes-core-agent --rename --add /etc/init/serial.conf
 | |
| 
 | |
|         # make sure locale is really generated
 | |
|         current_locale=`grep 'LANG\|LC_ALL' /etc/default/locale|head -n 1|cut -f 2 -d =`
 | |
|         if [ -n "$current_locale" ] && ! locale -a | grep -q "$current_locale"; then
 | |
|             base=`echo "$current_locale" | cut -f 1 -d .`
 | |
|             charmap=`echo "$current_locale.UTF-8" | cut -f 2 -d .`
 | |
|             [ -n "$charmap" ] && charmap="-f $charmap"
 | |
|             localedef -i $base $charmap $current_locale
 | |
|         fi
 | |
| 
 | |
|         # Remove old firmware updates link
 | |
|         if [ -L /lib/firmware/updates ]; then
 | |
|             rm -f /lib/firmware/updates
 | |
|         fi
 | |
| 
 | |
|         if ! dpkg-statoverride --list /var/lib/qubes/dom0-updates >/dev/null 2>&1; then
 | |
|             dpkg-statoverride --update --add user user 775 /var/lib/qubes/dom0-updates
 | |
|         fi
 | |
| 
 | |
|         # Update Qubes App Menus"
 | |
|         /usr/lib/qubes/qubes-trigger-sync-appmenus.sh || true
 | |
| 
 | |
|         ## Update all xdg autostart desktop entries
 | |
|         /usr/lib/qubes/qubes-trigger-desktop-file-install clean || true
 | |
| 
 | |
|         ;;
 | |
| 
 | |
|     abort-upgrade|abort-remove|abort-deconfigure)
 | |
|         exit 0
 | |
|         ;;
 | |
| 
 | |
|     triggered)
 | |
|         for trigger in ${2}; do
 | |
|             case "${trigger}" in
 | |
| 
 | |
|                 /usr/share/applications)
 | |
|                     debug "Updating Qubes App Menus..."
 | |
|                     /usr/lib/qubes/qubes-trigger-sync-appmenus.sh || true
 | |
|             
 | |
|                     debug "Updating XDG Config..."
 | |
|                     /usr/lib/qubes/qubes-trigger-desktop-file-install || true
 | |
|                     ;;
 | |
| 
 | |
|                 /etc/xdg)
 | |
|                     debug "Updating XDG Config..."
 | |
|                     /usr/lib/qubes/qubes-trigger-desktop-file-install || true
 | |
|                     ;;
 | |
| 
 | |
|                 # Install overridden serial.conf init script 
 | |
|                 /etc/init/serial.conf)
 | |
|                     installSerialConf
 | |
|                     ;;
 | |
| 
 | |
|             esac
 | |
|         done
 | |
|         exit 0
 | |
|         ;;
 | |
| 
 | |
|     *)
 | |
|         echo "postinst called with unknown argument \`${1}'" >&2
 | |
|         exit 1
 | |
|         ;;
 | |
| esac
 | |
| 
 | |
| # dh_installdeb will replace this with shell code automatically
 | |
| # generated by other debhelper scripts.
 | |
| 
 | |
| #DEBHELPER#
 | |
| 
 | |
| exit 0
 | |
| 
 | |
| # vim: set ts=4 sw=4 sts=4 et :
 |