summaryrefslogtreecommitdiff
path: root/backend/modules/install_configure
blob: a78d576be8bd09b0614622d91f70043a97703ba1 (plain)
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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
#!/bin/bash

# Synopsis: configure_target_update_files
#
# This function is adapted from the Knoppix-Installer
function configure_target_update_files()
{
	send install_step configure_target_update_files
	# set up hostname
	cat <<EOF >$TARGET/etc/hosts
127.0.0.1	localhost
127.0.1.1	$cfg_hostname

# The following lines are desirable for IPv6 capable hosts
# (added automatically by netbase upgrade)

::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
EOF
	echo "$cfg_hostname" > $TARGET/etc/hostname
	echo "$cfg_hostname" > $TARGET/etc/mailname
	
	# remove LiveCD-user from /etc/sudoers
	cat > "$TARGET/etc/sudoers" <<EOF
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

Defaults	env_reset

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root	ALL=(ALL) ALL
EOF
	chown root:root "$TARGET/etc/sudoers"
	chmod 0440 "$TARGET/etc/sudoers"
	
	# "normalize" /etc/inittab
	rm -f "$TARGET/etc/inittab"
	sed 's/id\:[0-6]\:initdefault\:/id\:5\:initdefault\:/;s/\([1-6]:23\):/\145:/' "$TARGET/usr/share/sysvinit/inittab" > "$TARGET/etc/inittab"
	
	# create "real" /tmp with mode 1777
	rm -f $TARGET/tmp 2>/dev/null
	mkdir -p $TARGET/tmp
	chmod 1777 $TARGET/tmp

	# create /etc/mtab as a regular file
	rm -f $TARGET/etc/mtab
	touch $TARGET/etc/mtab

	# configure /etc/kernel-pkg.conf
	if [ -f "$TARGET/etc/kernel-pkg.conf" ]; then
		perl -pi -e "s/^maintainer.*\=.*/maintainer \:\= $cfg_realname/;s/^email.*\=.*/email \:\= $cfg_username\@$cfg_hostname\.local/" "$TARGET/etc/kernel-pkg.conf"
		NUMCPUS=$(grep -c "model name" /proc/cpuinfo)
		[ $NUMCPUS -ge 2 ] && echo CONCURRENCY_LEVEL := $NUMCPUS >> $TARGET/etc/kernel-pkg.conf
	fi
	
	# enable KDE sounds
	rm -f "$TARGET/home/$cfg_username/.kde/share/config/knotifyrc"
		
	# profile
	cat "$TARGET/usr/share/base-files/profile" > "$TARGET/etc/profile"
	
	# For us users use an us-mirror
	case "$LANGUAGE" in
		us*)
			#perl -pi -e "s/ftp2.de.debian.org/ftp.uk.debian.org/" $TARGET/etc/apt/sources.list
			:
		;;
	esac
	
	# install hooks
	if [ "$(ls $TARGET/usr/share/acritoxinstaller/target-config)" ]; then
		for hook in $TARGET/usr/share/acritoxinstaller/target-config/*
		do
			chroot_it "${hook#$TARGET}"
		done
	fi
	
	# install overlay
	if [ "$(ls $TARGET/usr/share/acritoxinstaller/target-overlay)" ]; then
		cp -a --target-directory=$TARGET $TARGET/usr/share/acritoxinstaller/target-overlay/*
	fi

	# add correct keymap
	[ -f /etc/sysconfig/keyboard ] && . /etc/sysconfig/keyboard

	[ -n "$KEYTABLE" ] && chroot_it install-keymap "$KEYTABLE" 2>/dev/null

        # remove live-repo from sources.list
        sed -i -e '/^# Live Media$/{N;\|\ndeb file:/live/image/debian |{N;/\n$/d}}' $TARGET/etc/apt/sources.list
}

# Synopsis: configure_target_purge_live_only_stuff
#
# This function removes everything that is only useful on live-systems
function configure_target_purge_live_only_stuff()
{
	send install_step configure_target_purge_live_only_stuff
	# remove live-only-packages
	chroot_it dpkg --purge \
			busybox \
			acritoxinstaller \
			acritoxinstaller-kanotix \
			live-boot-initramfs-tools \
			live-boot \
			live-initramfs \
			live-build-cgi \
			live-build \
			live-helper \
			live-config-runit \
			live-config-sysvinit \
			live-config-upstart \
			live-config \
			live-magic \
			live-manual-epub \
			live-manual-html \
			live-manual-odf \
			live-manual-pdf \
			live-manual-txt \
			live-manual \
			mknbi \
			syslinux \
			tftpd-hpa 	&> /dev/null

        # remove kde-config-touchpad if no touchpad is available
        [ "$(su "$FLL_LIVE_USER" -c "qdbus org.kde.synaptiks /modules/synaptiks org.kde.Synaptiks.isTouchpadAvailable")" = true ] && \
                chroot_it dpkg --purge kde-config-touchpad
	
	#  disable live config
	[ -f "$TARGET/etc/default/distro" ] && \
		perl -pi -e "s/^FLL_DISTRO_MODE\=.*/FLL_DISTRO_MODE\=\"installed\"/" "$TARGET/etc/default/distro"
	
	# remove temporary kde- user files
	rm -f "$TARGET/home/$cfg_username/.DCOPserver_*_*"
	rm -f "$TARGET/home/$cfg_username/.kde/cache-*"
	rm -f "$TARGET/home/$cfg_username/.kde/socket-*"
	rm -f "$TARGET/home/$cfg_username/.kde/tmp-*"
	rm -f "$TARGET/home/$cfg_username/.*uthority"
	
	rm -rf "$TARGET/etc/sysconfig"
	rm -f "$TARGET/home/$cfg_username/Desktop/install-gui.desktop"

	# remove kdm live shutdown hack
	rm -f "$TARGET/home/$cfg_username/.kde/shutdown/kdm-force-shutdown-hack"

        # remove live-only hooks
        rm -vf $TARGET/usr/bin/isohybrid-bg2 \
               $TARGET/usr/share/initramfs-tools/hooks/pcidetect \
               $TARGET/usr/share/initramfs-tools/scripts/init-top/pcidetect \
               $TARGET/usr/share/initramfs-tools/scripts/live-bottom/01gfxoverlay \
               $TARGET/usr/share/initramfs-tools/scripts/live-bottom/02blacklist \
               $TARGET/usr/share/initramfs-tools/scripts/live-bottom/03rpmfirmware
        rm -rvf $TARGET/lib/live
        rm -vf $TARGET/etc/profile.d/zz-live.sh
        rm -vf $TARGET/usr/local/bin/enable_persistent_live.bash
}