Subversion Repositories livecd

Rev

Rev 355 | Rev 372 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 355 Rev 359
1
########################################################################
1
########################################################################
2
#
2
#
3
# sl6rolling-live-base.ks
3
# sl6rolling-live-base.ks
4
#
4
#
5
# Defines the basics for all kickstarts of sl6rolling-live
5
# Defines the basics for all kickstarts of sl6rolling-live
6
# Kickstarts including this template can override these settings
6
# Kickstarts including this template can override these settings
7
#
7
#
8
########################################################################
8
########################################################################
9
 
9
 
10
lang en_US.UTF-8
10
lang en_US.UTF-8
11
keyboard us
11
keyboard us
12
timezone US/Eastern
12
timezone US/Eastern
13
auth --useshadow --enablemd5
13
auth --useshadow --enablemd5
14
selinux --enforcing
14
selinux --enforcing
15
firewall --enabled --service=mdns
15
firewall --enabled --service=mdns
16
 
16
 
17
# SL repositories
17
# SL repositories
18
repo --name=base      --baseurl=http://ftp.scientificlinux.org/linux/scientific/6rolling/$basearch/os/
18
repo --name=base      --baseurl=http://ftp.scientificlinux.org/linux/scientific/6rolling/$basearch/os/
19
repo --name=security  --baseurl=http://ftp.scientificlinux.org/linux/scientific/6rolling/$basearch/updates/security/
19
repo --name=security  --baseurl=http://ftp.scientificlinux.org/linux/scientific/6rolling/$basearch/updates/security/
-
 
20
repo --name=sl-addons --baseurl=http://ftp.scientificlinux.org/linux/scientific/6rolling/$basearch/addons/
20
 
21
 
21
# or use a mirror close to you
22
# or use a mirror close to you
22
#repo --name=base      --baseurl=http://mirror.switch.ch/ftp/mirror/scientificlinux/6rolling/$basearch/os/
23
#repo --name=base      --baseurl=http://mirror.switch.ch/ftp/mirror/scientificlinux/6rolling/$basearch/os/
23
#repo --name=security  --baseurl=http://mirror.switch.ch/ftp/mirror/scientificlinux/6rolling/$basearch/updates/security/
24
#repo --name=security  --baseurl=http://mirror.switch.ch/ftp/mirror/scientificlinux/6rolling/$basearch/updates/security/
24
 
25
 
25
# fastbugs is disabled
26
# fastbugs is disabled
26
#repo --name=fastbugs  --baseurl=http://ftp.scientificlinux.org/linux/scientific/6rolling/$basearch/updates/fastbugs/
27
#repo --name=fastbugs  --baseurl=http://ftp.scientificlinux.org/linux/scientific/6rolling/$basearch/updates/fastbugs/
27
 
28
 
28
xconfig --startxonboot
29
xconfig --startxonboot
29
services --enabled=NetworkManager --disabled=network,sshd
30
services --enabled=NetworkManager --disabled=network,sshd
30
 
31
 
31
 
32
 
32
########################################################################
33
########################################################################
33
#
34
#
34
# Basic software packages
35
# Basic software packages
35
#
36
#
36
########################################################################
37
########################################################################
37
 
38
 
38
%packages
39
%packages
39
syslinux
40
syslinux
40
kernel
41
kernel
41
 
42
 
42
# basic software groups
43
# basic software groups
43
@base
44
@base
44
# package added to @base
45
# package added to @base
45
squashfs-tools
46
squashfs-tools
46
@core
47
@core
47
@graphical-admin-tools
48
@graphical-admin-tools
48
@network-file-system-client
49
@network-file-system-client
49
@network-tools
50
@network-tools
50
@x11
51
@x11
51
 
52
 
52
# remote-desktop-clients
53
# remote-desktop-clients
53
rdesktop
54
rdesktop
54
tsclient
55
tsclient
55
 
56
 
56
# other usefull packages
57
# other usefull packages
57
busybox
58
busybox
58
mailx
59
mailx
59
memtest86+
60
memtest86+
60
livecd-tools
61
livecd-tools
61
fuse
62
fuse
62
wpa_supplicant
63
wpa_supplicant
63
dracut-network
64
dracut-network
64
yum-plugin-fastestmirror
65
yum-plugin-fastestmirror
65
 
66
 
66
# livecd bits to set up the livecd and be able to install
67
# livecd bits to set up the livecd and be able to install
67
anaconda
68
anaconda
68
device-mapper-multipath
69
device-mapper-multipath
69
isomd5sum
70
isomd5sum
70
 
71
 
71
%end
72
%end
72
 
73
 
73
 
74
 
74
########################################################################
75
########################################################################
75
#
76
#
76
#  LiveCD post install in chroot 
77
#  LiveCD post install in chroot 
77
#
78
#
78
########################################################################
79
########################################################################
79
%post
80
%post
80
 
81
 
81
#***********************************************************************
82
#***********************************************************************
82
# Create LiveCD configuration file and LiveCD functions
83
# Create LiveCD configuration file and LiveCD functions
83
#***********************************************************************
84
#***********************************************************************
84
 
85
 
85
cat > /etc/livesys.conf << 'EOF_livesysconf'
86
cat > /etc/livesys.conf << 'EOF_livesysconf'
86
#--------------------------------------------------------------------
87
#--------------------------------------------------------------------
87
# Configuration file for LiveCD
88
# Configuration file for LiveCD
88
#--------------------------------------------------------------------
89
#--------------------------------------------------------------------
89
 
90
 
90
# default LiveCD user
91
# default LiveCD user
91
LIVECD_DEF_USER="liveuser"
92
LIVECD_DEF_USER="liveuser"
92
 
93
 
93
# delay in seconds before auto login
94
# delay in seconds before auto login
94
LOGIN_DELAY=15
95
LOGIN_DELAY=15
95
 
96
 
96
# Services which are off (not running) on the LiveCD
97
# Services which are off (not running) on the LiveCD
97
SERVICES_OFF="mdmonitor setroubleshoot auditd crond atd readahead_early \
98
SERVICES_OFF="mdmonitor setroubleshoot auditd crond atd readahead_early \
98
              readahead_later kdump microcode_ctl openct pcscd postfix  \
99
              readahead_later kdump microcode_ctl openct pcscd postfix  \
99
	      yum-updatesd"
100
	      yum-updatesd"
100
 
101
 
101
# Services which should be on, but are not on per default
102
# Services which should be on, but are not on per default
102
SERVICES_ON=""
103
SERVICES_ON=""
103
 
104
 
104
EOF_livesysconf
105
EOF_livesysconf
105
 
106
 
106
 
107
 
107
cat > /etc/init.d/livesys.functions << 'EOF_livesysfunctions'
108
cat > /etc/init.d/livesys.functions << 'EOF_livesysfunctions'
108
#--------------------------------------------------------------------
109
#--------------------------------------------------------------------
109
# livesys functions
110
# livesys functions
110
#--------------------------------------------------------------------
111
#--------------------------------------------------------------------
111
 
112
 
112
# egrep_o is a replacement for "egrep -o". It prints only the last matching text
113
# egrep_o is a replacement for "egrep -o". It prints only the last matching text
113
egrep_o() {
114
egrep_o() {
114
   cat | egrep "$1" | sed -r "s/.*($1).*/\\1/"
115
   cat | egrep "$1" | sed -r "s/.*($1).*/\\1/"
115
}
116
}
116
 
117
 
117
# boot parameter
118
# boot parameter
118
cmdline_parameter() {
119
cmdline_parameter() {
119
   CMDLINE=/proc/cmdline
120
   CMDLINE=/proc/cmdline
120
   cat "$CMDLINE" | egrep_o "(^|[[:space:]]+)$1(\$|=|[[:space:]]+)" | egrep_o "$1"
121
   cat "$CMDLINE" | egrep_o "(^|[[:space:]]+)$1(\$|=|[[:space:]]+)" | egrep_o "$1"
121
}
122
}
122
 
123
 
123
# boot parameter value
124
# boot parameter value
124
cmdline_value()
125
cmdline_value()
125
{
126
{
126
   CMDLINE=/proc/cmdline
127
   CMDLINE=/proc/cmdline
127
   cat "$CMDLINE" | egrep_o "(^|[[:space:]]+)$1=([^[:space:]]+)" | egrep_o "=.*" | cut -b 2- | tail -n 1
128
   cat "$CMDLINE" | egrep_o "(^|[[:space:]]+)$1=([^[:space:]]+)" | egrep_o "=.*" | cut -b 2- | tail -n 1
128
}
129
}
129
 
130
 
