diff options
author | Martin Dengler <martin@martindengler.com> | 2009-06-29 21:31:30 (GMT) |
---|---|---|
committer | Martin Dengler <martin@martindengler.com> | 2009-06-30 11:35:31 (GMT) |
commit | 0ae1da97a8da1f25c8d4cba1135e1f4cc9b17db8 (patch) | |
tree | 10e97b686c618c651be009ecb288865145240c25 /soas-xo.ks | |
parent | 628648f8d89fe8322e2867a5a56a673900683206 (diff) |
refactor build process into smaller, more sensible, more restartable scripts
Diffstat (limited to 'soas-xo.ks')
-rw-r--r-- | soas-xo.ks | 489 |
1 files changed, 489 insertions, 0 deletions
diff --git a/soas-xo.ks b/soas-xo.ks new file mode 100644 index 0000000..217eff4 --- /dev/null +++ b/soas-xo.ks @@ -0,0 +1,489 @@ +%include soas-sugar.ks + +%packages --excludedocs --instLangs en_US + +bootchart +fbida +ntpdate +ohm +xcompmgr + +# FIXME: uncomment when packaged for F11 +#olpc-kbdshim +#olpc-powerd + +%end + +%post + + + +################## +# BEGIN olpc.fth +cat > /boot/olpc.fth <<EOF +\ olpc.fth + +" root=mtd0 rootfstype=jffs2 console=tty0 console=ttyS0,115200 fbcon=font:SUN12x22" to boot-file +" nand:\boot\vmlinuz" to boot-device + +setup-smbios +unfreeze +dcon-unfreeze +visible + +boot +EOF + +# END olpc.fth +################## + + + +################## +# BEGIN dcon-unfreeze-failsafe + + +cat > /etc/event.d/dcon-unfreeze-failsafe <<EOF +# this service unfreezes the DCON +# Sugar should do this but a) it might not; and b) we might not be running Sugar +# + + +description "unfreeze DCON" +author "Martin Dengler <martin@martindengler.com>" + +start on started prefdm +stop on stopping prefdm +stop on starting shutdown + +stop on runlevel 0 +stop on runlevel 1 +stop on runlevel 6 + +script +echo 0 > /sys/devices/platform/dcon/freeze +end script +EOF + +chmod a+rx /etc/event.d/dcon-unfreeze-failsafe + +# END dcon-unfreeze-failsafe +################## + + + +CREATE_USERNAME=olpc + +################## +# BEGIN avoid livesys script at every boot + + +cat >> /etc/fstab <<EOF +/tmp /tmp tmpfs rw 0 0 +varcacheyum /var/cache/yum tmpfs rw,mode=755 0 0 +vartmp /var/tmp tmpfs rw 0 0 +none /ofw promfs defaults 0 0 +EOF + +/usr/sbin/useradd -m -c "SoaS user" -G audio $CREATE_USERNAME +/usr/bin/passwd -d $CREATE_USERNAME + + +# permanently set %__dbi_cdb rpm macro to work around jffs2's lack of writeable mmap() +mkdir -p /etc/rpm +echo "%__dbi_cdb create private nommap" > /etc/rpm/macros.rpmdb + + +# amend build +sed -i -e 's/SoaS/SoaS-XO/g' /etc/fedora-release + + +# disable screensaver locking +gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-screensaver/lock_enabled false >/dev/null + + +# disable the logout menu item in Sugar +gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /desktop/sugar/show_logout false >/dev/null + + +# nicer console font for our little screen +echo "SYSFONT=sun12x22" >> /etc/sysconfig/i18n + + +# make sure the fonts are not too big in GNOME +# FIXME: remove when http://dev.laptop.org/ticket/9331 is fixed +gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t float /desktop/gnome/font_rendering/dpi 201 >/dev/null + + +# make sure the fonts are not too big in Sugar +# FIXME: remove when http://dev.laptop.org/ticket/9331 is fixed +echo "Xft.dpi: 201" > /home/$CREATE_USERNAME/.Xresources +chown $CREATE_USERNAME:$CREATE_USERNAME /home/$CREATE_USERNAME/.Xresources + + +# use smaller font size for XO +# FIXME: fix upstream at http://dev.sugarlabs.org/ticket/954 +sed -i -e 's/Sans Serif 10/Sans Serif 7/g' /usr/share/sugar/data/sugar-100.gtkrc + + +# symlink Honey activities to /home/.../Activities +HONEY_DIR=/usr/share/sugar/honey +chown -R $CREATE_USERNAME:$CREATE_USERNAME $HONEY_DIR +mkdir /home/$CREATE_USERNAME/Activities +for activity_dir in $HONEY_DIR/* ; do + ln -s $activity_dir /home/$CREATE_USERNAME/Activities +done + +# setup Xclients +cat > /home/$CREATE_USERNAME/.Xclients <<FOE + +eval \$(dbus-launch --sh-syntax --exit-with-session) + +exec sugar +FOE +chmod a+x /home/$CREATE_USERNAME/.Xclients +chown $CREATE_USERNAME:$CREATE_USERNAME /home/$CREATE_USERNAME/.Xclients + + +# fix issues with dbus and ck +rm /etc/X11/xinit/xinitrc.d/00-start-message-bus.sh + + +# END avoid livesys scripts at every boot +################## + + +################## +# BEGIN liveuser .xsession + +cat >> /home/$CREATE_USERNAME/.xsession <<EOF + +# full debugging on +export LM_DEBUG=net +export GABBLE_DEBUG=all +export GABBLE_LOGFILE=/home/$CREATE_USERNAME/.sugar/default/logs/telepathy-gabble.log +export SALUT_DEBUG=all +export SALUT_LOGFILE=/home/$CREATE_USERNAME/.sugar/default/logs/telepathy-salut.log +export GIBBER_DEBUG=all +export PRESENCESERVICE_DEBUG=1 +export SUGAR_LOGGER_LEVEL=debug + +# Uncomment the following line to enable core dumps +#ulimit -c unlimited + +# Uncomment the following line to debug sugar startup problems +#exec xterm + +# If you drop out of this script, the normal olpc-session will proceed +# Uncomment the following line to prevent it +#exit 0 + +(sleep 5 ; xcompmgr ) & + +EOF + +# END olpc .xsession +################## + + + +################## +# BEGIN ntpdate + +ntpdate_file=/etc/NetworkManager/dispatcher.d/42-ntpdate +if [ ! -e $ntpdate_file ] ; then + cat > $ntpdate_file <<EOF +#!/bin/bash + +if [ "\$2" = "up" ] ; then + sleep 5 + /usr/sbin/ntpdate 0.pool.ntp.org >> /tmp/ntpdate.log 2>&1 +fi +EOF + +chmod u+rx $ntpdate_file + +fi + +# END ntpdate +################## + + + +################## +# BEGIN smolt + +smolt_file=/etc/NetworkManager/dispatcher.d/43-smolt +if [ ! -e $smolt_file ] ; then + cat > $smolt_file <<EOF +#!/bin/bash + +if [ "\$2" = "up" ] ; then + sleep 15 + ( nice /usr/bin/smoltSendProfile -a --submitOnly -b -c || /usr/sbin/smoltSentProfile -a --submitOnly -b ) >> /tmp/smolt.log 2>&1 +fi +EOF + +fi + +chmod u+rx $smolt_file + +# END smolt +################## + + +################## +# BEGIN make sugar default +cat > /home/$CREATE_USERNAME/.dmrc <<EOF +[Desktop] +Layout=olpc +Session=sugar +EOF +# END make sugar default +################## + + + +################## +# BEGIN set sugar power management on +gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /desktop/sugar/power/automatic True >/dev/null +# END set sugar power management on +################## + + + +################## +# BEGIN slim autostart +cat >> /etc/slim.conf << FOE +auto_login yes +default_user $CREATE_USERNAME +FOE +# END slim autostart +################## + + + +################## +# BEGIN fix keyboard layout +cat > /etc/sysconfig/keyboard <<EOF +KEYBOARDTYPE="pc" +KEYTABLE="us" +LAYOUT="us" +MODEL="olpc" +OPTIONS="" +VARIANT="olpc" +EOF + +cat > /usr/share/hal/fdi/information/10freedesktop/30-keymap-olpc.fdi <<EOF +<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- --> + + +<!-- FIXME: this isn't a great way to detect a C2 / XO-1 --> +<deviceinfo version="0.2"> + <device> + <match key="info.product" string="OLPC HGPK ALPS HGPK"> + <merge key="/org/freedesktop/Hal/devices/computer:system.hardware.product" type="string">C2</merge> + <merge key="/org/freedesktop/Hal/devices/computer:system.hardware.vendor" type="string">OLPC</merge> + <merge key="/org/freedesktop/Hal/devices/computer:system.hardware.version" type="string">OLPC C2</merge> + </match> + </device> +</deviceinfo> + +<deviceinfo version="0.2"> + <device> + + <match key="/org/freedesktop/Hal/devices/computer:system.hardware.version" string="OLPC C2"> + + <match key="@input.originating_device:info.linux.driver" string="atkbd"> + <append key="input.keymap.data" type="strlist">59:fn</append> + <append key="input.keymap.data" type="strlist">e001:fn_esc</append> + + <append key="input.keymap.data" type="strlist">e079:camera</append> + <!-- FN-CAMERA is 'Mic', KEY_SOUND is as close as I see. --> + <append key="input.keymap.data" type="strlist">e078:sound</append> + + <append key="input.keymap.data" type="strlist">e03b:fn_f1</append> + <append key="input.keymap.data" type="strlist">e03c:fn_f2</append> + <append key="input.keymap.data" type="strlist">e03d:fn_f3</append> + <append key="input.keymap.data" type="strlist">e03e:fn_f4</append> + <append key="input.keymap.data" type="strlist">e03f:fn_f5</append> + <append key="input.keymap.data" type="strlist">e040:fn_f6</append> + <append key="input.keymap.data" type="strlist">e041:fn_f7</append> + <append key="input.keymap.data" type="strlist">e042:fn_f8</append> + <append key="input.keymap.data" type="strlist">e043:fn_f9</append> + <append key="input.keymap.data" type="strlist">e044:fn_f10</append> + <append key="input.keymap.data" type="strlist">e057:fn_f11</append> + <append key="input.keymap.data" type="strlist">e058:fn_f12</append> + + <!-- Using KEY_F13-KEY_F21 for the .5 F keys right now. --> + <append key="input.keymap.data" type="strlist">e077:fn_f13</append> + <append key="input.keymap.data" type="strlist">e076:fn_f14</append> + <append key="input.keymap.data" type="strlist">e075:fn_f15</append> + <append key="input.keymap.data" type="strlist">e074:fn_f16</append> + <append key="input.keymap.data" type="strlist">e073:fn_f17</append> + <append key="input.keymap.data" type="strlist">e072:fn_f18</append> + <append key="input.keymap.data" type="strlist">e071:fn_f19</append> + <append key="input.keymap.data" type="strlist">e070:fn_f20</append> + <append key="input.keymap.data" type="strlist">e06f:fn_f21</append> + + <append key="input.keymap.data" type="strlist">e06e:chat</append> + <!-- FIXME: FN-CHAT, just mapping to KEY_CHAT right now --> + <append key="input.keymap.data" type="strlist">e064:chat</append> + + <!-- Frame and Fn-frame , which is listed as 'Win App', try --> + <append key="input.keymap.data" type="strlist">e05d:menu</append> + <append key="input.keymap.data" type="strlist">e05a:prog1</append> + + <!-- The FN of some keys is other keys --> + <append key="input.keymap.data" type="strlist">e053:delete</append> + <append key="input.keymap.data" type="strlist">e052:insert</append> + <append key="input.keymap.data" type="strlist">e049:pageup</append> + <append key="input.keymap.data" type="strlist">e051:pagedown</append> + <append key="input.keymap.data" type="strlist">e047:home</append> + <append key="input.keymap.data" type="strlist">e04f:end</append> + + <!-- FIXME: These should be the language key. Don't ask what they + are doing as KEY_HP. It will make your brain hurt. --> + <append key="input.keymap.data" type="strlist">73:hp</append> + <append key="input.keymap.data" type="strlist">7e:hp</append> + + <!-- L/R grab --> + <append key="input.keymap.data" type="strlist">e05b:leftmeta</append> + <append key="input.keymap.data" type="strlist">e05c:rightmeta</append> + <!-- FIXME: right grab seems to be releasing on a different scancode --> + <append key="input.keymap.data" type="strlist">85:rightmeta</append> + + <!-- Fn-space toggles the backlight. + At least in a dream I had last night. --> + <append key="input.keymap.data" type="strlist">e056:kbdillumtoggle</append> + + <!-- Set the D-PAD keys to map to up/down/left/right for now --> + <append key="input.keymap.data" type="strlist">65:kp8</append> + <append key="input.keymap.data" type="strlist">66:kp2</append> + <append key="input.keymap.data" type="strlist">67:kp4</append> + <append key="input.keymap.data" type="strlist">68:kp6</append> + + <!-- set the game keys to map to pgup/pgdn/home/end --> + <append key="input.keymap.data" type="strlist">e065:kp9</append> + <append key="input.keymap.data" type="strlist">e066:kp3</append> + <append key="input.keymap.data" type="strlist">e067:kp7</append> + <append key="input.keymap.data" type="strlist">e068:kp1</append> + + <append key="input.keymap.data" type="strlist">69:switchvideomode</append> + + <append key="info.capabilities" type="strlist">input.keymap</append> + + </match> + + </match> + </device> +</deviceinfo> + +EOF + +# END fix keyboard layout +################## + + + +################## +# BEGIN enable serial console + +echo ttyS0 >> /etc/securetty + +cat > /etc/event.d/ttyS0 <<EOF +# ttyS0 - serial console +start on stopped rc2 +start on stopped rc3 +start on stopped rc4 +start on stopped prefdm + +stop on runlevel 0 +stop on runlevel 1 +stop on runlevel 6 + +respawn +exec agetty ttyS0 115200 +EOF + +# END enable serial console +################## + + + +################## +# BEGIN make /var/log/messages a+r so Log activity can see it +chmod a+r /var/log/messages +# END make /var/log/messages a+r so Log activity can see it +################## + + + +%end + + +%post --nochroot + +mkdir -p $INSTALL_ROOT/var/tmp +cp ../bits/kernel-2.6.25-20090223.1.olpc.69098d87d56945c.i586.rpm \ + ../bits/kernel-2.6.30-20090604.1.olpc.9f05ee9.i586.rpm \ + ../bits/olpc-kbdshim-6-3.fc9.i386.rpm \ + ../bits/olpc-powerd-7-1.fc9.i386.rpm \ + $INSTALL_ROOT/var/tmp + +%end + + + +#do this at the end because it (might/does) depend on rpms install outside of the chroot +%post + +set -x + +mount -o bind /dev $INSTALL_ROOT/dev +mount -o bind /proc $INSTALL_ROOT/proc + +################## +# BEGIN prime yum db +setarch i386 yum -y update +################## + + +################## +# BEGIN install k +#OLPC stable kernel with DCON + PM + OFW +setarch i386 rpm -ivh --force --nodeps /var/tmp/kernel-2.6.25-20090223.1.olpc.69098d87d56945c.i586.rpm + +#OLPC development kernel with DCON + PM +setarch i386 rpm -ivh --force --nodeps /var/tmp/kernel-2.6.30-20090604.1.olpc.9f05ee9.i586.rpm +# END install kernels +################## + + +################## +# BEGIN install olpc-powerd and olpc-kbdshim +# FIXME: remove when packaged in rawhide / F11 +setarch i386 rpm -ivh /var/tmp/olpc-powerd-7-1.fc9.i386.rpm /var/tmp/olpc-kbdshim-6-3.fc9.i386.rpm +# END install olpc-powerd and olpc-kbdshim +################## + + +################## +# BEGIN setup services +for service in auditd cpuspeed cups dnsmasq exim firstboot gpm ip6tables irda livesys livesys-late mdmonitor netfs network nfs nfslock nscd pcscd portreserve readahead_early readahead_later rpcbind rpcgssd rpcidmapd setroubleshoot yum-updatesd ; do + /sbin/chkconfig --level 2345 $service off +done + +for service in avahi-daemon olpc-kbdshim olpc-powerd sshd ; do + /sbin/chkconfig --level 2345 $service on +done +# something triggers prompting, so just turn it off with a big hammer +sed -i -e 's/PROMPT=yes/PROMPT=no/;' /etc/sysconfig/init +# END setup services +################## + +umount $INSTALL_ROOT/dev/pts +umount $INSTALL_ROOT/dev +umount $INSTALL_ROOT/proc + +%end
\ No newline at end of file |