Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/soas-xo.ks
diff options
context:
space:
mode:
authorMartin Dengler <martin@martindengler.com>2009-06-29 21:31:30 (GMT)
committer Martin Dengler <martin@martindengler.com>2009-06-30 11:35:31 (GMT)
commit0ae1da97a8da1f25c8d4cba1135e1f4cc9b17db8 (patch)
tree10e97b686c618c651be009ecb288865145240c25 /soas-xo.ks
parent628648f8d89fe8322e2867a5a56a673900683206 (diff)
refactor build process into smaller, more sensible, more restartable scripts
Diffstat (limited to 'soas-xo.ks')
-rw-r--r--soas-xo.ks489
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