130
exists() {
131
exists() {
131
    which $1 >/dev/null 2>&1 || return
132
    which $1 >/dev/null 2>&1 || return
132
    $*
133
    $*
133
}
134
}
134
 
135
 
135
EOF_livesysfunctions
136
EOF_livesysfunctions
136
 
137
 
137
 
138
 
138
#***********************************************************************
139
#***********************************************************************
139
# Create /root/post-install
140
# Create /root/post-install
140
# Must change "$" to "\$" and "`" to "\`" to avoid shell quoting
141
# Must change "$" to "\$" and "`" to "\`" to avoid shell quoting
141
#***********************************************************************
142
#***********************************************************************
142
 
143
 
143
cat > /root/post-install << EOF_post
144
cat > /root/post-install << EOF_post
144
#!/bin/bash
145
#!/bin/bash
145
 
146
 
146
#***********************************************************************
147
#***********************************************************************
147
# Create the livesys init script - /etc/rc.d/init.d/livesys
148
# Create the livesys init script - /etc/rc.d/init.d/livesys
148
#***********************************************************************
149
#***********************************************************************
149
 
150
 
150
echo "Creating the livesys init script - livesys"
151
echo "Creating the livesys init script - livesys"
151
 
152
 
152
cat > /etc/rc.d/init.d/livesys << EOF_initscript
153
cat > /etc/rc.d/init.d/livesys << EOF_initscript
153
#!/bin/bash
154
#!/bin/bash
154
#
155
#
155
# live: Init script for live image
156
# live: Init script for live image
156
#
157
#
157
# chkconfig: 345 00 99
158
# chkconfig: 345 00 99
158
# description: Init script for live image.
159
# description: Init script for live image.
159
 
160
 
160
. /etc/init.d/functions
161
. /etc/init.d/functions
161
. /etc/livesys.conf
162
. /etc/livesys.conf
162
. /etc/init.d/livesys.functions
163
. /etc/init.d/livesys.functions
163
 
164
 
164
# exit if not running from LiveCD
165
# exit if not running from LiveCD
165
if [ ! "\\\$( cmdline_parameter liveimg )" ] || [ "\\\$1" != "start" ]; then
166
if [ ! "\\\$( cmdline_parameter liveimg )" ] || [ "\\\$1" != "start" ]; then
166
    exit 0
167
    exit 0
167
fi
168
fi
168
 
169
 
169
[ -e /.liveimg-configured ] && configdone=1
170
[ -e /.liveimg-configured ] && configdone=1
170
 
171
 
171
touch /.liveimg-configured
172
touch /.liveimg-configured
172
 
173
 
173
### read boot parameters out of /proc/cmdline
174
### read boot parameters out of /proc/cmdline
174
 
175
 
175
# hostname
176
# hostname
176
hostname=\\\$( cmdline_value hostname )
177
hostname=\\\$( cmdline_value hostname )
177
 
178
 
178
# afs cell
179
# afs cell
179
CELL=\\\$( cmdline_value cell )
180
CELL=\\\$( cmdline_value cell )
180
 
181
 
181
# services to turn on / off
182
# services to turn on / off
182
SERVICEON=\\\$( cmdline_value serviceon )
183
SERVICEON=\\\$( cmdline_value serviceon )
183
SERVICEOFF=\\\$( cmdline_value serviceoff )
184
SERVICEOFF=\\\$( cmdline_value serviceoff )
184
 
185
 
185
# cups server
186
# cups server
186
CUPS=\\\$( cmdline_value cups )
187
CUPS=\\\$( cmdline_value cups )
187
 
188
 
188
# password
189
# password
189
PW=\\\$( cmdline_value pw )
190
PW=\\\$( cmdline_value pw )
190
[ ! \\\$PW ] && PW=\\\$( cmdline_value passwd )
191
[ ! \\\$PW ] && PW=\\\$( cmdline_value passwd )
191
 
192
 
192
# set livecd user
193
# set livecd user
193
LIVECD_USER=\\\$( cmdline_value user )
194
LIVECD_USER=\\\$( cmdline_value user )
194
[ ! "\\\$LIVECD_USER" ] && LIVECD_USER=\\\$LIVECD_DEF_USER
195
[ ! "\\\$LIVECD_USER" ] && LIVECD_USER=\\\$LIVECD_DEF_USER
195
 
196
 
196
 
197
 
