]> spindle.queued.net Git - xodist/blob - configs/debxo-gnome/hooks
debxo-jffs2: add missing /boot symlink
[xodist] / configs / debxo-gnome / hooks
1 # Default hooks - copy & customize this for a new image build
2 #
3 # Copyright © 2008-2009  Andres Salomon <dilinger@collabora.co.uk>
4 #
5 # This file is free software; you can redistribute it and/or modify it
6 # under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 2 of the License, or
8 # (at your option) any later version.
9 #
10 # This program is distributed in the hope that it will be useful, but
11 # WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 # General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, write to the Free Software
17 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18
19 customize_chroot_hook()
20 {
21         ROOT_DIR="$1"
22
23         # Any customizations that need to be made to the chroot after the base system
24         # has been installed (but prior to custom package installation) should be
25         # put here.  $ROOT_DIR should be prefixed to any paths.
26         
27         mkdir ${ROOT_DIR}/ofw
28
29         # OFW needs this to boot w/ partitions
30         ln -s . ${ROOT_DIR}/boot/boot
31         
32         # Apt can't deal w/ jffs2's lack of mmap, so we keep apt's cache on tmpfs
33         # (see <http://bugs.debian.org/314334>).
34         mkdir ${ROOT_DIR}/var/cache/apt/cache
35         mount -t tmpfs tmpfs ${ROOT_DIR}/var/cache/apt/cache
36         # XOs are slow and small; don't use pdiffs, don't install recommends, and
37         # work around lack of mmap.
38 cat >${ROOT_DIR}/etc/apt/apt.conf<<EOF
39 Acquire::Pdiffs "false";
40 APT::Install-Recommends "false";
41 Dir {
42         Cache "var/cache/apt/" {
43                 srcpkgcache "cache/srcpkgcache.bin";
44                 pkgcache "cache/pkgcache.bin";
45         };
46 };
47 EOF
48
49         
50 }
51
52 package_configure_hook()
53 {
54         ROOT_DIR="$1"
55
56         # Any customizations that need to be made after all packages have been
57         # installed should be put here.  $ROOT_DIR should be prefixed to any
58         # paths.
59
60
61         # Ensure certain modules get loaded during boot
62         cat >>${ROOT_DIR}/etc/modules<<EOF
63 lxfb
64 fbcon
65 olpc_dcon
66 scx200_acb
67 i8042
68 olpc_battery
69 msr
70 EOF
71
72         # install some custom packages that aren't on mirrors.  ugly hack!
73         k="http://lunge.mit.edu/~dilinger/debxo-0.2/initramfs-tools_0.92l.2_all.deb 
74  http://lunge.mit.edu/~dilinger/debxo-0.2/ofw-config_0.1_all.deb 
75  http://lunge.mit.edu/~dilinger/debxo-0.4/linux-2.6.25.15_2.6.25.15-165_i386.deb 
76  http://lunge.mit.edu/~dilinger/debxo-0.5/xserver-xorg-video-geode_2.11.0-0.3_i386.deb"
77         mkdir -p cache
78         for i in $k; do
79                 pkg=$(basename ${i})
80                 wget --continue -O cache/${pkg} ${i}
81                 cp cache/${pkg} ${ROOT_DIR}/${pkg}
82                 (chroot ${ROOT_DIR} dpkg -i /${pkg})
83                 pkgbase=$(echo $pkg | cut -d_ -f1)
84                 echo $pkgbase hold | (chroot ${ROOT_DIR} dpkg --set-selections)
85                 rm -f ${ROOT_DIR}/${pkg}
86         done
87
88         # take some packages that are okay to upgrade off hold
89         echo xserver-xorg-video-geode install | (chroot ${ROOT_DIR} dpkg --set-selections)
90
91         # No longer a need for xorg.conf
92         rm -f ${ROOT_DIR}/etc/X11/xorg.conf
93
94         # key bindings/mappings
95         if [ -d ${ROOT_DIR}/usr/share/hal/fdi/information/10freedesktop/ ]; then
96                 cp 30-keymap-olpc.fdi ${ROOT_DIR}/usr/share/hal/fdi/information/10freedesktop/
97         fi
98
99         # configure gnome
100         if [ -d ${ROOT_DIR}/etc/gconf/2 ]; then
101                 cat >${ROOT_DIR}/etc/gconf/2/local-defaults.path<<EOF
102 # DebXO defaults (customized for the XO-1's display
103 xml:readonly:/etc/gconf/debxo.xml.defaults
104 EOF
105                 mkdir -p ${ROOT_DIR}/etc/gconf/debxo.xml.defaults
106                 cp %gconf-tree.xml ${ROOT_DIR}/etc/gconf/debxo.xml.defaults/
107         fi
108
109         # configure gdm
110         if [ -d ${ROOT_DIR}/etc/gdm ]; then
111                 sed -i "s_\[daemon\]_\[daemon\]\n\nGreeter=/usr/lib/gdm/gdmlogin\n\nAutomaticLoginEnable=true\n\nAutomaticLogin=${DEFUSER}_" ${ROOT_DIR}/etc/gdm/gdm.conf
112         fi
113
114 }
115
116 cleanup_chroot_hook()
117 {
118         ROOT_DIR="$1"
119
120         # Any customizations that need to be made after the chroot creation is
121         # complete should be put here.  $ROOT_DIR should be prefixed to any
122         # paths.
123
124         umount ${ROOT_DIR}/var/cache/apt/cache
125 }