197
### mount live image
198
### mount live image
198
if [ -b \\\`readlink -f /dev/live\\\` ]; then
199
if [ -b \\\`readlink -f /dev/live\\\` ]; then
199
   mkdir -p /mnt/live
200
   mkdir -p /mnt/live
200
   mount -o ro /dev/live /mnt/live 2>/dev/null || mount /dev/live /mnt/live
201
   mount -o ro /dev/live /mnt/live 2>/dev/null || mount /dev/live /mnt/live
201
fi
202
fi
202
 
203
 
203
livedir=\\\$( cmdline_value live_dir )
204
livedir=\\\$( cmdline_value live_dir )
204
[ ! "\\\$livedir" ] && livedir="LiveOS"
205
[ ! "\\\$livedir" ] && livedir="LiveOS"
205
 
206
 
206
### enable swaps unless requested otherwise
207
### enable swaps unless requested otherwise
207
swaps=\\\`blkid -t TYPE=swap -o device\\\`
208
swaps=\\\`blkid -t TYPE=swap -o device\\\`
208
if [ ! "\\\$( cmdline_parameter noswap )" ] && [ -n "\\\$swaps" ] ; then
209
if [ ! "\\\$( cmdline_parameter noswap )" ] && [ -n "\\\$swaps" ] ; then
209
  for s in \\\$swaps ; do
210
  for s in \\\$swaps ; do
210
    action "Enabling swap partition \\\$s" swapon \\\$s
211
    action "Enabling swap partition \\\$s" swapon \\\$s
211
  done
212
  done
212
fi
213
fi
213
if [ ! "\\\$( cmdline_parameter noswap )" ] && [ -f /mnt/live/\\\${livedir}/swap.img ] ; then
214
if [ ! "\\\$( cmdline_parameter noswap )" ] && [ -f /mnt/live/\\\${livedir}/swap.img ] ; then
214
  action "Enabling swap file" swapon /mnt/live/\\\${livedir}/swap.img
215
  action "Enabling swap file" swapon /mnt/live/\\\${livedir}/swap.img
215
fi
216
fi
216
 
217
 
217
### functions for persisten Home 
218
### functions for persisten Home 
218
mountPersistentHome() {
219
mountPersistentHome() {
219
  # support label/uuid
220
  # support label/uuid
220
  if [ "\\\${homedev##LABEL=}" != "\\\${homedev}" -o "\\\${homedev##UUID=}" != "\\\${homedev}" ]; then
221
  if [ "\\\${homedev##LABEL=}" != "\\\${homedev}" -o "\\\${homedev##UUID=}" != "\\\${homedev}" ]; then
221
    homedev=\\\`/sbin/blkid -o device -t "\\\$homedev"\\\`
222
    homedev=\\\`/sbin/blkid -o device -t "\\\$homedev"\\\`
222
  fi
223
  fi
223
 
224
 
224
  # if we're given a file rather than a blockdev, loopback it
225
  # if we're given a file rather than a blockdev, loopback it
225
  if [ "\\\${homedev##mtd}" != "\\\${homedev}" ]; then
226
  if [ "\\\${homedev##mtd}" != "\\\${homedev}" ]; then
226
    # mtd devs don't have a block device but get magic-mounted with -t jffs2
227
    # mtd devs don't have a block device but get magic-mounted with -t jffs2
227
    mountopts="-t jffs2"
228
    mountopts="-t jffs2"
228
  elif [ ! -b "\\\$homedev" ]; then
229
  elif [ ! -b "\\\$homedev" ]; then
229
    loopdev=\\\`losetup -f\\\`
230
    loopdev=\\\`losetup -f\\\`
230
    if [ "\\\${homedev##/mnt/live}" != "\\\${homedev}" ]; then
231
    if [ "\\\${homedev##/mnt/live}" != "\\\${homedev}" ]; then
231
      action "Remounting live store r/w" mount -o remount,rw /mnt/live
232
      action "Remounting live store r/w" mount -o remount,rw /mnt/live
232
    fi
233
    fi
233
    losetup \\\$loopdev \\\$homedev
234
    losetup \\\$loopdev \\\$homedev
234
    homedev=\\\$loopdev
235
    homedev=\\\$loopdev
235
  fi
236
  fi
236
 
237
 
237
  # if it's encrypted, we need to unlock it
238
  # if it's encrypted, we need to unlock it
238
  if [ "\\\$(/sbin/blkid -s TYPE -o value \\\$homedev 2>/dev/null)" = "crypto_LUKS" ]; then
239
  if [ "\\\$(/sbin/blkid -s TYPE -o value \\\$homedev 2>/dev/null)" = "crypto_LUKS" ]; then
239
    echo
240
    echo
240
    echo "Setting up encrypted /home device"
241
    echo "Setting up encrypted /home device"
241
    plymouth ask-for-password --command="cryptsetup luksOpen \\\$homedev EncHome"
242
    plymouth ask-for-password --command="cryptsetup luksOpen \\\$homedev EncHome"
242
    homedev=/dev/mapper/EncHome
243
    homedev=/dev/mapper/EncHome
243
  fi
244
  fi
244
 
245
 
245
  # and finally do the mount
246
  # and finally do the mount
246
  mount \\\$mountopts \\\$homedev /home
247
  mount \\\$mountopts \\\$homedev /home
247
  # if we have /home under what's passed for persistent home, then
248
  # if we have /home under what's passed for persistent home, then
248
  # we should make that the real /home.  useful for mtd device on olpc
249
  # we should make that the real /home.  useful for mtd device on olpc
249
  if [ -d /home/home ]; then mount --bind /home/home /home ; fi
250
  if [ -d /home/home ]; then mount --bind /home/home /home ; fi
250
  [ -x /sbin/restorecon ] && /sbin/restorecon /home
251
  [ -x /sbin/restorecon ] && /sbin/restorecon /home
251
  if [ -d /home/\\\$LIVECD_USER ]; then USERADDARGS="-M" ; fi
252
  if [ -d /home/\\\$LIVECD_USER ]; then USERADDARGS="-M" ; fi
252
}
253
}
253
 
254
 
254
findPersistentHome() {
255
findPersistentHome() {
255
  for arg in \\\`cat /proc/cmdline\\\` ; do
256
  for arg in \\\`cat /proc/cmdline\\\` ; do
256
    if [ "\\\${arg##persistenthome=}" != "\\\${arg}" ]; then
257
    if [ "\\\${arg##persistenthome=}" != "\\\${arg}" ]; then
257
      homedev=\\\${arg##persistenthome=}
258
      homedev=\\\${arg##persistenthome=}
258
      return
259
      return
259
    fi
260
    fi
260
  done
261
  done
261
}
262
}
262
 
263
 
263
if strstr "\\\`cat /proc/cmdline\\\`" persistenthome= ; then
264
if strstr "\\\`cat /proc/cmdline\\\`" persistenthome= ; then
264
  findPersistentHome
265
  findPersistentHome
265
elif [ -e /mnt/live/\\\${livedir}/home.img ]; then
266
elif [ -e /mnt/live/\\\${livedir}/home.img ]; then
266
  homedev=/mnt/live/\\\${livedir}/home.img
267
  homedev=/mnt/live/\\\${livedir}/home.img
267
fi
268
fi
268
 
269
 
269
### if we have a persistent /home, then we want to go ahead and mount it
270
### if we have a persistent /home, then we want to go ahead and mount it
270
if ! strstr "\\\`cat /proc/cmdline\\\`" nopersistenthome && [ -n "\\\$homedev" ] ; then
271
if ! strstr "\\\`cat /proc/cmdline\\\`" nopersistenthome && [ -n "\\\$homedev" ] ; then
271
  action "Mounting persistent /home" mountPersistentHome
272
  action "Mounting persistent /home" mountPersistentHome
272
fi
273
fi
273
 
274
 
274
### make it so that we don't do writing to the overlay for things which
275
### make it so that we don't do writing to the overlay for things which
275
### are just tmpdirs/caches
276
### are just tmpdirs/caches
276
mount -t tmpfs -o mode=0755 varcacheyum /var/cache/yum
277
mount -t tmpfs -o mode=0755 varcacheyum /var/cache/yum
277
mount -t tmpfs tmp /tmp
278
mount -t tmpfs tmp /tmp
278
mount -t tmpfs vartmp /var/tmp
279
mount -t tmpfs vartmp /var/tmp
279
[ -x /sbin/restorecon ] && /sbin/restorecon /var/cache/yum /tmp /var/tmp >/dev/null 2>&1
280
[ -x /sbin/restorecon ] && /sbin/restorecon /var/cache/yum /tmp /var/tmp >/dev/null 2>&1
280
 
281
 
281
### set afs cell if given by boot parameter
282
### set afs cell if given by boot parameter
282
if [ "\\\$CELL" ]; then
283
if [ "\\\$CELL" ]; then
283
    [ -e /usr/vice/etc/ThisCell ] && echo \\\$CELL > /usr/vice/etc/ThisCell
284
    [ -e /usr/vice/etc/ThisCell ] && echo \\\$CELL > /usr/vice/etc/ThisCell
284
fi
285
fi
285
 
286
 
286
### set cups server
287
### set cups server
287
if [ "\\\$CUPS" ]; then
288
if [ "\\\$CUPS" ]; then
288
    if [ -e /etc/cups/client.conf ]; then
289
    if [ -e /etc/cups/client.conf ]; then
289
        sed -i "s|.*ServerName .*|ServerName  \\\$CUPS|" /etc/cups/client.conf
290
        sed -i "s|.*ServerName .*|ServerName  \\\$CUPS|" /etc/cups/client.conf
290
        grep -q ServerName /etc/cups/client.conf || echo "ServerName  \\\$CUPS" >> /etc/cups/client.conf 
291
        grep -q ServerName /etc/cups/client.conf || echo "ServerName  \\\$CUPS" >> /etc/cups/client.conf 
291
    fi
292
    fi
292
fi
293
fi
293
 
294
 
294
### set the LiveCD hostname
295
### set the LiveCD hostname
295
[ ! "\\\$hostname" ] && hostname="livecd.localdomain"
296
[ ! "\\\$hostname" ] && hostname="livecd.localdomain"
296
sed -i -e "s|HOSTNAME=.*|HOSTNAME=\\\$hostname|g" /etc/sysconfig/network
297
sed -i -e "s|HOSTNAME=.*|HOSTNAME=\\\$hostname|g" /etc/sysconfig/network
297
/bin/hostname \\\$hostname
298
/bin/hostname \\\$hostname
298
 
299
 
299
#-----------------------------------------------------------------------
300
#-----------------------------------------------------------------------
300
# EXIT here if LiveCD has already been configured         
301
# EXIT here if LiveCD has already been configured         
301
# happens if you start the LiveCD with persistent changes 
302
# happens if you start the LiveCD with persistent changes 
302
#-----------------------------------------------------------------------
303
#-----------------------------------------------------------------------
303
 
304
 
304
[ "\\\$configdone" ] && exit 0
305
[ "\\\$configdone" ] && exit 0
305
 
306
 
306
### turn off services, which are not useful on LiveCD, to preserve resources
307
### turn off services, which are not useful on LiveCD, to preserve resources
307
if [ "\\\$SERVICES_OFF" ]; then
308
if [ "\\\$SERVICES_OFF" ]; then
308
    for service in \\\$SERVICES_OFF ; do
309
    for service in \\\$SERVICES_OFF ; do
309
        [ -f /etc/init.d/\\\$service ] && chkconfig \\\$service off 2>/dev/null
310
        [ -f /etc/init.d/\\\$service ] && chkconfig \\\$service off 2>/dev/null
310
    done
311
    done
311
fi
312
fi
312
 
313
 
313
### turn on services, which are off by default
314
### turn on services, which are off by default
314
if [ "\\\$SERVICES_ON" ]; then
315
if [ "\\\$SERVICES_ON" ]; then
315
    for service in \\\$SERVICES_ON ; do
316
    for service in \\\$SERVICES_ON ; do
316
        [ -f /etc/init.d/\\\$service ] && chkconfig \\\$service ofn  2>/dev/null
317
        [ -f /etc/init.d/\\\$service ] && chkconfig \\\$service ofn  2>/dev/null
317
    done
318
    done
318
fi
319
fi
319
 
320
 
320
### services off, from command line parameter (turn it off once again)
321
### services off, from command line parameter (turn it off once again)
321
if [ "\\\$SERVICEOFF" ]; then
322
if [ "\\\$SERVICEOFF" ]; then
322
    for service in \\\$( echo "\\\$SERVICEOFF" | tr ':' ' ' ); do
323
    for service in \\\$( echo "\\\$SERVICEOFF" | tr ':' ' ' ); do
323
        [ -f /etc/init.d/\\\$service ] && chkconfig \\\$service off 2>/dev/null
324
        [ -f /etc/init.d/\\\$service ] && chkconfig \\\$service off 2>/dev/null
324
    done
325
    done
325
fi
326
fi
326
 
327
 
327
# services on, from command line parameter (turn it ofn once again)
328
# services on, from command line parameter (turn it ofn once again)
328
if [ "\\\$SERVICEON" ]; then
329
if [ "\\\$SERVICEON" ]; then
329
    for service in \\\$( echo "\\\$SERVICEON" | tr ':' ' ' ); do
330
    for service in \\\$( echo "\\\$SERVICEON" | tr ':' ' ' ); do
330
        [ -f /etc/init.d/\\\$service ] && chkconfig \\\$service on  2>/dev/null
331
        [ -f /etc/init.d/\\\$service ] && chkconfig \\\$service on  2>/dev/null
331
    done
332
    done
332
fi
333
fi
333
 
334
 
334
### fix various bugs and issues
335
### fix various bugs and issues
335
# unmute sound card
336
# unmute sound card
336
exists alsaunmute 0 2> /dev/null
337
exists alsaunmute 0 2> /dev/null
337
 
338
 
338
# turn off firstboot for livecd boots
339
# turn off firstboot for livecd boots
339
echo "RUN_FIRSTBOOT=NO" > /etc/sysconfig/firstboot
340
echo "RUN_FIRSTBOOT=NO" > /etc/sysconfig/firstboot
340
 
341
 
341
# start afs with option -memcache (gets a kernel panic on some system - do not use it for the moment)
342
# start afs with option -memcache (gets a kernel panic on some system - do not use it for the moment)
342
# [ -e /etc/sysconfig/afs ] && sed -i "s|^OPTIONS=.*|OPTIONS=\"-memcache\"|" /etc/sysconfig/afs
343
# [ -e /etc/sysconfig/afs ] && sed -i "s|^OPTIONS=.*|OPTIONS=\"-memcache\"|" /etc/sysconfig/afs
343
 
344
 
344
# Stopgap fix for RH #217966; should be fixed in HAL instead
345
# Stopgap fix for RH #217966; should be fixed in HAL instead
345
touch /media/.hal-mtab
346
touch /media/.hal-mtab
346
 
347
 
347
### create the LiveCD default user
348
### create the LiveCD default user
348
# add default user with no password
349
# add default user with no password
349
/usr/sbin/useradd -c "LiveCD default user" \\\$LIVECD_USER
350
/usr/sbin/useradd -c "LiveCD default user" \\\$LIVECD_USER
350
/usr/bin/passwd -d \\\$LIVECD_USER > /dev/null
351
/usr/bin/passwd -d \\\$LIVECD_USER > /dev/null
351
# give default user sudo privileges
352
# give default user sudo privileges
352
# echo "\\\$LIVECD_USER     ALL=(ALL)     NOPASSWD: ALL" >> /etc/sudoers
353
# echo "\\\$LIVECD_USER     ALL=(ALL)     NOPASSWD: ALL" >> /etc/sudoers
353
 
354
 
354
### set password
355
### set password
355
if [ "\\\$PW" ]; then
356
if [ "\\\$PW" ]; then
356
    echo \\\$PW | passwd --stdin root >/dev/null
357
    echo \\\$PW | passwd --stdin root >/dev/null
357
    echo \\\$PW | passwd --stdin \\\$LIVECD_USER >/dev/null
358
    echo \\\$PW | passwd --stdin \\\$LIVECD_USER >/dev/null
358
fi
359
fi
359
 
360
 
360
### enable auto-login
361
### enable auto-login
361
if [ ! "\\\$( cmdline_parameter noautologin )" ]; then
362
if [ ! "\\\$( cmdline_parameter noautologin )" ]; then
362
    cat >> /etc/gdm/custom.conf << FOE
363
    cat >> /etc/gdm/custom.conf << FOE
363
[daemon]
364
[daemon]
364
TimedLoginEnable=true
365
TimedLoginEnable=true
365
TimedLogin=LIVECD_USER
366
TimedLogin=LIVECD_USER
366
TimedLoginDelay=\\\$LOGIN_DELAY
367
TimedLoginDelay=\\\$LOGIN_DELAY
367
FOE
368
FOE
368
    sed -i "s|LIVECD_USER|\\\$LIVECD_USER|" /etc/gdm/custom.conf
369
    sed -i "s|LIVECD_USER|\\\$LIVECD_USER|" /etc/gdm/custom.conf
369
fi
370
fi
370
 
371
 
371
### add keyboard and display configuration utilities to the desktop
372
### add keyboard and display configuration utilities to the desktop
372
mkdir -p /home/\\\$LIVECD_USER/Desktop >/dev/null
373
mkdir -p /home/\\\$LIVECD_USER/Desktop >/dev/null
373
cp /usr/share/applications/gnome-keyboard.desktop           /home/\\\$LIVECD_USER/Desktop/
374
cp /usr/share/applications/gnome-keyboard.desktop           /home/\\\$LIVECD_USER/Desktop/
374
cp /usr/share/applications/gnome-display-properties.desktop /home/\\\$LIVECD_USER/Desktop/
375
cp /usr/share/applications/gnome-display-properties.desktop /home/\\\$LIVECD_USER/Desktop/
375
 
376
 
376
### disable screensaver locking
377
### disable screensaver locking
377
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool   /apps/gnome-screensaver/lock_enabled "false" >/dev/null
378
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool   /apps/gnome-screensaver/lock_enabled "false" >/dev/null
378
 
379
 
379
### don't do packagekit checking by default
380
### don't do packagekit checking by default
380
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t int /apps/gnome-packagekit/update-icon/frequency_get_updates "0" >/dev/null
381
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t int /apps/gnome-packagekit/update-icon/frequency_get_updates "0" >/dev/null
381
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t string /apps/gnome-packagekit/update-icon/frequency_get_updates never >/dev/null
382
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t string /apps/gnome-packagekit/update-icon/frequency_get_updates never >/dev/null
382
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t string /apps/gnome-packagekit/update-icon/frequency_get_upgrades never >/dev/null
383
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t string /apps/gnome-packagekit/update-icon/frequency_get_upgrades never >/dev/null
383
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t string /apps/gnome-packagekit/update-icon/frequency_refresh_cache never >/dev/null
384
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t string /apps/gnome-packagekit/update-icon/frequency_refresh_cache never >/dev/null
384
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/update-icon/notify_available false >/dev/null
385
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/update-icon/notify_available false >/dev/null
385
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/update-icon/notify_distro_upgrades false >/dev/null
386
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/update-icon/notify_distro_upgrades false >/dev/null
386
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_check_firmware false >/dev/null
387
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_check_firmware false >/dev/null
387
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_check_hardware false >/dev/null
388
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_check_hardware false >/dev/null
388
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_codec_helper false >/dev/null
389
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_codec_helper false >/dev/null
389
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_font_helper false >/dev/null
390
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_font_helper false >/dev/null
390
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_mime_type_helper false >/dev/null
391
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-packagekit/enable_mime_type_helper false >/dev/null
391
 
392
 
392
### start system-config-firewall with su 
393
### start system-config-firewall with su 
393
#  (bugfix: system-config-firewall does not work when root has no password)
394
#  (bugfix: system-config-firewall does not work when root has no password)
394
sed -i "s|^Exec=.*|Exec=su - -c /usr/bin/system-config-firewall|" /usr/share/applications/system-config-firewall.desktop
395
sed -i "s|^Exec=.*|Exec=su - -c /usr/bin/system-config-firewall|" /usr/share/applications/system-config-firewall.desktop
395
sed -i "s|^Terminal=.*|Terminal=true|"                            /usr/share/applications/system-config-firewall.desktop
396
sed -i "s|^Terminal=.*|Terminal=true|"                            /usr/share/applications/system-config-firewall.desktop
396
 
397
 
397
### don't use prelink on a running live image
398
### don't use prelink on a running live image
398
sed -i 's/PRELINKING=yes/PRELINKING=no/' /etc/sysconfig/prelink &>/dev/null
399
sed -i 's/PRELINKING=yes/PRELINKING=no/' /etc/sysconfig/prelink &>/dev/null
399
 
400
 
400
 
401
 
401
###-----------------------------------------------------------------------
402
###-----------------------------------------------------------------------
402
# detecting disk partitions and logical volumes (disabled by default)
403
# detecting disk partitions and logical volumes (disabled by default)
403
# use boot parameter automount to enable it
404
# use boot parameter automount to enable it
404
###-----------------------------------------------------------------------
405
###-----------------------------------------------------------------------
405
 
406
 
406
CreateDesktopIconHD()
407
CreateDesktopIconHD()
407
{
408
{
408
cat > /home/\\\$LIVECD_USER/Desktop/Local\ hard\ drives.desktop << EOF_HDicon
409
cat > /home/\\\$LIVECD_USER/Desktop/Local\ hard\ drives.desktop << EOF_HDicon
409
[Desktop Entry]
410
[Desktop Entry]
410
Encoding=UTF-8
411
Encoding=UTF-8
411
Version=1.0
412
Version=1.0
412
Type=Link
413
Type=Link
413
Name=Local hard drives
414
Name=Local hard drives
414
Name[en_US]=Local hard drives
415
Name[en_US]=Local hard drives
415
Name[fr_CA]=Disques durs locaux
416
Name[fr_CA]=Disques durs locaux
416
URL=/mnt/disc
417
URL=/mnt/disc
417
Icon=/usr/share/icons/gnome/32x32/devices/gnome-dev-harddisk.png
418
Icon=/usr/share/icons/gnome/32x32/devices/gnome-dev-harddisk.png
418
EOF_HDicon
419
EOF_HDicon
419
 
420
 
420
chmod 755 /home/\\\$LIVECD_USER/Desktop/Local\ hard\ drives.desktop
421
chmod 755 /home/\\\$LIVECD_USER/Desktop/Local\ hard\ drives.desktop
421
}
422
}
422
 
423
 
423
CreateDesktopIconLVM()
424
CreateDesktopIconLVM()
424
{
425
{
425
mkdir -p /home/\\\$LIVECD_USER/Desktop >/dev/null
426
mkdir -p /home/\\\$LIVECD_USER/Desktop >/dev/null
426
 
427
 
427
cat > /home/\\\$LIVECD_USER/Desktop/Local\ logical\ volumes.desktop << EOF_LVMicon
428
cat > /home/\\\$LIVECD_USER/Desktop/Local\ logical\ volumes.desktop << EOF_LVMicon
428
[Desktop Entry]
429
[Desktop Entry]
429
Encoding=UTF-8
430
Encoding=UTF-8
430
Version=1.0
431
Version=1.0
431
Type=Link
432
Type=Link
432
Name=Local logical volumes
433
Name=Local logical volumes
433
Name[en_US]=Local logical volumes
434
Name[en_US]=Local logical volumes
434
Name[fr_CA]=Volumes logiques locaux
435
Name[fr_CA]=Volumes logiques locaux
435
URL=/mnt/lvm
436
URL=/mnt/lvm
436
Icon=/usr/share/icons/gnome/32x32/devices/gnome-dev-harddisk.png
437
Icon=/usr/share/icons/gnome/32x32/devices/gnome-dev-harddisk.png
437
EOF_LVMicon
438
EOF_LVMicon
438
 
439
 
439
chmod 755 /home/\\\$LIVECD_USER/Desktop/Local\ logical\ volumes.desktop
440
chmod 755 /home/\\\$LIVECD_USER/Desktop/Local\ logical\ volumes.desktop
440
}
441
}
441
 
442
 
442
# mount disk partitions if 'automount' is given as a boot option
443
# mount disk partitions if 'automount' is given as a boot option
443
if [ "\\\$( cmdline_parameter automount )" ]; then
444
if [ "\\\$( cmdline_parameter automount )" ]; then
444
	MOUNTOPTION="rw"
445
	MOUNTOPTION="rw"
445
	HARD_DISKS=\\\`egrep "[sh]d.\\\$" /proc/partitions | tr -s ' ' | sed 's/^  *//' | cut -d' ' -f4\\\`
446
	HARD_DISKS=\\\`egrep "[sh]d.\\\$" /proc/partitions | tr -s ' ' | sed 's/^  *//' | cut -d' ' -f4\\\`
446
 
447
 
447
	echo "Mounting hard disk partitions... "
448
	echo "Mounting hard disk partitions... "
448
	for DISK in \\\$HARD_DISKS; do
449
	for DISK in \\\$HARD_DISKS; do
449
	    # Get the device and system info from fdisk (but only for fat and linux partitions).
450
	    # Get the device and system info from fdisk (but only for fat and linux partitions).
450
	    FDISK_INFO=\\\`fdisk -l /dev/\\\$DISK | tr [A-Z] [a-z] | egrep "fat|linux" | egrep -v "swap|extended|lvm" | sed 's/*//' | tr -s ' ' | tr ' ' ':' | cut -d':' -f1,6-\\\`
451
	    FDISK_INFO=\\\`fdisk -l /dev/\\\$DISK | tr [A-Z] [a-z] | egrep "fat|linux" | egrep -v "swap|extended|lvm" | sed 's/*//' | tr -s ' ' | tr ' ' ':' | cut -d':' -f1,6-\\\`
451
	    for FDISK_ENTRY in \\\$FDISK_INFO; do
452
	    for FDISK_ENTRY in \\\$FDISK_INFO; do
452
		PARTITION=\\\`echo \\\$FDISK_ENTRY | cut -d':' -f1\\\`
453
		PARTITION=\\\`echo \\\$FDISK_ENTRY | cut -d':' -f1\\\`
453
		MOUNTPOINT="/mnt/disc/\\\${PARTITION##/dev/}"
454
		MOUNTPOINT="/mnt/disc/\\\${PARTITION##/dev/}"
454
		mkdir -p \\\$MOUNTPOINT
455
		mkdir -p \\\$MOUNTPOINT
455
		MOUNTED=FALSE
456
		MOUNTED=FALSE
456
 
457
 
457
		# get the partition type
458
		# get the partition type
458
		case \\\`echo \\\$FDISK_ENTRY | cut -d':' -f2-\\\` in
459
		case \\\`echo \\\$FDISK_ENTRY | cut -d':' -f2-\\\` in
459
		*fat*) 
460
		*fat*) 
460
		    FSTYPES="vfat"
461
		    FSTYPES="vfat"
461
		    EXTRAOPTIONS=",uid=500";;
462
		    EXTRAOPTIONS=",uid=500";;
462
		*)
463
		*)
463
		    FSTYPES="ext4 ext3 ext2"
464
		    FSTYPES="ext4 ext3 ext2"
464
		    EXTRAOPTIONS="";;
465
		    EXTRAOPTIONS="";;
465
		esac
466
		esac
466
 
467
 
467
		# try to mount the partition
468
		# try to mount the partition
468
		for FSTYPE in \\\$FSTYPES; do
469
		for FSTYPE in \\\$FSTYPES; do
469
		    if mount -o "\\\${MOUNTOPTION}\\\${EXTRAOPTIONS}" -t \\\$FSTYPE \\\$PARTITION \\\$MOUNTPOINT &>/dev/null; then
470
		    if mount -o "\\\${MOUNTOPTION}\\\${EXTRAOPTIONS}" -t \\\$FSTYPE \\\$PARTITION \\\$MOUNTPOINT &>/dev/null; then
470
			echo "\\\$PARTITION \\\$MOUNTPOINT \\\$FSTYPE noauto,\\\${MOUNTOPTION}\\\${EXTRAOPTIONS} 0 0" >> /etc/fstab
471
			echo "\\\$PARTITION \\\$MOUNTPOINT \\\$FSTYPE noauto,\\\${MOUNTOPTION}\\\${EXTRAOPTIONS} 0 0" >> /etc/fstab
471
			echo -n "\\\$PARTITION "
472
			echo -n "\\\$PARTITION "
472
			MOUNTED=TRUE
473
			MOUNTED=TRUE
473
			CreateDesktopIconHD
474
			CreateDesktopIconHD
474
		    fi
475
		    fi
475
		done
476
		done
476
		[ \\\$MOUNTED = "FALSE" ] && rmdir \\\$MOUNTPOINT
477
		[ \\\$MOUNTED = "FALSE" ] && rmdir \\\$MOUNTPOINT
477
	    done
478
	    done
478
	done
479
	done
479
	echo
480
	echo
480
fi
481
fi
481
 
482
 
482
# mount logical volumes if 'automount' is given as a boot option
483
# mount logical volumes if 'automount' is given as a boot option
483
if [ "\\\$( cmdline_parameter automount )" ]; then
484
if [ "\\\$( cmdline_parameter automount )" ]; then
484
        MOUNTOPTION="rw"
485
        MOUNTOPTION="rw"
485
	FSTYPES="ext4 ext3 ext2"
486
	FSTYPES="ext4 ext3 ext2"
486
	echo "Scanning for logical volumes..."
487
	echo "Scanning for logical volumes..."
487
	if ! lvm vgscan 2>&1 | grep "No volume groups"; then
488
	if ! lvm vgscan 2>&1 | grep "No volume groups"; then
488
	    echo "Activating logical volumes ..."
489
	    echo "Activating logical volumes ..."
489
	    modprobe dm_mod >/dev/null
490
	    modprobe dm_mod >/dev/null
490
	    lvm vgchange -ay
491
	    lvm vgchange -ay
491
	    LOGICAL_VOLUMES=\\\`lvm lvdisplay -c | sed "s/^  *//" | cut -d: -f1\\\`
492
	    LOGICAL_VOLUMES=\\\`lvm lvdisplay -c | sed "s/^  *//" | cut -d: -f1\\\`
492
	    if [ ! -z "\\\$LOGICAL_VOLUMES" ]; then
493
	    if [ ! -z "\\\$LOGICAL_VOLUMES" ]; then
493
		echo "Making device nodes ..."
494
		echo "Making device nodes ..."
494
		lvm vgmknodes
495
		lvm vgmknodes
495
		echo -n "Mounting logical volumes ... "
496
		echo -n "Mounting logical volumes ... "
496
		for VOLUME_NAME in \\\$LOGICAL_VOLUMES; do
497
		for VOLUME_NAME in \\\$LOGICAL_VOLUMES; do
497
		    VG_NAME=\\\`echo \\\$VOLUME_NAME | cut -d/ -f3\\\`
498
		    VG_NAME=\\\`echo \\\$VOLUME_NAME | cut -d/ -f3\\\`
498
		    LV_NAME=\\\`echo \\\$VOLUME_NAME | cut -d/ -f4\\\`
499
		    LV_NAME=\\\`echo \\\$VOLUME_NAME | cut -d/ -f4\\\`
499
		    MOUNTPOINT="/mnt/lvm/\\\${VG_NAME}-\\\${LV_NAME}"
500
		    MOUNTPOINT="/mnt/lvm/\\\${VG_NAME}-\\\${LV_NAME}"
500
		    mkdir -p \\\$MOUNTPOINT
501
		    mkdir -p \\\$MOUNTPOINT
501
 
502
 
502
		    MOUNTED=FALSE
503
		    MOUNTED=FALSE
503
		    for FSTYPE in \\\$FSTYPES; do
504
		    for FSTYPE in \\\$FSTYPES; do
504
			if mount -o \\\$MOUNTOPTION -t \\\$FSTYPE \\\$VOLUME_NAME \\\$MOUNTPOINT &>/dev/null; then
505
			if mount -o \\\$MOUNTOPTION -t \\\$FSTYPE \\\$VOLUME_NAME \\\$MOUNTPOINT &>/dev/null; then
505
			    echo "\\\$VOLUME_NAME \\\$MOUNTPOINT \\\$FSTYPE defaults,\\\${MOUNTOPTION} 0 0" >> /etc/fstab
506
			    echo "\\\$VOLUME_NAME \\\$MOUNTPOINT \\\$FSTYPE defaults,\\\${MOUNTOPTION} 0 0" >> /etc/fstab
506
			    echo -n "\\\$VOLUME_NAME "
507
			    echo -n "\\\$VOLUME_NAME "
507
			    MOUNTED=TRUE
508
			    MOUNTED=TRUE
508
			    CreateDesktopIconLVM
509
			    CreateDesktopIconLVM
509
			    break
510
			    break
510
			fi
511
			fi
511
		    done
512
		    done
512
		    [ \\\$MOUNTED = FALSE ] && rmdir \\\$MOUNTPOINT
513
		    [ \\\$MOUNTED = FALSE ] && rmdir \\\$MOUNTPOINT
513
		done
514
		done
514
		echo
515
		echo
515
 
516
 
516
	    else
517
	    else
517
		echo "No logical volumes found"
518
		echo "No logical volumes found"
518
	    fi
519
	    fi
519
	fi
520
	fi
520
fi
521
fi
521
 
522
 
522
### give back ownership to the default user
523
### give back ownership to the default user
523
chown -R \\\$LIVECD_USER:\\\$LIVECD_USER /home/\\\$LIVECD_USER
524
chown -R \\\$LIVECD_USER:\\\$LIVECD_USER /home/\\\$LIVECD_USER
524
 
525
 
525
EOF_initscript
526
EOF_initscript
526
#***********************************************************************
527
#***********************************************************************
527
# End of livesys script
528
# End of livesys script
528
#***********************************************************************
529
#***********************************************************************
529
 
530
 
530
 
531
 
531
#***********************************************************************
532
#***********************************************************************
532
# Create the livesys init script - /etc/rc.d/init.d/livesys-late
533
# Create the livesys init script - /etc/rc.d/init.d/livesys-late
533
#***********************************************************************
534
#***********************************************************************
534
 
535
 
535
echo "Creating the livesys init script - livesys-late"
536
echo "Creating the livesys init script - livesys-late"
536
 
537
 
537
cat > /etc/rc.d/init.d/livesys-late << EOF_lateinitscript
538
cat > /etc/rc.d/init.d/livesys-late << EOF_lateinitscript
538
#!/bin/bash
539
#!/bin/bash
539
#
540
#
540
# live: Late init script for live image
541
# live: Late init script for live image
541
#
542
#
542
# chkconfig: 345 99 01
543
# chkconfig: 345 99 01
543
# description: Late init script for live image.
544
# description: Late init script for live image.
544
 
545
 
545
. /etc/init.d/functions
546
. /etc/init.d/functions
546
. /etc/livesys.conf
547
. /etc/livesys.conf
547
. /etc/init.d/livesys.functions
548
. /etc/init.d/livesys.functions
548
 
549
 
549
# exit if not running from LiveCD
550
# exit if not running from LiveCD
550
if [ ! "\\\$( cmdline_parameter liveimg )" ] || [ "\\\$1" != "start" ]; then
551
if [ ! "\\\$( cmdline_parameter liveimg )" ] || [ "\\\$1" != "start" ]; then
551
    exit 0
552
    exit 0
552
fi
553
fi
553
 
554
 
554
touch /.liveimg-late-configured
555
touch /.liveimg-late-configured
555
 
556
 
556
# read boot parameters out of /proc/cmdline
557
# read boot parameters out of /proc/cmdline
557
ks=\\\$( cmdline_value ks )
558
ks=\\\$( cmdline_value ks )
558
xdriver=\\\$( cmdline_value xdriver )
559
xdriver=\\\$( cmdline_value xdriver )
559
kb=\\\$( cmdline_value kb )
560
kb=\\\$( cmdline_value kb )
560
 
561
 
561
# if liveinst or textinst is given, start anaconda
562
# if liveinst or textinst is given, start anaconda
562
if [ "\\\$( cmdline_parameter liveinst )" ]; then
563
if [ "\\\$( cmdline_parameter liveinst )" ]; then
563
   plymouth --quit
564
   plymouth --quit
564
   /usr/sbin/liveinst \\\$ks
565
   /usr/sbin/liveinst \\\$ks
565
   /sbin/reboot
566
   /sbin/reboot
566
fi
567
fi
567
if [ "\\\$( cmdline_parameter textinst )" ] ; then
568
if [ "\\\$( cmdline_parameter textinst )" ] ; then
568
   plymouth --quit
569
   plymouth --quit
569
   /usr/sbin/liveinst --text \\\$ks
570
   /usr/sbin/liveinst --text \\\$ks
570
   /sbin/reboot
571
   /sbin/reboot
571
fi
572
fi
572
 
573
 
573
# configure X, allowing user to override xdriver 
574
# configure X, allowing user to override xdriver 
574
# (does not work in SL6 with xorg 7.4)
575
# (does not work in SL6 with xorg 7.4)
575
# if [ -n "\\\$xdriver" ]; then
576
# if [ -n "\\\$xdriver" ]; then
576
#   cat > /etc/X11/xorg.conf.d/00-xdriver.conf <<FOE
577
#   cat > /etc/X11/xorg.conf.d/00-xdriver.conf <<FOE
577
# Section "Device"
578
# Section "Device"
578
#        Identifier      "Videocard0"
579
#        Identifier      "Videocard0"
579
#        Driver          "\\\$xdriver"
580
#        Driver          "\\\$xdriver"
580
# EndSection
581
# EndSection
581
# FOE
582
# FOE
582
# fi
583
# fi
583
 
584
 
584
# configure X, allowing user to override xdriver
585
# configure X, allowing user to override xdriver
585
# (does not work in SL6 because system-config-display is missing)
586
# (does not work in SL6 because system-config-display is missing)
586
if [ -n "\\\$xdriver" ]; then
587
if [ -n "\\\$xdriver" ]; then
587
   exists system-config-display --noui --reconfig --set-depth=24 \\\$xdriver
588
   exists system-config-display --noui --reconfig --set-depth=24 \\\$xdriver
588
fi
589
fi
589
 
590
 
590
# configure keyboard
591
# configure keyboard
591
# (does not work in SL6 because system-config-keyboard is missing)
592
# (does not work in SL6 because system-config-keyboard is missing)
592
if [ "\\\$kb" ]; then
593
if [ "\\\$kb" ]; then
593
    exists system-config-keyboard --noui \\\$kb 
594
    exists system-config-keyboard --noui \\\$kb 
594
fi
595
fi
595
 
596
 
596
 
597
 
597
EOF_lateinitscript
598
EOF_lateinitscript
598
#***********************************************************************
599
#***********************************************************************
599
# End of livesys-late script
600
# End of livesys-late script
600
#***********************************************************************
601
#***********************************************************************
601
 
602
 
602
 
603
 
603
#***********************************************************************
604
#***********************************************************************
604
# Create /sbin/halt.local
605
# Create /sbin/halt.local
605
#***********************************************************************
606
#***********************************************************************
606
 
607
 
607
echo "Creating /sbin/halt.local"
608
echo "Creating /sbin/halt.local"
608
 
609
 
609
cat > /sbin/halt.local << EOF_haltlocal
610
cat > /sbin/halt.local << EOF_haltlocal
610
#!/bin/bash
611
#!/bin/bash
611
#
612
#
612
# Ejects LiveCD/DVD, if boot parameter eject is given 
613
# Ejects LiveCD/DVD, if boot parameter eject is given 
613
#
614
#
614
 
615
 
615
. /etc/init.d/functions
616
. /etc/init.d/functions
616
. /etc/livesys.conf
617
. /etc/livesys.conf
617
. /etc/init.d/livesys.functions
618
. /etc/init.d/livesys.functions
618
 
619
 
619
# exit if not running from LiveCD
620
# exit if not running from LiveCD
620
if [ ! "\\\$( cmdline_parameter liveimg )" ]; then
621
if [ ! "\\\$( cmdline_parameter liveimg )" ]; then
621
    exit 0
622
    exit 0
622
fi
623
fi
623
if [ "\\\$( cmdline_parameter eject )" ]; then
624
if [ "\\\$( cmdline_parameter eject )" ]; then
624
    echo "Eject CD/DVD ..."
625
    echo "Eject CD/DVD ..."
625
    /usr/sbin/eject -p -m \\\$(readlink -f /dev/live) >/dev/null 2>&1
626
    /usr/sbin/eject -p -m \\\$(readlink -f /dev/live) >/dev/null 2>&1
626
fi
627
fi
627
 
628
 
628
EOF_haltlocal
629
EOF_haltlocal
629
#***********************************************************************
630
#***********************************************************************
630
# End of /sbin/halt.local script
631
# End of /sbin/halt.local script
631
#***********************************************************************
632
#***********************************************************************
632
chmod 755 /sbin/halt.local
633
chmod 755 /sbin/halt.local
633
 
634
 
634
 
635
 
635
#***********************************************************************
636
#***********************************************************************
636
# Configure the LiveCD
637
# Configure the LiveCD
637
# Everything configured here will survive LiveCD install to harddisk !
638
# Everything configured here will survive LiveCD install to harddisk !
638
#***********************************************************************
639
#***********************************************************************
639
 
640
 
640
echo "Configure the LiveCD"
641
echo "Configure the LiveCD"
641
 
642
 
642
chmod 755 /etc/rc.d/init.d/livesys
643
chmod 755 /etc/rc.d/init.d/livesys
643
/sbin/restorecon /etc/rc.d/init.d/livesys
644
/sbin/restorecon /etc/rc.d/init.d/livesys
644
/sbin/chkconfig --add livesys
645
/sbin/chkconfig --add livesys
645
 
646
 
646
chmod 755 /etc/rc.d/init.d/livesys-late
647
chmod 755 /etc/rc.d/init.d/livesys-late
647
/sbin/restorecon /etc/rc.d/init.d/livesys-late
648
/sbin/restorecon /etc/rc.d/init.d/livesys-late
648
/sbin/chkconfig --add livesys-late
649
/sbin/chkconfig --add livesys-late
649
 
650
 
650
# go ahead and pre-make the man -k cache (#455968)
651
# go ahead and pre-make the man -k cache (#455968)
651
/usr/sbin/makewhatis -w
652
/usr/sbin/makewhatis -w
652
 
653
 
653
# save a little bit of space at least...
654
# save a little bit of space at least...
654
rm -f /var/lib/rpm/__db*
655
rm -f /var/lib/rpm/__db*
655
rm -f /boot/initrd*
656
rm -f /boot/initrd*
656
rm -f /boot/initramfs*
657
rm -f /boot/initramfs*
657
# make sure there aren't core files lying around
658
# make sure there aren't core files lying around
658
rm -f /core*
659
rm -f /core*
659
 
660
 
660
# convince readahead not to collect
661
# convince readahead not to collect
661
rm -f /.readahead_collect
662
rm -f /.readahead_collect
662
touch /var/lib/readahead/early.sorted
663
touch /var/lib/readahead/early.sorted
663
 
664
 
664
# workaround clock syncing on shutdown that we don't want (#297421)
665
# workaround clock syncing on shutdown that we don't want (#297421)
665
sed -i -e 's/hwclock/no-such-hwclock/g' /etc/rc.d/init.d/halt
666
sed -i -e 's/hwclock/no-such-hwclock/g' /etc/rc.d/init.d/halt
666
 
667
 
667
# import RPM GPG keys
668
# import RPM GPG keys
668
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta
669
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta
669
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
670
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
670
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-sl6
671
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-sl6
671
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-dawson
672
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-dawson
672
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-sl
673
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-sl
673
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux
674
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux
674
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-atrpms
675
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-atrpms
675
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
676
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
676
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
677
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
677
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
678
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
678
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-fabian
679
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-fabian
679
 
680
 
680
# evolution is in the gnome launch panel (bad workaround to start thunderbird instead)
681
# evolution is in the gnome launch panel (bad workaround to start thunderbird instead)
681
[ ! -e /usr/bin/evolution ] && ln -s /usr/bin/thunderbird /usr/bin/evolution
682
[ ! -e /usr/bin/evolution ] && ln -s /usr/bin/thunderbird /usr/bin/evolution
682
 
683
 
683
# clean up yum
684
# clean up yum
684
yum clean all
685
yum clean all
685
 
686
 
686
# workaround avahi segfault (#279301)
687
# workaround avahi segfault (#279301)
687
touch /etc/resolv.conf
688
touch /etc/resolv.conf
688
/sbin/restorecon /etc/resolv.conf
689
/sbin/restorecon /etc/resolv.conf
689
 
690
 
690
# create locate db
691
# create locate db
691
/etc/cron.daily/mlocate.cron
692
/etc/cron.daily/mlocate.cron
692
 
693
 
693
# list kernel just for debugging
694
# list kernel just for debugging
694
rpm -q kernel
695
rpm -q kernel
695
 
696
 
696
EOF_post
697
EOF_post
697
 
698
 
698
# run post-install script
699
# run post-install script
699
/bin/bash -x /root/post-install 2>&1 | tee /root/post-install.log
700
/bin/bash -x /root/post-install 2>&1 | tee /root/post-install.log
700
 
701
 
701
%end
702
%end
702
 
703
 
703
 
704
 
704
########################################################################
705
########################################################################
705
#
706
#
706
#  LiveCD post no chroot install 
707
#  LiveCD post no chroot install 
707
#
708
#
708
########################################################################
709
########################################################################
709
%post --nochroot
710
%post --nochroot
710
 
711
 
711
#***********************************************************************
712
#***********************************************************************
712
# Create /root/postnochroot-install
713
# Create /root/postnochroot-install
713
# Must change "$" to "\$" and "`" to "\`" to avoid shell quoting
714
# Must change "$" to "\$" and "`" to "\`" to avoid shell quoting
714
#***********************************************************************
715
#***********************************************************************
715
 
716
 
716
cat > /root/postnochroot-install << EOF_postnochroot
717
cat > /root/postnochroot-install << EOF_postnochroot
717
#!/bin/bash
718
#!/bin/bash
718
 
719
 
719
# Copy licensing information
720
# Copy licensing information
720
cp $INSTALL_ROOT/usr/share/doc/*-release-*/GPL $LIVE_ROOT/GPL
721
cp $INSTALL_ROOT/usr/share/doc/*-release-*/GPL $LIVE_ROOT/GPL
721
 
722
 
722
# customize boot menu entries
723
# customize boot menu entries
723
grep -B4 'menu default'            \$LIVE_ROOT/isolinux/isolinux.cfg > \$LIVE_ROOT/isolinux/default.txt
724
grep -B4 'menu default'            \$LIVE_ROOT/isolinux/isolinux.cfg > \$LIVE_ROOT/isolinux/default.txt
724
grep -B3 'xdriver=vesa nomodeset'  \$LIVE_ROOT/isolinux/isolinux.cfg > \$LIVE_ROOT/isolinux/basicvideo.txt
725
grep -B3 'xdriver=vesa nomodeset'  \$LIVE_ROOT/isolinux/isolinux.cfg > \$LIVE_ROOT/isolinux/basicvideo.txt
725
grep -A3 'label check0'            \$LIVE_ROOT/isolinux/isolinux.cfg > \$LIVE_ROOT/isolinux/check.txt
726
grep -A3 'label check0'            \$LIVE_ROOT/isolinux/isolinux.cfg > \$LIVE_ROOT/isolinux/check.txt
726
grep -A2 'label memtest'           \$LIVE_ROOT/isolinux/isolinux.cfg > \$LIVE_ROOT/isolinux/memtest.txt
727
grep -A2 'label memtest'           \$LIVE_ROOT/isolinux/isolinux.cfg > \$LIVE_ROOT/isolinux/memtest.txt
727
grep -A2 'label local'             \$LIVE_ROOT/isolinux/isolinux.cfg > \$LIVE_ROOT/isolinux/localboot.txt
728
grep -A2 'label local'             \$LIVE_ROOT/isolinux/isolinux.cfg > \$LIVE_ROOT/isolinux/localboot.txt
728
 
729
 
729
sed "s/label linux0/label linuxtext0/"   \$LIVE_ROOT/isolinux/default.txt > \$LIVE_ROOT/isolinux/textboot.txt
730
sed "s/label linux0/label linuxtext0/"   \$LIVE_ROOT/isolinux/default.txt > \$LIVE_ROOT/isolinux/textboot.txt
730
sed -i "s/Boot/Boot (Text Mode)/"                                           \$LIVE_ROOT/isolinux/textboot.txt
731
sed -i "s/Boot/Boot (Text Mode)/"                                           \$LIVE_ROOT/isolinux/textboot.txt
731
sed -i "s/liveimg/liveimg 3/"                                               \$LIVE_ROOT/isolinux/textboot.txt
732
sed -i "s/liveimg/liveimg 3/"                                               \$LIVE_ROOT/isolinux/textboot.txt
732
sed -i "/menu default/d"                                                    \$LIVE_ROOT/isolinux/textboot.txt
733
sed -i "/menu default/d"                                                    \$LIVE_ROOT/isolinux/textboot.txt
733
 
734
 
734
sed "s/label linux0/label install0/"     \$LIVE_ROOT/isolinux/default.txt > \$LIVE_ROOT/isolinux/install.txt
735
sed "s/label linux0/label install0/"     \$LIVE_ROOT/isolinux/default.txt > \$LIVE_ROOT/isolinux/install.txt
735
sed -i "s/Boot/Install/"                                                    \$LIVE_ROOT/isolinux/install.txt
736
sed -i "s/Boot/Install/"                                                    \$LIVE_ROOT/isolinux/install.txt
736
sed -i "s/liveimg/liveimg liveinst noswap/"                                 \$LIVE_ROOT/isolinux/install.txt
737
sed -i "s/liveimg/liveimg liveinst noswap/"                                 \$LIVE_ROOT/isolinux/install.txt
737
sed -i "s/ quiet / /"                                                       \$LIVE_ROOT/isolinux/install.txt
738
sed -i "s/ quiet / /"                                                       \$LIVE_ROOT/isolinux/install.txt
738
sed -i "s/ rhgb / /"                                                        \$LIVE_ROOT/isolinux/install.txt
739
sed -i "s/ rhgb / /"                                                        \$LIVE_ROOT/isolinux/install.txt
739
sed -i "/menu default/d"                                                    \$LIVE_ROOT/isolinux/install.txt
740
sed -i "/menu default/d"                                                    \$LIVE_ROOT/isolinux/install.txt
740
 
741
 
741
sed "s/label linux0/label textinstall0/" \$LIVE_ROOT/isolinux/default.txt > \$LIVE_ROOT/isolinux/textinstall.txt
742
sed "s/label linux0/label textinstall0/" \$LIVE_ROOT/isolinux/default.txt > \$LIVE_ROOT/isolinux/textinstall.txt
742
sed -i "s/Boot/Install (Text Mode)/"                                        \$LIVE_ROOT/isolinux/textinstall.txt
743
sed -i "s/Boot/Install (Text Mode)/"                                        \$LIVE_ROOT/isolinux/textinstall.txt
743
sed -i "s/liveimg/liveimg textinst noswap/"                                 \$LIVE_ROOT/isolinux/textinstall.txt
744
sed -i "s/liveimg/liveimg textinst noswap/"                                 \$LIVE_ROOT/isolinux/textinstall.txt
744
sed -i "s/ quiet / /"                                                       \$LIVE_ROOT/isolinux/textinstall.txt
745
sed -i "s/ quiet / /"                                                       \$LIVE_ROOT/isolinux/textinstall.txt
745
sed -i "s/ rhgb / /"                                                        \$LIVE_ROOT/isolinux/textinstall.txt
746
sed -i "s/ rhgb / /"                                                        \$LIVE_ROOT/isolinux/textinstall.txt
746
sed -i "/menu default/d"                                                    \$LIVE_ROOT/isolinux/textinstall.txt
747
sed -i "/menu default/d"                                                    \$LIVE_ROOT/isolinux/textinstall.txt
747
 
748
 
748
cat \$LIVE_ROOT/isolinux/default.txt \$LIVE_ROOT/isolinux/basicvideo.txt \$LIVE_ROOT/isolinux/check.txt \$LIVE_ROOT/isolinux/memtest.txt \$LIVE_ROOT/isolinux/localboot.txt > \$LIVE_ROOT/isolinux/current.txt
749
cat \$LIVE_ROOT/isolinux/default.txt \$LIVE_ROOT/isolinux/basicvideo.txt \$LIVE_ROOT/isolinux/check.txt \$LIVE_ROOT/isolinux/memtest.txt \$LIVE_ROOT/isolinux/localboot.txt > \$LIVE_ROOT/isolinux/current.txt
749
 
750
 
750
diff \$LIVE_ROOT/isolinux/isolinux.cfg \$LIVE_ROOT/isolinux/current.txt | sed '/^[0-9][0-9]*/d; s/^. //; /^---$/d' > \$LIVE_ROOT/isolinux/cleaned.txt
751
diff \$LIVE_ROOT/isolinux/isolinux.cfg \$LIVE_ROOT/isolinux/current.txt | sed '/^[0-9][0-9]*/d; s/^. //; /^---$/d' > \$LIVE_ROOT/isolinux/cleaned.txt
751
 
752
 
752
cat \$LIVE_ROOT/isolinux/cleaned.txt      \
753
cat \$LIVE_ROOT/isolinux/cleaned.txt      \
753
    \$LIVE_ROOT/isolinux/default.txt      \
754
    \$LIVE_ROOT/isolinux/default.txt      \
754
    \$LIVE_ROOT/isolinux/textboot.txt     \
755
    \$LIVE_ROOT/isolinux/textboot.txt     \
755
    \$LIVE_ROOT/isolinux/basicvideo.txt   \
756
    \$LIVE_ROOT/isolinux/basicvideo.txt   \
756
    \$LIVE_ROOT/isolinux/check.txt        \
757
    \$LIVE_ROOT/isolinux/check.txt        \
757
    \$LIVE_ROOT/isolinux/install.txt      \
758
    \$LIVE_ROOT/isolinux/install.txt      \
758
    \$LIVE_ROOT/isolinux/textinstall.txt  \
759
    \$LIVE_ROOT/isolinux/textinstall.txt  \
759
    \$LIVE_ROOT/isolinux/memtest.txt      \
760
    \$LIVE_ROOT/isolinux/memtest.txt      \
760
    \$LIVE_ROOT/isolinux/localboot.txt > \$LIVE_ROOT/isolinux/isolinux.cfg
761
    \$LIVE_ROOT/isolinux/localboot.txt > \$LIVE_ROOT/isolinux/isolinux.cfg
761
rm -f \$LIVE_ROOT/isolinux/*.txt
762
rm -f \$LIVE_ROOT/isolinux/*.txt
762
 
763
 
763
EOF_postnochroot
764
EOF_postnochroot
764
 
765
 
765
# run postnochroot-install script
766
# run postnochroot-install script
766
/bin/bash -x /root/postnochroot-install 2>&1 | tee /root/postnochroot-install.log
767
/bin/bash -x /root/postnochroot-install 2>&1 | tee /root/postnochroot-install.log
767
 
768
 
768
%end
769
%end
769
 
770